Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 17.97 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. # Cat Bot v0.2
  5. # Разработчик: Илья Коваленко ( https://vk.com/iluxa_koval )
  6.  
  7. import vk_api
  8. import time
  9.  
  10. #========================== Логин и пароль ==========================
  11. vk = vk_api.VkApi(login="****", password="****")
  12. vk.auth()
  13.  
  14. values = {'out': 0, 'count': 100, 'time_offset':60}
  15.  
  16. def isadmin(user_id):
  17.     global admin    
  18.     s=0
  19.     for i in range(len(admin)):
  20.         if int(user_id) == int(admin[i]):
  21.             s+=1
  22.     return s
  23.  
  24. def ismoder(user_id):
  25.     global moder    
  26.     s=0
  27.     for i in range(len(moder)):
  28.         if int(user_id) == int(moder[i]):
  29.             s+=1
  30.     return s
  31.  
  32.  
  33. def isbanned(user_id):
  34.     global banlist    
  35.     s=0
  36.     for i in range(len(banlist)):
  37.         if int(user_id) == int(banlist[i]):
  38.             s+=1
  39.     return s
  40.  
  41. #=================================== Администраторы ======================================
  42.    
  43. def invadmin(user_id):
  44.     global admin
  45.     admin.append(user_id)
  46.     file = open('admins.txt', 'a')    
  47.     file.write(" "+admin[-1])
  48.     file.close()
  49.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Администратор успешно добавлен"})
  50.    
  51. def deladmin(user_id):
  52.     global admin
  53.     admin.remove(user_id)
  54.     file = open('admins.txt', 'w')
  55.     for i in range(len(admin)):
  56.         file.write(admin[i]+" ")
  57.     file.close()
  58.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Администратор успешно удален"})
  59.  
  60.    
  61.    
  62. def spadmins():
  63.     global admin
  64.     ss='Список администраторов:\nГл.Админ: Роман Кудрявцев\nСпец.Админ: Илья Коваленко'
  65.     for i in range(2,len(admin)):
  66.         ad = str(vk.method('users.get',{'user_ids':admin[i]}))
  67.         add=ad
  68.         mass=[0]*4
  69.         ind=0
  70.         for q in range(10):
  71.             srez=add.index("'")
  72.             if (q==4) or (q==5) or (q==8) or (q==9):
  73.                 mass[ind]=srez
  74.                 ind+=1
  75.             add=add[:srez]+'x'+add[srez+1:]
  76.         fname=ad[mass[0]+1:mass[1]]
  77.         lname=ad[mass[2]+1:mass[3]]
  78.         adf={}
  79.         adf['first_name']=fname
  80.         adf['last_name']=lname
  81.         ss = ss + "\nАдмин: " + adf['first_name'] +" "+ adf['last_name']
  82.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':ss})
  83.    
  84. #============================ Модеры ==============================================
  85. def invmoder(user_id):
  86.     global moder
  87.     moder.append(user_id)
  88.     file = open('moders.txt', 'a')    
  89.     file.write(" "+moder[-1])
  90.     file.close()
  91.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Модератор успешно добавлен"})
  92.  
  93.    
  94. def delmoder(user_id):
  95.     global moder
  96.     moder.remove(user_id)
  97.     file = open('moders.txt', 'w')
  98.     for i in range(len(moder)):
  99.         file.write(moder[i]+" ")
  100.     file.close()
  101.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Модератор успешно удален"})
  102.  
  103. def spmoders():
  104.     global moder
  105.     ss='Список модераторов:'
  106.     for i in range(len(moder)):
  107.         ad = str(vk.method('users.get',{'user_ids':moder[i]}))
  108.         add=ad
  109.         mass=[0]*4
  110.         ind=0
  111.         for q in range(10):
  112.             srez=add.index("'")
  113.             if (q==4) or (q==5) or (q==8) or (q==9):
  114.                 mass[ind]=srez
  115.                 ind+=1
  116.             add=add[:srez]+'x'+add[srez+1:]
  117.         fname=ad[mass[0]+1:mass[1]]
  118.         lname=ad[mass[2]+1:mass[3]]
  119.         adf={}
  120.         adf['first_name']=fname
  121.         adf['last_name']=lname
  122.         ss = ss + "\n" + adf['first_name'] +" "+ adf['last_name']
  123.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':ss})
  124.    
  125.  
  126.  
  127. #======================== бан =======================
  128.  
  129. def ban(user_id):
  130.     global banlist
  131.     banlist.append(user_id)
  132.     file = open('banlist.txt', 'a')    
  133.     file.write(" "+banlist[-1])
  134.     file.close()
  135.     if isadmin(user_id) == 1:
  136.         deladmin(user_id)
  137.     elif ismoder(user_id) == 1:
  138.         delmoder(user_id)    
  139.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Пользователь занесён в чёрный список"})
  140.  
  141. def unban(user_id):
  142.     global banlist
  143.     banlist.remove(user_id)
  144.     file = open('banlist.txt', 'w')
  145.     for i in range(len(banlist)):
  146.         file.write(banlist[i]+" ")
  147.     file.close()
  148.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Пользователь вынесен из чёрного списка"})
  149.    
  150. def blacklist():
  151.     global banlist
  152.     ss='Чёрный список:'
  153.     for i in range(len(banlist)):
  154.         ad = str(vk.method('users.get',{'user_ids':banlist[i]}))
  155.         add=ad
  156.         mass=[0]*4
  157.         ind=0
  158.         for q in range(10):
  159.             srez=add.index("'")
  160.             if (q==4) or (q==5) or (q==8) or (q==9):
  161.                 mass[ind]=srez
  162.                 ind+=1
  163.             add=add[:srez]+'x'+add[srez+1:]
  164.         fname=ad[mass[0]+1:mass[1]]
  165.         lname=ad[mass[2]+1:mass[3]]
  166.         adf={}
  167.         adf['first_name']=fname
  168.         adf['last_name']=lname
  169.         ss = ss + "\n" + adf['first_name'] +" "+ adf['last_name']
  170.     vk.method('messages.send', {'chat_id':item['chat_id'],'message':ss})
  171.  
  172.  
  173.            
  174.                
  175. while True:
  176. #===================== Читаем файлы ===========================
  177.     file = open('admins.txt', 'r')
  178.     admin =  list(file.read().split())
  179.     file.close()
  180.     file = open('moders.txt', 'r')
  181.     moder =  list(file.read().split())
  182.     file.close()    
  183.     file = open('banlist.txt', 'r')
  184.     banlist =  list(file.read().split())
  185.     file.close()        
  186. #========================== main ==================================    
  187.     response = vk.method('messages.get', values)
  188.     if response['items']:
  189.         values['last_message_id'] = response['items'][0]['id']
  190.     for item in response['items']:                  
  191.         mess = response['items'][0]['body'].split()
  192.        
  193. #======================= +кик ======================================
  194.  
  195.         if isadmin(item['user_id']) == 1 or ismoder(item['user_id']) == 1:            
  196.             if  len(mess) == 2:          
  197.                 if mess[0]=="+кик":
  198.                     if mess[1].isdigit() == 1:
  199.                         if isadmin(mess[1]) ==  0 and ismoder(mess[1]) == 0:
  200.                             try:
  201.                                 vk.method('messages.removeChatUser', {'chat_id':item['chat_id'],'user_id':mess[1]})
  202.                             except:
  203.                                 vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, данный пользователь отсутствует в конференции"})
  204.                         elif isadmin(mess[1]) == 1:
  205.                             vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Невозможно кикнуть администратора"})
  206.                         elif ismoder(mess[1]) == 1:
  207.                             vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Невозможно кикнуть модератора"})
  208.                     else:
  209.                         vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, неверно указан ID"})
  210.                        
  211.             elif response['items'][0]['body'] == "+кик":
  212.                 vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
  213.            
  214.                
  215. #=========================== +модер ================================================================
  216.        
  217.         if isadmin(item['user_id']) == 1:
  218.             if len(mess) == 2:
  219.                 if mess[0] == "+модер" and isadmin(mess[1]) == 0 and ismoder(mess[1]) == 0 and isbanned(mess[1]) == 0:
  220.                     invmoder(mess[1])
  221.                 elif mess[0] == "+модер" and isadmin(mess[1]) == 1:
  222.                     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, невозможно сделать администратора модератором"})
  223.                 elif mess[0] == "+модер" and isbanned(mess[1]) == 1:
  224.                     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь находится в чёрном списке"})
  225.                 elif mess[0] == "+модер" and ismoder(mess[1]) == 1:
  226.                     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь уже является модератором"})                
  227.             elif response['items'][0]['body'] == "+модер":
  228.                 vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
  229.            
  230.                
  231. #============================ -модер =======================================
  232.         if isadmin(item['user_id']) == 1:
  233.             if len(mess) == 2:
  234.                 if mess[0].lower() == "-модер" and ismoder(mess[1]) > 0:
  235.                     delmoder(mess[1])
  236.                 elif mess[0] == "-модер" and ismoder(mess[1]) == 0:
  237.                     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Невозможно, человек не является модератором"})
  238.             elif response['items'][0]['body'] == "-модер":
  239.                 vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
  240.            
  241. #============================= Список модераторов ==================================
  242.         if isadmin(item['user_id']) == 1 or ismoder(item['user_id']) == 1:            
  243.             if  len(mess) == 2:          
  244.                 if mess[0].lower() == "список" and mess[1].lower() == "модераторов":
  245.                     spmoders()
  246.                    
  247.            
  248. #=========================== +админ ================================================================
  249.                    
  250.         if item['user_id'] == 159556838 or item['user_id'] == 171138739:
  251.             if len(mess) == 2:
  252.                 if mess[0].lower() == "+админ"  and isadmin(mess[1]) == 0 and isbanned(mess[1]) == 0 and ismoder(mess[1]) == 0:
  253.                     invadmin(mess[1])    
  254.                 elif mess[0].lower() == "+админ" and ismoder(mess[1]) == 1:
  255.                     delmoder(mess[1])
  256.                     invadmin(mess[1])
  257.                 elif mess[0].lower() == "+админ" and isadmin(mess[1]) == 1:
  258.                     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь уже является администратором"})
  259.                 elif mess[0].lower() == "+админ" and isbanned(mess[1]) == 1:
  260.                     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь находится в чёрном списке"})  
  261.             elif response['items'][0]['body'] == "+админ":
  262.                 vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
  263.                    
  264.                    
  265. #============================ -админ =======================================
  266.         if item['user_id'] == 159556838  or item['user_id'] == 171138739:
  267.             if len(mess) == 2:
  268.                 if mess[0].lower() == "-админ" and isadmin(mess[1]) > 0 and mess[1] != "159556838":
  269.                     deladmin(mess[1])
  270.                 elif mess[0].lower() == "-админ" and isadmin(mess[1]) == 0:
  271.                     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, человек не является администратором"})
  272.                 elif mess[0].lower() == "-админ" and mess[1] == '159556838':
  273.                     vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, невозможно удалить Гл.Администратора"})
  274.             elif response['items'][0]['body'] == "-админ":
  275.                 vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
  276.                    
  277. #============================= Список администраторов ==================================
  278.         if isadmin(item['user_id']) == 1:            
  279.             if  len(mess) == 2:          
  280.                 if mess[0].lower() == "список" and mess[1].lower() == "администраторов":
  281.                     spadmins()
  282.                    
  283. #================================== +бан ======================================
  284.         if isadmin(item['user_id']) == 1:
  285.             if len(mess) == 2:
  286.                 if mess[0].lower() == "+бан":
  287.                     if mess[1] != str(item['user_id']) and isbanned(mess[1]) == 0  and (isadmin(mess[1]) == 0 or item['user_id'] == 159556838):
  288.                         ban(mess[1])
  289.                     elif mess[0].lower() == "+бан" and mess[1] == str(item['user_id']):
  290.                         vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, невозможно забанить самого себя"})
  291.                     elif mess[0].lower() == "+бан" and isadmin(mess[1]) == 1:
  292.                         vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Забанен за попытку бана администратора"})
  293.                         ban(str(item['user_id']))
  294.                     elif mess[0] == "+бан" and isbanned(mess[1]) == 1:
  295.                         vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь уже находится в чёрном списке"})
  296.             elif response['items'][0]['body'] == "+бан":
  297.                 vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
  298.                    
  299. #================================ -бан =================================
  300.         if isadmin(item['user_id']) == 1:
  301.             if len(mess) == 2:
  302.                 if mess[0].lower() == "-бан":
  303.                     if  isbanned(mess[1]) > 0:
  304.                         unban(mess[1])
  305.                     elif isbanned(mess[1]) == 0:
  306.                         vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, пользователь не находится в чёрном списке"})
  307.             elif response['items'][0]['body'].lower() == "-бан":
  308.                 vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Ошибка, ID не указан"})
  309.                
  310. #============================= Чёрный список =============================================
  311.          
  312.         if isadmin(item['user_id']) == 1:            
  313.             if  len(mess) == 2:          
  314.                 if (mess[0].lower() == "чёрный" or mess[0].lower() == "черный") and mess[1].lower() == "список":
  315.                     blacklist()
  316.                    
  317. #================================== Команды ===================================
  318.  
  319.         if item['user_id'] ==  159556838 and response['items'][0]['body'].lower() == 'команды':      
  320.             vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Команды Гл.Администратора:\n1. +кик\n2. +модер / -модер\n3. +бан / -бан\n4. +админ / -админ\n5. Список администраторов\n6. Список модераторов\n7. Чёрный список"})
  321.         elif item['user_id'] == 171138739 and response['items'][0]['body'].lower() == 'команды':
  322.             vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Команды Cпец.Администратора:\n1. +кик\n2. +модер / -модер\n3. +бан / -бан\n4. +админ / -админ\n5. Список администраторов\n6. Список модераторов\n7. Чёрный список"})
  323.         elif isadmin(item['user_id']) == 1 and response['items'][0]['body'].lower() == 'команды':            
  324.             vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Команды администраторов:\n1. +кик\n2. +модер / -модер\n3. +бан / -бан\n4. Список администраторов\n 5. Список модераторов\n6. Чёрный список"})
  325.         elif ismoder(item['user_id']) == 1 and response['items'][0]['body'].lower() == 'команды':            
  326.             vk.method('messages.send', {'chat_id':item['chat_id'],'message':"Команды модераторов:\n1. +кик\n 2. Список модераторов"})
  327. #================================ +рк =========================================
  328.         if response['items'][0]['body'].lower() == '+рк':
  329.             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 (Остап)"})
  330.        
  331.      
  332.        
  333.     time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement