initial commit
This commit is contained in:
61
daemon.py
Executable file
61
daemon.py
Executable 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
7
launcher.sh
Executable 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
5
requirements.txt
Executable file
@@ -0,0 +1,5 @@
|
||||
# lxml>=3.5.0
|
||||
requests==2.11.1
|
||||
bs4
|
||||
apscheduler
|
||||
loguru
|
||||
Reference in New Issue
Block a user