🦁
機械翻訳サイトの除外リストを基に、Safariのスタイルシートを生成するスクリプト
概要
下記で公開されているStack Overflowの機械翻訳サイトの除外用フィルタを基にして、PyhonでSafariの除外用のCSSファイルを生成します。
できること
生成されたCSSファイルは、Safariの設定でスタイルシートをアタッチすることで反映されます。
反映後問題無ければ以下のようにdisplay: none
が反映されます。
検索本文をまるごと消したかったのですが、本文は指定のaタグの親要素->別の子要素にある為、CSSファイルだけでは実現できませんでした。
親要素にCSSを反映できる:has()を使えばできるかもしれないですが、どのブラウザにも実装されていない為、実質不可と思われます。
内容
まずは上記のOSSをフォークし、スクリプトを追加しました。
Pythonは3.9.1を使用していますが、f文字列を使用している為、3.6以上なら実行可能かと思われます。
下記にフォークしたリンクを貼っておきます。
#!/usr/bin/env python3
import tempfile
import os
import re
def convert():
with open('./uBlacklist.txt') as f:
current_dir = os.getcwd()
with tempfile.NamedTemporaryFile("w+", dir=current_dir, delete=False, suffix='.css') as tmpf:
for url in f.read().splitlines():
# ext: *://code-examples.net/* -> code-examples.net
matched_url = re.search('((?<=\*:\/\/\*\.)\w.+|(?<=\*:\/\/)\w.+)', url).group()[:-2]
style = f'a[href*="{matched_url}"]{{display:none;}}'
tmpf.write(style)
os.rename(tmpf.name, os.path.join(current_dir, 'uBlacklist.css'))
if __name__ == '__main__':
convert()
以上のスクリプトを実行すると、カレントディレクトリにuBlacklist.css
が生成されます。
GitHub Actionsのscheduled eventsで新たにリストが反映されたら実行というフローもいいかもしれません。
以上です、ありがとうございました!
Discussion