mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-04-14 15:40:19 +00:00
Fix PSL source path for Flatpak build
This commit is contained in:
@@ -3,7 +3,10 @@ import sys
|
|||||||
import urllib.request
|
import urllib.request
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
URL = "https://raw.githubusercontent.com/publicsuffix/list/main/public_suffix_list.dat"
|
URLS = (
|
||||||
|
"https://raw.githubusercontent.com/publicsuffix/list/main/public_suffix_list.dat",
|
||||||
|
"https://publicsuffix.org/list/public_suffix_list.dat",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def parse_rules(text: str):
|
def parse_rules(text: str):
|
||||||
@@ -32,19 +35,36 @@ def emit_header(path: str, rules):
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
if len(sys.argv) != 2:
|
if len(sys.argv) not in (2, 3):
|
||||||
raise SystemExit("usage: gen-public-suffix.py <output>")
|
raise SystemExit("usage: gen-public-suffix.py <output> [source]")
|
||||||
output = Path(sys.argv[1])
|
output = Path(sys.argv[1])
|
||||||
fallback = Path(__file__).with_name("public_suffix_data.h")
|
sources = []
|
||||||
try:
|
if len(sys.argv) == 3:
|
||||||
with urllib.request.urlopen(URL, timeout=30) as resp:
|
sources.append(Path(sys.argv[2]))
|
||||||
data = resp.read().decode("utf-8")
|
sources.extend(
|
||||||
rules = parse_rules(data)
|
[
|
||||||
emit_header(str(output), rules)
|
Path(__file__).with_name("public_suffix_list.dat"),
|
||||||
except Exception:
|
Path("/usr/share/publicsuffix/public_suffix_list.dat"),
|
||||||
if not fallback.exists():
|
Path("/app/share/publicsuffix/public_suffix_list.dat"),
|
||||||
raise
|
]
|
||||||
output.write_bytes(fallback.read_bytes())
|
)
|
||||||
|
data = None
|
||||||
|
for url in URLS:
|
||||||
|
try:
|
||||||
|
with urllib.request.urlopen(url, timeout=30) as resp:
|
||||||
|
data = resp.read().decode("utf-8")
|
||||||
|
break
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
if data is None:
|
||||||
|
for source in sources:
|
||||||
|
if source.exists():
|
||||||
|
data = source.read_text(encoding="utf-8")
|
||||||
|
break
|
||||||
|
if data is None:
|
||||||
|
raise SystemExit("unable to load public suffix list")
|
||||||
|
rules = parse_rules(data)
|
||||||
|
emit_header(str(output), rules)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -100,8 +100,9 @@ make_te = find_program('make-te.py')
|
|||||||
python3 = find_program('python3', required: true)
|
python3 = find_program('python3', required: true)
|
||||||
|
|
||||||
public_suffix_data = custom_target('public_suffix_data_h',
|
public_suffix_data = custom_target('public_suffix_data_h',
|
||||||
|
input: 'public_suffix_list.dat',
|
||||||
output: 'public_suffix_data.h',
|
output: 'public_suffix_data.h',
|
||||||
command: [python3, files('gen-public-suffix.py'), '@OUTPUT@']
|
command: [python3, files('gen-public-suffix.py'), '@OUTPUT@', '@INPUT@']
|
||||||
)
|
)
|
||||||
|
|
||||||
textevents = custom_target('textevents',
|
textevents = custom_target('textevents',
|
||||||
|
|||||||
Reference in New Issue
Block a user