rogenobl

Results 5 issues of rogenobl

https://github.com/whiteleaf7/narou/issues/399#issuecomment-1875320540

小説家になろう目次ページの分割への対応 修正しました。 ~~念のため無限ループ対策として最大100ページまでに制限してます。~~ プログレスバーの付加にあわせて全ページ数を取得するようにしました。 ~~そこまで必要かわかりませんでしたが、念のため、`toc_url`は毎回ループ前の値に復帰しています。~~ 別メソッド分離にあわせて、メソッド終了時に復帰するようにしました。

方法的には良いとは言えないですが、サイト設定のファイルにrubyのコードが書けるように拡張し、それによってカクヨム対応のコードを埋め込み対応しています。 方法としては従来、正規表現であった所に、ハッシュで他の機能を設定できるようにしました。 現在はevalのみ実装。必要であれば機能を追加できます。 - 従来 ```yaml title: 正規表現 ``` - 拡張後 ```yaml title: eval: Rubyコード ``` 本当は掲示板でもありましたが、サイト固有の処理が外出し出来ると良いので、将来的にはそっちで出来ればと思います。

いくつかまとめてプルリクします。 ### fix: /api/diff_clean pass Integer and NoMethodError (ruby Feature #15231 : Remove `Object#=~`) /api/diff_clean で`CommandLine.run!`に`Integer`が渡されているが、ruby3.2より`Object#=~`が削除されたため`Integer#=~`がNoMethodErrorとなる いったんto_sでStringにして処理する ### fix: undefined method `empty?' for nil:NilClass レアケースだが、小説の保存フォルダが消えている場合、`get_sorted_cache_list`がnilを返すためNoMethodErrorとなる empty?ではなくactivesupportのblank?を使う ### fix: Downloader#get_cache_list return...

Ruby3.2以降、入出力で`IO::TimeoutError`が発生する可能性がある。 `OpenURI::HTTPError`他、エラー処理している3ヶ所について、`IO::TimeoutError`も加えた。 なお、3.1以前では未定義になるので`ダミーのIO::TimeoutError`を定義している。