Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- # Cat Bot v0.2
- # Разработчик: Илья Коваленко ( https://vk.com/iluxa_koval )
- import vk_api
- import time
- #========================== Логин и пароль ==========================
- vk = vk_api.VkApi(login="****", password="****")
- vk.auth()
- values = {'out': 0, 'count': 100, 'time_offset':60}
- def isadmin(user_id):
- global admin
- s=0
- for i in range(len(admin)):
- if int(user_id) == int(admin[i]):
- s+=1
- return s
- def ismoder(user_id):
- global moder
- s=0
- for i in range(len(moder)):
- if int(user_id) == int(moder[i]):
- s+=1
- return s
- def isbanned(user_id):
- global banlist
- s=0
- for i in range(len(banlist)):
- if int(user_id) == int(banlist[i]):
- s+=1
- return s
- #=================================== Администраторы ======================================
- def invadmin(user_id):
- global admin
- admin.append(user_id)
- file = open('admins.txt', 'a')
- file.write(" "+admin[-1])
- file.close()
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Администратор успешно добавлен"})
- def deladmin(user_id):
- global admin
- admin.remove(user_id)
- file = open('admins.txt', 'w')
- for i in range(len(admin)):
- file.write(admin[i]+" ")
- file.close()
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Администратор успешно удален"})
- def spadmins():
- global admin
- ss='Список администраторов:\nГл.Админ: Роман Кудрявцев\nСпец.Админ: Илья Коваленко'
- for i in range(2,len(admin)):
- ad = str(vk.method('users.get',{'user_ids':admin[i]}))
- add=ad
- mass=[0]*4
- ind=0
- for q in range(10):
- srez=add.index("'")
- if (q==4) or (q==5) or (q==8) or (q==9):
- mass[ind]=srez
- ind+=1
- add=add[:srez]+'x'+add[srez+1:]
- fname=ad[mass[0]+1:mass[1]]
- lname=ad[mass[2]+1:mass[3]]
- adf={}
- adf['first_name']=fname
- adf['last_name']=lname
- ss = ss + "\nАдмин: " + adf['first_name'] +" "+ adf['last_name']
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':ss})
- #============================ Модеры ==============================================
- def invmoder(user_id):
- global moder
- moder.append(user_id)
- file = open('moders.txt', 'a')
- file.write(" "+moder[-1])
- file.close()
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Модератор успешно добавлен"})
- def delmoder(user_id):
- global moder
- moder.remove(user_id)
- file = open('moders.txt', 'w')
- for i in range(len(moder)):
- file.write(moder[i]+" ")
- file.close()
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Модератор успешно удален"})
- def spmoders():
- global moder
- ss='Список модераторов:'
- for i in range(len(moder)):
- ad = str(vk.method('users.get',{'user_ids':moder[i]}))
- add=ad
- mass=[0]*4
- ind=0
- for q in range(10):
- srez=add.index("'")
- if (q==4) or (q==5) or (q==8) or (q==9):
- mass[ind]=srez
- ind+=1
- add=add[:srez]+'x'+add[srez+1:]
- fname=ad[mass[0]+1:mass[1]]
- lname=ad[mass[2]+1:mass[3]]
- adf={}
- adf['first_name']=fname
- adf['last_name']=lname
- ss = ss + "\n" + adf['first_name'] +" "+ adf['last_name']
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':ss})
- #======================== бан =======================
- def ban(user_id):
- global banlist
- banlist.append(user_id)
- file = open('banlist.txt', 'a')
- file.write(" "+banlist[-1])
- file.close()
- if isadmin(user_id) == 1:
- deladmin(user_id)
- elif ismoder(user_id) == 1:
- delmoder(user_id)
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Пользователь занесён в чёрный список"})
- def unban(user_id):
- global banlist
- banlist.remove(user_id)
- file = open('banlist.txt', 'w')
- for i in range(len(banlist)):
- file.write(banlist[i]+" ")
- file.close()
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Пользователь вынесен из чёрного списка"})
- def blacklist():
- global banlist
- ss='Чёрный список:'
- for i in range(len(banlist)):
- ad = str(vk.method('users.get',{'user_ids':banlist[i]}))
- add=ad
- mass=[0]*4
- ind=0
- for q in range(10):
- srez=add.index("'")
- if (q==4) or (q==5) or (q==8) or (q==9):
- mass[ind]=srez
- ind+=1
- add=add[:srez]+'x'+add[srez+1:]
- fname=ad[mass[0]+1:mass[1]]
- lname=ad[mass[2]+1:mass[3]]
- adf={}
- adf['first_name']=fname
- adf['last_name']=lname
- ss = ss + "\n" + adf['first_name'] +" "+ adf['last_name']
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':ss})
- while True:
- #===================== Читаем файлы ===========================
- file = open('admins.txt', 'r')
- admin = list(file.read().split())
- file.close()
- file = open('moders.txt', 'r')
- moder = list(file.read().split())
- file.close()
- file = open('banlist.txt', 'r')
- banlist = list(file.read().split())
- file.close()
- #========================== main ==================================
- response = vk.method('messages.get', values)
- if response['items']:
- values['last_message_id'] = response['items'][0]['id']
- for item in response['items']:
- mess = response['items'][0]['body'].split()
- #======================= +кик ======================================
- if isadmin(item['user_id']) == 1 or ismoder(item['user_id']) == 1:
- if len(mess) == 2:
- if mess[0]=="+кик":
- if mess[1].isdigit() == 1:
- if isadmin(mess[1]) == 0 and ismoder(mess[1]) == 0:
- try:
- vk.method('messages.removeChatUser', {'chat_id':item['chat_id'],'user_id':mess[1]})
- except:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, данный пользователь отсутствует в конференции"})
- elif isadmin(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Невозможно кикнуть администратора"})
- elif ismoder(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Невозможно кикнуть модератора"})
- else:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, неверно указан ID"})
- elif response['items'][0]['body'] == "+кик":
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
- #=========================== +модер ================================================================
- if isadmin(item['user_id']) == 1:
- if len(mess) == 2:
- if mess[0] == "+модер" and isadmin(mess[1]) == 0 and ismoder(mess[1]) == 0 and isbanned(mess[1]) == 0:
- invmoder(mess[1])
- elif mess[0] == "+модер" and isadmin(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, невозможно сделать администратора модератором"})
- elif mess[0] == "+модер" and isbanned(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь находится в чёрном списке"})
- elif mess[0] == "+модер" and ismoder(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь уже является модератором"})
- elif response['items'][0]['body'] == "+модер":
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
- #============================ -модер =======================================
- if isadmin(item['user_id']) == 1:
- if len(mess) == 2:
- if mess[0].lower() == "-модер" and ismoder(mess[1]) > 0:
- delmoder(mess[1])
- elif mess[0] == "-модер" and ismoder(mess[1]) == 0:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Невозможно, человек не является модератором"})
- elif response['items'][0]['body'] == "-модер":
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
- #============================= Список модераторов ==================================
- if isadmin(item['user_id']) == 1 or ismoder(item['user_id']) == 1:
- if len(mess) == 2:
- if mess[0].lower() == "список" and mess[1].lower() == "модераторов":
- spmoders()
- #=========================== +админ ================================================================
- if item['user_id'] == 159556838 or item['user_id'] == 171138739:
- if len(mess) == 2:
- if mess[0].lower() == "+админ" and isadmin(mess[1]) == 0 and isbanned(mess[1]) == 0 and ismoder(mess[1]) == 0:
- invadmin(mess[1])
- elif mess[0].lower() == "+админ" and ismoder(mess[1]) == 1:
- delmoder(mess[1])
- invadmin(mess[1])
- elif mess[0].lower() == "+админ" and isadmin(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь уже является администратором"})
- elif mess[0].lower() == "+админ" and isbanned(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь находится в чёрном списке"})
- elif response['items'][0]['body'] == "+админ":
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
- #============================ -админ =======================================
- if item['user_id'] == 159556838 or item['user_id'] == 171138739:
- if len(mess) == 2:
- if mess[0].lower() == "-админ" and isadmin(mess[1]) > 0 and mess[1] != "159556838":
- deladmin(mess[1])
- elif mess[0].lower() == "-админ" and isadmin(mess[1]) == 0:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, человек не является администратором"})
- elif mess[0].lower() == "-админ" and mess[1] == '159556838':
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, невозможно удалить Гл.Администратора"})
- elif response['items'][0]['body'] == "-админ":
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
- #============================= Список администраторов ==================================
- if isadmin(item['user_id']) == 1:
- if len(mess) == 2:
- if mess[0].lower() == "список" and mess[1].lower() == "администраторов":
- spadmins()
- #================================== +бан ======================================
- if isadmin(item['user_id']) == 1:
- if len(mess) == 2:
- if mess[0].lower() == "+бан":
- if mess[1] != str(item['user_id']) and isbanned(mess[1]) == 0 and (isadmin(mess[1]) == 0 or item['user_id'] == 159556838):
- ban(mess[1])
- elif mess[0].lower() == "+бан" and mess[1] == str(item['user_id']):
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, невозможно забанить самого себя"})
- elif mess[0].lower() == "+бан" and isadmin(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Забанен за попытку бана администратора"})
- ban(str(item['user_id']))
- elif mess[0] == "+бан" and isbanned(mess[1]) == 1:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь уже находится в чёрном списке"})
- elif response['items'][0]['body'] == "+бан":
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
- #================================ -бан =================================
- if isadmin(item['user_id']) == 1:
- if len(mess) == 2:
- if mess[0].lower() == "-бан":
- if isbanned(mess[1]) > 0:
- unban(mess[1])
- elif isbanned(mess[1]) == 0:
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь не находится в чёрном списке"})
- elif response['items'][0]['body'].lower() == "-бан":
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
- #============================= Чёрный список =============================================
- if isadmin(item['user_id']) == 1:
- if len(mess) == 2:
- if (mess[0].lower() == "чёрный" or mess[0].lower() == "черный") and mess[1].lower() == "список":
- blacklist()
- #================================== Команды ===================================
- if item['user_id'] == 159556838 and response['items'][0]['body'].lower() == 'команды':
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Команды Гл.Администратора:\n1. +кик\n2. +модер / -модер\n3. +бан / -бан\n4. +админ / -админ\n5. Список администраторов\n6. Список модераторов\n7. Чёрный список"})
- elif item['user_id'] == 171138739 and response['items'][0]['body'].lower() == 'команды':
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Команды Cпец.Администратора:\n1. +кик\n2. +модер / -модер\n3. +бан / -бан\n4. +админ / -админ\n5. Список администраторов\n6. Список модераторов\n7. Чёрный список"})
- elif isadmin(item['user_id']) == 1 and response['items'][0]['body'].lower() == 'команды':
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Команды администраторов:\n1. +кик\n2. +модер / -модер\n3. +бан / -бан\n4. Список администраторов\n 5. Список модераторов\n6. Чёрный список"})
- elif ismoder(item['user_id']) == 1 and response['items'][0]['body'].lower() == 'команды':
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Команды модераторов:\n1. +кик\n 2. Список модераторов"})
- #================================ +рк =========================================
- if response['items'][0]['body'].lower() == '+рк':
- vk.method('messages.send', {'chat_id':item['chat_id'],'message':"ID RK - 13602924\nВ RK вы можете общаться со всеми членами семьи, задавать вопросы основателю/заместителям семьи Wayne.\nПароли:\nПервый состав - Sostav1\nОбщение с основателем фамы - vodolaz90123456789\nВторой состав - Sostav2\nОбщение с основателем фамы - vodolaz9023145609\nТретий состав - Sostav3\nОбщение с основателем фамы - vodolaz90764532\nМузыка - пикачу448\nAFK - без пароля\nAdminKomnata - *****\nModerKomnata - *****\nРазбработка - *****\n\nЕсть идея для улучшения RaidCall'a?\nОбращайтесь в ЛС @id237067631 (Остап)"})
- time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement