return top;

Yahoo! TV Plugin

Yahoo! Japan TV の番組表からページを読み取って表示を行う Regnessem 用プラグインです。Screen Shot

Regnessem用
0.5.1から各設定ファイル名や場所等が変更されています。
Ver 0.5.18 YhTvProg_0_5-18.zip Download

偽メッセ用
Ver 0.4.0 YhTvProg_nise_0_4.zip 偽メッセ版 Download

更新履歴

使い方

0.5.1以降が対象です

インストール
ファイルを解凍後、Plugins フォルダに YhTvProg.dll を放り込みます。
ログインするアカウント名はファイル名等に使用されるのでわかり易いものが良いでしょう
パスワードは適当に。
ログインします。

初めて使用する場合はメンバリストに何も表示されないので、
SimpleUIメニューの [機能] 欄にある [チャンネル設定] で表示するチャンネルを選択して下さい。
右上のコンボボックスを指定すると、その地域に登録されている放送局が表示されるので、登録しておきたいものを選択状態にして [<<] を押してください。
CSボタンを押すとYahooTVに登録されているCSチャンネルが表示され登録できるようになります。

仕様
このプラグインはhttp://tv.yahoo.co.jp/から24時間版のTV番組表のHTMLを取得し、中身のデータだけ抜き出してローカルに保存、表示します。
ログインした時にその日の分のデータキャッシュが無い・古い場合は yahoo に取得しに行きます。
都合上、最低でも当日分と次の日の分をキャッシュします。
古いデータキャッシュは、オプションを指定すると自動で削除されるようになります
AM 5:00を過ぎると当日分と次の日分を取得しなおします。

番組を右クリックして"通知予約"しておくと、番組が始まった時間に通知ウィンドウを出します。(イベント種類は指定した物:下記参照)
このプラグインの時計は最大15秒ぐらい遅れています。
通知予約された番組のステータスはアイドルとなります。
通知予約したかどうかのデータは、オプションで指定しておかないとタブを閉じた時に消えます。

リストはグループを放送局(チャンネル)となるようにしています。
現在放送中の番組から表示しています。

[機能]メニュー

チャンネル設定
初めてログインすると表示する局が指定されていない為、チャンネル設定にて指定します。
右上のコンボボックスで地域を選択すると右ツリーに放送局が表示されます。
右側のツリーをクリックすると指定出来る放送局が展開されます。
選択された状態で [<<] ボタンを押すと左側の表示リストへ追加されます。
CSのチャンネルを追加したい場合は右上の CS ボタンを押すと新たに CS ツリーが追加されます。
上記と同じ要領でリストへ追加して下さい。
注)CS チャンネルはYahoo!TVにて扱っている物のみとなります。

アカウントオプション [0.5.12以降]
タブ毎にオプションを設定できます。

キーワード編集 
キーワードを指定する事で、番組表読み込み時にキーワードがヒットした番組を自動で通知予約しておく機能です。
メニューを選択するとキーワードをリスト表示するダイアログが出ます。
放送局を指定、またはジャンルを指定すると、それぞれの条件に対してand検索の働きをします。
キーワードは必ず入力しなければいけませんが、□タイトル □説明文 いずれにもチェックを入れないとキーワードでの検索はされません。
キーワード及び放送局名は、指定文字列が項目に"含まれる"場合にヒットします。(完全一致では無い)
キーワード及びその条件はアカウント毎に \YhTvProg\[アカウント名].kwd へ保存されます。

週間番組表
yahooで取得出来る数日先分の番組表データを取得・参照するダイアログを表示します。
選択するとダイアログが表示される前にデータをチェックし、ローカルになければYahooに取得しに行きます。
取得し終わるとダイアログが表示されます。
日付を選択すると下のリストビューにその日の番組一覧を表示します。
フィルタはジャンルか放送局で絞込みが出来ます。
検索は、番組タイトルとサブタイトルから検索され、複数日検索のチェックを付けないと、選択した日からのみの検索となります。
過去に検索した文字列はデフォルトで30まで保存されます。
前回検索したデータはフィルタで呼び出せます。
リストで番組を選択して右クリックするとiEPG予約のメニューが出ます。
リストの項目をダブルクリックすると、その番組の詳細ページに飛べるかもしれません。
日付コンボボックス右のHTMLボタンを押すと、コンボで選択されてる日の番組表HTMLを作成して呼び出します。
リストのヘッダーは左から[局][日付][時間][GCODE][番組][サブタイトル]で、日付とGCODEは隠れてますので必要なら手動で。
[局][日付][時間]はヘッダーコントロールをクリックする事でソート出来ます。局はチャンネル設定してある順です。

今日の番組表
チャンネル設定で指定した放送局(メンバリストに表示中)でYahoo!TVに似たTV番組表のHTMLファイルを作成して表示します。
一度作成すると、同日のHTMLファイルについてはブラウザで表示するだけ(作り直さない)為
チャンネル設定で表示局を変更した場合には、その日に作成されたhtmlファイルを削除しないと変更内容が反映されません。
作成されたhtmlファイルはYhTvProg.cssとYhTvProg.jsファイルを読み込みます。
cssはデフォルトでyahooに似せてありますが、まあお好みで。
YhTvProg.jsはブラウザ表示時に、当日のhtmlファイルを開いた時のみ、その時間の位置までスクロールするスクリプトが入ってます。
邪魔な場合は関数の{ }中身を空にすると移動しなくなります。(ファイルを消すとロード時に関数が無いぞとエラーが出るので)


グループ右メニュー

番組の時間を調節
スポーツなどが延長した場合に、手動で時間を書き換える事が出来るダイアログを表示します。
コンボボックスで番組を選択し終了時刻を調節すると、その日のその番組以降の開始・終了時刻がその分ずれます。
この変更はファイルに反映していない為、ログアウトすると元に戻ってしまいます。
この変更を行ってもhtmlファイルの作成には影響を与えません。
通知やiEPG予約を使う時にずれが気になる人用。

名称の編集
放送局の表示名を任意に変更出来るダイアログを表示します。
リミットは255文字まで。ログアウト時、チャンネル設定ダイアログを開いた時などに現在の内容を保存します。

放送局 Site
放送局のwebサイトを表示する為ブラウザを起動します。

IEPG局名編集
既存放送局名ではIEPG予約時に認識されない場合、ここで認識される局名に変更出来ます。
全タブ共通で YhTvProg\iepgrpl.txt に保存されます。

メンバー右メニュー

番組詳細
Yahoo!TV内の、その番組の詳細ページを表示する為にブラウザを起動します。

通知予約
選択するとその番組がアイドル状態になり、始まる時間が来ると通知ウィンドウを表示してお知らせします。
何分か前に通知させたい場合には、プラグインのオプションダイアログ内で指定できます。
通知ウィンドウのアイコン(サウンド等)を変更したい場合には下記のオプションNotifyIconの項を参考にiniファイルを編集して下さい。

iEPG予約
選択すると、その番組の内容を書式化したファイルを作成し、実行します。
拡張子 .tvpi に関連付けされたアプリケーションがあれば起動すると思います。
(拡張子は iniファイルで指定すると変更出来ます。)

Google
選択するとタイトルをエンコードした文字列を元にgoogleの検索urlと合わせてブラウザを起動します。
全角の「」で囲まれた文字列がタイトル中に含まれる場合(映画など)には「」内の文字列を元にします。

時間フィルター

自分のステータス変更がトグルスイッチになっており、放送時間が指定以内の番組を非表示にする事が出来ます。
オンライン以外のステータスに変更しようとするとフィルターが掛かり、名前の後ろに @ マークが付きます。
オンラインに変更すると @ マークが消えフィルターも解除されます。
実際のステータスは変更されません。
フィルター条件となる放送時間はiniファイルで直接してします。初期値は6分で、アカウント毎に指定出来ます。

オプション

Plugins\YhTvProg\YhTvProg.ini

[Option]
■ListUpLines=5
現在放送中の番組から、何番組分をリストに表示するか。TV局毎の値です。未指定の場合は 5
ListUpLines=1 とすると、現在放送中の番組だけリストアップされることになります。
この設定はアカウントセクション内で設定すると全体の設定を上書き出来ます。

■TabName=
タブに表示する名前。63文字まで設定出来、後ろにアカウント名が入ります。指定無しだと Y!TV

■GCode=0
タイトルの横にGコードを表示するかどうか。1 で表示。未指定の場合は 0(非表示)

■PreTimeNotify=0
番組が始まる何分前に通知するか。

■TimeView=1
ステータスに時計を表示する=1 しない=0
しない設定にすると常にオンライン表示になります。

■NotifyIcon=2
通知ウィンドウのnIcon の種類を指定。未指定だと情報

■NotifyTTL=30
通知ウィンドウの表示時間(秒) 未指定だと30

■MaxSearchWord=30
週間番組表の検索ワードの保存数を指定します。

■iEPG=0
0以外を指定すると、番組名右クリック時にiEPG予約を追加します。

■IepgExt=tvpi
iEPG予約する時に起動するソフトに関連付けされている拡張子を指定します。'.'は省いて指定して下さい。

■iEPG_MARKDEL=1
iEPG予約メニューから番組タイトルを予約ソフトに登録する時に、[S]や[二]などの記号の処理を選択します。
iEPG_MARKDEL=0  そのまま出力
iEPG_MARKDEL=1  番組タイトル先頭に半角空白を含む記号がある場合に、半角空白までの文字列を省略します。
iEPG_MARKDEL=2  番組タイトルに含まれる[N][S]などの記号文字と半角空白をすべて取り除きます。 記号のみのタイトルの場合、iEPG_MARKDEL=1を指定した時と同じ処理が行われます。

■OverDay=1
iEPG予約をする時、番組開始時刻が24時以降の場合に日付と時刻を調節して24時以内にする(26時とかにしない)。
バグが出る録画ソフトの場合に指定します。(feather2004とか) 0.5.1からデフォルトで 1

■BrowserPath=
使用する特定のhtmlブラウザへのパスを指定します。

■TimePole=3
htmlファイル作成時に、時間軸を何局毎に挿入するか(3だと、3局毎に1軸挿入されます)

■SaveResvNotify=0
1を指定すると通知予約したアイテムをログアウトしても保持します。
予約する毎にファイルへ書き込むので気になる人は0を。不意に良く落ちる人用

■Filter=6
指定した時間以内の放送時間の番組をフィルタ出来るよう設定します。
この設定はアカウントセクション内で設定すると全体の設定を上書き出来ます。

■ForceHtml=0
1を指定すると、ログイン直後にhtmlを表示します。

■DelKakoLog=0
1を指定するとログイン時にログインしたエリアの昨日以前の過去データを削除します。

■HintLineByte=40
メンバリストのポップアップで表示される番組内容の横折り返しbyte数。

■SearchURL=http://www.google.co.jp/search?hl=ja&q=%s
検索URL用置換文字列。googleから任意の検索サイトに変更する場合は%sを検索文字列とするURLへ置き換えてください。

■SearchCode=0
検索文字列はデフォルトでUTF8エンコードされているのでyahoo等(euc)ではこの値を1にする必要があります。

■UseOriginNotify=0
通知する時のメッセージを独自に指定したもの(NotifyMessage=)に変更する場合は 1 を指定します。

■NotifyMessage=
通知メッセージを独自に編集した文字列を指定します。以下のテーブルにそって通知時に変換されます。
指定タグ置換文字列
<STIME>番組開始時刻
<ETIME>番組終了時刻
<TITLE>番組タイトル
<ITLE>[S]等記号削除後の番組タイトル
<SUBTITLE>番組説明
<D_CHANNAME>初期放送局名
<E_CHANNAME>独自放送局名
<GCODE>Gコード
<GENRE>ジャンル{"","スポーツ","グルメ","ドラマ","アニメ","音楽","映画"}
例:
NotifyMessage=<STIME>-<ETIME>><E_CHANNAME>\n<ITLE>\n<SUBTITLE>\nが始まりますよ〜

と指定すると
通知ウィンドウサンプルのように変換されます。
改行を使いすぎるとスキンによっては文字が切れる事があるので注意が必要です。
ちなみに、今までの通知メッセージを表すと

NotifyMessage=<TITLE> の時間になりました


return top ? site : page;