読者です 読者をやめる 読者になる 読者になる

Itsukaraの日記

最新IT技術を勉強・実践中。最近はDeep Learningに注力。

DIGA番組名一括変更支援ツールの機能を全面的に見直し

DIGA番組名一括変更 スクレイピング

概要

自分で実際に使っていて、色々と気になるところがあったので、機能を全面的に見直しました。これで、結構使えるようになったと思います。よろしくお願いいたします。主な修正は下記です。

  • DIGAの全番組一覧のダンプを一回で取得できるようにした。
    • 全番組でなく、表示画面以降、何番番目の画面まで等の指定も可能。
    • これにより、各画面ごとにダンプしたファイルのマージ作業が不要。
  • ツール間でデータを引き継げるようにした。(localStorage機能を利用)
    • 番組名書換え支援ツール(rename-tinfo.html, js)以降で引き継ぎ可能。
      • 残念ながら、番組情報ダンプツールは、うまく繋がりませんでした。
    • 書換え規則も、コピー/ペースト無しで、前回入力が引き継がれる。
  • 番組名書換え支援ツールは、書換えで変化しなかった情報のみ出力。
    • これにより、実際に書き換えが必要な内容のみが出力される。
      • 元々あってしかるべき機能とは思いますが...
  • DIGAで実際に番組名を書き換えるツールは、進捗表示などのGUIを強化。
    • 途中中止、DIGAの待ち時間変更なども、GUIからできるようにした。
    • ちなみに、ダンプツールもdigaGetTitlesStop()で中止できます。
    • 途中で止める手段がなく、デバッグが大変だったため追加。

自分で使う分には、これで機能的に十分なので、しばらくそのままの予定です。

GitHub - Itsukara/diga-rename: DIGAの録画番組名を纏めて変更する作業を支援するファイル群

詳細(HISTORYファイル抜粋)

【2016/03/02】機能を全面的に見直し (Historyとしては初版)

■diga-dump.jsを大幅見直し
・番組一覧の表示を、javascriptから制御するようにした。
・これにより、番組一覧の画面切り替え等の手作業が不要となる。
・ダンプの所得方法は下記(diga-dump.jsより抜粋)。
  1.ChromeでDIGAにログイン。
  2.画面左側の番組編集ボタンを押して、番組名一覧を表示。
  3.画面下の「No.選択:」セレクタで、ダンプを開始したい画面を表示。
  (これを行わない場合は、先頭番組以降の全ての情報をダンプ)
  4.F12キーを押してChromeの「Developer Tools」を表示。
  5.diga-dump.jsの内容をコピーして、コンソールにペーストする。
  ・ペーストしたJavascriptのコードが、表示されている画面以降の
   全ての番組情報を自動的に表示・抽出し、ファイル「tinfo.txt」に保管。
・途中で中止したい場合は、コンソールに下記を打ち込む。
 digaGetTitlesStop()
・途中で中止したのち、下記のように下記コマンドで再実行可能。
 ・digaGetTitlesStart()  :表示画面以降の番組情報ををダンプ
 ・digaGetTitlesStart(s)  :s画面目以降の番組情報ををダンプ
 ・digaGetTitlesStart(s, e):s画面目~(e-1)画面目の番組情報ををダンプ
 ※s画面目とは、「No.選択:」セレクの何番目かとうこと(0から始まる)
・タイトル行は、後続ツールで邪魔なので、出力しないこととした。

■rename-tinfo.html, jsを見直し
・書換え規則や番組情報をlocalStorageで引き継げるようにした。
 ・前回入力した書換え規則が引き継がれる。
 ・書換え後の番組情報がdiga-rename.html,jsに引き継がれる。
・規則を適用した後に、再度ソートする処理を追加。
・書換えの結果、変更がないものは出力を抑止。
・「説明を表示」ボタンを追加。
 (詳細な説明は、ボタンで表示してご覧ください)

■diga-rename.html,jsを見直し
・書換え規則や番組情報をlocalStorageで引き継げるようにした。
・1つの番組を書き換える度に行う、DIGAの待ち時間を、GUIから設定可能とした。
 この値を書き換えると、残り時間が更新されるようになってます。
・進捗が分かるよう、書換えの全件数、処理中番号、残り時間の表示を追加。
・番組情報を左のフレームに縮小して表示。
・いざとなったら途中で中止できるように、「中止」ボタンを追加。
・使い方を左のフレーム表示。