71 lines
2.0 KiB
Python
71 lines
2.0 KiB
Python
import asyncio
|
||
import logging
|
||
import sys
|
||
import sqlite3
|
||
import time
|
||
from os import getenv
|
||
|
||
from aiogram import Bot, Dispatcher, html
|
||
from aiogram.client.default import DefaultBotProperties
|
||
from aiogram.enums import ParseMode
|
||
from aiogram.filters import CommandStart, Command
|
||
from aiogram.types import Message
|
||
|
||
|
||
TOKEN = getenv("BOT_TOKEN")
|
||
|
||
|
||
dp = Dispatcher()
|
||
con = sqlite3.connect("/data/penis.db")
|
||
cur = con.cursor()
|
||
|
||
@dp.message(CommandStart())
|
||
async def command_start_handler(message: Message) -> None:
|
||
await message.answer(f"Hello, {html.bold(message.from_user.full_name)}!")
|
||
|
||
|
||
@dp.message(Command("penis"))
|
||
async def handler(message: Message) -> None:
|
||
res = cur.execute(f"SELECT user FROM penis WHERE user={message.from_user.id}").fetchone()
|
||
|
||
if res == None:
|
||
await message.answer(f"У вас пенисов: {html.bold(0)}")
|
||
else:
|
||
penis = cur.execute(f"SELECT count FROM penis WHERE user={message.from_user.id}").fetchone()
|
||
await message.answer(f"У вас пенисов: {html.bold(penis[0])}")
|
||
|
||
|
||
@dp.message(Command("ktlo"))
|
||
async def handler(message: Message) -> None:
|
||
for _ in range(5):
|
||
await message.answer("@ktlo0 @xydgiz")
|
||
time.sleep(0.5)
|
||
|
||
|
||
@dp.message()
|
||
async def echo_handler(message: Message) -> None:
|
||
if message.text == "пенис" or message.text == "Пенис":
|
||
res = cur.execute(f"SELECT user FROM penis WHERE user={message.from_user.id}").fetchone()
|
||
|
||
if res == None:
|
||
cur.execute(f"INSERT INTO penis VALUES ({message.from_user.id}, 0)")
|
||
|
||
cur.execute(f"UPDATE penis SET count=count+1 WHERE user={message.from_user.id}")
|
||
con.commit()
|
||
|
||
logging.info("Penis detected!")
|
||
|
||
|
||
async def main() -> None:
|
||
cur.execute("CREATE TABLE IF NOT EXISTS penis(user TEXT, count INT)")
|
||
con.commit()
|
||
|
||
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
|
||
|
||
await dp.start_polling(bot)
|
||
|
||
|
||
|
||
if __name__ == "__main__":
|
||
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
|
||
asyncio.run(main()) |