import config
import logging
import asyncio
from datetime import datetime
from aiogram import Bot, Dispatcher, executor, types
from sqlighter import SQLighter
# задаем уровень логов
logging.basicConfig(level=logging.INFO)
# инициализируем бота
bot = Bot(token=config.API_TOKEN)
dp = Dispatcher(bot)
# инициализируем соединение с БД
db = SQLighter('db.db')
# Команда активации подписки
@dp.message_handler(commands=['subscribe'])
async def subscribe(message: types.Message):
if(not db.subscriber_exists(message.from_user.id)):
# если юзера нет в базе, добавляем его
db.add_subscriber(message.from_user.id)
else:
# если он уже есть, то просто обновляем ему статус подписки
db.update_subscription(message.from_user.id, True)
await message.answer("Вы успешно подписались на рассылку! Ждите, скоро выйдет актуальное расписание! =)")
@dp.message_handler(commands=['tbl'])
async def subscribe(message: types.Message):
all_tbl = db.get_tbl()
tbls = []
for i in all_tbl:
tbl = f'{i[0]}'
tbls.append(tbl)
await message.answer(text="\n".join(tbls))
# Команда отписки
@dp.message_handler(commands=['unsubscribe'])
async def unsubscribe(message: types.Message):
if(not db.subscriber_exists(message.from_user.id)):
# если юзера нет в базе, добавляем его с неактивной подпиской (запоминаем)
db.add_subscriber(message.from_user.id, False)
await message.answer("Вы итак не подписаны.")
else:
# если он уже есть, то просто обновляем ему статус подписки
db.update_subscription(message.from_user.id, False)
await message.answer("Актуальное расписание на завтра.")
# получаем список подписчиков бота
subscriptions = db.get_subscriptions()
@dp.message_handler(content_types=["photo"])
async def spam_photo(message: types.Message):
file_id = message.photo[-1].file_id
users = db.get_subscriptions()
for i in users:
await bot.send_photo(chat_id=int(i[0]), photo=file_id)
await asyncio.sleep(1)
await message.answer("ОТправка завершена")
@dp.message_handler(commands=['user'])
async def spam_photo(message: types.Message):
users = db.get_subscriptions()
await message.answer(str(users[1]))
@dp.message_handler(commands=['Monday'])
async def send_ph(message: types.Message):
await bot.send_photo(chat_id=message.chat.id, photo='AgACAgIAAxkBAANiZTeivUdrCN8WE8qn1inIjwrc2EkAAq7YMRtwnsFJikOvhsbhx1wBAAMCAAN5AAMwBA')
@dp.message_handler(commands=['Thursday'])
async def send_ph(message: types.Message):
await bot.send_photo(chat_id=message.chat.id, photo='AgACAgIAAxkBAANoZTevghT5xBWp77HCOY00WHEtOboAAj7ZMRtwnsFJQ9jUAfPsfiUBAAMCAAN5AAMwBA')
# запускаем лонг поллинг
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)