From 0c06e012d309ba1f62c72fd3c205d92b41afcdb4 Mon Sep 17 00:00:00 2001 From: Tontze Date: Wed, 17 Jun 2026 07:45:13 +0300 Subject: [PATCH] =?UTF-8?q?hakujen=20v=C3=A4lisen=20ajan=20s=C3=A4=C3=A4t?= =?UTF-8?q?=C3=B6=20lis=C3=A4tty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/torrent_vahti.cpython-311.pyc | Bin 9330 -> 9349 bytes app.py | 10 +++++++--- hakulista.json | 3 ++- templates/index.html | 20 ++++++++++++++------ torrent_vahti.py | 6 ++---- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/__pycache__/torrent_vahti.cpython-311.pyc b/__pycache__/torrent_vahti.cpython-311.pyc index 28c5bbc8fd3665d6461636cfba2e4b0b92b4db81..d6a9893a0a21510fb6806ee77a87aad18c8ca893 100644 GIT binary patch delta 1194 zcmZWpU2NM_6!x`aJ8=@Sbj^?3q|Mf};Fg~*gLErv)J5IaE^EtJhd=^Z-fXpQoU~lK z+k}eL2hjGkmn%^rp*;+t{RkmYhQt$6D#61L5^qG75Ijx@p#a*;9uVg^&=;<9zkK&x zpTEy1`E&mLh4`I#T;X6{A1$quFX9i0Cc{a9{nrh`al4#JOx_gC5TIyEA4#j6Dc>f5 zVfHs!6(gqdX_T$=FRQU_{tBVdZO)9T7%^DeycuI(^KXzi%L*6BQ_K-g$o6{>Uz6B< zp%V2YYes!bzhXExdn7bSlD!uC=Iqnp9Ea_`0yXS#U5U$;JHv-M*~yMt=%|AoHP?;H zX{E~{9N;pGt{odaSrOVtV#q6@DlhNx z0`NVNAeREJDAh?}ufMN4A?!_v)k*e1`btVcDKyQfT%5`w9Yn|j_#tzvv8nO2h?Wrm zmj@^m=olIf{RhvqzL(o1+K=adgMAqJn2fO*SFL0?%o zHMe|WWtn1HUvMo?BfT`B3kO-)?@C%c2K?DpBzlva?*)hR6QXEB;6}^nD_*6xXKB1I zId-#NxBpkHpYROFv6@XocQ)#_-J})pE3rqhUGjWuCq65X8fzc8E)9d37T8i!lWIs$ zv3HZ|#5~dk0AKNJ&#`pRy5`ZdXq`c87}M&Wu}Vi-JE;z$K7L}&u=I7~a^3Pg+w~0k z7Ff%z$H}sgKt+9d%`!}jy7V-gPL;?aYos!Ly#nA`Q)mRf=tcHHs#LU)2Jhi@WTOBs zj&@;xfn2|(M#Kgf&$s&1H>F|{pTvQuB0?A;2pL7zhj5U6o0}!$OwL~>o2;InBL((( zzF)!-rN`LAeD2H=P+xR5u3FR=-A%{#=n=fdZhQ%Ju$rbHa-c&xh4xnwRuHh1Kxb`$ z7TI${1LPu`A9|ClvrmSOlNt8&(AwcZsU(O~M~Of#-7!4Fpu6C^3fq;KJv>W(V)uu? zi;jt{Hq0%@ ks?gi)=*ZoKN-|w;AIj|4ky>J!jCZ+xxW?v+;~|Xj52t(@`2YX_ delta 1225 zcmZ8gO>7%Q6yDiC+iM%=2gg5gY_~}$YeXADepE=RU{aDa385rXgw$%a&2AI7>vc4{ zp+rPgF0?)Mzz8a#O6BK3t0JVx94ap0NF0Dmkq}tJ0ffZeAh<-T#Cz*fq>g64{pNc! z^WMC9^UmB~v++;kaZP}>dT98<-M#pCgxw5B@>hr;+z>2ciI!x^fXYo}U9i-T31H}5 zaa{>pkdh%aWMJK~#!Mt1}&n!%ldwj)|m_O%S7h1^)PaHyFcYG#VfOm8cy_Gm2u;RzwNNbdJ6KyRipt!}Mb zZ3zIo^Z%slmy|Sl;fqu`A~d3dFHK5~p&0T>xlBU)L;}7q6XZ(3BU<^GwBOxTE=l_( zrF@KitKL(egg9uDT@4M4_aeI-9$#3RpEFkGPEIc^uPjk?%O%hDb<%bNNfFv! zc!y*9rfFQL8IEb0{+3V2!T3x)AH7bJZEr9>Aet@(`_NI=h$W9a9xYG!rsLSIYZ^}N zVx{8JNm%wAdl0)po~^$ZpOVNa_EX1IH4ic^u(eLzI)!u^fJ@Z&xa`%oHhI{oZCkd# z?b8`F&!SoLE52hJzWtU@=TMzMHSAQ}i-vEm(*YQI9RS708XaV<&ZKe%Orv$JYfMUD zs(EO`HZ7Za^dwtK4wn{ClQ(Og&!e6XIq;0N8ra*Rf>GCK1b%dd-AxV;SV)5_TSXQ) z$4dX-H@GD|{fYzPYjwTnx(Zc!FW0Ab;`}c5OKytjEZ4V2YHYV}y0-u_m;FlB=3&pL z=aEsYU^>oz?aQ58M7!eDF4>eT-lkLW=@44+SX_mq*sjH8rvhuoP(O{ZjDQgY7olf^ zhEm>?fT9AbS2hYAwVJ|jkoUR<+k z8^#@hqTApZ9fT*UHEYYUPtcFpEB&_
📡 Jackett Asetukset
-
+

Syötä Jackett-palvelimesi osoite ja API-avain (löytyy Jackett-hallintapaneelin yläreunasta).

+

🐾 qBittorrent Asetukset
-
+

qBittorrent Web UI:n yhteystiedot. Varmista, että Web UI on päällä qBittorrentin asetuksista.

+
-
+
+
+
+
⏱️ Ajastinasetukset
+
+ +
@@ -133,10 +141,9 @@ lokiDiv.innerHTML = kaikkiRivit .filter(r => r.toLowerCase().includes(hakuTermi)) .map((r) => { - // Suodatetaan magnet-linkin nimi näkyviin (poistetaan 'dn=' alku ja magnet: linkki) let nimi = r; if (r.includes('dn=')) { - nimi = decodeURIComponent(r.split('dn=')[1].split('&')[0].replace(/\+/g, ' ')); + try { nimi = decodeURIComponent(r.split('dn=')[1].split('&')[0].replace(/\+/g, ' ')); } catch(e) {} } return `
${nimi} @@ -153,6 +160,7 @@ document.getElementById('cfg-qbiturl').value = data.asetukset.qbit_url || ''; document.getElementById('cfg-qbituser').value = data.asetukset.qbit_user || ''; document.getElementById('cfg-qbitpass').value = data.asetukset.qbit_pass || ''; + document.getElementById('cfg-interval').value = data.asetukset.haku_vali || 900; rullaaLokiAlas(); }); @@ -186,7 +194,7 @@ }) }).then(() => { e.target.reset(); paivitaNakyma(); }); }); - document.getElementById('asetukset-form').addEventListener('submit', (e) => { e.preventDefault(); fetch('/tallenna_asetukset', {method:'POST', headers:{'Content-Type':'application/json'}, body:JSON.stringify({jackett_url:document.getElementById('cfg-url').value, jackett_api_key:document.getElementById('cfg-apikey').value, qbit_url:document.getElementById('cfg-qbiturl').value, qbit_user:document.getElementById('cfg-qbituser').value, qbit_pass:document.getElementById('cfg-qbitpass').value})}).then(() => paivitaNakyma()); }); + document.getElementById('asetukset-form').addEventListener('submit', (e) => { e.preventDefault(); fetch('/tallenna_asetukset', {method:'POST', headers:{'Content-Type':'application/json'}, body:JSON.stringify({jackett_url:document.getElementById('cfg-url').value, jackett_api_key:document.getElementById('cfg-apikey').value, qbit_url:document.getElementById('cfg-qbiturl').value, qbit_user:document.getElementById('cfg-qbituser').value, qbit_pass:document.getElementById('cfg-qbitpass').value, haku_vali:document.getElementById('cfg-interval').value})}).then(() => paivitaNakyma()); }); document.getElementById('suorita-haku-btn').addEventListener('click', () => fetch('/suorita_haku', {method:'POST'})); document.getElementById('tyhjenna-loki-btn').addEventListener('click', () => fetch('/tyhjenna_loki', {method:'POST'}).then(() => paivitaNakyma())); diff --git a/torrent_vahti.py b/torrent_vahti.py index 6a81110..c94855e 100644 --- a/torrent_vahti.py +++ b/torrent_vahti.py @@ -17,7 +17,8 @@ def lataa_kaikki_data(): "jackett_api_key": "", "qbit_url": "http://172.16.0.1:8080", "qbit_user": "admin", - "qbit_pass": "" + "qbit_pass": "", + "haku_vali": 900 }, "indeksorit": ["knaben", "torrentgalaxyclone", "therarbg", "uindex"], "hakukohteet": [] @@ -103,7 +104,6 @@ def tarkista_ja_lataa(): print(f"--- ALOITETAAN ERITELTY JACKETT & QBITTORRENT API-HAKU ({time.strftime('%Y-%m-%d %H:%M:%S')}) ---") data = lataa_kaikki_data() ladatut = lataa_jo_ladatut() - # Ma=0, Ti=1, Ke=2, To=3, Pe=4, La=5, Su=6 tanaan = datetime.datetime.now().weekday() jackett_url = data["asetukset"].get("jackett_url", "") @@ -119,10 +119,8 @@ def tarkista_ja_lataa(): return for kohde in hakulista: - # Varmistetaan että "paivat" löytyy, oletuksena kaikki päivät jos ei määritelty sallitut_paivat = kohde.get("paivat", [0, 1, 2, 3, 4, 5, 6]) - # TÄRKEÄ KORJAUS: Tarkistus heti silmukan alussa if tanaan not in sallitut_paivat: print(f" -> HYPPY: {kohde['jackett_haku']} ei sallittu tänään (pvä: {tanaan})") continue