Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import vk_api
- import random
- import requests
- import threading
- from threading import Thread
- from vk_api.longpoll import VkLongPoll, VkEventType, VkChatEventType
- limit = 3
- admins = [147084786, 583435863]
- muted = {}
- matidel = {}
- matiwarn = {}
- warnlist = {}
- mati = ['бля', 'еба', 'еби', 'ебё', 'ебо', 'ебу', 'сука', 'суки', 'хуй', 'хуи', 'хуе', 'хуя', 'пидор', 'пидр', 'соси', 'сосат', 'сосал']
- def main():
- session = vk_api.VkApi(token='5362e85e039b1ae543aedbab3a586833dd57b8dfb5e6932261c81a9a258498a237b2016ffdba17d5beb92')
- longpoll = VkLongPoll(session)
- vk = session.get_api()
- for event in longpoll.listen():
- if event.from_chat:
- try:
- otv = 0
- ms = event.text.lower()
- mst = event.text
- otv = vk.messages.getHistory(
- peer_id = event.peer_id,
- count = 1)['items'][0]['reply_message']['from_id']
- except:
- pass
- try:
- if ms.startswith('кик') == True and event.user_id in admins:
- gtt = [int(i.split('|')[0][3:]) for i in ms.split(' ')
- if i != ms.split(' ')[0]]
- class kickt(Thread):
- def __init__(self, name):
- Thread.__init__(self)
- self.name = name
- def run(self):
- vk.messages.removeChatUser(
- chat_id = event.chat_id,
- member_id = gtt[int(self.name)])
- for i in range(len(gtt)):
- kicker = kickt(i)
- kicker.start()
- if ms.startswith('мут') == True and event.user_id in admins:
- gtt = ms.split(' ')
- if gtt[1] != '':
- if event.chat_id in muted:
- if gtt[1].split('|')[0][3:] not in muted[event.chat_id]:
- muted[event.chat_id].append(gtt[1].split('|')[0][3:])
- vk.messages.send(
- chat_id = event.chat_id,
- message = '[id' + gtt[1].split('|')[0][3:] + '|Пользователь] получил мут.',
- random_id = 0)
- else:
- muted[event.chat_id].remove(gtt[1].split('|')[0][3:])
- vk.messages.send(
- chat_id = event.chat_id,
- message = 'С [id' + gtt[1].split('|')[0][3:] + '|пользователя] снят мут.',
- random_id = 0)
- else:
- muted[event.chat_id] = ['0']
- if gtt[1].split('|')[0][3:] not in muted[event.chat_id]:
- muted[event.chat_id].append(gtt[1].split('|')[0][3:])
- vk.messages.send(
- chat_id = event.chat_id,
- message = '[id' + gtt[1].split('|')[0][3:] + '|Пользователь] получил мут.',
- random_id = 0)
- else:
- muted[event.chat_id].remove(gtt[1].split('|')[0][3:])
- vk.messages.send(
- chat_id = event.chat_id,
- message = 'С [id' + gtt[1].split('|')[0][3:] + '|пользователя] снят мут.',
- random_id = 0)
- elif ms.startswith('мат наказание') == True and event.user_id in admins:
- gtt = ms.split(' ')
- if gtt[2] == "удалить":
- matidel[event.chat_id] = 1
- vk.messages.send(
- chat_id = event.chat_id,
- message = "Теперь маты будут удаляться",
- random_id = 0)
- elif gtt[2] == "пред":
- matiwarn[event.chat_id] = 1
- vk.messages.send(
- chat_id = event.chat_id,
- message = "Теперь за маты будут выдаваться предупреждения",
- random_id = 0)
- elif gtt[2] == "ничего":
- matiwarn[event.chat_id] = 0
- matidel[event.chat_id] = 0
- vk.messages.send(
- chat_id = event.chat_id,
- message = "Теперь маты будут игнорироваться.",
- random_id = 0)
- else:
- vk.messages.send(
- chat_id = event.chat_id,
- message = "Ничего не понял",
- random_id = 0)
- elif ms.startswith('пред') == True and event.user_id in admins:
- gtt = ms.split(' ')
- key = int()
- if gtt[1] != '':
- key = int(gtt[1].split('|')[0][3:])
- elif otv != 0:
- key = otv
- else:
- continue
- if event.chat_id not in warnlist:
- warnlist[event.chat_id] = {0: 0}
- if key in warnlist[event.chat_id]:
- warnlist[event.chat_id][key] += 1
- else:
- warnlist[event.chat_id][key] = 1
- if warnlist[event.chat_id][key] == limit:
- warnlist[event.chat_id][key] = 0
- vk.messages.removeChatUser(
- chat_id = event.chat_id,
- member_id = key)
- vk.messages.send(
- chat_id = event.chat_id,
- message = '[id' + str(key) + '|Пользователь] был исключён по достижению лимита предов (' + str(limit) + ').',
- random_id = 0)
- else:
- vk.messages.send(
- chat_id = event.chat_id,
- message = '[id' + str(key) + '|Пользователь] получил ' + str(warnlist[event.chat_id][key]) + '/3 предупреждений',
- random_id = 0)
- elif ms.startswith('разпред') == True and event.user_id in admins:
- gtt = ms.split(' ')
- key = int()
- if gtt[1] != '':
- key = int(gtt[1].split('|')[0][3:])
- elif otv != 0:
- key = otv
- else:
- continue
- if event.chat_id in warnlist and key in warnlist[event.chat_id]:
- warnlist[event.chat_id][key] = 0
- vk.messages.send(
- chat_id = event.chat_id,
- message = "С [id" + str(key) + "|пользователя] сняты все предупреждения.",
- random_id = 0)
- if event.chat_id in muted:
- if str(event.user_id) in muted[event.chat_id]:
- vk.messages.delete(
- message_ids = event.message_id,
- delete_for_all = 1)
- prov = [True if i in ms else False for i in mati]
- if True in prov:
- if event.chat_id in matidel:
- if matidel[event.chat_id] == 1:
- vk.messages.delete(
- message_ids = event.message_id,
- delete_for_all = 1)
- if event.chat_id in matiwarn:
- if matiwarn[event.chat_id] == 1:
- if event.chat_id not in warnlist:
- warnlist[event.chat_id] = {0: 0}
- if event.user_id in warnlist[event.chat_id]:
- warnlist[event.chat_id][event.user_id] += 1
- else:
- warnlist[event.chat_id][event.user_id] = 1
- if warnlist[event.chat_id][event.user_id] == limit:
- warnlist[event.chat_id][event.user_id] = 0
- vk.messages.removeChatUser(
- chat_id = event.chat_id,
- member_id = event.user_id)
- vk.messages.send(
- chat_id = event.chat_id,
- message = '[id' + str(event.user_id) + '|Пользователь] был исключён по достижению лимита предов (' + str(limit) + ').',
- random_id = 0)
- else:
- vk.messages.send(
- chat_id = event.chat_id,
- message = '[id' + str(event.user_id) + '|Пользователь] получил ' + str(warnlist[event.chat_id][event.user_id]) + '/3 предупреждений',
- random_id = 0)
- except:
- pass
- def main2():
- try:
- main()
- except vk_api.exceptions.Captcha:
- time.sleep(30)
- main2()
- except requests.exceptions.ConnectionError:
- time.sleep(2)
- main2()
- except vk_api.exceptions.ApiError as v:
- time.sleep(2)
- main2()
- except requests.exceptions.ReadTimeout:
- time.sleep(2)
- main2()
- if __name__ == '__main__':
- main2()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement