traxsource: fixture HTML + bs4 dep + script refresh generi
This commit is contained in:
1 parent
191c245fc1
commit
7feda99720
4 files changed
+9249
No files matched your search
@@ -10,6 +10,7 @@ pyobjc-framework-AVFoundation>=10.0 ; sys_platform == "darwin"
|
|||||||
pythonnet==3.0.5 ; sys_platform == "win32"
|
pythonnet==3.0.5 ; sys_platform == "win32"
|
||||||
clr-loader==0.2.7.post0 ; sys_platform == "win32"
|
clr-loader==0.2.7.post0 ; sys_platform == "win32"
|
||||||
curl_cffi>=0.9.0
|
curl_cffi>=0.9.0
|
||||||
|
beautifulsoup4>=4.12.0
|
||||||
|
|
||||||
# --- dev only ---
|
# --- dev only ---
|
||||||
pytest>=8.0.0
|
pytest>=8.0.0
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
"""Estrae la lista dei generi Traxsource dalla pagina /top.
|
||||||
|
Uso: python3 scripts/refresh_traxsource_genres.py > /tmp/tx_genres.txt
|
||||||
|
Poi copia manualmente in core/traxsource.py::GENRES."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from curl_cffi import requests
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> int:
|
||||||
|
s = requests.Session(impersonate="chrome131")
|
||||||
|
s.get("https://www.traxsource.com/", timeout=15)
|
||||||
|
r = s.get("https://www.traxsource.com/top", timeout=15,
|
||||||
|
headers={"Referer": "https://www.traxsource.com/"})
|
||||||
|
if r.status_code != 200:
|
||||||
|
print(f"HTTP {r.status_code}", file=sys.stderr)
|
||||||
|
return 1
|
||||||
|
# href="/genre/<id>/<slug>"
|
||||||
|
hits = re.findall(r'href="/genre/(\d+)/([a-z0-9-]+)"', r.text)
|
||||||
|
seen = set()
|
||||||
|
for gid, slug in hits:
|
||||||
|
if slug in seen:
|
||||||
|
continue
|
||||||
|
seen.add(slug)
|
||||||
|
# Display name = slug con capitalizzazione euristica (l'utente lo raffina a mano)
|
||||||
|
name = " ".join(w.capitalize() for w in slug.replace("-", " ").split())
|
||||||
|
print(f' "{slug}": ({gid}, "{name}"),')
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
||||||
+2882
File diff suppressed because it is too large.
Load diff
+6332
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user