60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
import os
|
|
|
|
import requests
|
|
from apscheduler.schedulers.blocking import BlockingScheduler
|
|
from bs4 import BeautifulSoup
|
|
from loguru import logger as log
|
|
|
|
env = os.environ
|
|
base_url = env.get("UT_URL","")
|
|
login = env.get("LOGIN","")
|
|
passwd = env.get("PASSWD","")
|
|
autoload_dir = env.get("AUTOL_DIR","")
|
|
|
|
|
|
def process_autoloads():
|
|
log.info("Processing autoloads")
|
|
sess = requests.Session()
|
|
auth = requests.auth.HTTPBasicAuth(login, passwd)
|
|
req = sess.get(base_url + "token.html", auth=auth)
|
|
|
|
token = None
|
|
if req.status_code == 200:
|
|
soup = BeautifulSoup(req.text)
|
|
token = soup.text
|
|
else:
|
|
log.warning(f"Req status code {req.status_code}")
|
|
|
|
if not token:
|
|
log.error("NO TOKEN RETRIEVED")
|
|
return
|
|
|
|
flist = os.listdir(autoload_dir)
|
|
|
|
if flist:
|
|
for fi in flist:
|
|
ext = fi.split(".")[-1]
|
|
fifi = f"{autoload_dir}{fi}"
|
|
if ext.lower() == "torrent":
|
|
log.info(f"found torrent {fifi}")
|
|
params = {"action": "add-file", "token": token}
|
|
files = {"torrent_file": open(fifi, "rb")}
|
|
r = requests.post(url=base_url, auth=auth, params=params, files=files)
|
|
os.remove(fifi)
|
|
elif ext.lower() == "magnet":
|
|
log.info(f"found magnet {fifi}")
|
|
headers = {"Content-Type": "application/json"}
|
|
st = open(fifi).read()
|
|
params = {"action": "add-url", "s": st, "token": token}
|
|
r = sess.get(url=base_url, auth=auth, params=params, headers=headers)
|
|
os.remove(fifi)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
log.info("Launching script")
|
|
scheduler = BlockingScheduler(timezone="Europe/Paris")
|
|
log.info("initiating jobs")
|
|
scheduler.add_job(process_autoloads, "interval", seconds=30, misfire_grace_time=30)
|
|
log.info(f"jobs added : {scheduler.get_jobs()}")
|
|
scheduler.start()
|
|
log.info("running...") |