hakujen välisen ajan säätö lisätty

This commit is contained in:
Tontze
2026-06-17 07:45:13 +03:00
parent 4af93d1add
commit 0c06e012d3
5 changed files with 25 additions and 14 deletions
Binary file not shown.
+7 -3
View File
@@ -66,7 +66,8 @@ def tallenna_asetukset():
"jackett_api_key": data.get('jackett_api_key', ''), "jackett_api_key": data.get('jackett_api_key', ''),
"qbit_url": data.get('qbit_url', ''), "qbit_url": data.get('qbit_url', ''),
"qbit_user": data.get('qbit_user', 'admin'), "qbit_user": data.get('qbit_user', 'admin'),
"qbit_pass": data.get('qbit_pass', '') "qbit_pass": data.get('qbit_pass', ''),
"haku_vali": int(data.get('haku_vali', 900))
} }
torrent_vahti.tallenna_kaikki_data(kaikki_data) torrent_vahti.tallenna_kaikki_data(kaikki_data)
return jsonify({'status': 'ok'}) return jsonify({'status': 'ok'})
@@ -127,13 +128,16 @@ def tyhjenna_loki():
return jsonify({'status': 'ok'}) return jsonify({'status': 'ok'})
if __name__ == '__main__': if __name__ == '__main__':
# Käytetään dynaamista ajastinta asetuksista
def automaattinen_ajastin(): def automaattinen_ajastin():
while True: while True:
time.sleep(900) kaikki_data = torrent_vahti.lataa_kaikki_data()
vali = kaikki_data["asetukset"].get("haku_vali", 900)
time.sleep(vali)
suorita_haku_prosessi() suorita_haku_prosessi()
ajastin_saie = threading.Thread(target=automaattinen_ajastin) ajastin_saie = threading.Thread(target=automaattinen_ajastin)
ajastin_saie.daemon = True ajastin_saie.daemon = True
ajastin_saie.start() ajastin_saie.start()
app.run(host='0.0.0.0', port=5000) app.run(host='0.0.0.0', port=5000)
+2 -1
View File
@@ -35,6 +35,7 @@
"jackett_api_key": "gtqa5zn9ik93jfyj48y29ot3fayawvo6", "jackett_api_key": "gtqa5zn9ik93jfyj48y29ot3fayawvo6",
"qbit_url": "http://192.168.1.40:8080/", "qbit_url": "http://192.168.1.40:8080/",
"qbit_user": "admin", "qbit_user": "admin",
"qbit_pass": "qbt_uFxc7gqD7sJsBk9FJdH38bLIyapr" "qbit_pass": "qbt_uFxc7gqD7sJsBk9FJdH38bLIyapr",
"haku_vali": 10
} }
} }
+14 -6
View File
@@ -80,14 +80,22 @@
<div class="card p-4"> <div class="card p-4">
<form id="asetukset-form"> <form id="asetukset-form">
<h6 class="fw-bold mb-3 text-primary">📡 Jackett Asetukset</h6> <h6 class="fw-bold mb-3 text-primary">📡 Jackett Asetukset</h6>
<div class="mb-3"><input type="url" id="cfg-url" class="form-control form-control-sm" placeholder="Jackett URL"></div> <p class="small text-muted">Syötä Jackett-palvelimesi osoite ja API-avain (löytyy Jackett-hallintapaneelin yläreunasta).</p>
<div class="mb-3"><input type="url" id="cfg-url" class="form-control form-control-sm" placeholder="Jackett URL (esim. http://192.168.1.1:9117)"></div>
<div class="mb-4"><input type="text" id="cfg-apikey" class="form-control form-control-sm" placeholder="Jackett API-avain"></div> <div class="mb-4"><input type="text" id="cfg-apikey" class="form-control form-control-sm" placeholder="Jackett API-avain"></div>
<hr class="my-4"> <hr class="my-4">
<h6 class="fw-bold mb-3 text-success">🐾 qBittorrent Asetukset</h6> <h6 class="fw-bold mb-3 text-success">🐾 qBittorrent Asetukset</h6>
<div class="mb-2"><input type="url" id="cfg-qbiturl" class="form-control form-control-sm" placeholder="Web UI URL"></div> <p class="small text-muted">qBittorrent Web UI:n yhteystiedot. Varmista, että Web UI on päällä qBittorrentin asetuksista.</p>
<div class="mb-2"><input type="url" id="cfg-qbiturl" class="form-control form-control-sm" placeholder="Web UI URL (esim. http://192.168.1.1:8080)"></div>
<div class="row mb-2"> <div class="row mb-2">
<div class="col-sm-6"><input type="text" id="cfg-qbituser" class="form-control form-control-sm" placeholder="Käyttäjätunnus"></div> <div class="col-sm-6"><input type="text" id="cfg-qbituser" class="form-control form-control-sm" placeholder="Käyttäjätunnus"></div>
<div class="col-sm-6"><input type="text" id="cfg-qbitpass" class="form-control form-control-sm" placeholder="Salasana/API"></div> <div class="col-sm-6"><input type="text" id="cfg-qbitpass" class="form-control form-control-sm" placeholder="Salasana tai API-avain"></div>
</div>
<hr class="my-4">
<h6 class="fw-bold mb-3 text-info">⏱️ Ajastinasetukset</h6>
<div class="mb-3">
<label class="small">Automaattisen haun väli (sekunteina):</label>
<input type="number" id="cfg-interval" class="form-control form-control-sm" placeholder="900">
</div> </div>
<button type="submit" class="btn btn-primary btn-sm mt-3">Tallenna kaikki asetukset</button> <button type="submit" class="btn btn-primary btn-sm mt-3">Tallenna kaikki asetukset</button>
</form> </form>
@@ -133,10 +141,9 @@
lokiDiv.innerHTML = kaikkiRivit lokiDiv.innerHTML = kaikkiRivit
.filter(r => r.toLowerCase().includes(hakuTermi)) .filter(r => r.toLowerCase().includes(hakuTermi))
.map((r) => { .map((r) => {
// Suodatetaan magnet-linkin nimi näkyviin (poistetaan 'dn=' alku ja magnet: linkki)
let nimi = r; let nimi = r;
if (r.includes('dn=')) { 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 `<div class="d-flex justify-content-between border-bottom py-1"> return `<div class="d-flex justify-content-between border-bottom py-1">
<span class="font-monospace small text-truncate" style="max-width: 80%;" title="${r}">${nimi}</span> <span class="font-monospace small text-truncate" style="max-width: 80%;" title="${r}">${nimi}</span>
@@ -153,6 +160,7 @@
document.getElementById('cfg-qbiturl').value = data.asetukset.qbit_url || ''; document.getElementById('cfg-qbiturl').value = data.asetukset.qbit_url || '';
document.getElementById('cfg-qbituser').value = data.asetukset.qbit_user || ''; document.getElementById('cfg-qbituser').value = data.asetukset.qbit_user || '';
document.getElementById('cfg-qbitpass').value = data.asetukset.qbit_pass || ''; document.getElementById('cfg-qbitpass').value = data.asetukset.qbit_pass || '';
document.getElementById('cfg-interval').value = data.asetukset.haku_vali || 900;
rullaaLokiAlas(); rullaaLokiAlas();
}); });
@@ -186,7 +194,7 @@
}) })
}).then(() => { e.target.reset(); paivitaNakyma(); }); }).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('suorita-haku-btn').addEventListener('click', () => fetch('/suorita_haku', {method:'POST'}));
document.getElementById('tyhjenna-loki-btn').addEventListener('click', () => fetch('/tyhjenna_loki', {method:'POST'}).then(() => paivitaNakyma())); document.getElementById('tyhjenna-loki-btn').addEventListener('click', () => fetch('/tyhjenna_loki', {method:'POST'}).then(() => paivitaNakyma()));
+2 -4
View File
@@ -17,7 +17,8 @@ def lataa_kaikki_data():
"jackett_api_key": "", "jackett_api_key": "",
"qbit_url": "http://172.16.0.1:8080", "qbit_url": "http://172.16.0.1:8080",
"qbit_user": "admin", "qbit_user": "admin",
"qbit_pass": "" "qbit_pass": "",
"haku_vali": 900
}, },
"indeksorit": ["knaben", "torrentgalaxyclone", "therarbg", "uindex"], "indeksorit": ["knaben", "torrentgalaxyclone", "therarbg", "uindex"],
"hakukohteet": [] "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')}) ---") print(f"--- ALOITETAAN ERITELTY JACKETT & QBITTORRENT API-HAKU ({time.strftime('%Y-%m-%d %H:%M:%S')}) ---")
data = lataa_kaikki_data() data = lataa_kaikki_data()
ladatut = lataa_jo_ladatut() ladatut = lataa_jo_ladatut()
# Ma=0, Ti=1, Ke=2, To=3, Pe=4, La=5, Su=6
tanaan = datetime.datetime.now().weekday() tanaan = datetime.datetime.now().weekday()
jackett_url = data["asetukset"].get("jackett_url", "") jackett_url = data["asetukset"].get("jackett_url", "")
@@ -119,10 +119,8 @@ def tarkista_ja_lataa():
return return
for kohde in hakulista: 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]) 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: if tanaan not in sallitut_paivat:
print(f" -> HYPPY: {kohde['jackett_haku']} ei sallittu tänään (pvä: {tanaan})") print(f" -> HYPPY: {kohde['jackett_haku']} ei sallittu tänään (pvä: {tanaan})")
continue continue