initial commit

This commit is contained in:
alex
2021-12-10 10:08:12 +01:00
parent 3952bcb7d5
commit 0d265dfacc
3 changed files with 73 additions and 0 deletions

61
daemon.py Executable file
View File

@@ -0,0 +1,61 @@
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...")

7
launcher.sh Executable file
View File

@@ -0,0 +1,7 @@
#apk add --no-cache --virtual .build-deps gcc libc-dev libxslt-dev && \
# apk add --no-cache libxslt && \
# pip install --no-cache-dir lxml>=3.5.0 && \
# pip install -r requirements.txt && \
# apk del .build-deps
pip install -r requirements.txt

5
requirements.txt Executable file
View File

@@ -0,0 +1,5 @@
# lxml>=3.5.0
requests==2.11.1
bs4
apscheduler
loguru