%3Ca%20href%3D%22..%2Fsrc%2F1686460838618.png%22%20onclick%3D%22return%20expandFile%28event%2C%20%27106%27%29%3B%22%3E%3Cimg%20src%3D%22..%2Fsrc%2F1686460838618.png%22%20width%3D%22502%22%20style%3D%22max-width%3A%2085vw%3Bheight%3A%20auto%3B%22%3E%3C%2Fa%3E
①JSONC記述で動作を変更出来ます。まだ実装途中ですのでシステム側の初期値が入っています。
なおこの機能によりスクリプトそのものを直接色々変更出来ますが、
今後色々と変更になる可能性があることはご了承下さい。
tag_extractionsを設定し、タイトルからのタグ抽出を制御出来ます。
フォーマットは、Arrayで、[0]が正規表現、[1]がタグ文字列(省略時は一致文字列($&相当))です。
基本的には、【全話一挙】から#全話一挙タグを生成する時などに使います。
dic_tags(タグ辞書)を設定し、タグを抽出後にタグ文字列を変更出来ます。
フォーマットは、Arrayで、[0]が対象タグ、[1]が置換内容(空文字なら削除、配列の場合は複数化)になります。
abema側で付いているタグ等を取捨選択するときに使います。
dic_btagsを設定し、板タグを変更出来ます。(なお、板タグ自体を付けない設定も出来ます)
フォーマットは、dic_tagsと同じですが、
既にタグになっているabema公式板名(ただし「ABEMA」と「チャンネル」は省略済み)に対して変換する為、
指定は、Arrayで、[0]がabema公式板タグ名、[1]が自分が付けたいタグ名になります。
多分'(シングルクオート)等のHTML特殊文字('"<>&)も通るはずですが、未テストです。
site2.abema.parse_funcs.title_replacementsでタイトルの置換を制御し、マージ対象を変更出来ます。
同一タイトルの場合は同一番組グループとしてマージされます。
マージが甘い場合には削る設定を追加して下さい。
フォーマットは、Arrayで、[0]が正規表現、[1]がフラグ、[2]が置換文字列(省略時は''となり削除指定)です。
JavaScriptで言うと、String.replace(/[0]/[1],[2])に該当します。
基本的には、abema側で付けている【全話一挙】等、タイトル以外の部分を削除する方法の指定となります。
dic_tags_titleを設定し、上記title_replacementsで置換後のタイトルに対して、付加するタグを指定出来ます。
例えば、{"ロッキー":["#1976年","#米"]}で、ロッキー(という番組タイトルの全番組)に#1976年と#米のタグが付きます。
ただこれはそのままだと地味にlocalStorageの容量(上限5MB)を食うので、
(wikiからスクレイプした1/4しかヒットしないデータで50k文字=100KBなので、完備すると400KB以上になるのが予想される)
プログラム側で#を付加し、使用容量を抑えられるようにしています。
この場合、set_dic_tags_titleに対しての設定とし、{"ロッキー":["1976年","米"]}と#無しで指定して下さい。
(これだけで上記wikiデータの場合で7.3%程削減出来ます)
#1976年だと使いづらい場合は、自前で#1970年代と纏めるか、上記dic_tagsを使って、
{"#1976年":"#70年代"}と変換して使って下さい。
なお
https://ja.wikipedia.org/wiki/映画作品一覧 からは以下コードでデータ生成出来ます。
var dic = {}; Array.prototype.forEach.call(document.querySelector('.mw-parser-output').querySelectorAll('li'),v=>v.textContent.split('\n').forEach(v=>{var t = v.match(/\s*[((][^))]*[))]\s*$/); if (t) dic[v.slice(0,-t[0].length)]=t[0].split(/[\s(())、・]+/).filter(v=>v);}));console.log(JSON.stringify(dic));
②変更した場合はApplyを押して反映して下さい。
最低限の文法チェックが行われます。駄目な場合はエラーが表示されます。
JSONは文法に厳しく、最後の余分な , (コンマ)はエラーになります。
特に//で最後の行を丸々コメントアウトした際に、その前の行の最後の , を消し忘れることが多いのでご注意下さい。
(なお文法チェックのみで、プロパティ名等が間違ってても通ってしまいます)
上記、abema公式板名を確認するには、
③に{"site2":{"abema":{"dic_btags":{"__proto__":""}}}}と入力し(デフォで入っています)
④を押して下さい。⑤にJSON形式で表示されます。