added CLI (#27)
This commit is contained in:
parent
de3e503cd6
commit
891d523751
|
@ -0,0 +1,20 @@
|
|||
import asyncio
|
||||
|
||||
import click
|
||||
|
||||
from mobilizon_bots.main import main
|
||||
|
||||
|
||||
@click.group()
|
||||
def mobilizon_bots():
|
||||
pass
|
||||
|
||||
|
||||
@mobilizon_bots.command()
|
||||
def start():
|
||||
|
||||
asyncio.run(main())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
mobilizon_bots()
|
|
@ -4,6 +4,7 @@ from pathlib import Path
|
|||
from tortoise import run_async
|
||||
|
||||
from mobilizon_bots.config.config import settings
|
||||
from mobilizon_bots.mobilizon.events import get_unpublished_events
|
||||
from mobilizon_bots.storage.db import MobilizonBotsDB
|
||||
from mobilizon_bots.storage.query import get_published_events
|
||||
|
||||
|
@ -18,7 +19,7 @@ async def main():
|
|||
logging.config.dictConfig(settings.logging)
|
||||
db = MobilizonBotsDB(Path(settings.db_path))
|
||||
await db.setup()
|
||||
published_events = get_published_events()
|
||||
published_events = await get_published_events()
|
||||
unpublished_events = get_unpublished_events(published_events)
|
||||
event = select_event_to_publish()
|
||||
result = PublisherCoordinator(event).publish() if event else exit(0)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
[default]
|
||||
debug = true
|
||||
default = true
|
||||
local_state_dir = "/var/mobots"
|
||||
log_dir = "/var/log/mobots"
|
||||
local_state_dir = "/var/mobilizon_bots"
|
||||
log_dir = "/var/log/mobilizon_bots"
|
||||
db_name = "events.db"
|
||||
db_path = "@format {this.local_state_dir}/{this.db_name}"
|
||||
|
||||
|
@ -57,7 +57,7 @@ class = "logging.StreamHandler"
|
|||
formatter = "standard"
|
||||
stream = "ext://sys.stderr"
|
||||
|
||||
[default.logging.handlers.logfile]
|
||||
[default.logging.handlers.file]
|
||||
level = "DEBUG"
|
||||
class = "logging.handlers.RotatingFileHandler"
|
||||
formatter = "standard"
|
||||
|
@ -68,7 +68,7 @@ encoding = "utf8"
|
|||
|
||||
[default.logging.root]
|
||||
level = "DEBUG"
|
||||
handlers = ['console', 'logfile']
|
||||
handlers = ['console', 'file']
|
||||
|
||||
[testing]
|
||||
DEBUG = true
|
||||
|
|
|
@ -41,5 +41,6 @@ class MobilizonBotsDB:
|
|||
@atexit.register
|
||||
def gracefully_tear_down():
|
||||
logger.info("Shutting down DB")
|
||||
loop = asyncio.get_event_loop()
|
||||
loop.run_until_complete(Tortoise.close_connections())
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
asyncio.run(Tortoise.close_connections())
|
||||
|
|
|
@ -66,11 +66,22 @@ category = "main"
|
|||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
|
||||
[[package]]
|
||||
name = "click"
|
||||
version = "8.0.1"
|
||||
description = "Composable command line interface toolkit"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
colorama = {version = "*", markers = "platform_system == \"Windows\""}
|
||||
|
||||
[[package]]
|
||||
name = "colorama"
|
||||
version = "0.4.4"
|
||||
description = "Cross-platform colored terminal text."
|
||||
category = "dev"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
|
||||
|
@ -333,7 +344,7 @@ python-versions = "*"
|
|||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.9"
|
||||
content-hash = "e7498886449b92f3665ecb67bbc223063789c03ddcc7a35b5dee9dd9132b56b2"
|
||||
content-hash = "f11fdba0a8d8fed33e35ec9b95f5768a7fc7ded4c06e009624469b6d5ab6762e"
|
||||
|
||||
[metadata.files]
|
||||
aiosqlite = [
|
||||
|
@ -364,6 +375,10 @@ chardet = [
|
|||
{file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"},
|
||||
{file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"},
|
||||
]
|
||||
click = [
|
||||
{file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"},
|
||||
{file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"},
|
||||
]
|
||||
colorama = [
|
||||
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
||||
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
||||
|
|
|
@ -12,6 +12,7 @@ aiosqlite = "^0.16"
|
|||
Jinja2 = "^2.11.3"
|
||||
requests = "^2.25.1"
|
||||
arrow = "^1.1.0"
|
||||
click = "^8.0.1"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
asynctest = "^0.13"
|
||||
|
@ -22,3 +23,6 @@ pytest-asyncio = "^0.10"
|
|||
[build-system]
|
||||
requires = ["poetry-core>=1.0.0"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
|
||||
[tool.poetry.scripts]
|
||||
mobilizon-bots="mobilizon_bots.cli:mobilizon_bots"
|
Loading…
Reference in New Issue