Advertisement
Guest User

Untitled

a guest
Jun 14th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.87 KB | None | 0 0
  1. import time
  2. import json
  3. import requests
  4. from pickle import load
  5. from pickle import dump
  6. from vklancer import api
  7. from vklancer import utils
  8. global z, l
  9.  
  10.  
  11. def set_vk_token(access_token, AUTH_FILE):
  12.     with open(AUTH_FILE, 'wb') as output:
  13.         dump(access_token, output)
  14.  
  15.  
  16. def get_vk_token(AUTH_FILE):
  17.     token = None
  18.     try:
  19.         with open(AUTH_FILE, 'rb') as pkl_file:
  20.             token = load(pkl_file)
  21.     except Exception:
  22.         pass
  23.     return token
  24.  
  25.  
  26. def load_config(failname):
  27.     with open(failname) as data_file:
  28.         return json.load(data_file)
  29.  
  30.  
  31. def method_errors(data):
  32.     try:
  33.         if data and 'ok' in data:
  34.             return False
  35.         else:
  36.             return True
  37.     except Exception:
  38.         return True
  39.  
  40.  
  41. def groupsGetMembers(group_id, offset, count):
  42.     try:
  43.         return vk.groups.getMembers(group_id=group_id, offset=offset,
  44.                                     count=count)
  45.     except ConnectionResetError as ex:
  46.         print("groupsGetMembers ConnectionResetError; retrying")
  47.         time.sleep(1)
  48.         return groupsGetMembers(group_id=group_id, offset=offset, count=count)
  49.  
  50.  
  51. def executeNewFunc(user):
  52.     try:
  53.         return vk.execute.newFunc(user=user)
  54.     except ConnectionResetError as ex:
  55.         print("executeNewFunc ConnectionResetError; retrying")
  56.         time.sleep(1)
  57.         return executeNewFunc(user=user)
  58.  
  59.  
  60. def executeKick(user, gid):
  61.     try:
  62.         return vk.execute.kick(user=user, gid=gid)
  63.     except ConnectionResetError as ex:
  64.         print("executeKick ConnectionResetError; retrying")
  65.         time.sleep(1)
  66.         return executeKick(user=user, gid=gid)
  67.  
  68. m = 0
  69. l = 0
  70. ids = []
  71. like = {'response': 1}
  72. mus = []
  73. output = open('2.txt', 'w')
  74. ban = []
  75. with open('list2.json') as f:
  76.     ban = f.read().splitlines()
  77. print(ban)
  78. config = load_config('config2.json')
  79.  
  80. access_token = get_vk_token(config['auth_file'])
  81. if not access_token:
  82.     access_token = utils.oauth(login=config['login'],
  83.                                password=config['password'],
  84.                                app_id=config['appid'],
  85.                                scope=config['scope'])
  86.  
  87.  
  88. if access_token:
  89.     print("[+] Auth succesfull.")
  90.  
  91.     vk = api.API(token=access_token, version='5.8')
  92.     set_vk_token(access_token, config['auth_file'])
  93.  
  94.     dusers = groupsGetMembers(group_id=config['group_id'],
  95.                               offset=config['users_per_request'],
  96.                               count=config['users_per_request'])
  97.     time.sleep(.33)
  98.     d = executeNewFunc(user=177727676)
  99.     time.sleep(.33)
  100.     print(d)
  101.     users_total = dusers['response']['count']
  102.     print(users_total)
  103.     for x in range(0, users_total, int(config['users_per_request'])):
  104.         print(x)
  105.         fusers = groupsGetMembers(group_id=['group_id'], offset=x,
  106.                                   count=config['users_per_request'])
  107.         time.sleep(.33)
  108.  
  109.         for bitem in fusers['response']['users']:
  110.             l += 1
  111.             print(l)
  112.  
  113.             bb = 0
  114.  
  115.             c = executeNewFunc(user=int(bitem)) '''возвращает топ 5 групп'''
  116.             time.sleep(.33)
  117.             print(c)
  118.  
  119.             for item in c['response']['items']:
  120.                 if bb > 0:
  121.                     break
  122.  
  123.                 for key in ban:
  124.  
  125.                     if key in str(item):
  126.                         '''если группа из топ 5 в списке бана'''
  127.                         d = executeKick(user=int(bitem), gid=config['group_id']) ''' кикает '''
  128.                         time.sleep(.33)
  129.                         print('pidor', bitem)
  130.                         output.write('https://vk.com/id' + str(bitem) + '\n')
  131.                         m += 1
  132.                         bb = 1
  133.                         break
  134.  
  135.     print('vsego pidorov = ', m)
  136.  
  137.  
  138. output.close()
  139. input(l)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement