forked from Zeportus/VK-Telegram_bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
83 lines (67 loc) · 2.84 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
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from RASPIS import GetRaspis
vk_session = vk_api.VkApi(token='2a85a114c3af837c332b88f804290e76ddf4f326025a20e352d897d41a3fd5c3c2e47bb56a1df0e226f83')
Botlongpoll = VkBotLongPoll(vk_session, 207336652)
vk = vk_session.get_api()
def GetUsersId():
user_id_items = vk.groups.getMembers(group_id = '207336652')
return user_id_items['items']
def sender(id, text):
vk.messages.send(user_id = id, message = text, random_id = 0)
##Функции для переконвертирования ответа с расписанием в формат сообщения
def RaspisForDay(id):
raspis = GetRaspis(0)
message = ''
for i in raspis:
message += i + '\n'
sender(id, message)
helpDict = {
0 : 'Понедельник:\n',
1 : 'Вторник:\n',
2 : 'Среда:\n',
3 : 'Четверг:\n',
4 : 'Пятница:\n'
}
def RaspisForWeek(id):
raspis = GetRaspis(1)
message = ''
for i in raspis:
message += helpDict[i]
for k in raspis[i]:
if k != '':
message += k + '\n'
message += '\n'
sender(id, message)
def RaspisForWeekDay(id, weekDay):
raspis = GetRaspis(1)
message = ''
for i in raspis[weekDay]:
message += i + '\n'
sender(id, message)
for event in Botlongpoll.listen():
if event.type == VkBotEventType.GROUP_JOIN:
id = event.object['user_id']
sender(id,
'Добро пожаловать! Этот бот будет напоминать тебе куда идти за 15 минут до пары, так что не отключай уведомления от него. Еще он может:\n1. Выдать расписание на сегодня, для этого напиши "р"\n2. Узнать расписание на всю неделю "в"\n3. Узнать расписание на определенный день. Напиши "Пн", "Вт" и так далее')
if event.type == VkBotEventType.MESSAGE_NEW:
msg = event.object['message']['text'].lower()
id = event.object['message']['peer_id']
inList = False
if id in GetUsersId(): inList = True
if msg == "р" and inList:
RaspisForDay(id)
elif msg == "в" and inList:
RaspisForWeek(id)
elif msg == 'пн' and inList:
RaspisForWeekDay(id, 0)
elif msg == 'вт' and inList:
RaspisForWeekDay(id, 1)
elif msg == 'ср' and inList:
RaspisForWeekDay(id, 2)
elif msg == 'чт' and inList:
RaspisForWeekDay(id, 3)
elif msg == 'пт' and inList:
RaspisForWeekDay(id, 4)
elif not inList:
sender(id, 'Ты не подписан! Я с такими не общаюсь.')