<commit_before># 自動キーワード予約 for ひかりTV


ひかりTVのホームページ上でキーワード予約を自動実行するスクリプトです。本スクリプトはGreasemonkeyがインストールされたFirefox上で動作します。


インストールするには、事前にGreasemonkeyをインストールした上で、Firefoxで下記のリンクをクリックしてください。


[>>>ダウンロードしてインストール<<<](https://rtrdprgrmr.github.io/akrhikari/AutoReservation.user.js)


インストールの確認メッセージが出ます。使用条件（MITライセンスです）に同意する場合、インストールを進めてください。


インストール後、キーワードの登録画面へ行くには、Greasemonkeyを有効にして下記のページにアクセスします。


https://www.hikaritv.net/member/remote/reserve/regist


リモート予約の設定を事前に済ませ、ポップアップブロックを解除しておく必要があります。
ポップアップブロックを解除するには、Firefoxのオプション→コンテンツ→許可サイトに、`www.hikaritv.net`を追加してください。


インストールが成功していれば、ページの中程にキーワード自動予約の画面が挿入されます。なお、このページが自動キーワード予約の入り口になっているので、ブックマークしておくと便利です。


まずはじめに、キーワード欄にキーワードを入力して追加ボタンを押します。複数のキーワードが登録できます。オプションとして、チャンネルとジャンルの特定、除外ワードの指定ができます。入力したキーワード等はブラウザ内のデータベースに保存され、再起動後も保持されます。


下にある自動予約ボタンを押すと、自動予約操作が開始します。自動的に画面が遷移している間はブラウザを操作せずに放置してください。自動操作が完了すると、元の画面に戻ってきます。


キーワード単独での自動予約を開始するには、そのキーワードの右にある予約ボタンを押してください。


予約の結果を確認するには、リモート予約履歴をメニューから開きます。不要な予約がある場合には、この画面からキャンセルします。また、不要な予約が次回も行われないように、キーワード等の設定を調整しておくとよいでしょう。


誤って大量の予約が登録されてしまった場合には、リモート予約履歴画面の下の方にある「すべてキャンセル」を押せば、キャンセル可能な予約がすべて自動的にキャンセルされます。（これは本スクリプトによって挿入されたボタンで、オリジナルにはありません）


キーワード登録画面で「予約を自動でリピートする」にチェックしておけば、１時間おきに自動予約操作を開始します。（ブラウザを開きっぱなしにしておく必要があります）


キーワードを削除するには、編集ボタンを押し、キーワード欄を空欄にして保存ボタンを押します。自動予約スクリプトを完全に削除するには、Greasemonkeyの管理画面からスクリプトを削除します。


## 機能詳細


キーワード予約の自動実行の流れは下記の通りです。

1.    予約履歴を順に読み込みます。（重複予約を防止するためです）
2.    放送終了済みの予約をすべて削除します。（予約枠を確保するためです）
3.    指定されたキーワードで番組検索を行います。
4.    検索結果を順に読み込み、条件にマッチした未予約番組を予約します。
5.    指定されたキーワードについて3.と4.を繰り返します。

過去の予約履歴（予約に成功した番組タイトル）は60日間記憶しており、これと重複するタイトルの予約は行いません。


番組ジャンルを指定すると、検索結果の番組ジャンル欄に表示される文字列に対する部分一致でマッチした番組だけを予約対象とします（指定例：アニメ）。


チャンネルを指定すると、検索結果のチャンネル欄に表示される文字列に対する部分一致でマッチした番組だけを予約対象とします（指定例：750）。また、チャンネル名でも指定可能です（指定例：GAORA）。


チャンネルを指定しない場合、プレミアムチャンネルの番組は予約しません。プレミアムチャンネルを自動予約する場合は、明示的にチャンネルを指定してください。


除外ワードを指定すると、 検索結果の番組名欄に表示される文字列に対する部分一致でマッチした番組を予約対象としません（指定例：字）。


番組ジャンル、チャンネル、除外ワードにはjavascriptの正規表現が使用可能です。（指定例：シーズン[1-4]）。なお、キーワードには正規表現は使えないことに注意してください。


予約範囲として、現時点からの予約日数を指定できます。予約数が多くて予約枠上限に達してしまう場合、この日数を短めに設定するとよいでしょう。


別ブラウザに移行したり、スクリプトを削除して再インストールすると、ブラウザ内のデータベースに記録している過去履歴が消えてしまうため、過去に録画したタイトルが重複して予約される場合があります。


STB側で予約を登録した場合は、スクリプト側で把握できないため、重複予約となる場合があります。STB側で予約を取り消した場合も、スクリプト側で把握できないため、予約がされない場合があります。


## 予約がうまくいかない時のチェックリスト


    Greasemonkeyは有効になっているか？
    自動キーワード予約のスクリプトはインストールされているか？
    ポップアップブロックは解除されているか？
    予約範囲の日数は適切か？
    プレミアムチャネルの番組はチャンネル番号を指定しているか？


## 予約がうまくできない場合の解析方法


CTRL-SHIFT-Jを押して、ブラウザコンソールを開き、自動キーワード予約を実行します。
すると、ブラウザコンソールにログが出力され、その番組が予約されない理由が表示されています。


    reserved:同じタイトルですでに予約が成功している
    reserving:同じタイトルで予約中（予約履歴で反映待ちの状態）
    reserving(in another name):同時刻、同チャンネルで別のタイトルが予約済み
    conflict:予約が重なった（予約履歴で時間帯重複の状態)
    except:除外ワードにマッチした
    not genre:番組ジャンルがマッチしない
    not channel:チャンネルがマッチしない
    not found:番組が見つからない
    not recordable:番組が録画可能ではない


## 注意事項等


Greasemonkeyは便利なツールですが、そのぶんリスクもあります。機能を十分に理解した上で使用してください。


自己責任での使用が原則ですが、お気づきの点があればhttps://github.com/rtrdprgrmr/akrhikari/issuesにレポートしてください。可能な範囲で対応します。
なお、動作不良に関するお問合わせの場合、上記ブラウザコンソールの内容を添付していただくとより詳細な解析ができます。


本スクリプトは、ひかりTVをサービスする株式会社NTTぷららとは全く無関係に開発されたものです。本スクリプトの機能について、ひかりTVのカスタマーセンター等に問い合わせないようお願いいたします。


<commit_msg>correct a link markdown<commit_after># 自動キーワード予約 for ひかりTV


ひかりTVのホームページ上でキーワード予約を自動実行するスクリプトです。本スクリプトはGreasemonkeyがインストールされたFirefox上で動作します。


インストールするには、事前にGreasemonkeyをインストールした上で、Firefoxで下記のリンクをクリックしてください。


[>>>ダウンロードしてインストール<<<](https://rtrdprgrmr.github.io/akrhikari/AutoReservation.user.js)


インストールの確認メッセージが出ます。使用条件（MITライセンスです）に同意する場合、インストールを進めてください。


インストール後、キーワードの登録画面へ行くには、Greasemonkeyを有効にして下記のページにアクセスします。


https://www.hikaritv.net/member/remote/reserve/regist


リモート予約の設定を事前に済ませ、ポップアップブロックを解除しておく必要があります。
ポップアップブロックを解除するには、Firefoxのオプション→コンテンツ→許可サイトに、`www.hikaritv.net`を追加してください。


インストールが成功していれば、ページの中程にキーワード自動予約の画面が挿入されます。なお、このページが自動キーワード予約の入り口になっているので、ブックマークしておくと便利です。


まずはじめに、キーワード欄にキーワードを入力して追加ボタンを押します。複数のキーワードが登録できます。オプションとして、チャンネルとジャンルの特定、除外ワードの指定ができます。入力したキーワード等はブラウザ内のデータベースに保存され、再起動後も保持されます。


下にある自動予約ボタンを押すと、自動予約操作が開始します。自動的に画面が遷移している間はブラウザを操作せずに放置してください。自動操作が完了すると、元の画面に戻ってきます。


キーワード単独での自動予約を開始するには、そのキーワードの右にある予約ボタンを押してください。


予約の結果を確認するには、リモート予約履歴をメニューから開きます。不要な予約がある場合には、この画面からキャンセルします。また、不要な予約が次回も行われないように、キーワード等の設定を調整しておくとよいでしょう。


誤って大量の予約が登録されてしまった場合には、リモート予約履歴画面の下の方にある「すべてキャンセル」を押せば、キャンセル可能な予約がすべて自動的にキャンセルされます。（これは本スクリプトによって挿入されたボタンで、オリジナルにはありません）


キーワード登録画面で「予約を自動でリピートする」にチェックしておけば、１時間おきに自動予約操作を開始します。（ブラウザを開きっぱなしにしておく必要があります）


キーワードを削除するには、編集ボタンを押し、キーワード欄を空欄にして保存ボタンを押します。自動予約スクリプトを完全に削除するには、Greasemonkeyの管理画面からスクリプトを削除します。


## 機能詳細


キーワード予約の自動実行の流れは下記の通りです。

1.    予約履歴を順に読み込みます。（重複予約を防止するためです）
2.    放送終了済みの予約をすべて削除します。（予約枠を確保するためです）
3.    指定されたキーワードで番組検索を行います。
4.    検索結果を順に読み込み、条件にマッチした未予約番組を予約します。
5.    指定されたキーワードについて3.と4.を繰り返します。

過去の予約履歴（予約に成功した番組タイトル）は60日間記憶しており、これと重複するタイトルの予約は行いません。


番組ジャンルを指定すると、検索結果の番組ジャンル欄に表示される文字列に対する部分一致でマッチした番組だけを予約対象とします（指定例：アニメ）。


チャンネルを指定すると、検索結果のチャンネル欄に表示される文字列に対する部分一致でマッチした番組だけを予約対象とします（指定例：750）。また、チャンネル名でも指定可能です（指定例：GAORA）。


チャンネルを指定しない場合、プレミアムチャンネルの番組は予約しません。プレミアムチャンネルを自動予約する場合は、明示的にチャンネルを指定してください。


除外ワードを指定すると、 検索結果の番組名欄に表示される文字列に対する部分一致でマッチした番組を予約対象としません（指定例：字）。


番組ジャンル、チャンネル、除外ワードにはjavascriptの正規表現が使用可能です。（指定例：シーズン[1-4]）。なお、キーワードには正規表現は使えないことに注意してください。


予約範囲として、現時点からの予約日数を指定できます。予約数が多くて予約枠上限に達してしまう場合、この日数を短めに設定するとよいでしょう。


別ブラウザに移行したり、スクリプトを削除して再インストールすると、ブラウザ内のデータベースに記録している過去履歴が消えてしまうため、過去に録画したタイトルが重複して予約される場合があります。


STB側で予約を登録した場合は、スクリプト側で把握できないため、重複予約となる場合があります。STB側で予約を取り消した場合も、スクリプト側で把握できないため、予約がされない場合があります。


## 予約がうまくいかない時のチェックリスト


    Greasemonkeyは有効になっているか？
    自動キーワード予約のスクリプトはインストールされているか？
    ポップアップブロックは解除されているか？
    予約範囲の日数は適切か？
    プレミアムチャネルの番組はチャンネル番号を指定しているか？


## 予約がうまくできない場合の解析方法


CTRL-SHIFT-Jを押して、ブラウザコンソールを開き、自動キーワード予約を実行します。
すると、ブラウザコンソールにログが出力され、その番組が予約されない理由が表示されています。


    reserved:同じタイトルですでに予約が成功している
    reserving:同じタイトルで予約中（予約履歴で反映待ちの状態）
    reserving(in another name):同時刻、同チャンネルで別のタイトルが予約済み
    conflict:予約が重なった（予約履歴で時間帯重複の状態)
    except:除外ワードにマッチした
    not genre:番組ジャンルがマッチしない
    not channel:チャンネルがマッチしない
    not found:番組が見つからない
    not recordable:番組が録画可能ではない


## 注意事項等


Greasemonkeyは便利なツールですが、そのぶんリスクもあります。機能を十分に理解した上で使用してください。


自己責任での使用が原則ですが、お気づきの点があれば <https://github.com/rtrdprgrmr/akrhikari/issues> にレポートしてください。可能な範囲で対応します。
なお、動作不良に関するお問合わせの場合、上記ブラウザコンソールの内容を添付していただくとより詳細な解析ができます。


本スクリプトは、ひかりTVをサービスする株式会社NTTぷららとは全く無関係に開発されたものです。本スクリプトの機能について、ひかりTVのカスタマーセンター等に問い合わせないようお願いいたします。



{'fraction_non_alphanumeric': 0.07180439492417208, 'fraction_numerical': 0.004642525533890436, 'mean_word_length': 11.672549019607843, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 6, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7159220', 'n_tokens_mistral': 5976, 'n_tokens_neox': 5718, 'n_words': 147}