Integrate vomponents in service starter.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
This commit is contained in:
parent
3703c522fa
commit
a362bb2c29
|
|
@ -0,0 +1,70 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
import uvloop
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from logbook import Logger, StreamHandler
|
||||||
|
|
||||||
|
from wallabag_kindle_consumer.config import Config
|
||||||
|
from wallabag_kindle_consumer.consumer import Consumer
|
||||||
|
from wallabag_kindle_consumer.interface import App
|
||||||
|
from wallabag_kindle_consumer.refresher import Refresher
|
||||||
|
from wallabag_kindle_consumer.sender import Sender
|
||||||
|
from wallabag_kindle_consumer.wallabag import Wallabag
|
||||||
|
|
||||||
|
StreamHandler(sys.stdout).push_application()
|
||||||
|
logger = Logger("kindle-consumer")
|
||||||
|
|
||||||
|
|
||||||
|
def parse_args():
|
||||||
|
parser = argparse.ArgumentParser(description="Wallabag-Kindle-Consumer")
|
||||||
|
parser.add_argument("--cfg", help="config file", required=False)
|
||||||
|
parser.add_argument("--env", help="Read config from env", action="store_true")
|
||||||
|
parser.add_argument("--refresher", help="Start token refresher", action="store_true")
|
||||||
|
parser.add_argument("--interface", help="Start web interface", action="store_true")
|
||||||
|
parser.add_argument("--consumer", help="Start article consumer", action="store_true")
|
||||||
|
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
||||||
|
|
||||||
|
loop = asyncio.get_event_loop()
|
||||||
|
|
||||||
|
args = parse_args()
|
||||||
|
|
||||||
|
config = Config.from_file("config.ini")
|
||||||
|
|
||||||
|
if 'cfg' in args and args.cfg is not None:
|
||||||
|
new = Config.from_file(args.cfg)
|
||||||
|
if new is not None:
|
||||||
|
config = new
|
||||||
|
|
||||||
|
if 'env' in args and args.env:
|
||||||
|
new = Config.from_env()
|
||||||
|
if new is not None:
|
||||||
|
config = new
|
||||||
|
|
||||||
|
wallabag = Wallabag(config)
|
||||||
|
sender = Sender(loop, config.smtp_from, config.smtp_host, config.smtp_port, config.smtp_user, config.smtp_passwd)
|
||||||
|
|
||||||
|
if args.refresher:
|
||||||
|
logger.info("Create Refresher")
|
||||||
|
refresher = Refresher(config, wallabag, sender)
|
||||||
|
loop.create_task(refresher.refresh())
|
||||||
|
|
||||||
|
if args.consumer:
|
||||||
|
logger.info("Create Consumer")
|
||||||
|
consumer = Consumer(wallabag, config, sender)
|
||||||
|
loop.create_task(consumer.consume())
|
||||||
|
|
||||||
|
if args.interface:
|
||||||
|
logger.info("Create Interface")
|
||||||
|
webapp = App(config, wallabag)
|
||||||
|
loop.create_task(webapp.register_server(loop))
|
||||||
|
|
||||||
|
loop.run_forever()
|
||||||
Loading…
Reference in New Issue