-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
107 lines (92 loc) · 5.16 KB
/
main.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import telebot
import config
import random
import Ikp
import func
import sys
import callback
import BDworker
from BDworker import users_dict
from telebot import types
from keyboa import Keyboa
bot = telebot.TeleBot(config.TOKEN)
def Init():
BDworker.Init()
print(sys.version)
Init()
@bot.message_handler(commands=['start'])
def welcome(message):
BDworker.addUser(message)
sti = open('static/bersHi.webp', 'rb')
bot.send_sticker(message.chat.id, sti)
bot.send_message(message.chat.id,
"Добро пожаловать, {0.first_name}!\nЯ - , бот созданный чтобы запоминать фильмы, мультфильмы, сериалы и т.д. необходымые к просмотру. \nЧто то вроде блокнотика с фильмами ;).".format(
message.from_user),
parse_mode='html', reply_markup=func.getStandKeyboa(message.chat.id))
@bot.message_handler(content_types=['text'])
def lalala(message):
if message.chat.type == 'private':
match message.text:
case '🔎 Мой список (фильтр)': callback.writeCategoryKeyboa(bot,message)
case '📄 Мой список': func.writeFilmList(bot,message)
case '⏰ Включить таймер':
func.setTimer(message.chat.id,1)
bot.send_message(message.chat.id,
"Таймер включен! Я изредко буду предлагать тебе посмотреть фильм",
reply_markup=func.getStandKeyboa(message.chat.id))
case '⏰ Выключить таймер':
func.setTimer(message.chat.id,0)
bot.send_message(message.chat.id,
"Таймер выключен! Я больше не буду предлагать тебе посмотреть фильм",
reply_markup=func.getStandKeyboa(message.chat.id))
case _ : func.search_f(bot,message)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
try:
if call.message:
if '&ff_id=' in call.data: #Found film
if '&f_name=' in call.data:
film_name = findFilmInMessage(call.message, call.data.split("=")[2])
BDworker.addMovieByTitle(call.message.chat.id, film_name)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Фильм - ' + film_name + '.\n\rДобавлен в список без дополнительной информации')
else:
BDworker.addMovie(call.data.split("=")[1], call.message.chat.id)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='Фильм - ' + str(Ikp.get_film_by_id(call.data.split("=")[1]).name) + ' Добавлен в ваш список :)')
elif '&sf_id' in call.data: #Selected film
if '&cf=' in call.data:
if 'rnd' in call.data.split("=")[3]:
func.writeFilmListRandom(bot,call,call.data.split("=")[2].split('&')[0])
else:
func.writeFilmListPageCategory(bot,call,int(call.data.split("=")[3]),call.data.split("=")[2].split('&')[0])
elif '&page=' in call.data:
if 'rnd' in call.data.split("=")[2]:
func.writeFilmListRandom(bot,call)
else:
func.writeFilmListPage(bot,call,int(call.data.split("=")[2]))
else:
func.writeFilmInfo(bot,call.message,call.data.split("=")[1])
elif '&ef_id=' in call.data: #Edit film
match call.data.split("=")[1]:
case 'name': callback.editFilmName(bot,call.message,call.data.split("=")[2])
case 'url': callback.editFilmUrl(bot,call.message,call.data.split("=")[2])
case 'year': callback.editFilmYear(bot,call.message,call.data.split("=")[2])
case 'genre': callback.editFilmGenre(bot,call.message,call.data.split("=")[2])
case 'category': callback.editFilmCategory(bot,call.message,call.data.split("=")[2])
case 'desc': callback.editFilmDesc(bot,call.message,call.data.split("=")[2])
case 'watched': callback.editFilmWatch(bot,call.message,call.data.split("=")[2],1)
case 'nonwatched': callback.editFilmWatch(bot,call.message,call.data.split("=")[2],0)
case 'delete': callback.deleteFilm(bot,call.message,call.data.split("=")[2])
else:
match call.data:
case _ : bot.send_message(call.message.chat.id, 'Я не знаю что ответить')
except Exception as e:
print(repr(e))
def findFilmInMessage(message, data):
text = message.text[message.text.index(data):message.text.rindex('"')]
return text
# RUN
while(True):
try:
bot.polling(none_stop=True, interval=0)
except:
pass