ebal
This commit is contained in:
parent
94ccb3f376
commit
03ac89574a
|
@ -6,6 +6,8 @@ from aiogram.filters import Command
|
||||||
from aiogram.types import Message
|
from aiogram.types import Message
|
||||||
from u232ping.db import Sqlite
|
from u232ping.db import Sqlite
|
||||||
from u232ping.controller import Controller
|
from u232ping.controller import Controller
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
TOKEN = environ["BOT_TOKEN"]
|
TOKEN = environ["BOT_TOKEN"]
|
||||||
dp = Dispatcher()
|
dp = Dispatcher()
|
||||||
|
@ -14,19 +16,23 @@ c = Controller(Sqlite())
|
||||||
|
|
||||||
@dp.message(Command("all"))
|
@dp.message(Command("all"))
|
||||||
async def all(message: Message) -> None:
|
async def all(message: Message) -> None:
|
||||||
await c.all(message)
|
group = await c.all()
|
||||||
|
await message.answer(str(group))
|
||||||
|
|
||||||
|
|
||||||
@dp.message(Command("1"))
|
@dp.message(Command("1"))
|
||||||
async def first(message: Message) -> None:
|
async def first(message: Message) -> None:
|
||||||
await c.first(message)
|
group = await c.first()
|
||||||
|
await message.answer(str(group))
|
||||||
|
|
||||||
|
|
||||||
@dp.message(Command("2"))
|
@dp.message(Command("2"))
|
||||||
async def second(message: Message) -> None:
|
async def second(message: Message) -> None:
|
||||||
await c.second(message)
|
group = await c.second()
|
||||||
|
await message.answer(str(group))
|
||||||
|
|
||||||
|
|
||||||
async def main() -> None:
|
async def main() -> None:
|
||||||
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
|
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
|
||||||
|
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
|
||||||
await dp.start_polling(bot)
|
await dp.start_polling(bot)
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
from u232ping.abc.db import DataBase
|
from u232ping.abc.db import DataBase
|
||||||
from u232ping.types import Group
|
from u232ping.types import Group
|
||||||
from aiogram.types import Message
|
|
||||||
|
|
||||||
class Controller(object):
|
class Controller(object):
|
||||||
|
|
||||||
|
@ -9,19 +8,19 @@ class Controller(object):
|
||||||
def __init__(self, db_implementation: DataBase) -> None:
|
def __init__(self, db_implementation: DataBase) -> None:
|
||||||
self.db = db_implementation
|
self.db = db_implementation
|
||||||
|
|
||||||
async def _ping(self, msg: Message, group: int | None = None) -> None:
|
async def _ping(self, group: int | None = None) -> Group:
|
||||||
gtp: Group
|
gtp: Group
|
||||||
if group is None:
|
if group is None:
|
||||||
gtp = await self.db.get_all()
|
gtp = await self.db.get_all()
|
||||||
else:
|
else:
|
||||||
gtp = await self.db.get_group(group)
|
gtp = await self.db.get_group(group)
|
||||||
msg.answer(str(gtp))
|
return gtp
|
||||||
|
|
||||||
async def all(self, msg: Message) -> None:
|
async def all(self) -> Group:
|
||||||
await self._ping(msg)
|
return await self._ping()
|
||||||
|
|
||||||
async def first(self, msg: Message) -> None:
|
async def first(self) -> Group:
|
||||||
await self._ping(msg, 1)
|
return await self._ping(1)
|
||||||
|
|
||||||
async def second(self, msg: Message) -> None:
|
async def second(self) -> Group:
|
||||||
await self._ping(msg, 2)
|
return await self._ping(2)
|
||||||
|
|
|
@ -13,12 +13,12 @@ class Sqlite(DataBase):
|
||||||
async def _get(self, group: int | None = None) -> Group:
|
async def _get(self, group: int | None = None) -> Group:
|
||||||
req = "SELECT telegram FROM u232"
|
req = "SELECT telegram FROM u232"
|
||||||
if group is not None:
|
if group is not None:
|
||||||
where = f" WHERE group = {group}"
|
req += f" WHERE sub = '{group}'"
|
||||||
req += where
|
|
||||||
async with sq(self.path) as db:
|
async with sq(self.path) as db:
|
||||||
cursor = await db.cursor()
|
cursor = await db.cursor()
|
||||||
await cursor.execute(req)
|
await cursor.execute(req)
|
||||||
fetch = await cursor.fetchall()
|
fetch = await cursor.fetchall()
|
||||||
|
fetch = tuple(map(lambda i: i[0], fetch))
|
||||||
return Group(fetch)
|
return Group(fetch)
|
||||||
|
|
||||||
async def get_group(self, group_idx: int):
|
async def get_group(self, group_idx: int):
|
||||||
|
|
|
@ -9,4 +9,4 @@ class Group(object):
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
lst = tuple(map(lambda member: f"@{member}", self.members))
|
lst = tuple(map(lambda member: f"@{member}", self.members))
|
||||||
return "/n".join(lst)
|
return "\n".join(lst)
|
||||||
|
|
Loading…
Reference in New Issue