· 6 years ago · Jan 25, 2020, 08:38 PM
1import requests
2import vk
3import codecs
4
5from ping import onlineuser
6from unitpay import unitget
7from rconer import mainrcon
8from balans import bal
9from ping_server import ping_serv
10
11token = '' # lang-rus Токен группы
12session = (vk.Session(access_token=token))
13api = vk.API(session)
14
15white = ['https://qiwi.me/lattycraft', 'qiwi.me/lattycraft', 'http://vk.me/lattycraft', 'vk.me/lattycraft',
16 'https://vk.com/@lattycraft-clanwar', 'vk.com/@lattycraft-clanwar',
17 'https://www.youtube.com/channel/UCFr8nDZ-QCs6J3r3hTUOQXQ', 'https://www.youtube.com/user/UnusualCraftTVLive',
18 'https://www.youtube.com/user/UnusualCraftTV', 'discord.gg/7rq9GnG', 'lattycraft.ru', 'mc.lattycraft.ru',
19 'lattydonate.ru', 'vk.com/lattycraft', 'vk.com/kindsad', 'vk.com/juliavinitskaya',
20 'vk.com/lattycraft_evidence', 'https://discord.gg/7rq9GnG', 'https://lattycraft.ru',
21 'https://mc.lattycraft.ru', 'https://lattydonate.ru', 'https://vk.com/lattycraft', 'https://vk.com/kindsad',
22 'https://vk.com/juliavinitskaya', 'https://vk.com/lattycraft_evidence']
23
24users = [] # lang-rus Люди которые могу писать твоему боту
25group_id = # lang-rus Айди группы
26
27# python Main.py
28# f = open("rules.txt", "r", "utf-8")
29# file = f.read()
30# f.close()
31
32f = codecs.open("rules.txt", "r", "utf-8")
33file = f.read()
34f.close()
35
36GetInfo = api.groups.getLongPollServer(group_id=group_id, v=5.8)
37
38key = GetInfo.get('key')
39server = GetInfo.get('server')
40ts = GetInfo.get('ts')
41
42url = '{}?act=a_check&key={}&ts={}&wait=25'.format(server, key, ts)
43
44r = requests.get(url)
45r = r.json()
46
47while True:
48 url = '{}?act=a_check&key={}&ts={}&wait=25'.format(server, key, ts)
49 r = requests.get(url)
50 r = r.json()
51
52 if r.get('failed') != None:
53 key = api.groups.getLongPollServer(group_id=group_id, v=5.8)['key']
54
55 if ts != r.get('ts') and r.get('updates'):
56 body = r.get('updates')[0]['object']['text']
57 user_id = r.get('updates')[0]['object']['peer_id']
58
59 if r.get('updates')[0]['type'] == 'message_new':
60 try:
61 invate = r.get('updates')[0]['object']['action']['type']
62 invate_user_id = r.get('updates')[0]['object']['action']['member_id']
63
64 except:
65 invate = None
66 invate_user_id = None
67
68 if invate == 'chat_invite_user' or invate == 'chat_invite_user_by_link':
69 try:
70 invate_user = api.users.get(v=5.85, user_ids=invate_user_id)[0]['first_name']
71 print(invate_user)
72 print(invate_user_id)
73 api.messages.send(peer_id=user_id, v=5.85,
74 message='@id{}({}), pады видеть Вас в нашей уютной беседе\nОгромная просьба '
75 'прочитать правила\n{}'.format(
76 invate_user_id, invate_user, file))
77
78 except:
79 print("error")
80 if r.get('updates')[0]['type'] == 'message_new':
81 try:
82 if (('vk.com' in body.lower()) or (
83 'vk.cc' in body.lower() or '.ru' in body.lower() or '.com' in body.lower() or 'mc.' in body.lower() or '.me' in body.lower() or '.su' in body.lower() or '.tk' in body.lower())) and (
84 (body.lower() not in white) and (r.get('updates')[0]['object']['from_id'] != 182911893)):
85 api.messages.send(peer_id=user_id, v=5.85, message='Удален из беседы за нарушение правил')
86 api.messages.removeChatUser(user_id=r.get('updates')[0]['object']['from_id'], v=5.85,
87 chat_id=user_id - 2000000000)
88 except:
89 api.messages.send(peer_id=user_id, v=5.85, message='Ошибка')
90
91 if r.get('updates')[0]['type'] == 'message_new' and (r.get('updates')[0]['object']['from_id'] in users):
92
93 body = r.get('updates')[0]['object']['text']
94
95 user_id = r.get('updates')[0]['object']['peer_id']
96
97 if body.lower() == '/онлайн':
98 api.messages.send(peer_id=user_id, v=5.85, message=onlineuser())
99
100 if len(body.split(' ')) == 2 and (body.split(' ')[0]).lower() == '/пинг':
101 api.messages.send(peer_id=user_id, v=5.85, message=ping_serv(body.split(' ')[1]))
102
103 if len(body.split(' ')) == 2 and (body.split(' ')[0]).lower() == '/up':
104 api.messages.send(peer_id=user_id, v=5.85, message=unitget(body.split(' ')[1]))
105
106 if body.split(' ')[0] == '/rcon' and len(body.split(' ')) > 1 and (
107 body.split(' ')[1] == 's' or body.split(' ')[1] == 'g'):
108 port = body.split(' ')[1]
109 api.messages.send(peer_id=user_id, v=5.85, message=mainrcon(body[8::], port))
110
111 if body.lower() == '/баланс':
112 api.messages.send(peer_id=user_id, v=5.85, message=bal())
113
114 if '/ban' == body.lower().split(' ')[0] and len(body.split(' ')) == 2:
115 print("ban")
116 try:
117 kickid = body.split(' ')[1]
118 print(kickid)
119 api.messages.removeChatUser(user_id=kickid, v=5.85, chat_id=user_id - 2000000000)
120 api.messages.send(peer_id=user_id, v=5.85, message='Удален из беседы за нарушение правил')
121 except:
122 api.messages.send(peer_id=user_id, v=5.85, message='Ошибка')
123
124 if '/кик' == body.lower().split(' ')[0] and r.get('updates')[0]['object']['fwd_messages']:
125 print("kik")
126 kick_user = r.get('updates')[0]['object']['fwd_messages'][0]['from_id']
127 api.messages.removeChatUser(user_id=kick_user, v=5.85, chat_id=user_id - 2000000000)
128 api.messages.send(peer_id=user_id, v=5.85, message='Удален из беседы за нарушение правил')
129 ts = r.get('ts')