-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.py
69 lines (54 loc) · 3.25 KB
/
bot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import logging
import os
from aiogram import Bot, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import Dispatcher
from aiogram.dispatcher import FSMContext
from aiogram.utils import executor
import db
import keybords as kb
TOKEN = os.getenv('TOKEN')
bot = Bot(token=TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())
@dp.message_handler(commands=['start'], state='*')
async def process_start_command(message: types.Message, state: FSMContext):
id_record = str(message.from_user.id) + ": " + message.from_user.username
await db.add_user_to_db(id_record, unique=True)
data = message.get_args()
if data == '':
await message.answer("Привет, это бот для отправки валентинок. Чтобы сделать себе ссылку для "
"получения валентинок - нажми кнопку ниже",
reply_markup=kb.main_kb)
return
uid = data
await message.answer("Напиши текст валентинки следующим сообщением, бот анонимно отправит её автору ссылки" +
".\nАнонимность гарантируется, код бота открыт. "
"Чтобы тоже начать получать валентинки нажми \"Хочу валентинку❤️\"",
reply_markup=kb.main_kb)
await state.set_state('waiting text')
await state.update_data(target_id=uid)
@dp.message_handler(state='*', text=['Обратная связь'])
async def process_donate(message: types.Message):
await message.answer("По вопросам, отзывам и пожеланиям можно писать @bryansk_sever111",
reply_markup=kb.main_kb)
@dp.message_handler(text=['Хочу валентинку❤️'], state='*')
async def process_want(message: types.Message):
link = 't.me/sweetfunnyvalentine_bot?start=' + str(message.from_user.id)
await message.answer("Вот твоя ссылка\n" + link + '\n' +
"Запости куда хочешь. Тот, кто перейдет по ссылке, сможет "
"отправить анонимную валентинку тебе ❤️", reply_markup=kb.main_kb)
@dp.message_handler(state='waiting text', content_types=['any'])
async def process_valentine(message: types.Message, state: FSMContext):
id_record = str(message.from_user.id) + ": " + message.from_user.username
await db.add_valentine(user_id=id_record)
async with state.proxy() as data:
target_id = data['target_id']
if len(message.photo) > 0:
await bot.send_message(target_id, "💕 Пришла валентинка 💕\n\n")
await bot.send_photo(target_id, message.photo[-1].file_id, caption=message.caption)
else:
await bot.send_message(target_id, "💕 Пришла валентинка 💕\n\n" + message.text)
await message.answer("Ура, отправили валентинку!")
await state.finish()
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)