· 6 years ago · Jul 25, 2019, 07:52 PM
1import time, datetime, vk_api, random, json, sqlite3
2from vk_api.bot_longpoll import VkBotEventType, VkBotLongPoll
3from datetime import date
4from vk_api.keyboard import VkKeyboard, VkKeyboardColor
5
6# Auth & connect to API
7vk = vk_api.VkApi(token="ab474cc4ce74715e608fdcf71b1bd0ffa64e7e665c35c2189aee5c8fff94f987ffaa596b2420d3d813589")
8vk.get_api()
9longpoll = VkBotLongPoll(vk, "183287477")
10
11# Const
12who = ["Звали?!", "Да что тебе?", "Что?", "Отстань, я занят!", "Подай бумаги!", "Где мои штаны?!", "Чего надобно, смертный?"]
13bad = ['бля', 'сука', 'блять', 'хуй', 'уебок', 'пизда', 'еблан', 'пидор', 'пидар', 'пидорас', 'залупа', 'хуесос', 'гондон', 'долбаеб', 'пидр', 'шлюха', 'гандон', 'пидарас', 'гондон']
14roles = {"adm": ["Администратор", 3], "mod": ["Модератор", 2], "helper": ["Помощник", 1]}
15admins = [444443537, 292069666, 422619349, 197564303]
16hack = ["Loading...", "Начинаю подбор паролей...", "DONE!", "База данных взломана!"]
17wedding = {}
18requests = {}
19
20# Connection to SQL
21con = sqlite3.connect("kauft_bot.db", check_same_thread=False)
22cur = con.cursor()
23cur.execute('''
24 CREATE TABLE IF NOT EXISTS blacklist (
25 user_id INTEGER,
26 reason TEXT,
27 date TEXT,
28 time TEXT,
29 admin TEXT)
30 ''')
31con.commit()
32
33
34# Main code
35while True:
36 try:
37 delta = datetime.timedelta(hours=3, minutes=0)
38 t = (datetime.datetime.now(datetime.timezone.utc) + delta)
39 nowtime = t.strftime("%H:%M") # текущее время
40 nowdate = t.strftime("%d.%m.%Y")
41 for event in longpoll.listen():
42 if event.type == VkBotEventType.MESSAGE_NEW:
43 chat_id = str(event.object.peer_id)
44 qw = '"' + chat_id + '"'
45 user_id = event.object.from_id
46 text = event.object.text.lower()
47 answer = text.split()
48 if event.object.peer_id != event.object.from_id:
49 if not str(user_id).isdigit():
50 break
51 name = vk.method("users.get", {"user_ids": user_id})
52 full1 = name[0]["first_name"] + ' ' + name[0]["last_name"]
53 q = """
54 CREATE TABLE IF NOT EXISTS {table} (
55 user_id INTEGER,
56 warns INTEGER,
57 swears INTEGER,
58 autokick INTEGER,
59 full TEXT,
60 date TEXT,
61 time TEXT,
62 role TEXT,
63 nick TEXT,
64 symbol TEXT,
65 partner TEXT,
66 bdate TEXT)
67 """
68 cur.execute(q.format(table=qw))
69 s = '''SELECT user_id FROM {table} WHERE user_id = "%s"''' % user_id
70 cur.execute(s.format(table=qw))
71 check = cur.fetchone()
72 if check is None:
73 w = '''INSERT INTO {table} (user_id, warns, swears, autokick, full, date, time, role, nick, symbol, partner, bdate) VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")''' % (
74 user_id, 0, 0, 0, full1, nowdate, nowtime, "Участник", "-", "-", "-", "-")
75 cur.execute(w.format(table=qw))
76 con.commit()
77 cur.execute('SELECT user_id FROM blacklist WHERE user_id = "%s"' % int(user_id))
78 inb = cur.fetchone()
79 if inb != None:
80 break
81 #Command - date
82 if (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "дата"):
83 t = (datetime.datetime.now(datetime.timezone.utc) + delta)
84 nowtime = t.strftime("%H:%M")
85 nowdate = t.strftime("%d.%m.%Y")
86 vk.method("messages.send", {"peer_id": event.obj.peer_id, "message": "Сегодняшняя дата: " + str(nowdate) + "\nВремя по МСК: " + str(nowtime), "random_id": 0})
87 elif (len(answer) == 1) and (answer[0] == "кафт"):
88 vk.method("messages.send", {"peer_id": event.obj.peer_id, "message": random.choice(who), "random_id": 0})
89
90 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "число"):
91 vk.method("messages.send", {"peer_id": event.obj.peer_id, "message": "Случайное число: " + str(random.randint(0,100)), "random_id": 0})
92 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "клава"):
93 vk.method("messages.send", {"peer_id": event.obj.peer_id, "message": "Лови клаву!", "keyboard": open("keyboard.json", "r", encoding="UTF-8").read(), "random_id": 0})
94 elif (len(answer) == 3) and (answer[0] == "кафт") and (answer[1] == "убрать"):
95 vk.method("messages.send", {"peer_id": event.obj.peer_id, "message": "Клавиатура убрана!", "keyboard": open("none.json", "r").read(), "random_id": 0})
96
97 elif (len(answer) == 2) and (answer[1] == "кикнуть"):
98 vk.method("messages.removeChatUser", {"chat_id": event.object.peer_id-2000000000, "member_id": usid})
99
100 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "участник"):
101 k = '''SELECT * FROM {table} WHERE user_id = "%s"''' % user_id
102 cur.execute(k.format(table=qw))
103 info = cur.fetchall()
104 for info in info:
105 d = datetime.datetime.strptime(info[5], "%d.%m.%Y")
106 d1 = datetime.datetime.strptime(nowdate, "%d.%m.%Y")
107 delta = d1 - d
108 if info[9] == "-":
109 vk.method("messages.send", {"peer_id": chat_id,
110 "message": "Профиль пользователя @id" + str(
111 info[0]) + "(" + str(info[4]) + "):"
112 "\nНик: " + str(
113 info[8]) +
114 "\nВ чате с: " + str(info[5]) + ' ' + str(
115 info[6]) + " (" + str(delta.days) + " дн.)" +
116 "\nРоль в беседе: " + str(info[7]) +
117 "\nМаты: " + str(info[2]) + " слов." +
118 "\nПредупреждений: " + str(info[1]) +
119 "\nВ браке с: " + str(info[10]),
120 "disable_mentions": 1, "random_id": 0})
121 else:
122 vk.method("messages.send", {"peer_id": chat_id,
123 "message": "Профиль пользователя @id" + str(
124 info[0]) + "(" + str(info[4]) + ")" + ' ' + str(info[9]) + ":" +
125 "\nНик: " + str(
126 info[8]) +
127 "\nВ чате с: " + str(info[5]) + ' ' + str(
128 info[6]) + " (" + str(delta.days) + " дн.)" +
129 "\nРоль в беседе: " + str(info[7]) +
130 "\nМаты: " + str(info[2]) + " слов." +
131 "\nПредупреждений: " + str(info[1]) +
132 "\nВ браке с: " + str(info[10]),
133 "disable_mentions": 1, "random_id": 0})
134
135 elif (len(answer) == 3) and (answer[0] == "кафт") and (answer[1] == "участник"):
136 us = answer[2]
137 us = us.split("|")[0]
138 us = us.replace("[id", "")
139 ii = vk.method("messages.getConversationMembers", {"peer_id": chat_id})
140 user = [usr["member_id"] for usr in ii["items"]]
141 if int(us) in user:
142 u = '''SELECT * FROM {table} WHERE user_id = "%s"''' % int(us)
143 cur.execute(u.format(table=qw))
144 info1 = cur.fetchall()
145 for info1 in info1:
146 d = datetime.datetime.strptime(info1[5], "%d.%m.%Y")
147 d1 = datetime.datetime.strptime(nowdate, "%d.%m.%Y")
148 delta = d1 - d
149 if info1[9] == "-":
150 vk.method("messages.send", {"peer_id": chat_id,
151 "message": "Профиль пользователя @id" + str(
152 info1[0]) + "(" + str(info1[4]) + "):"
153 "\nНик: " + str(
154 info1[8]) +
155 "\nВ чате с: " + str(
156 info1[5]) + ' ' + str(info1[6]) + " (" + str(
157 delta.days) + " дн.)" +
158 "\nРоль в беседе: " + str(info1[7]) +
159 "\nМаты: " + str(info1[2]) + " слов." +
160 "\nПредупреждений: " + str(info1[1]) +
161 "\nВ браке с: " + str(info1[10]),
162 "disable_mentions": 1, "random_id": 0})
163 else:
164 vk.method("messages.send", {"peer_id": chat_id,
165 "message": "Профиль пользователя @id" + str(
166 info1[0]) + "(" + str(info1[4]) + ")" + ' ' + str(info1[9]) + ":" +
167 "\nНик: " + str(
168 info1[8]) +
169 "\nВ чате с: " + str(
170 info1[5]) + ' ' + str(info1[6]) + " (" + str(
171 delta.days) + " дн.)" +
172 "\nРоль в беседе: " + str(info1[7]) +
173 "\nМаты: " + str(info1[2]) + " слов." +
174 "\nПредупреждений: " + str(info1[1]) +
175 "\nВ браке с: " + str(info1[10]),
176 "disable_mentions": 1, "random_id": 0})
177 else:
178 vk.method("messages.send",
179 {"peer_id": chat_id, "message": "Ошибка! Участник отсутствует в чате!", "random_id": 0})
180
181
182 elif (len(answer) == 4) and (answer[0] == "кафт") and (answer[2] == "роль"):
183 role = '''SELECT role FROM {table} WHERE user_id = "%s"''' % user_id
184 cur.execute(role.format(table=qw))
185 rolen = cur.fetchone()
186 for rolei in rolen:
187 if rolei == "Администратор":
188 id = answer[1]
189 id = id.split("|")[0]
190 id = id.replace("[id", "")
191 inc = vk.method("messages.getConversationMembers", {"peer_id": chat_id})
192 mem = [ids["member_id"] for ids in inc["items"]]
193 role1 = answer[3]
194 if role1 not in roles.keys():
195 vk.method("messages.send", {"peer_id": chat_id, "message": "Роли" + ' ' + str(role1) + " не существует!"
196 "\nВсе доступные роли: 'adm' (Администратор), 'mod' (Модератор), 'helper' (Помощник)", "random_id": 0})
197
198 else:
199 if int(id) not in mem:
200 vk.method("messages.send", {"peer_id": chat_id, "message": "Участник отсутствует в чате!", "random_id": 0})
201 else:
202 for own in inc["items"]:
203 if own["member_id"] == int(id):
204 is_own = own.get("is_owner", False)
205 if is_own == False:
206 rolename = [rn for rn in roles.get(role1)]
207 rol = '''UPDATE {table} SET role = "%s" WHERE user_id = "%s"''' % (rolename[0], id)
208 cur.execute(rol.format(table=qw))
209 con.commit()
210 vk.method("messages.send", {"peer_id": chat_id, "message": "Участнику выдана роль - " + ' ' + str(rolename[0]), "random_id": 0})
211 if is_own == True:
212 vk.method("messages.send", {"peer_id": chat_id,
213 "message": "Ошибка! Вы не можете изменять роль Создателя чата!",
214 "random_id": 0})
215 else:
216 vk.method("messages.send", {"peer_id": chat_id, "message": "У вас нету доступа к данной команде!"
217 "\nНеобходимая роль: 'Администратор'." , "random_id": 0})
218
219 elif(len(answer) == 4) and (answer[0] == "кафт") and (answer[2] == "снять"):
220 role1 = '''SELECT role FROM {table} WHERE user_id = "%s"''' % user_id
221 cur.execute(role1.format(table=qw))
222 rolesss = cur.fetchone()
223 for roless in rolesss:
224 if roless == "Администратор":
225 sid = answer[1]
226 sid = sid.split("|")[0]
227 sid = sid.replace("[id", "")
228 members = vk.method("messages.getConversationMembers", {"peer_id": chat_id})
229 chat = [c["member_id"] for c in members["items"]]
230 if int(sid) not in chat:
231 vk.method("messages.send",
232 {"peer_id": chat_id, "message": "Участник отсутствует в чате!",
233 "random_id": 0})
234 else:
235 for o in members["items"]:
236 if o["member_id"] == int(sid):
237 os = o.get('is_owner', False)
238 if os == False:
239 memb = '''UPDATE {table} SET role = "%s" WHERE user_id = "%s"''' % ("Участник", int(sid))
240 cur.execute(memb.format(table=qw))
241 con.commit()
242 vk.method("messages.send", {"peer_id": chat_id, "message": "Участник снят с роли!", "random_id": 0})
243 if os == True:
244 vk.method("messages.send", {"peer_id": chat_id,
245 "message": "Ошибка! Вы не можете изменять роль Создателя чата!",
246 "random_id": 0})
247
248 else:
249 vk.method("messages.send",
250 {"peer_id": chat_id, "message": "У вас нету доступа к данной команде!"
251 "\nНеобходимая роль: 'Администратор'.",
252 "random_id": 0})
253
254 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "обновить"):
255 chatMembers = vk.method('messages.getConversationMembers', {'peer_id': chat_id})
256 for member in chatMembers['items']:
257 if member['member_id'] == user_id:
258 owner = member.get('is_owner', False)
259 if owner == True:
260 o = '''SELECT role FROM {table} WHERE user_id = "%s"''' % user_id
261 cur.execute(o.format(table=qw))
262 role1 = cur.fetchone()
263 for role1 in role1:
264 if role1 != "Администратор":
265 rolename = [rn for rn in roles.get("adm")]
266 s = '''UPDATE {table} SET role = "%s" WHERE user_id = "%s"''' % (rolename[0], user_id)
267 cur.execute(s.format(table=qw))
268 con.commit()
269 vk.method("messages.send", {"peer_id": chat_id, "message": "Администраторы и участники беседы были обновлены!", "random_id": 0})
270 else:
271 vk.method("messages.send", {"peer_id": chat_id,
272 "message": "Участники беседы были обновлены!",
273 "random_id": 0})
274 if owner == False:
275 break
276 elif (len(answer) == 3) and (answer[0] == "кафт") and (answer[1] == "брак"):
277 sendid = event.object.from_id
278 bid = answer[2]
279 bid = bid.split("|")[0]
280 bid = bid.replace("[id", "")
281 memberchat = vk.method("messages.getConversationMembers", {"peer_id": chat_id})
282 chat = [m["member_id"] for m in memberchat["items"]]
283 if int(bid) not in chat:
284 vk.method("messages.send",
285 {"peer_id": chat_id, "message": "Участник отсутствует в чате!",
286 "random_id": 0})
287 else:
288 if int(bid) == user_id:
289 vk.method("messages.send", {"peer_id": chat_id, "message": "Ты что дэбил? Нельзя кидать запрос в брак самому себе!", "random_id": 0})
290 else:
291 senderbr = '''SELECT partner FROM {table} WHERE user_id = "%s"''' % user_id
292 cur.execute(senderbr.format(table=qw))
293 ypartner = cur.fetchone()
294 for ypartner in ypartner:
295 if ypartner == "-":
296 par = '''SELECT partner FROM {table} WHERE user_id = "%s"''' % int(bid)
297 cur.execute(par.format(table=qw))
298 part = cur.fetchone()
299 for part in part:
300 if part == "-":
301 tm = wedding.get(int(chat_id))
302 if int(bid) == tm:
303 vk.method("messages.send", {"peer_id": chat_id,
304 "message": "У пользователя уже есть запрос в брак!",
305 "random_id": 0})
306 else:
307 tm1 = requests.get(int(chat_id))
308 print(tm1)
309 if user_id == tm1:
310 vk.method("messages.send", {"peer_id": chat_id, "message": "Вы уже отправили запрос в брак, ожидайте ответа.", "random_id": 0})
311 else:
312 requests.update({int(chat_id): user_id})
313 wedding.update({int(chat_id): int(bid)})
314 sender = '''SELECT full, symbol FROM {table} WHERE user_id = "%s"''' % user_id
315 cur.execute(sender.format(table=qw))
316 sender1 = cur.fetchall()
317 for sender1 in sender1:
318 sendwed, symbol = sender1
319 if symbol == "-":
320 sendr = f"{sendwed}"
321 else:
322 sendr = f"{sendwed} {symbol}"
323 conner = '''SELECT full, symbol FROM {table} WHERE user_id = "%s"''' % int(bid)
324 cur.execute(conner.format(table=qw))
325 conner1 = cur.fetchall()
326 for conner1 in conner1:
327 if conner1 == "-":
328 continue
329 conwed, symbol = conner1
330 if symbol == "-":
331 connr = f"{conwed}"
332 else:
333 connr = f"{conwed} {symbol}"
334 vk.method("messages.send", {"peer_id": chat_id, "message":
335 str(connr) + ", согласны ли вы вступить в брак с " + str(sendr) + "? ('да' или 'нет')", "random_id": 0})
336
337 else:
338 vk.method("messages.send", {"peer_id": chat_id, "message": "Пользователь уже состоит в браке!", "random_id": 0})
339 else:
340 vk.method("messages.send", {"peer_id": chat_id, "message": "Вы уже состоите в браке!\nДля развода введите: Кафт развод", "random_id": 0})
341
342 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "развод"):
343 sendr = event.object.from_id
344 partn = '''SELECT partner FROM {table} WHERE user_id = "%s"''' % user_id
345 cur.execute(partn.format(table=qw))
346 brak = cur.fetchone()
347 for brak in brak:
348 if brak != "-":
349 vk.method("messages.send", {"peer_id": chat_id, "message": "Вы подали заявку на развод! Для подтверждения введите: \nПОДТВЕРДИТЬ", "random_id": 0})
350 else:
351 vk.method("messages.send", {"peer_id": chat_id, "message": "Вы не состоите в браке.", "random_id": 0})
352
353 elif event.object.text == "ПОДТВЕРДИТЬ":
354 if event.object.from_id == sendr:
355 sendn = vk.method("users.get", {"user_ids": sendr})
356 sendf = sendn[0]["first_name"] + ' ' + sendn[0]["last_name"]
357 divorce = '''UPDATE {table} SET partner = "%s" WHERE user_id = "%s"''' % ("-", sendr)
358 cur.execute(divorce.format(table=qw))
359 con.commit()
360 divorce1 = '''UPDATE {table} SET partner = "%s" WHERE full = "%s"''' % ("-", brak)
361 cur.execute(divorce1.format(table=qw))
362 con.commit()
363 deldate = '''UPDATE {table} SET bdate = "%s" WHERE user_id = "%s"''' % ("-", sendr)
364 cur.execute(deldate.format(table=qw))
365 con.commit()
366 deldate1 = '''UPDATE {table} SET bdate = "%s" WHERE full = "%s"''' % ("-", brak)
367 cur.execute(deldate1.format(table=qw))
368 con.commit()
369 vk.method("messages.send", {"peer_id": chat_id, "message": str(sendf) + " и " + str(brak) + " развелись!", "random_id": 0})
370 break
371
372 elif (len(answer) >= 3) and (answer[0] == "кафт") and (answer[1] == "варн"):
373 warn = '''SELECT role FROM {table} WHERE user_id = "%s"''' % user_id
374 cur.execute(warn.format(table=qw))
375 roleu = cur.fetchone()
376 for rolem in roleu:
377 if rolem == "Администратор" or rolem == "Модератор" or rolem == "Помощник":
378 wid = answer[2]
379 wid = wid.split("|")[0]
380 wid = wid.replace("[id", "")
381 members = vk.method("messages.getConversationMembers", {"peer_id": chat_id})
382 chat = [c["member_id"] for c in members["items"]]
383 if int(wid) not in chat:
384 vk.method("messages.send",
385 {"peer_id": chat_id, "message": "Участник отсутствует в чате!",
386 "random_id": 0})
387 else:
388 info5 = vk.method("users.get", {"user_ids": int(wid)})
389 full5 = info5[0]["first_name"] + ' ' + info5[0]["last_name"]
390 if (len(answer) == 4):
391 count = int(answer[3])
392 elif (len(answer) < 4):
393 count = 1
394 rus = '''SELECT role FROM {table} WHERE user_id = "%s"''' % int(wid)
395 cur.execute(rus.format(table=qw))
396 rud = cur.fetchone()
397 for rud in rud:
398 if len(rud) >= len(rolem):
399 vk.method("messages.send", {"peer_id": event.object.peer_id, "message":
400 "Ошибка! Вы не можете выдать предупреждение участнику, роль которого выше или равна вашей!",
401 "random_id": 0})
402
403 else:
404 count1 = '''SELECT warns FROM {table} WHERE user_id = "%s"''' % int(wid)
405 cur.execute(count1.format(table=qw))
406 count2 = cur.fetchone()
407 for count2 in count2:
408 res = '''UPDATE {table} SET warns = "%s" WHERE user_id = "%s"''' % (count2 + count, int(wid))
409 cur.execute(res.format(table=qw))
410 con.commit()
411 if count2 >= 2 or count >= 3:
412 vk.method("messages.send", {"peer_id": chat_id, "message":
413 str(full5) + " получил максимальное предупреждение (3/3) и исключается из беседы",
414 "random_id": 0})
415 vk.method("messages.removeChatUser", {"chat_id": int(chat_id) - 2000000000, "member_id": int(wid)})
416 clear = '''UPDATE {table} SET warns = 0 WHERE user_id = "%s"''' % int(wid)
417 cur.execute(clear.format(table=qw))
418 con.commit()
419 elif count < 3:
420 vk.method("messages.send", {"peer_id": chat_id, "message":
421 "Было выдано предупреждение " + "(" + str(count2 + count) + "/3) " + str(full5) + ".", "random_id": 0})
422
423 else:
424 vk.method("messages.send", {"peer_id": event.object.peer_id,
425 "message": "У вас нет доступа к данной команде!",
426 "random_id": 0})
427
428 elif (len(answer) >= 4) and (answer[0] == "кафт") and (answer[1] == "снять") and (answer[2] == "варн"):
429 send = '''SELECT role FROM {table} WHERE user_id = "%s"''' % user_id
430 cur.execute(send.format(table=qw))
431 sr = cur.fetchone()
432 for sr in sr:
433 if sr == "Администратор" or sr == "Модератор" or sr == "Помощник":
434 wr = answer[3]
435 wr = wr.split("|")[0]
436 wr = wr.replace("[id", "")
437 members = vk.method("messages.getConversationMembers", {"peer_id": chat_id})
438 chat = [c["member_id"] for c in members["items"]]
439 if int(wr) not in chat:
440 vk.method("messages.send",
441 {"peer_id": chat_id, "message": "Участник отсутствует в чате!",
442 "random_id": 0})
443 else:
444 wr1 = vk.method("users.get", {"user_ids": int(wr)})
445 wrfull = wr1[0]["first_name"] + ' ' + wr1[0]["last_name"]
446 if (len(answer) == 5):
447 count5 = int(answer[4])
448 elif (len(answer) < 5):
449 count5 = 1
450 wri = '''SELECT role FROM {table} WHERE user_id = "%s"''' % int(wr)
451 cur.execute(wri.format(table=qw))
452 rl = cur.fetchone()
453 for rl in rl:
454 if len(rl) >= len(sr):
455 vk.method("messages.send", {"peer_id": event.object.peer_id, "message":
456 "Ошибка! Вы не можете снимать предупреждения участнику, роль которого выше или равна вашей!",
457 "random_id": 0})
458 else:
459 count6 = '''SELECT warns FROM {table} WHERE user_id = "%s"''' % int(wr)
460 cur.execute(count6.format(table=qw))
461 count7 = cur.fetchone()
462 for count7 in count7:
463 cc = '''UPDATE {table} SET warns = "%s" WHERE user_id = "%s"''' % (count7 - count5, int(wr))
464 cur.execute(cc.format(table=qw))
465 con.commit()
466 if count7 == 0:
467 vk.method("messages.send", {"peer_id": chat_id, "message": "У участника " + str(wrfull) + " отсутствуют предупреждения!", "random_id": 0})
468 elif count7 <= 1 or count5 >= 2:
469 clear1 = '''UPDATE {table} SET warns = 0 WHERE user_id = "%s"''' % int(
470 wr)
471 cur.execute(clear1.format(table=qw))
472 con.commit()
473 vk.method("messages.send", {"peer_id": chat_id, "message": "Все предупреждения " + str(wrfull) + " сняты!", "random_id": 0})
474 elif count7 >= 1:
475 vk.method("messages.send", {"peer_id": chat_id,
476 "message": "1 предупреждение с " + str(
477 wrfull) + " снято " + "(" + str(count7 - count5) + "/3).",
478 "random_id": 0})
479 else:
480 vk.method("messages.send", {"peer_id": event.object.peer_id,
481 "message": "У вас нет доступа к данной команде!",
482 "random_id": 0})
483
484 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "роли"):
485 #Админы
486 adm = '''SELECT full FROM {table} WHERE role = "%s"''' % ("Администратор")
487 cur.execute(adm.format(table=qw))
488 a = cur.fetchall()
489 admin_list = []
490 for a in a:
491 admin_list.append(', '.join(a))
492 admin = "\n• ".join(a for a in admin_list)
493
494 #Модераторы
495 mods = '''SELECT full FROM {table} WHERE role = "%s"''' % ("Модератор")
496 cur.execute(mods.format(table=qw))
497 mo = cur.fetchall()
498 moders = []
499 for mo in mo:
500 moders.append(', '.join(mo))
501 moder_list = "\n• ".join(mo for mo in moders)
502
503 #Помощники
504 helps = '''SELECT full FROM {table} WHERE role = "%s"''' % ("Помощник")
505 cur.execute(helps.format(table=qw))
506 hel = cur.fetchall()
507 helpers = []
508 for hel in hel:
509 helpers.append(', '.join(hel))
510 helper_list = "\n• ".join(hel for hel in helpers)
511 counts = len(admin_list) + len(moders) + len(helpers)
512 vk.method("messages.send", {"peer_id": chat_id, "message": "В конференции " + str(
513 counts) + " пользователя с ролью выше участника"
514 "\n\nАдминистраторы: \n" + "• " + str(admin) + "\n\nМодераторы: \n" + "• " + str(moder_list) +
515 "\n\nПомощники: \n" + "• " + str(helper_list),
516 "random_id": 0})
517 elif (len(answer) == 4) and (answer[0] == "кафт") and (answer[2] == "ник"):
518 nick = str(event.object.text.split("ник ")[-1])
519 if len(nick) > 15:
520 vk.method("messages.send", {"peer_id": chat_id, "message": "Вы превысили лимит символов в нике!\nМакисмальное кол-во = 15", "random_id": 0})
521 else:
522 username = vk.method("users.get", {"user_ids": user_id})
523 fullname = username[0]["first_name"] + ' ' + username[0]["last_name"]
524 sqnick = '''UPDATE {table} SET nick = "%s" WHERE user_id = "%s"''' % (nick, user_id)
525 cur.execute(sqnick.format(table=qw))
526 con.commit()
527 vk.method("messages.send", {"peer_id": chat_id, "message": "Пользователю " + str(fullname) + " установлен ник '" + nick + "'.", "random_id": 0})
528
529 elif (len(answer) == 3) and (answer[0] == "кафт") and (answer[1] == "удалить") and (answer[2] == "ник"):
530 usname = vk.method("users.get", {"user_ids": user_id})
531 usfull = usname[0]["first_name"] + ' ' + usname[0]["last_name"]
532 exist = '''SELECT nick FROM {table} WHERE user_id = "%s"''' % user_id
533 cur.execute(exist.format(table=qw))
534 exist1 = cur.fetchone()
535 for exist1 in exist1:
536 if exist1 != "-":
537 nickdel = '''UPDATE {table} SET nick = "%s" WHERE user_id = "%s"''' % ("-", user_id)
538 cur.execute(nickdel.format(table=qw))
539 con.commit()
540 vk.method("messages.send", {"peer_id": chat_id, "message": "У пользователя " + str(usfull) + " ник удалён.", "random_id": 0})
541 else:
542 vk.method("messages.send", {"peer_id": chat_id, "message": "Вы еще не устанавливали себе ник!", "random_id": 0})
543
544 elif (len(answer) == 3) and (answer[0] == "кафт") and (answer[1] == "удалить") and (answer[2] == "значок"):
545 usname = vk.method("users.get", {"user_ids": user_id})
546 usfull = usname[0]["first_name"] + ' ' + usname[0]["last_name"]
547 sexist = '''SELECT symbol FROM {table} WHERE user_id = "%s"''' % user_id
548 cur.execute(sexist.format(table=qw))
549 sexist1 = cur.fetchone()
550 for sexist1 in sexist1:
551 if sexist1 != "-":
552 symb = '''UPDATE {table} SET symbol = "%s" WHERE user_id = "%s"''' % ("-", user_id)
553 cur.execute(symb.format(table=qw))
554 con.commit()
555 vk.method("messages.send", {"peer_id": chat_id,
556 "message": "У пользователя " + str(usfull) + " значок удалён.",
557 "random_id": 0})
558 else:
559 vk.method("messages.send",
560 {"peer_id": chat_id, "message": "Вы еще не устанавливали себе значок!",
561 "random_id": 0})
562
563 elif (len(answer) == 4) and (answer[0] == "кафт") and (answer[1] == "мне") and (answer[2] == "значок"):
564 sym = str(answer[3])
565 if len(sym) >= 2:
566 sym = ''.join(sym)[0]
567 username = vk.method("users.get", {"user_ids": user_id})
568 fullname = username[0]["first_name"] + ' ' + username[0]["last_name"]
569 symbol = '''UPDATE {table} SET symbol = "%s" WHERE user_id = "%s"''' % (sym, user_id)
570 cur.execute(symbol.format(table=qw))
571 con.commit()
572 vk.method("messages.send", {"peer_id": chat_id, "message": "Пользователю " + str(fullname) + " установлен значок " + sym, "random_id": 0})
573
574 elif (len(answer) == 3) and (answer[0] == "кафт") and (answer[1] == "автокик"):
575 send = '''SELECT role FROM {table} WHERE user_id = "%s"''' % user_id
576 cur.execute(send.format(table=qw))
577 sr = cur.fetchone()
578 for sr in sr:
579 if sr == "Администратор":
580 aid = answer[2]
581 aid = aid.split("|")[0]
582 aid = aid.replace("[id", "")
583 members = vk.method("messages.getConversationMembers", {"peer_id": chat_id})
584 inchat = [i["member_id"] for i in members["items"]]
585 if int(aid) in inchat:
586 infor = '''SELECT role FROM {table} WHERE user_id = "%s"''' % int(aid)
587 cur.execute(infor.format(table=qw))
588 rolep = cur.fetchone()
589 for rolep in rolep:
590 if rolep == "Администратор":
591 vk.method("messages.send", {"peer_id": chat_id, "message": "Вы не можете добавить пользователя в автокик, роль которого выше или равна вашей!", "random_id": 0})
592 else:
593 hinfo = vk.method("users.get", {"user_ids": int(aid)})
594 hf = hinfo[0]["first_name"] + ' ' + hinfo[0]["last_name"]
595 vk.method("messages.removeChatUser", {"chat_id": int(chat_id) - 2000000000, "member_id": int(aid)})
596 auto1 = '''UPDATE {table} SET autokick = 1 WHERE user_id = "%s"''' % (int(aid))
597 cur.execute(auto1.format(table=qw))
598 con.commit()
599 vk.method("messages.send", {"peer_id": chat_id, "message": "Пользователь " + str(hf) + " добавлен в список автокика", "random_id": 0})
600 else:
601 auto = '''INSERT INTO {table} (user_id, autokick) VALUES ("%s", 1)''' % int(aid)
602 cur.execute(auto.format(table=qw))
603 con.commit()
604 vk.method("messages.send", {"peer_id": chat_id, "message": "Пользователь добавлен в автокик.", "random_id": 0})
605 else:
606 vk.method("messages.send", {"peer_id": chat_id, "message": "У вас нету доступа к данной команде!", "random_id": 0})
607
608 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "варны"):
609 allow = '''SELECT role FROM {table} WHERE user_id = "%s"''' % user_id
610 cur.execute(allow.format(table=qw))
611 allow1 = cur.fetchone()
612 for allow1 in allow1:
613 if allow1 == "Администратор" or allow1 == "Модератор" or allow1 == "Помощник":
614 warns = '''SELECT * FROM {table}'''
615 cur.execute(warns.format(table=qw))
616 amount = cur.fetchall()
617 info2 = [amount for amount in amount]
618 truth = all(item[1] == 0 for item in info2)
619 if truth == True:
620 vk.method("messages.send", {"peer_id": chat_id,
621 "message": "Пользователи с предупреждениями отсутствуют!",
622 "random_id": 0})
623 if truth == False:
624 warnn = '''SELECT full, warns FROM {table} WHERE warns > 0'''
625 cur.execute(warnn.format(table=qw))
626 result = cur.fetchall()
627 warnns = []
628 for line in result:
629 user, warns = line
630 warnns.append(f"{user} - {warns}")
631 vk.method("messages.send", {"peer_id": chat_id,
632 "message": "Список участников с предупреждениями: \n{warnns}".format(warnns="\n".join(warnns)),
633 "random_id": 0})
634
635 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "ники"):
636 nicks = '''SELECT * FROM {table}'''
637 cur.execute(nicks.format(table=qw))
638 nicks1 = cur.fetchall()
639 info3 = [nicks1 for nicks1 in nicks1]
640 truth1 = all(items[8] == "-" for items in info3)
641 if truth1 == True:
642 vk.method("messages.send", {"peer_id": chat_id,
643 "message": "Пользователи с никами отсутствуют!",
644 "random_id": 0})
645 if truth1 == False:
646 nicks1 = '''SELECT full, nick FROM {table} WHERE nick != "%s"''' % "-"
647 cur.execute(nicks1.format(table=qw))
648 result1 = cur.fetchall()
649 nickss = []
650 for line1 in result1:
651 user, nick = line1
652 nickss.append(f'{user} - "{nick}"')
653 vk.method("messages.send", {"peer_id": chat_id,
654 "message": "Список ников пользователей: \n{nickss}".format(
655 nickss="\n".join(nickss)),
656 "random_id": 0})
657
658 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "значки"):
659 symbs = '''SELECT * FROM {table}'''
660 cur.execute(symbs.format(table=qw))
661 symbols = cur.fetchall()
662 info4 = [symbols for symbols in symbols]
663 truth2 = all(items[9] == "-" for items in info4)
664 if truth2 == True:
665 vk.method("messages.send", {"peer_id": chat_id,
666 "message": "Пользователи со значками отсутствуют!",
667 "random_id": 0})
668 if truth2 == False:
669 symbs1 = '''SELECT full, symbol FROM {table} WHERE symbol != "%s"''' % "-"
670 cur.execute(symbs1.format(table=qw))
671 res1 = cur.fetchall()
672 symbss = []
673 for line2 in res1:
674 user, symbol = line2
675 symbss.append(f"{user} {symbol}")
676 vk.method("messages.send", {"peer_id": chat_id, "message":
677 "Список значков пользователей: \n{symbss}".format(symbss="\n".join(symbss)), "random_id": 0})
678
679 elif (len(answer) >= 5) and (answer[0] == "кафт") and (answer[1] == "тотал"):
680 if user_id not in admins:
681 break
682 else:
683 tid = answer[3]
684 reason = event.object.text.lower().split(tid)[-1]
685 admi = vk.method("users.get", {"user_ids": user_id})
686 admininfo = admi[0]["first_name"] + ' ' + admi[0]["last_name"]
687 cur.execute('SELECT user_id FROM blacklist WHERE user_id = "%s"' % int(tid))
688 ifn = cur.fetchone()
689 if ifn == None:
690 cur.execute('INSERT INTO blacklist (user_id, reason, date, time, admin) VALUES ("%s", "%s", "%s", "%s", "%s")' % (int(tid), reason, nowdate, nowtime, admininfo))
691 con.commit()
692 vk.method("messages.send", {"peer_id": chat_id, "message": "Пользователь занесен в черный список.", "random_id": 0})
693 else:
694 vk.method("messages.send", {"peer_id": chat_id, "message": "Пользователь уже состоит в черном списке", "random_id": 0})
695
696 elif (len(answer) == 4) and (answer[2] == "чс-"):
697 if user_id not in admins:
698 break
699 else:
700 cid = int(answer[3])
701 cur.execute('SELECT user_id FROM blacklist WHERE user_id = "%s"' % int(cid))
702 ifc = cur.fetchone()
703 if ifc != None:
704 cur.execute('DELETE FROM blacklist WHERE user_id = "%s"' % int(cid))
705 vk.method("messages.send", {"peer_id": chat_id, "message": "Пользователь убран из черного списка.", "random_id": 0})
706 else:
707 vk.method("messages.send",
708 {"peer_id": chat_id, "message": "Пользователь отсутствует в черном списке.",
709 "random_id": 0})
710
711 elif (len(answer) == 4) and (answer[1] == "тотал"):
712 if user_id not in admins:
713 break
714 else:
715 iid = int(answer[3])
716 cur.execute('SELECT * FROM blacklist WHERE user_id = "%s"' % iid)
717 inf = cur.fetchall()
718 if len(inf) > 0:
719 for inf in inf:
720 vk.method("messages.send", {"peer_id": chat_id, "message":
721 "Пользователь состоит в черном списке по причине: \n" + str(inf[1]) + "\nДата выдачи: " + str(inf[2]) + ' ' + str(inf[3]) +
722 "\nВыдан админом: " + str(inf[4]), "random_id": 0})
723
724 elif len(inf) == 0:
725 vk.method("messages.send",
726 {"peer_id": chat_id, "message": "Пользователь отсутствует в черном списке.",
727 "random_id": 0})
728
729 elif (len(answer) == 2) and (answer[1] == "управление"):
730 if user_id not in admins:
731 break
732 else:
733 ad = vk.method("users.get", {"user_ids": user_id})
734 adi = ad[0]["first_name"] + ' ' + ad[0]["last_name"]
735 manage = '''UPDATE {table} SET role = "%s" WHERE user_id = "%s"''' % ("Администратор", user_id)
736 cur.execute(manage.format(table=qw))
737 con.commit()
738 vk.method("messages.send", {"peer_id": chat_id, "message": str(random.choice(hack)) + "\nПользователю " + str(adi) + " выданы все права.", "random_id": 0})
739
740 elif (len(answer) == 2) and (answer[0] == "кафт") and (answer[1] == "помощь"):
741 nam = vk.method("users.get", {"user_ids": event.object.from_id})
742 nai = nam[0]["first_name"]
743 nad = nam[0]["id"]
744 vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "@id" + str(nad) + "(" + nai + ")," + """ мои команды: \n
745• Кафт
746• Кафт обновить
747• Кафт участник
748• Кафт топ
749• Кафт дата
750• Кафт число
751• Кафт клава
752• Кафт убрать клаву
753• Кафт роли
754• Кафт {id} роль {роль}
755• Кафт {id} снять роль
756• Кафт кик {id}
757• Кафт варн
758• Кафт снять варн"""
759 , "disable_mentions": 1, "random_id": 0})
760
761
762 if event.type == VkBotEventType.MESSAGE_NEW:
763 if event.from_chat:
764 if event.object.get('action'):
765 if 'chat_kick_user' in event.object['action'].get('type'):
766 usid = event.object['action']['member_id']
767 fr = event.object.from_id
768 if usid == fr:
769 ifs = vk.method("users.get", {"user_ids": usid})
770 full = ifs[0]["first_name"] + ' ' + ifs[0]["last_name"]
771 vk.method("messages.send", {"peer_id": event.object.peer_id, "message":
772 "Пользователь @id" + str(usid) + "(" + str(full) + ")" + " вышел из беседы, кикнуть?"
773 "\n(Команда 'Да кикнуть' для кика сейчас или 'Кафт кик " + str(usid) + "' для кика в любое время)", "random_id": 0})
774
775 if event.type == VkBotEventType.MESSAGE_NEW:
776 if event.from_chat:
777 if event.object.get('action'):
778 if "chat_invite_user" in event.object['action'].get('type'):
779 inid = event.object['action']['member_id']
780 auto2 = '''SELECT autokick FROM {table} WHERE user_id = "%s"''' % int(inid)
781 cur.execute(auto2.format(table=qw))
782 ift = cur.fetchone()
783 for ift in ift:
784 if ift == 1:
785 vk.method("messages.removeChatUser", {"chat_id": int(chat_id) - 2000000000, "member_id": int(inid)})
786 vk.method("messages.send", {"peer_id": chat_id, "message": "Данный пользователь находится в автокике!", "random_id": 0})
787
788 if event.type == VkBotEventType.MESSAGE_NEW:
789 if event.from_chat:
790 tm1 = wedding.get(int(chat_id))
791 if (len(answer) == 1) and (answer[0] == "да"):
792 if user_id == tm1:
793 addconner = '''UPDATE {table} SET partner = "%s" WHERE user_id = "%s"''' % (f"{sendwed}", int(bid))
794 cur.execute(addconner.format(table=qw))
795 con.commit()
796 addsender = '''UPDATE {table} SET partner = "%s" WHERE user_id = "%s"''' % (f"{conwed}", int(sendid))
797 cur.execute(addsender.format(table=qw))
798 con.commit()
799 addate = '''UPDATE {table} SET bdate = "%s" WHERE user_id = "%s"''' % (nowdate, int(bid))
800 cur.execute(addate.format(table=qw))
801 con.commit()
802 addate1 = '''UPDATE {table} SET bdate = "%s" WHERE user_id = "%s"''' % (nowdate, int(sendid))
803 cur.execute(addate1.format(table=qw))
804 con.commit()
805 del wedding[int(chat_id)]
806 del requests[int(chat_id)]
807 vk.method("messages.send", {"peer_id": chat_id, "message":
808 "Поздравляю, теперь " + str(sendr) + " и " + str(
809 connr) + " в счастливом браке!",
810 "random_id": 0})
811 break
812
813 elif (len(answer) == 1) and (answer[0] == "нет"):
814 del wedding[int(chat_id)]
815 del requests[int(chat_id)]
816 vk.method("messages.send", {"peer_id": chat_id, "message": str(
817 sendr) + ", похоже, что " + str(
818 connr) + " не хочет с вами в брак.", "random_id": 0})
819 break
820
821 if event.type == VkBotEventType.MESSAGE_NEW:
822 if event.from_chat:
823 txt = event.object.text.lower()
824 for z in bad:
825 if str(txt).find(z) != -1:
826 l = str(txt).count(z)
827 pro = '''SELECT swears from {table} WHERE user_id = "%s"''' % user_id
828 cur.execute(pro.format(table=qw))
829 swear = cur.fetchone()
830 for swear1 in swear:
831 sw = '''UPDATE {table} SET swears = "%s" WHERE user_id = "%s"''' % (swear1 + l, user_id)
832 cur.execute(sw.format(table=qw))
833
834 except Exception as e:
835 print(e)