レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
不具合報告スレ
不具合と思われた挙動をした時はこちらに書き込んでください。
報告用テンプレ
-----------------------------------------
Narou.rb のバージョン:
OS のバージョン:
その他環境情報(任意):
何が起きたのか:
再現方法(何をやったら起こったのか詳細に):
-----------------------------------------
エラーメッセージは再現方法に併記。
その際は --backtrace オプションをつけること。
ざっと処理を追って見ましたが、更新確認では話数は確認しておらず、通常のダウンロードの際に目次データを比較する流れでした。
なので処理的にはいつもの処理で、あまり怪しそうな感じはなかったです。
現象としては、前回の目次データがおかしい事になりますが、前回保存時におかしくなっていたのか、保存したファイルがおかしくなっていたのか、
今回ファイルから読み込んだ後におかしくなったのか、まずはそこの確認でしょうか。
次に現象が起こったときに「保存フォルダを開く」を選択して保存フォルダを開き、そこにある toc.yaml ファイルをメモ帳かなにかで開いて見てください。
それが前回保存した目次データです。
「- index:」からが1話分の目次データで、それが話数分あるはずです。
私のをいくつか見たら1話9行でしたので、ファイル全体では話数×9行+α(あらすじなど)となってるはずなので、まずは大きな違いがないか確認してみてください。
とくにおかしくないようなら、今回ファイルから読み込んだ後におかしくなった事になりそうです。
一度更新をキャンセルして再度更新して再発するか確認してみてください。
もし大きく違うなら取り合えず手がかりの toc.yaml を他のフォルダにコピペしておいて欲しいです。
あと、前回保存時におかしくなっていたのか、保存したファイルがおかしくなっていたのかの確認のため、保存フォルダの3つ上のフォルダの中にある「.narou」フォルダを開いてください。
そのなかにある「database.yaml」が登録した小説のデータですので、該当の小説の部分を探します。タイトルかncodeで検索すると良いと思います。
そしたら、general_all_noの項を見てください。それが前回目次データ保存時の話数になります。
この話数がおかしい場合は、前回保存時に既におかしくなってることになります。
この話数が正常の場合は、前回保存時はおそらく正常で、のちに toc.yaml がおかしくなった可能性があります。
なんにせよ再発させる方法が分からないと頻度が少なすぎて解決は難しいかもしれませんが、とりあえず手がかりの入手方法はこんな所でしょうか。
ご返答ありがとうございます。ここ一週間ほどでまた二度ほど同様のことがありました。
こちらの掲示板を除く前にすでに更新してしまいましたので、次回は確認します。その後また訊ねさせてください。
お手数おかけして申し訳ございません。
本当にありがとうございます。
また確認してから書き込みさせていただきます。よろしくお願いいたします。
Javaはバージョン8の更新371(ビルド1.8.0_371-b11)
Rubyはエラー後に3.2.2.1に上げたため元バージョン不明
→Rybyインストール後gem install narouもかけてあります。
何日か前から発生。更新した差分(前回更新分〜最新話の範囲)が読めなく(送信できなく?)なりました。
ただ、その付近でStablediffusion更新でpython、pytorch、pipなどアップデートや再インストールかけています。
挿絵が悪さをしている可能性もあったため改造版?aozoraを使用しても効果なし
Web UI側のエラー
AozoraEpub3でEPUBに変換しています.
pid 43412 exit 42
[ERROR] JavaがインストールされていないかAozoraEpub3実行時にエラーが発生しました。EPUBを作成出来ませんでした
自分で修正しようと思ってダンプファイルに気がついて確認した所、Rubyがなにか悪さしているようでした
--- 2023/07/01 01:08:39 ---
C:/Ruby31-x64/bin/narou web --boot
C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/sinatra-2.2.2/lib/sinatra/base.rb:1490:in `write': Broken pipe @ io_writev - <STDERR> (Errno::EPIPE)
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/sinatra-2.2.2/lib/sinatra/base.rb:1490:in `puts'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/sinatra-2.2.2/lib/sinatra/base.rb:1490:in `quit!'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/sinatra-2.2.2/lib/sinatra/base.rb:1514:in `ensure in run!'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/sinatra-2.2.2/lib/sinatra/base.rb:1514:in `run!'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/command/web.rb:144:in `boot'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/command/web.rb:87:in `execute'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/commandbase.rb:125:in `execute!'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/commandbase.rb:134:in `execute!'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/commandline.rb:29:in `run'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/commandline.rb:43:in `run!'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/narou.rb:50:in `block in <top (required)>'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/backtracer.rb:16:in `capture'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/narou.rb:49:in `<top (required)>'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/bin/narou:13:in `require_relative'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/bin/narou:13:in `<top (required)>'
from C:/Ruby31-x64/bin/narou:32:in `load'
from C:/Ruby31-x64/bin/narou:32:in `<main>'
前回はお返事ありがとうございました。
調べてみましたが、どうも前回の保存時におかしくなっているようです。
今回おかしくなったものは現在200話になるものでした。(この症状が出る話は毎回違う小説です)
つまり前回までの保存話数は199話ですが、保存されている話数は398話表記となっておりました。
「toc.yaml」ファイルを確認したところ、インデックス「1」から「199」話までが9行ずつ保存されて、その後また
同様に「1」から「199」話までが9行ずつ保存されてました。つまり、まんま二重保存です。
ただし、最後の二度目の「199」のみ行数8行で、「download time」の行の表記がありませんでした。
総行数は3598行で、あらすじ等で余分に17行使用です。
次に「datebace.yaml」の当該小説部位のgeneral_all_no項目を見たところ、398でした。
なので、前回保存時に二重に保存されたようです。
もしかしてなのですが、家のパソコンは夜間等にネット回線がつながりにくいことがあり、その際になんどかリトライして保存していることがあるので、
そういう時に誤って二重保存されたのかなと勝手に思っています。
もしも何かお分かりのことあればお教えいただければ幸いです。<(_ _)>
>>576
exit 42は質問スレの468っぽい気がする。
環境変数PATHあたりを調べてみてください。
>>579
※Cドライブ完全に消して最初からやり始めたところまで来てしまってますが
Pathも確認しつつjavaとruby関係は全部指定済みでした。
ただ、もともとなかったWin32?をパス指定に追加すると小説の名前が文字化けしたりしたので
どうにもならなくなってしまったんですよね。
因みに、「小説データ」のファイルだけは取り出しておいたんですけど
これってCSV抽出+インポートしてなかった場合、完全に初期化した作業エリアに再配置してもダメですか?(リスト復活ならず)
>>580
この掲示板の上部にも書いてあるが、.narouフォルダ(データベース)のバックアップが重要
てか MyNovel まるごとバックアップできたのでは…
削除されて再ダウンロードできないものだけ、手打ちでデータベースに登録するとか
>>578
リトライしたからと言って2重になるとも思えないけど、ソース的に2重になる原因も探し出せなかった。
目次ページは生データ保存しないので、壊れたページデータを取得してないか確認できるように、ページの生データ保存するような改造をして様子を見たらどうかと思った。
以下改造パッチ。
ttps://pastebin.com/N0WnEguY
といっても
downloader.rbの764行と765行の間に下記を追加するだけです。
save_raw_data(toc_source, {"index" => "0", "file_subtitle" => "index"}, ".html")
ファイルの場所はエラーに出る奴。windowsでよくあるのは下記かな?「?」はrubyのバージョン番号になる。
C:/Ruby3?-x64/lib/ruby/gems/3.?.?/gems/narou-3.8.2/lib/downloader.rb
編集するファイルのバックアップを忘れずに!
>>580
最初に「ruby -e "exec 'cmd /c java -version'"」を試してもらう方が良かったかもしれない。
>ただ、もともとなかったWin32?をパス指定に追加すると小説の名前が文字化けしたりしたので
もしかして仮想環境とか入ってたりします?anacondaとかみたいなの。
そういうのでnarou.rbの環境が変わってたりする可能性は?
java動かすのにwindowsだとcmd.exe使ってるので、それが動かないとexit 42が出る。
>>583
>最初に〜
いろいろ弄ってた時なので、確かやってもエラーかコマンドが走らなかったような
>anacondaとか
確か、かなーり前にnode.jsとか(に使うWebアプリ開発用仮想環境)を入れていた気がしますね・・・
たしかcmdもpowershellも、javaとかpath叩いても何故か何も表示されなかったりしてました。
一応現環境(OSまっさら状態)だと
Windows11 Home64bitで23/7/15時点の最新jre,ruby+改造版AozoraEpub3-1.1.1b17Qで起動とダウンロード成功/kindle変換エラー
jdk追加で変換時 error: opening registry key 'software\javasoft\java runtime environment'
→システム環境変数のPathに"%JAVA_HOME%\bin\"追加でUTF-8(なんちゃら〜)でnovelconverterでエラー
→→ttps://github.com/whiteleaf7/narou/issues/399 を見て168,199行目差し替えで取り合えず実行に成功しました
返信ありがとうございます。ではこちらを落ち着いた時にやってみます。その後様子を見てみるつもりです。
ありがとうございました。<(_ _)>。
Narou.rbには本当にいつもお世話になってます。ありがとうございます。
またわからなければ何かお聞きすることがあるかもしれません。
その時はまたよろしくお願いいたします。
>>585
いまさらですが一応。
>>582 のパッチだと新規ダウンロードでエラーになるバグありました。
ということで修正版。保存タイミング変えたのとエラー時も継続するようにしました。
ttps://pastebin.com/jgmu6X6Z
>>586
再々、ありがとうございます。<(_ _)>。
narou-3.8.2
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x64-mingw-ucrt]
Windows11
narouのコマンドを入力しても全部次のエラーが出て動作しない
C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/inventory.rb:45:in `merge!': no implicit conversion of false into Hash (TypeError)
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/inventory.rb:45:in `init'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/inventory.rb:23:in `block in load'
from <internal:kernel>:90:in `tap'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/inventory.rb:21:in `load'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/database.rb:29:in `refresh'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/database.rb:25:in `initialize'
from J:/Ruby32-x64/lib/ruby/3.2.0/singleton.rb:127:in `new'
from J:/Ruby32-x64/lib/ruby/3.2.0/singleton.rb:127:in `block in instance'
from J:/Ruby32-x64/lib/ruby/3.2.0/singleton.rb:125:in `synchronize'
from J:/Ruby32-x64/lib/ruby/3.2.0/singleton.rb:125:in `instance'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/downloader.rb:247:in `<class:Downloader>'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/downloader.rb:23:in `<top (required)>'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/command/backup.rb:8:in `require_relative'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/command/backup.rb:8:in `<top (required)>'
from <internal:J:/Ruby32-x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:J:/Ruby32-x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/command.rb:9:in `block in <top (required)>'
from <internal:dir>:220:in `glob'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/command.rb:8:in `<top (required)>'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/commandline.rb:8:in `require_relative'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/lib/commandline.rb:8:in `<top (required)>'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/narou.rb:47:in `require_relative'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/narou.rb:47:in `<top (required)>'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/bin/narou:13:in `require_relative'
from C:/Users/Owner/.gem/ruby/3.2.0/gems/narou-3.8.2/bin/narou:13:in `<top (required)>'
from C:/Users/Owner/AppData/Local/Microsoft/WindowsApps/narou:32:in `load'
from C:/Users/Owner/AppData/Local/Microsoft/WindowsApps/narou:32:in `<main>'
Narou.rb のバージョン:Ver.3.8.2
OS のバージョン:Windows 10 Pro 22H2 Build 19045.3636
その他環境情報(任意):Ruby Ver.3.2.2
何が起きたのか:作品の各話のサブタイトルに四桁の数字がある場合、意図せず全角に変換されてしまう。
再現方法(何をやったら起こったのか詳細に):
作品の各話のサブタイトルに四桁の数字があるものでは常に起こっています。
ただし、話数として提示されているものの、書式としては『1000 副題』のような形式であるため、数字だけであることが原因かも知れません。
(『1000話 副題』のような形式であれば変換されない? 筆者が変更されない限り、全角に変換される問題は解決はしませんが)
また、副題が英字始まりであれば、数字が全角に変換されることはないようです。
(『1000 Where are we?』のような形式であれば、数字部分が全角に変換されることはないようです)
できれば本文に忠実になるよう、全角に変換されることを抑制できればと思います。
宜しくお願い致します。
>>558
.narou/database.yaml のファイルサイズが0ではありませんか?
稀にウィルス対策ソフトが .narou/database.yaml を不正なファイルと誤反応している場合があります。
確認してみてください。
ファイルが復旧できない場合、下記を参照してください。
>>55
>>56
>>559
converterbase.rb の107行目、
else
を
elsif @text_type != "subtitle" && @text_type != "chapter"
かな?
>>591
>>559 ではなく >>589 でした
588です
自己解決しました
何度か保存場所を初期化してRubyとNarouをインストールしなおしたら動作するようになりました
どうも.narouフォルダが破損していたようです
お騒がせしました。
Narou.rb のバージョン:Version 3.8.2
OS のバージョン:macOS 14.1.1
何が起きたのか:
カクヨムからのダウンロードがエラーになってできなくなってます。
昨日までは問題なかったので、カクヨム側がなんか変わったんじゃないかと。
再現方法(何をやったら起こったのか詳細に):普通に更新してカクヨムだけ全部ダメ。
カクヨムは作品ページのリニューアルですね。
話数の多い長期連載作品は酷いことになってましたから、見やすくしたと。
カクヨムの仕様変更、続きです。私も遭遇しました。
新規に小説を追加しようとして気付きました。
S:\Book\narou>narou d --backtrace https:__kakuyomu.jp/works/16816927859767847980
[ERROR] <h1 id="workTitle"><a href=".+?">(?<title>.+?)</a></h1> の目次がありません
(URLは掲示板に書き込めないので、スラッシュをアンダーバーにしました)
logは残らないようです。
S:\Book\narou>narou log
[ERROR] 表示できるログファイルが一つも見つかりませんでした
>>596
narou.rb Version 3.8.2
OS: Windows11
書き漏れです。
目次がだいぶ変わってますね
カクヨムですが
<script id="__NEXT_DATA__" type="application/json">〜</script>
内のjsonを処理するしかなさそうというよりjsonからHTML生成してる?
とりあえず必要そうなものは、全部ありそう
あらすじが、htmlだと省略されている場合があるのでjsonからとりたい。
しかしその場合は改行が\nエスケープされてる。置換する方法ない?
あらすじと、目次の章 (chapter, subchapter) の取得が不完全な版だけど、参考まで。
ttps://pastebin.com/bG1PMyMu
Web UIじゃないと分からないが、カクヨムは文字数もカウントされなくなった。
Ruby 3.1系より前のものはEOLなのにNarou.rb 説明書の必須環境 Ruby 2.7 以上のままだな
でっていう
>>601
ありがたく使わせてもらってます。
実用上ほぼ問題無いんですが、最新話掲載日の取得が上手くいってないみたいです。
実際の最新話投稿日時が一致しない3つの作品の最新話掲載日が2023/11/29 07:50に揃ったりしてます。
>>599 各話右に表示されているタイトルは使えないですよね。
何もできずすみません。
>>605
こっちだと、カクヨムはdatabase.yamlのnovelupdated_atとgeneral_lastupが、0000-01-01 00:00:00.000000000 +09:00になってるな
>>601
改訂しました。
ttps://pastebin.com/L6JtYUHT
ひとまずこんな所かと思う。以下、解決できない問題点。
・章分けしてある場合、一話目は章から外れる
・目次にある文字「"<>」はエスケープされて、\" \u003c \u003e になっている
・長いあらすじは省略されている。
最初のは、例えば
一章
一話
二話
とあっても
一話
一章
二話
となってしまう。
データの位置の関係でそうなってしまう。
>>608
修正に感謝です
>>608
とても助かりました。感謝です。
一点だけ。タイトルに墨括弧【】があるとその部分が除外されてしまうようです。
↓のようなタイトルの小説
ttps://kakuyomu.jp/works/16817330656879780723
>>610
title_strip_patternをnullにしてください。
個人設定入れたままでした。
いつもご利用させていただいています。
-----------------------------------------
Narou.rb のバージョン:3.8.2
OS のバージョン:Windows10
その他環境情報(任意):
何が起きたのか:
カクヨムの小説でダウンロードができないようです。
カクヨムの登録済みの小説も更新確認が出来ていないです。
再現方法(何をやったら起こったのか詳細に):
新規登録をする。
以下の表示がされてダウンロードできない。
[ERROR]
(?
登録済みの小説も同じ表示で、こちらも出来ない。
-----------------------------------------
お手数ですがよろしくお願いいたします。
忙しすぎてカクヨム修正する時間がまだ取れないので、一旦
https://jbbs.shitaraba.net/bbs/read.cgi/computer/44668/1511245701/608
のを使ってもらえればと
有志の方の公開ありがたい限りです
皆さん同じ状態だったのですね。
了解しました。ありがとうございました。
何度もすいません。
提案の有ったURLはどこかにファイルを設置するのでしょうか?
お手数ですがよろしくお願いいたします。
現在、自分がRubyを導入してる一番新しい日付のwebnovelフォルダーにあるkakuyomu.jp.yamlを
テキストで開くなりしてURLの定義をコピペで上書き保存か
URLに表示されてる #小説サイト定義のすぐ右上にあるdownloadで保存したテキストを
kakuyomu.jp.yamlにリネームしてRubyの中のwebnovelへ移動して上書きでいけると思いますよ
>>608
ありがとうございます。カクヨムが取得できることを確認いたしました。
作者様にもお礼申し上げます。助かりました
私の場合、下記のフォルダーのkakuyomu.jp.yamlを入れ替えたら正常動作しました。
困ってました。ありがとう!
C:\Users\XXXX\.gem\ruby\3.2.0\gems\narou-3.8.2
XXXXはWindowsのユーザ名
narou initで指定した.narouとかがあるフォルダに
webnovelフォルダを作ると優先するっぽい?
webnovelのサイト設定は、ファイル名でなくnameが同じでversionが同じか上なら上書きマージします。
なのでnameと変更する項目だけ書いておけばOK
e.g. >>193
-----------------------------------------
Narou.rb のバージョン:3.8.2
OS のバージョン:Windows10
その他環境情報(任意):Kindle Paperwhite 第10世代
何が起きたのか:kindle端末で表紙が表示されない。
再現方法(何をやったら起こったのか詳細に):個別に本を開くと「カバー」に表紙は表示されますが、一覧表示の際に画像が反映されなくなりました。
12月に入った頃からで、それ以前に設定した表紙は変わらず表示されています。
更新された小説を上書き保存しても画像は消えませんが、端末で一度削除した本のデータを再度移した場合は画像が消えてしまいました。
端末自体5年近く使用しているものでもしかしたら端末の不具合化もしれませんし、知らない間にnarou.rbの設定をいじってしまったのかもわかりません。
すみませんがよろしくお願いします。
-----------------------------------------
仮対処された方が、GitHubのIssueにリンクを貼っているので、まるごと上書きがとりあえず良いかも。
ttps://github.com/whiteleaf7/narou/issues/412#issuecomment-1848864087
仮対処された方が、GitHubのIssueにリンクを貼っているので、まるごと上書きがとりあえず良いかも。
ttps://github.com/whiteleaf7/narou/issues/412#issuecomment-1848864087
仮対処された方が、GitHubのIssueにリンクを貼っているので、まるごと上書きがとりあえず良いかも。
ttps://github.com/whiteleaf7/narou/issues/412#issuecomment-1848864087
ああああ、二重書き込み申し訳ない……
>>623
こちらを入れてみたのですが、作者名がうまく取得できない場合があるようです。
ttps://kakuyomu.jp/works/16816452219142926388
を変換するとタイトルと作者名の切り出しがうまくいかず
タイトル : “冒険者アプリ”で片田舎の高校生が現代冒険者生活を送る少し未来のお話(ダイスケ) - カクヨム
作者名 : 〈author〉(?〈author〉.+?)〈/author〉
となってしまいます。
また、こちらの小説は372話あるのですが309話と認識されてしまい、60話ほど話数の認識ができないようです。
ttps://kakuyomu.jp/works/1177354054883808252
>>627
GitHubに修正版を添付した者です。
ご報告の事象は完全なるバグでした。すいません。
Issuesのところにまた修正版を添付しましたのでご確認下さい。
また、当作品を作成すると、カクヨムのリニューアルとは別件で
エラーが出てしまう可能性があります。
修正版のReadme.txtにその対処を書いておきました。
作者が取れない不具合については私の環境では再現できませんでした。
日本語が通じないの作品は面白そうですね、私も読んでみます。
>>628
627です。
修正ありがとうございます。
話数の方は正常に取得できるようになりました。
「作者名」が取得できない件について、私の環境ですと
・Windows11
・Windows 用 Ruby installer Ruby+Devkit 3.2.2-1 (x64)
のWEB.UIで行っているのですが、以下の操作を行った場合に「作者名」と「あらすじ」が正常に取得できなくなります。
1.
上部メニューの「他」ボタンで最新話掲載日確認後に右の「矢印」ボタンで更新
2.
更新されている話が無い場合に各小説右側の「矢印」ボタンで更新
正常に「作者名」と「あらすじ」が取得できるパターンとしては
3.
上部メニューの「他」ボタンで最新話掲載日確認後に一度narou.rbを終了し、再度narou.rbを起動後に右の「矢印」ボタンで更新
4.
更新されている話が存在している場合に各小説右側の「矢印」ボタンで更新」
となっています。どうして上記の操作で違いが発生するのかはわかりませんが、
とりあえず3の手順で正常に更新できておりますので更新自体は問題なく行えるようになりました。
ありがとうございました。
私の環境でも、カクヨムの作者がとれなくなる不具合が発生します。
これは一例ですが、小説家になろうを一つのキューでアップデートし、
続けて二番目のキューでカクヨムをアップデートしようとすると、ほ
ぼ確実にカクヨムの作者がとれなくなります。
私の環境では、narou.rbを再起動し、その直後にカクヨムを含むアップデート
すると正常に作者名がとれます。
なぜ、そうなるのかはわかりませんが、おかしくなったらnarou.rbを再起動するのが
いいかなと思います。
>>627
web ui環境だと、novelinfo.rbの49行目からのページ再取得処理が走る可能性があります。
この場合、downloader.rbの処理されたページデータが使われません。
すみません。 >>631 は >>628 宛でした。
ちなみに再取得の条件は、NovelInfoで以前取得した小説の情報を10秒以上たってから再度取得する場合です。
Downloaderでの取得は感知されません。toc_sourceが渡されたときのこの動作はバグっぽい気もします。
>>629
>>630
>>631
作者名が取れない件、詳細な情報ありがとうございます。
私もWEB.UIで試したら再現できました。
今までコマンドライン版しか使っていなかったので再現できなかったのかもしれません。
不具合の原因は631さんの指摘通りです。コメントありがとうございます。
何かほかにも気がついたことがったらお知らせ下さい。
今回、私のカクヨム対応はダウンロードしたHTMLを特別加工してから解析処理に渡すようにしました。
しかし、関連する全てのダウンロード処理を修正出来ていませんでした。
操作によって動作が違うのは
目次の取得で使ったHTMLを作品情報のソースとして使い回すか、
リロードすべき時間が経過したとか、そういう諸々を判定して
呼び出すダウンロード処理を変えているためです。
それで修正版ですが、またGitHubに貼り付けました。
よろしければ使ってみて下さい。
ttps://github.com/whiteleaf7/narou/issues/412#issuecomment-1869566480
WEB.UIで正しく動作しました
調査された方々、bbWvdFgIさんありがとうございます!
>>633
627です。
WEB UIでも問題なく更新できるようになりました。
ご対応ありがとうございました。
また、詳細な発生条件を教えてくださった631さんもありがとうございました。
Kindle端末ですが、5.16.4のアップデートでmobiファイルのコピー先が
/documents から /documents/Downloads/Items01 に変更されております。
/lib/device/kindle.rb の12行目
DOCUMENTS_PATH_LIST = %w(documents Documents Books)
を
DOCUMENTS_PATH_LIST = %w(documents/Downloads/Items01 documents Documents Books)
に変更することで問題なくコピー可能なようです。
すみません。
修正版は、どのように適用させたらいいのですか?
637です。
なんとかできました。
ありがとうございました。
-----------------------------------------
Narou.rb のバージョン:
Version 3.8.2+カクヨム対応
OS のバージョン:
エディション Windows 11 Pro
バージョン 22H2
インストール日 2022/12/02
OS ビルド 22621.2861
エクスペリエンス Windows Feature Experience Pack 1000.22681.1000.0
その他環境情報(任意):
何が起きたのか:
変換先にepubを指定するとエラー停止
再現方法(何をやったら起こったのか詳細に):
C:\mynovel>narou co 2
ID:2 ************** の変換を開始
小説状態の調査結果を 調査ログ.txt に出力しました(エラー:0件、警告:0件、INFO:1件)
縦書用の変換が終了しました
AozoraEpub3でEPUBに変換しています...C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/narou-3.8.2/lib/helper.rb:425:in `encode': "\x8B" followed by " " on Windows-31J (Encoding::InvalidByteSequenceError)
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/narou-3.8.2/lib/helper.rb:425:in `exec'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/narou-3.8.2/lib/novelconverter.rb:182:in `txt_to_epub'
エラーが発生したため終了しました。
詳細なエラーログは narou trace で表示出来ます。もしくは --backtrace オプションを付けて再度実行して下さい。
>>639
見た感じWindows-31JのUTF-8への変換異常だからほかの作品で発生しないのなら問題の作品を再取得すれば直るはず…
MS932と呼ばれるシフトJISの独自拡張文字コードであるWindows-31JにはUTF-8に変換できない環境依存文字が有るので…
最悪replace.txt等で定義して変換できる文字に強制置換しないとダメ
作品名が判らないので作品側に問題があるのかこちらで検証できませんし
>>633
適応してみましたが、カクヨムは相変わらず取得できません。
<h1 id="workTitle"><a href=".+?">(?<title>.+?)</a></h1>
更新後の話数が保存されている話数より減少していることを検知しました。
ダイジェスト化されている可能性があるので、更新に関しての処理を選択して下さい。
と出てしまうことから作品情報自体を取れてないようです。
>>640
作品問わず起こっている状態でして、同じ作品でも出力先をePUBじゃなくkoboやi文庫の指定では問題なく動作している状態です。
639ですが一度新しく導入し直したところ、起こらなくなりましたので質問取り下げいたします。
>>641
\webnovel\kakuyomu.jp.yaml が新しいものに置き換わってるか確認してみて下さい。
633は差し替え版を作っています。
>>644
narou_20231226.zipを展開して
lib\downloader.rb
lib\novelconverter.rb
lib\novelinfo.rb
lib\helper.rb
webnovel\kakuyomu.jp.yaml
を差し替えたので差し替え上の問題はないハズ…
Web UI、CLI両方試してもダメだったのでUI問題ではないし
>>645
kakuyomu.jp.yaml の 17〜18行は下記のように変更しています。
【オリジナル版】
title: &title |-
<h1 id="workTitle"><a href=".+?">(?<title>.+?)</a></h1>
【差し替え版】
title: &title |-
<title>(?<title>.+?)</title>
ご報告のエラーメッセージにある
<h1 id="workTitle"><a href=".+?">(?<title>.+?)</a></h1>
は、オリジナルのものです。
それで差し替えに問題があると思ったのですが、差し替えに問題がないとすると、
どこかに残っている古いバージョンのものが動いているのかもしれません。
仮に差し替え版のディレクトリを D:\temp\narou-3.8.2 として
コマンド
ruby "D:\temp\narou-3.8.2\narou.rb" d [カクヨムの作品URL]
みたいな感じで、差し替え版の絶対パスを指定して実行してみるのはいかがでしょうか
あと念のために言いますと、narou_20231226.zip の
originalフォルダにはオリジナル版があり、
差し替え版はmodifiedフォルダにありますのでご注意下さい。
>>645
620さんのコメントですが
> narou initで指定した.narouとかがあるフォルダに
> webnovelフォルダを作ると優先するっぽい?
試したところ、そうでした。
古い kakuyomu.jp.yaml がどこか他にないか確認してみて下さい
改造版aozoraepubのがカクヨムに対応してる
>>639
カクヨム対応を入れたらこちらの環境でも2〜3回発生しました。
update_optionフォルダのhelper.rb だった時に発生したのでどうやらReadmeに書かれているArgumentError以外の問題もあるようです。
>>646-647
再度置き換えたところかろうじて動くようになりました。
ただ最新話掲載日と文字数は部分的に取得できませんでした。
どうやら新しい話が投稿されてないと、あらすじ更新や変換を実行しても、取得失敗時とデータベースの表示が同じになってしまうようです。
>>639
>>640
>>649
narou_20231226.zip に入っている update_option の helper.rb は動く環境が限られるかもしれません。
そこで
ttps://github.com/whiteleaf7/narou/issues/399#issuecomment-1875320540
の方法を適用した修正版をGitHubに貼り付けました。
ttps://github.com/whiteleaf7/narou/issues/412#issuecomment-1875632371
こちらのほうが、より動作しやすいかもしれません。
>>650
> どうやら新しい話が投稿されてないと、あらすじ更新や変換を実行しても、取得失敗時とデータベースの表示が同じになってしまうようです。
一応、私の環境では新しい話が投稿されてなくても更新や変換は問題なく出来ています。
いくつか確認させて下さい
・narou_20231226.zip の差し替え版だけで発生する事象でしょうか オリジナルの narou-3.8.2 では発生しませんか
・「あらすじ更新や変換を実行しても」とありますが、あらすじ更新とは通常の更新とは異なりますか
どのような操作でこれを行なえますか
・取得失敗時の表示とは、具体的にどのような文言でしょうか
・データベースの表示とは何でしょうか database.yaml に書き込まれる内容のことですか
・取得失敗や文字数を取得できない事象がこちらではなかなか再現できません。出来たら、対象作品をお教え頂きたいです。
・その作品の小説データを一旦、削除して再ダウンロードした後で、また更新や変換しても、同じような事象が起こりますか
・「文字数」や「最新話掲載日」が取得できないことで、実用上、何か不都合がありますか
例えば、エラーでファイルが作成できないとか、更新してるエピソードが取得できないとか
なお、「最終更新日」は取得するようにしてますが、
「最新話掲載日」はオリジナルの kakuyomu.jp.yaml で正規表現が null 設定されていたので
何か意図があって null 設定していたのかもしれないし、それに合わせています。
取れないこともあるかもしれません。
色々書きましたが、お時間のあるときに、ゆっくり回答頂ければと思います。
遅ればせながら、>>591 さん、修正案をありがとうございました。
某アニメ化もされた長大な作品で、各話の副題に含まれる四桁の数値が全角に変換されてしまっていたのが、
原文通りに半角になって、目次機能での表示が揃ってすっきりしました。
また、差し替え版の提供者さんもありがとうございます。
今のところ「narou_20231226.zip」を使用していて問題なく動作しています。
可能であれば、上述した >>589 の問題に対する修正案としての >>591 も取り込んでほしいです。
まあ、この程度の修正であれば毎回自分で修正するのでも良いのですが、
些細な問題とはいえ本家でも起こっていることなので、原文に忠実に変換できるよう取り入れて貰えたらな、と思います。
本家の方も、便利なツールを公開して頂き、ありがとうございます。
>>652
数字が全角になるのは多分意図した変換だと思います。
おそまきながら、ちょっと違う感じでkakuyomu対応したので、公開してみます。
ttps://github.com/rogenobl/narou/releases/tag/v0.1
source codeは必要ありません。
ちょっとトリッキーな気もするのでコンセプトモデル止まりかもしれませんが、ご参考まで。
>>654
スマートな直し方ですね、感服しました。
プラグインの仕組みはあるし、flatten の使い方とかもカッコいいし
プログラマーなら皆、私の修正版よりそちらの修正版を推したいはず。
なんてことをコメントしよう、でもコメントする前に、
一応、動作確認やっておこう
と、とりあえず試したところ、エラーで落ちました。
環境は
Windows 10 Home 22H2
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x64-mingw-ucrt]
やったことを書きますと、
1. gem uninstall narou でアンインストール
2. gem install narou で再インストール
3. sitesettinghandler.zip をダウンロードして解凍
lib と webnovel をインストールした narou-3.8.2 にコピーする
4. コマンドプロンプトにて次のコマンドを実行
narou d [作品のURL]
3作品ほど試したところ、すべて以下のエラーメッセージが表示され終了しました。
C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/sitesetting.rb:104:in `block (2 levels) in multi_match': target of repeat operator is not specified: /{"eval"=>"magicword = \"KakuyomuPreprocessEvalMagicWord\"……… (省略)kakuyomu2.jp.yaml に書いたコードが展開されてる …… #source.replace(str)\n end\nend\nnil"}/m (RegexpError)
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/sitesetting.rb:103:in `each'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/narou-3.8.2/lib/sitesetting.rb:103:in `block in multi_match'
エラーが発生したため終了しました。
詳細なエラーログは narou trace で表示出来ます。もしくは --backtrace オプションを付けて再度実行して下さい。
何かやり方を間違えたのでしょうか。
ついでに具申しますと、Rubyのコードはyamlに収めるのではなくファイルを分けても良かったかなと思います。
そうすれば、テキストエディタでキーワードハイライトが機能しますし、rubocopなどもきっと使い易いはずです。
>>655
試して頂きありがとうございます。
ファイルコピーに加えてlib/sitesetting.rbの最後に下記の追加が必要です。
begin require_relative "sitesettinghandler"; rescue LoadError then nil end
元々はjsonpathとか使って最小限の繋ぎにevalとか思ってたんです。
でもjsonのデータ構造が思いのほか面倒くさそうなんで、結局evalですましちゃった感じで、
思いのほかコード部が長くなってしまった感じ。でも条件分岐はなるべく避けるよう頑張りました。
しかし、これ以上複雑になるなら、コードの外だしも考えた方が良いかも知れませんね。
>>656
なるほど、自分で1行追加するなら本家がバージョンアップしても、あのモジュールは同じように適用できそうですね
Java環境が新しいので個人的に一部修正しましたが、お陰様で問題なく動きました。
有難うございました。
大変恐縮ではございますが、結局どのようにすれば良いのか、どなたかご記載下さいませんか?
文系にはちんぷんかんぷんでして…(汗)
よろしくお願いします。
>>658
654さんのカクヨム対応版が良さそうなので、下記はそのインストール方法になります。
偏見ですが、文系ならWindows と仮定して説明します。
必要に応じてファイルのバックアップは取ってください。
1. まずは narou のインストールフォルダを探して下さい。
例:C:\Ruby31-x64\lib\ruby\gems\3.1.0\gems\narou-3.8.2
この中には bin, lib, template, webnovel などのフォルダがあります。
narou-3.8.2 がインストールされている場合は、手順5に進みます。
2. Windowsスタートメニューを開き「cmd」と入力し、コマンドプロンプトを起動します。
3. gem uninstall narou と入力して narou をアンインストールします。1のフォルダが削除されます。
4. gem install narou を入力して再インストールします。1のフォルダが復活します。
5. ブラウザで下記(頭に h を追記)のURLを開きます。
ttps://github.com/rogenobl/narou/releases/tag/v0.1
6. sitesettinghandler.zip をダウンロードして解凍します。
7. 解凍したフォルダ内にある lib と webnovel をフォルダごと narou-3.8.2 のインストールフォルダにコピーします。
8. narou-3.8.2フォルダのlibフォルダにある sitesetting.rb をテキストエディタで開きます。テキストエディタがない場合はメモ帳を使って下さい。
9. 8で開いた sitesetting.rb の最後の行に次1文を追加し保存します。
begin require_relative "sitesettinghandler"; rescue LoadError then nil end
とりあえず以上です。
実行中「AozoraEpub3でEPUBに変換しています」とメッセージの後、エラーで異常終了する場合は、下記を試して下さい。
10. narou-3.8.2フォルダのlibフォルダにある novelconverter.rb の168行目を下記のように修正し保存します。
修正前 novelconverter.rb 168行目
java_encoding = "-Dfile.encoding=UTF-8"
修正後
java_encoding = "-Dfile.encoding=UTF-8" +
" -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8" +
" -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8"
新着のアップデート中にPCがフリーズしてしまい以下のようなエラーが出てしまいます
修正方法を教えていただけないでしょうか
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/psych-4.0.1/lib/psych.rb:455:in `parse':
(C:/MyNovel/.narou/lock.yaml): control characters are not allowed at line 1 colu
mn 1 (Psych::SyntaxError)
from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/psych-4.0.1/lib/psych.rb:455:in `p
arse_stream'
from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/psych-4.0.1/lib/psych.rb:399:in `p
arse'
エラーが発生したため終了しました。
詳細なエラーログは narou trace で表示出来ます。もしくは --backtrace オプション
を付けて再度実行して下さい。
>>660 Rubyが古いね バージョンアップして入れなおした方が早いと思う
>>660 あと lock.yaml 壊れてるぽいから削除
>>662
削除してみたけど変換を開始のあと>>660 のエラーが出るんです
659さん 658です。詳しい解説ホントにありがとうございました。
時間が出来たら試してみます!感謝感謝です!
658です。
文系なのでwin11なのです(笑)。
探してみましたが、D:\narou\Ruby32-x64\lib\ruby\gems\3.2.0\gemsとなり、
narou-3.8.2フォルダが見つかりません(汗)。
うーん。。。
>>665
C:\Users\(PCのユーザー名が入ります)\.local\share\gem\ruby\3.2.0\gems
にないでしょうか
よくわからない場合
スタートメニューを開き「cmd」と入力し、コマンドプロンプトを起動します
↓
コマンドプロンプトに「gem list narou -d」と入れentrerで実行すると以下のものが出ると思います
*** LOCAL GEMS ***
narou (3.8.2)
Author: whiteleaf7
Homepage: ttp://whiteleaf.hatenablog.com/
License: MIT
Installed at: c:\user\~等
Narou.rb ― 小説家になろうダウンローダ&縦書用整形スクリプト
Installed at:の場所(c:\user\~等と入れてある部分)内のgemsにnarouがあります
*** LOCAL GEMS ***以降何も書かれていないならインストールされていません
>>663
まだ出るならrubyのバージョンアップがうまく出来てないです。
バージョンアップできたらRuby27の部分がRuby32とかになるはずなんで。
一度消してから再インストールした方がいいんじゃないでしょうか。
>>667
rubyのバージョンアップのやり方がわからないのでlock.yamを削除しただけです
別PCにも同じのを入れているのでそちらから必要ファイルを持ってきて直せたりしないでしょうか?
そういえばlock.yamlだけじゃなくてlock.yaml.backupも消さなきゃダメでした。
>>669
両方消してみたけど出てくるエラー内容は同じですね
659さん、ありがとうございました。658です。
無事に発見できました(汗)。
低レベルなのがつらい…。時間が出来たときにやってみます!
丁寧なご解説ありがとうございました。m(__)m
>>670
やっぱり更新必要かもしれませんね。古いんでwindows updateに対応出来てないかもしれません。
rubyをアンインストールして、rubyとnarourbをインストールしてみてください。
>>671
659です。666で返信して下さったのは別の方です。
>>666
補足、的確な回答ありがとうざいました。
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板