➖ Remove conan and bs4
This commit is contained in:
parent
f234acbeb4
commit
636a09bed4
@ -4,7 +4,7 @@ RUN apt-get update && \
|
|||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
vim p7zip* git mc rename wget curl procps psmisc \
|
vim p7zip* git mc rename wget curl procps psmisc \
|
||||||
openssh-client transmission-cli speedtest-cli rclone \
|
openssh-client transmission-cli speedtest-cli rclone \
|
||||||
python3-bs4 python3-requests python3-transmissionrpc && \
|
python3-requests python3-transmissionrpc && \
|
||||||
apt-get install -y --no-install-recommends mame-tools yt-dlp && \
|
apt-get install -y --no-install-recommends mame-tools yt-dlp && \
|
||||||
rm -rf /var/lib/apt/lists/* && \
|
rm -rf /var/lib/apt/lists/* && \
|
||||||
curl -sSL https://raw.githubusercontent.com/MatanZ/tremc/main/tremc -o /usr/local/bin/tremc && \
|
curl -sSL https://raw.githubusercontent.com/MatanZ/tremc/main/tremc -o /usr/local/bin/tremc && \
|
||||||
|
@ -1,139 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import csv
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import bs4
|
|
||||||
import requests
|
|
||||||
|
|
||||||
|
|
||||||
WIKI_URL = (
|
|
||||||
"https://fr.wikipedia.org/wiki/Liste_des_%C3%A9pisodes_de_D%C3%A9tective_Conan"
|
|
||||||
)
|
|
||||||
GOOD_COLOR = ["#ee8000", "#90bdff"]
|
|
||||||
CSV_COLUMNS = ["SW", "EW", "Arc", "ST", "ET", "Type", "Titre", "Date"]
|
|
||||||
|
|
||||||
EPS_BY_SEASONS = [
|
|
||||||
28,
|
|
||||||
26,
|
|
||||||
28,
|
|
||||||
24,
|
|
||||||
28,
|
|
||||||
28,
|
|
||||||
31,
|
|
||||||
26,
|
|
||||||
35,
|
|
||||||
31,
|
|
||||||
30,
|
|
||||||
38,
|
|
||||||
36,
|
|
||||||
37,
|
|
||||||
39,
|
|
||||||
25,
|
|
||||||
33,
|
|
||||||
42,
|
|
||||||
40,
|
|
||||||
40,
|
|
||||||
35,
|
|
||||||
43,
|
|
||||||
39,
|
|
||||||
41,
|
|
||||||
83,
|
|
||||||
40,
|
|
||||||
38,
|
|
||||||
28,
|
|
||||||
40,
|
|
||||||
35,
|
|
||||||
99,
|
|
||||||
]
|
|
||||||
|
|
||||||
ARCS = {
|
|
||||||
1: "Conan",
|
|
||||||
129: "Haibara",
|
|
||||||
179: "Vermouth",
|
|
||||||
345: "Phone",
|
|
||||||
425: "Kir",
|
|
||||||
505: "Bourbon",
|
|
||||||
705: "Train",
|
|
||||||
783: "Rum",
|
|
||||||
1029: "Police",
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def extract_background(style):
|
|
||||||
for declaration in style.split(";"):
|
|
||||||
if declaration:
|
|
||||||
prop, value = declaration.split(":")
|
|
||||||
if prop.strip() == "background":
|
|
||||||
return value.strip().lower()
|
|
||||||
|
|
||||||
|
|
||||||
def thetvdb_season(episode):
|
|
||||||
season = 0
|
|
||||||
index = 0
|
|
||||||
|
|
||||||
for numb in EPS_BY_SEASONS:
|
|
||||||
index += numb
|
|
||||||
season += 1
|
|
||||||
|
|
||||||
if episode <= index:
|
|
||||||
return season
|
|
||||||
|
|
||||||
|
|
||||||
def thetvdb_episode(episode):
|
|
||||||
season = thetvdb_season(episode)
|
|
||||||
numb = 0
|
|
||||||
|
|
||||||
for index in range(0, season - 1):
|
|
||||||
numb += EPS_BY_SEASONS[index]
|
|
||||||
|
|
||||||
return -(numb - episode)
|
|
||||||
|
|
||||||
|
|
||||||
def current_arc(episode):
|
|
||||||
for numb in sorted(ARCS, reverse=True):
|
|
||||||
if episode >= numb:
|
|
||||||
return ARCS[numb]
|
|
||||||
|
|
||||||
|
|
||||||
html = requests.get(WIKI_URL)
|
|
||||||
soup = bs4.BeautifulSoup(html.text, "html.parser")
|
|
||||||
tables = soup.select("table.wikitable")
|
|
||||||
|
|
||||||
out = csv.DictWriter(sys.stdout, CSV_COLUMNS)
|
|
||||||
out.writeheader()
|
|
||||||
sys.stdout.flush()
|
|
||||||
|
|
||||||
for season, table in enumerate(tables):
|
|
||||||
if not season:
|
|
||||||
continue
|
|
||||||
|
|
||||||
trs = table.select("tr")
|
|
||||||
|
|
||||||
for row, tr in enumerate(trs):
|
|
||||||
if row < 1:
|
|
||||||
continue
|
|
||||||
|
|
||||||
tds = tr.select("td")
|
|
||||||
if len(tds) < 4:
|
|
||||||
continue
|
|
||||||
|
|
||||||
try:
|
|
||||||
episode = int(tds[0].text.split(" ")[0].split("/")[0])
|
|
||||||
except ValueError:
|
|
||||||
continue
|
|
||||||
|
|
||||||
color = extract_background(tr["style"])
|
|
||||||
|
|
||||||
out.writerow(
|
|
||||||
{
|
|
||||||
"SW": season,
|
|
||||||
"EW": episode,
|
|
||||||
"Arc": current_arc(episode),
|
|
||||||
"ST": thetvdb_season(episode),
|
|
||||||
"ET": thetvdb_episode(episode),
|
|
||||||
"Type": "C" if not color or color in GOOD_COLOR else "F",
|
|
||||||
"Titre": tds[1].text.strip(),
|
|
||||||
"Date": tds[4].text.strip(),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
sys.stdout.flush()
|
|
59
poetry.lock
generated
59
poetry.lock
generated
@ -1,26 +1,5 @@
|
|||||||
# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
|
# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "beautifulsoup4"
|
|
||||||
version = "4.12.3"
|
|
||||||
description = "Screen-scraping library"
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.6.0"
|
|
||||||
files = [
|
|
||||||
{file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"},
|
|
||||||
{file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
soupsieve = ">1.2"
|
|
||||||
|
|
||||||
[package.extras]
|
|
||||||
cchardet = ["cchardet"]
|
|
||||||
chardet = ["chardet"]
|
|
||||||
charset-normalizer = ["charset-normalizer"]
|
|
||||||
html5lib = ["html5lib"]
|
|
||||||
lxml = ["lxml"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "black"
|
name = "black"
|
||||||
version = "24.2.0"
|
version = "24.2.0"
|
||||||
@ -429,17 +408,6 @@ urllib3 = ">=1.21.1,<3"
|
|||||||
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
|
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
|
||||||
use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
|
use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "soupsieve"
|
|
||||||
version = "2.5"
|
|
||||||
description = "A modern CSS selector implementation for Beautiful Soup."
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8"
|
|
||||||
files = [
|
|
||||||
{file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"},
|
|
||||||
{file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "stdlib-list"
|
name = "stdlib-list"
|
||||||
version = "0.8.0"
|
version = "0.8.0"
|
||||||
@ -480,31 +448,6 @@ files = [
|
|||||||
requests = ">=2.23.0,<3.0.0"
|
requests = ">=2.23.0,<3.0.0"
|
||||||
typing-extensions = "*"
|
typing-extensions = "*"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "types-beautifulsoup4"
|
|
||||||
version = "4.12.0.20240106"
|
|
||||||
description = "Typing stubs for beautifulsoup4"
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8"
|
|
||||||
files = [
|
|
||||||
{file = "types-beautifulsoup4-4.12.0.20240106.tar.gz", hash = "sha256:98d628985b71b140bd3bc22a8cb0ab603c2f2d08f20d37925965eb4a21739be8"},
|
|
||||||
{file = "types_beautifulsoup4-4.12.0.20240106-py3-none-any.whl", hash = "sha256:cbdd60ab8aeac737ac014431b6e921b43e84279c0405fdd25a6900bb0e71da5b"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
types-html5lib = "*"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "types-html5lib"
|
|
||||||
version = "1.1.11.20240222"
|
|
||||||
description = "Typing stubs for html5lib"
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8"
|
|
||||||
files = [
|
|
||||||
{file = "types-html5lib-1.1.11.20240222.tar.gz", hash = "sha256:d9517ec6ba2fa1f63113e2930a59b60722a976cc983b94d7fd772f14865e1152"},
|
|
||||||
{file = "types_html5lib-1.1.11.20240222-py3-none-any.whl", hash = "sha256:86b2dcbbebca846e68d2eac46b2717980e632de4b5d8f62ccd23d8333d2e7647"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "types-requests"
|
name = "types-requests"
|
||||||
version = "2.31.0.20240218"
|
version = "2.31.0.20240218"
|
||||||
@ -550,4 +493,4 @@ zstd = ["zstandard (>=0.18.0)"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.8.1"
|
python-versions = "^3.8.1"
|
||||||
content-hash = "8c608a41953a90b136c1ca4464fd019999403424ee90c43c69309137a64bc2e4"
|
content-hash = "739c87123ed492ffc0355a3356e823fbb74d3b6ea8a9c21254e959fccd064c05"
|
||||||
|
@ -6,7 +6,6 @@ authors = ["Michel Roux <xefir@crystalyx.net>"]
|
|||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.8.1"
|
python = "^3.8.1"
|
||||||
beautifulsoup4 = "^4.12.3"
|
|
||||||
requests = "^2.31.0"
|
requests = "^2.31.0"
|
||||||
transmission-rpc = "^7.0.3"
|
transmission-rpc = "^7.0.3"
|
||||||
|
|
||||||
@ -17,7 +16,6 @@ flake8-alphabetize = "^0.0.21"
|
|||||||
flake8-black = "^0.3.6"
|
flake8-black = "^0.3.6"
|
||||||
flake8-pyproject = "^1.2.3"
|
flake8-pyproject = "^1.2.3"
|
||||||
mypy = "^1.8.0"
|
mypy = "^1.8.0"
|
||||||
types-beautifulsoup4 = "^4.12.0"
|
|
||||||
types-requests = "^2.31.0"
|
types-requests = "^2.31.0"
|
||||||
|
|
||||||
[tool.flake8]
|
[tool.flake8]
|
||||||
|
Loading…
Reference in New Issue
Block a user