forked from Casvt/Kapowarr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKapowarr.py
53 lines (38 loc) · 1.22 KB
/
Kapowarr.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import logging
from backend.db import __DATABASE_FILEPATH__, set_db_location, setup_db
from backend.files import folder_path
from backend.helpers import check_python_version
from backend.logging import setup_logging
from backend.server import create_app, create_waitress_server, set_url_base
from frontend.api import Settings, download_handler, task_handler
def Kapowarr() -> None:
"""The main function of Kapowarr
"""
setup_logging()
logging.info('Starting up Kapowarr')
if not check_python_version():
exit(1)
set_db_location(folder_path(*__DATABASE_FILEPATH__))
app = create_app()
with app.app_context():
setup_db()
settings = Settings()
url_base = settings['url_base']
set_url_base(app, url_base)
download_handler.create_download_folder()
download_handler.load_download_thread.start()
task_handler.handle_intervals()
host: str = settings['host']
port: int = settings['port']
server = create_waitress_server(app, host, port)
logging.info(f'Kapowarr running on http://{host}:{port}{url_base}/')
# =================
server.run()
# =================
download_handler.stop_handle()
task_handler.stop_handle()
return
if __name__ == "__main__":
Kapowarr()