kaikoma-soft / CMcut4U-Mk2

Unix 系 OS 上で TSファイルの半自動CMカット (CMcut4U の改良版)
Apache License 2.0
21 stars 1 forks source link

`sprintf` メソッドで `nil` 値が渡され、`TypeError` が発生する #4

Open spesnova717 opened 1 week ago

spesnova717 commented 1 week ago

Issue: sprintf メソッドで nil 値が渡され、TypeError が発生する

概要

chapEnc メソッド内で sprintf("%.3f", c.w) を使用している際に、c.wnil となっているケースがあり、その結果 TypeError: can't convert nil into Float エラーが発生します。特に、あるチャプターの幅(c.w が秒数を表す)が 0秒 である場合に、この問題が発生します。

詳細

解決策

c.wnil または 0秒 の場合にデフォルト値 0.0 を設定することで、このエラーを回避します。これにより、sprintf メソッドが nil を受け取ることがなくなり、エラーが発生しなくなります。

修正後のコードは以下の通りです。

ss = sprintf("%.3f", c.t)
w  = sprintf("%.3f", c.w || 0.0)  # c.w が nil または 0秒の場合は 0.0 に設定

この修正により、c.w が nil または 0秒 の場合でも sprintf が適切に処理されるようになります。

環境

OS: Ubuntu 20.04.1 CPU: core i5-7600 GPU: Nvidia GTX1080Ti Docker環境で動かしています。

特に問題ないようでしたら、上記修正をpull request出してもよいでしょうか?

kaikoma-soft commented 1 week ago

レポートありがとうございます。 軽微な修正なので、こちらで修正して Ver1.0.7 としました。 ただ、チャプターの幅が nil になるのが根本原因だと思うのですが、こちらではその様なデータに当たった事が無いので、申し訳ありませんが、そこには手を付けていません。

spesnova717 commented 2 days ago

返信が遅くなり申し訳ございません。 修正ありがとうございます。 引き続きどうぞよろしくお願いいたします。