mirror of
https://github.com/ManiMatter/decluttarr.git
synced 2026-04-19 07:54:10 +02:00
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
import asyncio
|
|
import signal
|
|
import types
|
|
import datetime
|
|
import sys
|
|
|
|
from src.job_manager import JobManager
|
|
from src.settings.settings import Settings
|
|
from src.utils.log_setup import logger
|
|
from src.utils.startup import launch_steps
|
|
|
|
settings = Settings()
|
|
job_manager = JobManager(settings)
|
|
|
|
def terminate(sigterm: signal.SIGTERM, frame: types.FrameType) -> None: # noqa: ARG001, pylint: disable=unused-argument
|
|
|
|
"""Terminate cleanly. Needed for respecting 'docker stop'.
|
|
|
|
Args:
|
|
----
|
|
sigterm (signal.Signal): The termination signal.
|
|
frame: The execution frame.
|
|
|
|
"""
|
|
|
|
logger.info(f"Termination signal received at {datetime.datetime.now()}.") # noqa: DTZ005
|
|
sys.exit(0)
|
|
|
|
# Main function
|
|
async def main():
|
|
await launch_steps(settings)
|
|
|
|
# Start Cleaning
|
|
while True:
|
|
logger.verbose("-" * 50)
|
|
|
|
# Refresh qBit Cookies
|
|
for qbit in settings.download_clients.qbittorrent:
|
|
await qbit.refresh_cookie()
|
|
|
|
# Run script for each instance
|
|
for arr in settings.instances.arrs:
|
|
await job_manager.run_jobs(arr)
|
|
|
|
logger.verbose("")
|
|
logger.verbose("Queue clean-up complete!")
|
|
|
|
# Wait for the next run
|
|
await asyncio.sleep(settings.general.timer * 60)
|
|
return
|
|
|
|
|
|
if __name__ == "__main__":
|
|
signal.signal(signal.SIGTERM, terminate)
|
|
asyncio.run(main())
|