Compare commits
2 Commits
bf81c037a9
...
0710af0f82
| Author | SHA1 | Date | |
|---|---|---|---|
| 0710af0f82 | |||
| b5b3da1105 |
@@ -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+",
|
||||||
|
|||||||
@@ -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+",
|
||||||
|
|||||||
@@ -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+",
|
||||||
|
|||||||
@@ -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+",
|
||||||
|
|||||||
@@ -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+",
|
||||||
|
|||||||
@@ -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+",
|
||||||
|
|||||||
@@ -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+",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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+",
|
||||||
|
|||||||
@@ -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}")
|
||||||
|
|||||||
Reference in New Issue
Block a user