Re: Webラジオの保存方法の質問はこちら【27】 ( No.3 ) |
- 日時: 2020/09/10 23:55
- 名前: No Name
- 需要無視で・・・
私が以前アップロードした音泉向けのスクリプト(.hta)について https://bbs.webradio.hinekure.net/read.cgi?mode=view2&f=439&no=143
改造せずにデフォルトのまま利用した場合、 出力されたバッチファイルが正常に動作しないケースがあったので暫定措置。
2020.09.10に配信された番組で現象を確認。 原因は「萊」という文字。 ※この掲示板だとエスケープされてしまいますが「らい」という漢字です。
この文字に対して、バッチファイル(Shift_JIS)に吐き出す際の 文字コードの変換が出来ていないのがスクリプト上の問題。
この文字に限った話ではないのと、 何の文字コードで何のファイルに出力するかは 個々の環境に依存するため、対応するかどうか迷ったが、 やはりバッチにするケースが多いだろうと、 また、バッチをShift_JISで動作させることも多いだろうということで、 暫定措置を入れた。
================== ・配布(アップロード)先は下記です。
外部のアップローダーを利用しています。 ※そのうち消える類です。その際、私からは基本的に再アップロードはしません。
https://dotup.org/uploda/dotup.org2251869.zip.html パスワード:onsen
修正内容(暫定措置): JISに変換できない文字がある場合は「?」に置換する。
|
Re: Webラジオの保存方法の質問はこちら【27】 ( No.4 ) |
- 日時: 2020/09/23 12:34
- 名前: No Name
- >>3 私がアップロードした音泉向けのツール(.hta)について
※音泉のAPI(web_api/programs)を使用している場合は、後述のデータや仕様には留意を。
なお、当ツールについての情報は、 再アップロードをしない配布方法にしているということもあるので、 今回の投稿をもって最後とします。
================== 音泉で2020/9/22に配信された「東京ドールズRADIO」(前・後編)が、 私のツールで「過去配信も表示する?」でデフォルトの「しない」のままだと、 表示できない問題を確認しています(2020/09/22終日時点で確認)。
当方では修正版はアップしないので、原因と対策案だけ記載しておきます。
原因は音泉のデータ(JSON)が想定外の入り方になっていることです。 それが起因して、ツール側で該当番組を弾いてしまっていることで発生しています。
================== データ・処理前提)
・番組の配信情報は最新(配信)順の降順でソートされた状態で入ってきている。 ※音泉/web_api/programs => 配列(各番組のルート情報) => contents(配列、番組の配信情報)
・当ツール側で、配信情報が最新かどうかは、contents内の「latest」フラグで判断。
・当ツール側で、contentsのループ処理をする際に、 過去配信を処理対象としない場合、カレントのlatestフラグが経っていなければ、 以降の同番組のcontents内のデータ(配信情報)を対象外にしている。
================== 原因)
・今回のcontentsの中身は「第24回 後編」「第24回 前編」の順で入っている。 ※入り方自体は想定通り。
・しかし、なぜか先頭データの「後編」の方に「latest」フラグが立っていない。 (最新の配信扱いされていない。実際、音泉の番組ページ上の表示も、 後編の方は「NEW」マークがついていない)
・当ツール側で、その一番最新であるハズの後編が 最新扱いされていないのだから、以降のcontentsの中身も 最新ではないと判断し、そこで(過去配信を対象外としている場合は) 処理を抜けているため、(以降のデータとして存在している、) latestフラグが立っている「前編」の方も処理対象外となってしまっている。
================== 当ツールの運用上の回避案)
・「過去配信も表示する?」で「する」を選択して表示する。 ※最新判定をしなくなるので、受け取ったデータは全部表示対象になる。
================== 当ツールの対策・修正案)
・convertStructure関数内で最新判定等をしてbreakしている箇所を、 continueに変更。これで過去配信を表示しないとしても、 「前編」の方は最新のものとして表示されるようになる。 ※全件走査に変更となるため、処理効率は落ちる。
・★既知の問題として、この対策をしても 「過去配信も表示する?」を「しない」のままだと、 引き続き「後編」の方は表示されない。 ※後編に「latest」フラグが立っていないため。 後編も表示したい場合は、結局、過去配信も表示「する」で動作させる必要がある。
・後編の対処もする場合、妥当なのは配信日の日付データで処理をすることだが、 公式データ(programs.json)上、日付は「月・日」の情報しか持っていないため、 データ仕様上は正確な処理ができない。
※これらのことからも、今回の当ツール上の現象は、音泉側のデータ不正 (後編にlatestフラグを立てていない不具合ないし設定不備等)の可能性が それなりに高いと見ても良いじゃないのかなぁということで、 イレギュラーケースとして当方では修正版はアップしないこととした。
|