mirror of
https://github.com/StuffAnThings/qbit_manage.git
synced 2025-10-11 22:36:35 +08:00
Add scheduler. Breaking change: NEW REQUIREMENTS
This commit is contained in:
parent
57e98f0f8a
commit
1c5ff79ef5
3 changed files with 37 additions and 2 deletions
1
VERSION
Normal file
1
VERSION
Normal file
|
@ -0,0 +1 @@
|
||||||
|
2.0-develop
|
|
@ -15,6 +15,7 @@ import datetime
|
||||||
import time
|
import time
|
||||||
import stat
|
import stat
|
||||||
import sys
|
import sys
|
||||||
|
import schedule
|
||||||
|
|
||||||
if sys.version_info[0] != 3 or sys.version_info[1] < 6:
|
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]))
|
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.',
|
parser = argparse.ArgumentParser('qBittorrent Manager.',
|
||||||
description='A mix of scripts combined for managing qBittorrent.')
|
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',
|
parser.add_argument('-c', '--config-file',
|
||||||
dest='config',
|
dest='config',
|
||||||
action='store',
|
action='store',
|
||||||
|
@ -114,6 +117,8 @@ def get_arg(env_str, default, arg_bool=False, arg_int=False):
|
||||||
else:
|
else:
|
||||||
return default
|
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)
|
config_file = get_arg("QBT_CONFIG", args.config)
|
||||||
log_file = get_arg("QBT_LOGFILE", args.logfile)
|
log_file = get_arg("QBT_LOGFILE", args.logfile)
|
||||||
|
|
||||||
|
@ -159,6 +164,14 @@ stream_formatter = logging.Formatter(msg_format)
|
||||||
stream_handler.setFormatter(stream_formatter)
|
stream_handler.setFormatter(stream_formatter)
|
||||||
logger.addHandler(stream_handler)
|
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.
|
# Actual API call to connect to qbt.
|
||||||
host = cfg['qbt']['host']
|
host = cfg['qbt']['host']
|
||||||
if 'user' in cfg['qbt']:
|
if 'user' in cfg['qbt']:
|
||||||
|
@ -820,7 +833,7 @@ def empty_recycle():
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def run():
|
def start():
|
||||||
update_category()
|
update_category()
|
||||||
update_tags()
|
update_tags()
|
||||||
rem_unregistered()
|
rem_unregistered()
|
||||||
|
@ -831,4 +844,24 @@ def run():
|
||||||
empty_recycle()
|
empty_recycle()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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")
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
PyYAML
|
PyYAML
|
||||||
qbittorrent-api
|
qbittorrent-api
|
||||||
|
schedule
|
Loading…
Add table
Reference in a new issue