Add scheduler. Breaking change: NEW REQUIREMENTS

This commit is contained in:
Jon 2021-11-21 15:49:32 -05:00
parent 57e98f0f8a
commit 1c5ff79ef5
No known key found for this signature in database
GPG key ID: 9665BA6CF5DC2671
3 changed files with 37 additions and 2 deletions

1
VERSION Normal file
View file

@ -0,0 +1 @@
2.0-develop

View file

@ -15,6 +15,7 @@ import datetime
import time
import stat
import sys
import schedule
if sys.version_info[0] != 3 or sys.version_info[1] < 6:
print("Version Error: Version: %s.%s.%s incompatible please use Python 3.6+" % (sys.version_info[0], sys.version_info[1], sys.version_info[2]))
@ -22,6 +23,8 @@ if sys.version_info[0] != 3 or sys.version_info[1] < 6:
parser = argparse.ArgumentParser('qBittorrent Manager.',
description='A mix of scripts combined for managing qBittorrent.')
parser.add_argument("--run", dest="run", help="Run without the scheduler", action="store_true", default=False)
parser.add_argument("-sch", "--schedule", dest="sch", help="Schedule to run every x minutes. (Default set to 30)", default=30, type=int)
parser.add_argument('-c', '--config-file',
dest='config',
action='store',
@ -114,6 +117,8 @@ def get_arg(env_str, default, arg_bool=False, arg_int=False):
else:
return default
run = get_arg("QBT_RUN", args.run, arg_bool=True)
sch = get_arg("QBT_SCHEDULE", args.sch)
config_file = get_arg("QBT_CONFIG", args.config)
log_file = get_arg("QBT_LOGFILE", args.logfile)
@ -159,6 +164,14 @@ stream_formatter = logging.Formatter(msg_format)
stream_handler.setFormatter(stream_formatter)
logger.addHandler(stream_handler)
version = "Unknown"
with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "VERSION")) as handle:
for line in handle.readlines():
line = line.strip()
if len(line) > 0:
version = line
break
# Actual API call to connect to qbt.
host = cfg['qbt']['host']
if 'user' in cfg['qbt']:
@ -820,7 +833,7 @@ def empty_recycle():
return
def run():
def start():
update_category()
update_tags()
rem_unregistered()
@ -831,4 +844,24 @@ def run():
empty_recycle()
if __name__ == '__main__':
run()
logger.info(" _ _ _ ")
logger.info(" | | (_) | ")
logger.info(" __ _| |__ _| |_ _ __ ___ __ _ _ __ __ _ __ _ ___ ")
logger.info(" / _` | '_ \| | __| | '_ ` _ \ / _` | '_ \ / _` |/ _` |/ _ \\")
logger.info(" | (_| | |_) | | |_ | | | | | | (_| | | | | (_| | (_| | __/")
logger.info(" \__, |_.__/|_|\__| |_| |_| |_|\__,_|_| |_|\__,_|\__, |\___|")
logger.info(" | | ______ __/ | ")
logger.info(" |_| |______| |___/ ")
logger.info(f" Version: {version}")
try:
if run:
logger.info(f" Run Mode: Script will exit after one run.")
start()
else:
schedule.every(sch).minutes.do(start)
logger.info(f" Scheduled Mode: Running every {sch} minutes.")
while True:
schedule.run_pending()
time.sleep(60)
except KeyboardInterrupt:
logger.info("Exiting Qbit_manage")

View file

@ -1,2 +1,3 @@
PyYAML
qbittorrent-api
schedule