Compare commits

..

2 Commits

11 changed files with 27 additions and 22 deletions

View File

@@ -33,7 +33,7 @@ sys.stdout.flush()
# 1) MySQL CONNECTION # 1) MySQL CONNECTION
# ============================================================ # ============================================================
db = pymysql.connect( db = pymysql.connect(
host="192.168.1.50", host="192.168.1.76",
port=3306, port=3306,
user="root", user="root",
password="Vlado9674+", password="Vlado9674+",

View File

@@ -28,7 +28,7 @@ COOKIE_FILE = Path("sktorrent_cookies.json")
# Database settings # Database settings
DB_CONFIG = { DB_CONFIG = {
"host": "192.168.1.50", "host": "192.168.1.76",
"port": 3306, "port": 3306,
"user": "root", "user": "root",
"password": "Vlado9674+", "password": "Vlado9674+",

View File

@@ -15,7 +15,7 @@ from selenium.webdriver.chrome.options import Options
# KONFIGURACE # KONFIGURACE
# ============================================================ # ============================================================
DB_CONFIG = { DB_CONFIG = {
"host": "192.168.1.50", "host": "192.168.1.76",
"port": 3306, "port": 3306,
"user": "root", "user": "root",
"password": "Vlado9674+", "password": "Vlado9674+",

View File

@@ -13,7 +13,7 @@ from selenium.webdriver.chrome.options import Options
# KONFIGURACE # KONFIGURACE
# ============================================================ # ============================================================
DB_CONFIG = { DB_CONFIG = {
"host": "192.168.1.50", "host": "192.168.1.76",
"port": 3306, "port": 3306,
"user": "root", "user": "root",
"password": "Vlado9674+", "password": "Vlado9674+",

View File

@@ -11,7 +11,7 @@ from pathlib import Path
PHYSICAL_DIR = Path(r"\\tower1\#Colddata\Porno") PHYSICAL_DIR = Path(r"\\tower1\#Colddata\Porno")
DB_CONFIG = { DB_CONFIG = {
"host": "192.168.1.50", "host": "192.168.1.76",
"port": 3306, "port": 3306,
"user": "root", "user": "root",
"password": "Vlado9674+", "password": "Vlado9674+",

View File

@@ -37,7 +37,7 @@ sys.stdout.flush()
# ============================================================ # ============================================================
db = pymysql.connect( db = pymysql.connect(
host="192.168.1.50", host="192.168.1.76",
port=3306, port=3306,
user="root", user="root",
password="Vlado9674+", password="Vlado9674+",

View File

@@ -11,7 +11,7 @@ QBT_USER = "vladob"
QBT_PASS = "jCni3U6d#y4bfcm" QBT_PASS = "jCni3U6d#y4bfcm"
DB_CONFIG = { DB_CONFIG = {
"host": "192.168.1.50", "host": "192.168.1.76",
"port": 3306, "port": 3306,
"user": "root", "user": "root",
"password": "Vlado9674+", "password": "Vlado9674+",

View File

@@ -9,7 +9,7 @@ import bencodepy
# =============================== # ===============================
DB_CONFIG = dict( DB_CONFIG = dict(
host="192.168.1.50", host="192.168.1.76",
user="root", user="root",
password="Vlado9674+", password="Vlado9674+",
database="torrents", database="torrents",

View File

@@ -14,7 +14,7 @@ ULTRACC_ROOT = r"\\tower\torrents\ultracc"
DRY_MODE = False DRY_MODE = False
DB_CONFIG = dict( DB_CONFIG = dict(
host="192.168.1.50", host="192.168.1.76",
user="root", user="root",
password="Vlado9674+", password="Vlado9674+",
database="torrents", database="torrents",

View File

@@ -11,7 +11,7 @@ QBT_USER = "vladob"
QBT_PASS = "jCni3U6d#y4bfcm" QBT_PASS = "jCni3U6d#y4bfcm"
DB_CONFIG = { DB_CONFIG = {
"host": "192.168.1.50", "host": "192.168.1.76",
"port": 3306, "port": 3306,
"user": "root", "user": "root",
"password": "Vlado9674+", "password": "Vlado9674+",

View File

@@ -6,17 +6,19 @@ from datetime import datetime, timedelta
# CONFIG # CONFIG
# ============================================================ # ============================================================
DRY_RUN = True # ← změň na False až si ověříš výstup DRY_RUN = False # ← změň na False až si ověříš výstup
DEAD_AFTER_HOURS = 72 # torrent musí být v qB alespoň tolik hodin DEAD_AFTER_HOURS = 72 # torrent musí být v qB alespoň tolik hodin
DEAD_PROGRESS_THRESHOLD = 95.0 # pokud je progress < tato % po uplynutí doby → dead DEAD_PROGRESS_THRESHOLD = 95.0 # pokud je progress < tato % po uplynutí doby → dead
STUCK_AFTER_HOURS = 168 # 7 dní — pro torrenty téměř hotové (>= 95%) ale zaseknuté
QBT_URL = "https://vladob.zen.usbx.me/qbittorrent" QBT_URL = "https://vladob.zen.usbx.me/qbittorrent"
QBT_USER = "vladob" QBT_USER = "vladob"
QBT_PASS = "jCni3U6d#y4bfcm" QBT_PASS = "jCni3U6d#y4bfcm"
DB_CONFIG = { DB_CONFIG = {
"host": "192.168.1.50", "host": "192.168.1.76",
"port": 3306, "port": 3306,
"user": "root", "user": "root",
"password": "Vlado9674+", "password": "Vlado9674+",
@@ -53,7 +55,8 @@ def main():
print("=" * 60) print("=" * 60)
print("MRTVÉ TORRENTY — UltraCC Seedbox cleanup") print("MRTVÉ TORRENTY — UltraCC Seedbox cleanup")
print(f"DRY_RUN = {DRY_RUN}") print(f"DRY_RUN = {DRY_RUN}")
print(f"Kritéria : v qB déle než {DEAD_AFTER_HOURS}h A progress < {DEAD_PROGRESS_THRESHOLD}%") print(f"Kritérium A: progress < {DEAD_PROGRESS_THRESHOLD}% A v qB déle než {DEAD_AFTER_HOURS}h")
print(f"Kritérium B: progress >= {DEAD_PROGRESS_THRESHOLD}% ale < 100% A v qB déle než {STUCK_AFTER_HOURS}h (zaseknutý)")
print("=" * 60) print("=" * 60)
qbt = connect_qbt() qbt = connect_qbt()
@@ -63,7 +66,8 @@ def main():
torrents = qbt.torrents_info() torrents = qbt.torrents_info()
now = datetime.now() now = datetime.now()
deadline = now - timedelta(hours=DEAD_AFTER_HOURS) deadline_a = now - timedelta(hours=DEAD_AFTER_HOURS)
deadline_b = now - timedelta(hours=STUCK_AFTER_HOURS)
dead_count = 0 dead_count = 0
skip_count = 0 skip_count = 0
@@ -83,22 +87,23 @@ def main():
added_dt = datetime.fromtimestamp(added_on) added_dt = datetime.fromtimestamp(added_on)
progress_pct = float(t.progress) * 100.0 progress_pct = float(t.progress) * 100.0
age_hours = (now - added_dt).total_seconds() / 3600
# Torrent ještě není dost starý # ── Kritérium A: nízký progress po 72h ────────────────
if added_dt > deadline: is_dead_a = (added_dt <= deadline_a) and (progress_pct < DEAD_PROGRESS_THRESHOLD)
skip_count += 1
continue
# Progress je OK (téměř hotov) → přeskočit # ── Kritérium B: zaseknutý blízko 100% po 7 dnech ─────
if progress_pct >= DEAD_PROGRESS_THRESHOLD: is_dead_b = (added_dt <= deadline_b) and (progress_pct >= DEAD_PROGRESS_THRESHOLD) and (progress_pct < 100.0)
if not is_dead_a and not is_dead_b:
skip_count += 1 skip_count += 1
continue continue
# ── Torrent splňuje kritéria "mrtvý" ────────────────── # ── Torrent splňuje kritéria "mrtvý" ──────────────────
thash = t.hash.lower() thash = t.hash.lower()
age_hours = (now - added_dt).total_seconds() / 3600 reason = "nízký progress po 72h" if is_dead_a else "zaseknutý blízko 100% po 7 dnech"
print(f"\n💀 MRTVÝ: {t.name}") print(f"\n💀 MRTVÝ ({reason}): {t.name}")
print(f" Přidán : {added_dt} ({age_hours:.1f}h zpět)") print(f" Přidán : {added_dt} ({age_hours:.1f}h zpět)")
print(f" Progress : {progress_pct:.1f}%") print(f" Progress : {progress_pct:.1f}%")
print(f" Stav : {t.state}") print(f" Stav : {t.state}")