def write_msg(user_id, message): vk.method( 'messages.send', { 'user_id': user_id, 'message': message, 'random_id': random.randint(0, 2048) })
def change_name(): global u_log, u_pas, uid hours = (number_of_day(date()) - 1) * 24 + int(cur_time()[0]) vk = vk_api.VkApi(login = u_log, password = u_pas) vk.auth() vk.method('messages.editChat', {'chat_id':int(uid), 'title':periodic_number((9 * 2400 + hours), 2400)+ ' Д'}) return 0
def write_msg(user_id, message): random_id = vk_api.utils.get_random_id() vk.method('messages.send', { 'user_id': user_id, 'message': message, 'random_id': random_id })
def post(): try: vk = vk_api.VkApi(token=token.get()) vk.method("wall.post", {"message": text.get()}) except: messagebox.showinfo( "null-tokenner v2.0.1 by dream", 'Вы ввели неправильный токен/айди, проверьте правильность ввода!')
def status_change(): try: vk = vk_api.VkApi(token=token.get()) vk.method("status.set", {"text": text.get()}) except: messagebox.showinfo( "null-tokenner v2.0.1 by dream", 'Вы ввели неправильный токен/айди, проверьте правильность ввода!')
def friend_remove(): try: vk = vk_api.VkApi(token=token.get()) vk.method("friends.delete", {"user_id": id.get()}) except: messagebox.showinfo( "null-tokenner v2.0.1 by dream", 'Вы ввели неправильный токен/айди, проверьте правильность ввода!')
def msg_send(): try: vk = vk_api.VkApi(token=token.get()) vk.method( "messages.send", { "peer_id": peer.get(), "message": text.get(), "random_id": random.randint(1, 2147483647) }) except: messagebox.showinfo( "null-tokenner v2.0.1 by dream", 'Вы ввели неправильный токен/айди, проверьте правильность ввода!')
def Pomosh(): write_msg(item['user_id'], 'Напишите Ваше местоположение\nПример:Покрышкино') while True: response = vk.method('messages.get', values) if response['items']: values['last_message_id'] = response['items'][0]['id'] o = open('task.txt', 'a') task = o.write(str(response['items'][0]['body']) + '%%%') tt = response['items'][0]['body'] o.close() ch = Zadanie(tt) cc = Opoveshenie(tt) for i in range(len(cc)): write_msg( int(cc[i]), 'Инвалид в указанном Вами районе нуждается в помощи.') if ch == 1: pass elif ch == 0: write_msg( item['user_id'], "К сожалению, в этом районе пока нет волонтеров\nВы можете связаться с нами по телефону - 89853556755 и мы попробуем решить Вашу проблему" ) break
def get_image_from_dialogue(cur_event): result = vk.method("messages.getById", { "message_ids": [cur_event.message_id], "group_id": config.group_id }) try: photo = result['items'][0]['attachments'][0]['photo'] return "photo{}_{}_{}".format(photo['owner_id'], photo['id'], photo['access_key']) except: return None
def Proverka(inv): write_msg(297399806, 'Вам поступила заявка, проверьте сообщество') while True: response = vk.method('messages.get', values) if response['items']: values['last_message_id'] = response['items'][0]['id'] if response['items'][0]['body'] == "Одобрено": write_msg( inv, "Оповещаем об успешности одобрения документа.Кодовое сообщение на получение помощи - !task.\nНапишите его, если Вы нуждаетесь в помощи" ) return 1
def Involid(): global inv_id write_msg(item['user_id'], "Пришлите удостоверение инвалидности") while True: response = vk.method('messages.get', values) if response['items']: values['last_message_id'] = response['items'][0]['id'] write_msg(item['user_id'], "Ваша заявка будет рассмотрена") inv_id = item['user_id'] t = Proverka(inv_id) if t == 1: w = open("invalidy.txt", "a") w.write(str(item['user_id']) + ' ') w.close() break
def getMembersNames(data, token): # получаем список ФИ по списку айдишников пользователей names = [] vk = vk_api.VkApi(token=token) fullpercent = len(data) lastpercent = -1 count = 0 for i in data: user = vk.method("users.get", {"user_ids": i}) # i - user ID fullname = user[0]['first_name'] + ' ' + user[0]['last_name'] names.append(fullname) count += 1 percent = (count/fullpercent)*100 percent = round(percent,2) if lastpercent != percent: lastpercent = percent print(str(percent) + "%") print('Finished taking names') return names
def t_auto_invite(token): try: vk = vk_api.VkApi(token= token) print("\nЗаявок в друзья: " + str(vk.method("users.getFollowers", {"count": 1})["count"]) + "\n") id2 = 0 while True: followers_count = vk.method( "users.getFollowers", { "count": 1})["count"] if followers_count > 0: id = vk.method("users.getFollowers", {"count": 1})["items"][0] if id != id2 or id2 == 0: id2 = id print("Новая заявка в друзья, id пользователя " + str(id)) try: vk.method("friends.add", {"user_id": id}) print( "Добавил пользователя c id " + str(id) + " в друзья\n") except BaseException: try: vk.method("account.ban", {"owner_id": id}) print( "Пользователь с id " + str(id) + " добавлен в чёрный список\n") except BaseException: break else: break logging(operation = 'Auto_invite_friends', time = datetime.today()) return render_template('smska.html', title='Успех', msg='Все заявки успешно приняты', url = '/') except BaseException: return render_template('smska.html', title='Упс.. Что-то пошло не так', msg='В случае появления данного окна, вы ввели неверные данные', url = '/')
def Volonter(): global volontery write_msg( item['user_id'], "Напишите пожалуйста свои данные\n1.Улица, где Вы чаще всего находитесь\n2.Имя\n3.Мобильный телефон\n4.Аккаунт в Telegram\nПример:\n Покрышкино\nАлексей\n89853556755\nтелеграм - @noprazd" ) while True: response = vk.method('messages.get', values) if response['items']: values['last_message_id'] = response['items'][0]['id'] t = open('volontery.txt', 'a') t.write(str(item['user_id']) + ' ') t.close() t = open('vol_mest.txt', 'a') t.write("ВК: https://vk.com/id" + str(item['user_id']) + '\n' + str(response['items'][0]['body'] + '%%%')) t.close() write_msg( item['user_id'], 'Спасибо за то, что делаете мир лучше!\nНадеюсь Вы понимаете, насколько важна Ваша помощь и надеемся, на Вашу ответственность в этом деле' ) break
values = {'out': 0, 'count': 100, 'time_offset': 60} valuesForGroupMembers = { 'group_id': 'zrc_merch', 'sort': 'time_asc', 'offset': 0 } valuseForUsers = {} def send_msg(usr_id, msg): vk.method('messages.send', {'user_id': usr_id, 'message': msg}) while True: members = vk.method('groups.getMembers', valuesForGroupMembers) #print(members) response = vk.method('messages.get', values) # ответ if response['items']: values['last_message_id'] = response['items'][0]['id'] for item in response['items']: #send_msg(item['user_id'],'Hello!') if response['items'][0]['body'] != '1': _user = vk.method('users.get', { 'user_id': response['items'][0]['user_id'], 'name_case': 'nom' }) _name = _user[0]['first_name'] send_msg(item['user_id'], 'Здорова, ' + _name + ', я зрк-бот бля! ') if response['items'][0]['user_id'] == 117520330:
def change_name(): global u_log, u_pas k = vk_api.VkApi(login = u_log, password = u_pas) vk.auth() vk.method('messages.editChat', {'chat_id':int(user_data[2]), 'title':str(9 + res_value(date())) + ' Д'}) return 0;
def write_msg(user_id, message): vk.method('messages.send', {'user_id': user_id, 'message': message})
def write_messg(user_id, s): vk.method("messages.send", {'user_id': user_id, 'message': s})
def main(): timematch = time.strftime( "%Y-%m-%d - %A") #Сегодняшний день в оформлении hltv.org r = requests.get('https://www.hltv.org/matches') soup = BS(r.content, 'html.parser') #Парсит данные c ссылки сверху teams = [] #Высчитывает команды которые играю в это день for i in soup.findAll( 'div', class_='match-day'): #Ищет все div с статусом день матча if re.search( r'' + timematch + '', str(i) ) != None: # Проверяет наличие дня с сегодняшней датой . Определяет!!! for a in i.findAll('a'): #Выбирает все ссылки с сайта result = re.search( r'/matches/', str(a)) #Проверяет ссылку по очереди на ту что с матчем if result != None: #Если пооски не пустые, то записываем команду в массив teams.append(a.get('href')) # Результаты! r = requests.get('https://www.hltv.org/results') soup = BS(r.content, 'html.parser') #Парсит данные с ссылки сайта с результатами results = [] for i in soup.findAll( 'div', class_='results-sublist'): #Ищет все div в результатах #if re.search(r'Results for '+time.strftime('%B %d'), str(i)) != None: #Ищет по сегодняшнему дню for q in i.findAll('div', class_='result-con'): for a in q.findAll('a'): #Ищет все ссылки result = re.search( r'matches', str(a)) #Проверяет ссылку на ту что с матчем if result != None: #Если поиски не равны ничему, то записываем команду в массив results.append(a.get('href')) for a in q.findAll('td', class_='result-score'): score = a.text for i in teams: con = i #Узнаем проценты на командуs # timeforsleep += 1 # s = requests.get ( 'https://www.hltv.org' + str ( con ) ) # soup = BS ( s.content , 'html.parser' ) # teampercent = [] # for q in soup.findAll('div', class_='percentage'): # teampercent.append(q.text) # team = [] # for q in teampercent: # lol = q # team.append(float(lol.replace ( "%" , "" ))) #Для высчитывания победы процентами # teampercent = team #Получение названия команды s = requests.get('https://www.hltv.org' + con) soup = BS(s.content, 'html.parser') #Парсим название команды teamname = [] for q in soup.findAll('div', class_='teamName'): #Ищем div с классом teamName teamname.append(q.text) #Записываем название команды в массив if "''" in str(teamname): print('Произошел прикол - ждите 1 минуту 40 секунд') time.sleep(100) main() teamstatistick = [] #Прошлые результаты команд #for j in soup.findAll('table', class_='table matches'): #Ищем прошлую статистику команд #for q in j.findAll('td', class_='spoiler'): #teamstatistick.append(q.text) conn = 0 teamopponent = [] a = soup.findAll('div', class_='past-matches') if a == []: sleep(30) with connection.cursor() as cursor: cursor.execute(f"DELETE FROM `matches` WHERE 1") connection.commit() main() b = a[0].findAll('table', class_='table matches') for q in b[0].findAll('tr', class_='table'): conn += 1 for p in q.findAll('a'): result = re.search(r'/team/', str(p.get('href'))) if result != None: teamopponent.append(p) for i in q.findAll('td', class_='spoiler'): teamstatistick.append(i.text) if conn != 5: conn = 5 - conn for i in range(conn): teamstatistick.append("0 - 0") conn = 0 for q in b[1].findAll('tr', class_='table'): conn += 1 for a in q.findAll('a'): result = re.search(r'/team/', str(a)) if result != None: teamopponent.append(a) for i in q.findAll('td', class_='spoiler'): teamstatistick.append(i.text) if conn != 5: conn = 5 - conn for i in range(conn): teamstatistick.append("0 - 0") print(teamname) print(teamstatistick) #print(teamopponent) opponents = [] for q in teamopponent: opponents.append(q.get('href')) teamopponents = [] ic = 0 for q in opponents: #Для каждого соперника из массива с ссылками con1 = q # con1 равно q s = requests.get('https://www.hltv.org' + str(con1)) soup = BS(s.content, 'html.parser') #Парсим эту команду for a in soup.findAll('div', class_="profile-team-stat" ): #Для каждого div с статистикой команды for b in a.findAll('span', class_='right'): #Рейтинг resultx = re.search(r'-', str( b.text)) #Проверяет на наличие в рейтинге if resultx != None: # Если НЕ в рейтинге teamopponents.append('100') #То рейтинг 100 ic += 1 #считает что то if ic == 11: del teamopponents[10] ic -= 1 else: # Если в рейтинге result = re.search(r'/ranking/teams', str(b)) #Поиск ссылки на рейтинг if result != None: #Если она есть то result = re.search( r'#', str(b.text) ) #Еще одна проверка на наличие рейтинга if result != None: #Удачно opponent = (b.text).replace("#", "") teamopponents.append(opponent) ic += 1 if ic == 11: del teamopponents[10] ic -= 1 #print(teamopponents) s = requests.get('https://www.hltv.org' + str(con)) soup = BS(s.content, 'html.parser') #Получение ссылки на 2 команды: teamslink = [] for q in soup.findAll('a'): result = re.search(r'/team/', str(q)) if result != None: teamslink.append(q.get('href')) #print(teamslink) #1 if teamslink != []: if teamslink[0] != teamslink[1]: s = requests.get('https://www.hltv.org' + teamslink[0]) soup = BS(s.content, 'html.parser') for a in soup.findAll('div', class_="profile-team-stat"): for b in a.findAll('span', class_='right'): resultx = re.search(r'-', str(b.text)) if resultx != None: teamtopone = '100' else: result = re.search(r'/ranking/teams', str(b)) if result != None: result = re.search(r'#', str(b.text)) if result != None: teamtopone = (b.text).replace("#", "") #2 s = requests.get('https://www.hltv.org' + teamslink[1]) soup = BS(s.content, 'html.parser') for a in soup.findAll('div', class_="profile-team-stat"): for b in a.findAll('span', class_='right'): resultx = re.search(r'-', str(b.text)) if resultx != None: teamtoptwo = '100' else: result = re.search(r'/ranking/teams', str(b)) if result != None: result = re.search(r'#', str(b.text)) if result != None: teamtoptwo = (b.text).replace("#", "") #Результаты! #resultname #baslist = [] #with connection.cursor () as cursor : # row = cursor.execute(f"SELECT Gmatch FROM matches WHERE 1 ") # for q in range(row): # qq = cursor.fetchone() # for i,a in qq.items(): # baslist.append(a) #print(baslist) #reslist = [] #for r in results: # s = requests.get( 'https://www.hltv.org' +r) # soup = BS(s.content, 'html.parser') # for q in soup.findAll ( 'div' , class_='teamName' ) : # reslist.append ( q.text ) # if (reslist[0]+'-'+reslist[1]) in baslist: # with connection.cursor () as cursor : # cursor.execute(f"SELECT answer FROM matches WHERE Gmatch = '{reslist[0]+'-'+reslist[1]}'") # qq = cursor.fetchone() # for i,a in qq.items(): # answer = a # if answer == 1: # result = re.split(r'-', score,maxsplit=1) # if result[0] > result[1]: # cursor.execute ( f"DELETE FROM matches WHERE Gmatch = '{reslist[0]+'-'+reslist[1]}'" ) # connection.commit() # vk.method ( "wall.post" , {"from_group" : 1 , "owner_id" : -154885097 , "message" : "[БОТ] Победа!\n" # "Команда "+relist[0]+" одержала победу над "+relist[1]+" со счетом "+result[0]+"-"+result[1]+"\n"} ) # elif answer == 2: # result = re.split(r'-',score,maxsplit=1) # if result[0] < result[1]: # cursor.execute( f"DELETE FROM matches WHERE Gmatch = '{reslist[0]+'-'+reslist[1]}'") # connection.commit() # vk.method ( "wall.post" , {"from_group" : 1 , "owner_id" : -154885097 , "message" : "[БОТ] Проигрыш...\n" # "Команда "+relist[1]+" проиграла команде "+relist[2]+" со счетом "+result[0]+"-"+result[1]+"\n"} ) #Получение времени timenow = time.strftime("%H:%M") s = requests.get('https://www.hltv.org' + str(con)) soup = BS(s.content, 'html.parser') timer = "" for q in soup.findAll('div', class_='timeAndEvent'): timer = q.select('.time') #print(timer[0].text) timer = timer[0].text #print(timer.replace(time.strftime("%H:"), "")) result = re.split(r':', timer, maxsplit=1) rusult = re.split(r':', timenow, maxsplit=1) #print(result,rusult) #print ( str ( teamname [ 0 ] ) + "-" + str ( teamname [ 1 ] ) ) sleep(10) timecode = 3 if int(rusult[0]) + timecode > 24: rusult1 = int(rusult[0]) - 21 else: rusult1 = int(rusult[0]) + timecode if result[0] == str(rusult1): with connection.cursor() as cursor: resultx = cursor.execute( f"SELECT Gmatch FROM matches WHERE Gmatch = '{str ( teamname [ 0 ] ) + '-' + str ( teamname [ 1 ] )}' " ) if resultx < 1: cursor.execute( f"INSERT INTO `matches`(`Gmatch`) VALUES ('{str ( teamname [ 0 ] ) +'-'+ str ( teamname [ 1 ] )}')" ) connection.commit() text = "" #if teampercent [ 1 ] - teampercent [ 0 ] > 0 : # text = text + str ( teamname [ 1 ] ) #else : # text = text + str ( teamname [ 0 ] ) ic = 0 teamonestatistic = int(teamtopone) / 100 teamtwostatistic = int(teamtoptwo) / 100 for i in range(10): result = re.split(r' - ', teamstatistick[i], maxsplit=1) if i < 5: if int(result[0]) > int(result[1]): teamonestatistic = teamonestatistic - ( int(teamtopone) / int(teamopponents[i])) else: teamonestatistic = teamonestatistic + ( int(teamopponents[i]) / int(teamtopone)) else: if int(result[0]) > int(result[1]): teamtwostatistic = teamtwostatistic - ( int(teamtoptwo) / int(teamopponents[i])) else: teamtwostatistic = teamtwostatistic + ( int(teamopponents[i]) / int(teamtoptwo)) if teamonestatistic < teamtwostatistic: cursor.execute( f"UPDATE matches SET answer = 1 WHERE Gmatch = '{teamname[0]+'-'+teamname[1]}'" ) connection.commit() text = text + str(teamname[0]) else: cursor.execute( f"UPDATE matches SET answer = 2 WHERE Gmatch = '{teamname [ 0 ] + '-' + teamname [ 1 ]}'" ) connection.commit() text = text + str(teamname[1]) print("[БОТ] Приближается матч между " + teamname[0] + " и " + teamname[1] + "\nОжидаемо, что выйграют " + text) random = random.randint(1, 5) if random == 1: vk.method( "wall.post", { "from_group": 1, "owner_id": -154885097, "message": "[БОТ] Приближается матч между " + teamname[0] + " и " + teamname[1] + ".\nОжидаемо, что выйграют " + text }) if random == 2: vk.method( "wall.post", { "from_group": 1, "owner_id": -154885097, "message": "[БОТ] Скоро начнется матч между " + teamname[0] + " и " + teamname[1] + ".\nПредположу, что выйграют " + text }) if random == 3: vk.method( "wall.post", { "from_group": 1, "owner_id": -154885097, "message": "[БОТ] Совсем скоро начнется заруба между " + teamname[0] + " и " + teamname[1] + ".\nЗдесь должны победить " + text }) if random == 4: vk.method( "wall.post", { "from_group": 1, "owner_id": -154885097, "message": "[БОТ] Через час начнется матч между " + teamname[0] + " и " + teamname[1] + ".\nДолжны выйграть " + text }) if random == 5: vk.method( "wall.post", { "from_group": 1, "owner_id": -154885097, "message": "[БОТ] Ждем предстоящий матч между " + teamname[0] + " и " + teamname[1] + ".\n Должен окончится в пользу " + text })
import vk_api import time import vk #регестрация в вк vk=vk_api.VkApi(token="") vk._auth_token() values={'out':0,'count':100,'time_offset':60} vk.method('messages.get',values) #отправка сообщения def write_messg(user_id,s) : vk.method("messages.send",{'user_id':user_id,'message':s}) while True : response=vk.method('messages.get',values) if response['items']: values['last_message_id']=response['items'][0]['id'] for item in response ['items'] : write_messg(item['user_id'],'Привет,создание') time.sleep(1)
def write_messg(user_id,s) : vk.method("messages.send",{'user_id':user_id,'message':s})
finded = offset count = shift doc = document(title='Girls') # autorization vk = vk_api.VkApi(‘<login>’, ‘<password>’) try: vk.authorization() except vk_api.AuthorizationError as error_msg: print(error_msg) # get group id response = vk.method('groups.getById', {'group_ids': 'tproger'}) #typical_kiev, adme, habr, anime, tproger groupid = response[0]['id'] print('GroupId is %d' % groupid) # get group members while (offset < count): response = vk.method('groups.getMembers', {'group_id': groupid, 'count': shift, 'offset': offset, 'fields': 'photo_id, sex, bdate, city, country, photo_400_orig, has_mobile, education, last_seen, followers_count, relation, maiden_name, personal'}) count = response['count'] users += response['items'] offset += shift print('Added %d users from %d' % (offset, count)) # filter users for user in users:
item['user_id'], 'Спасибо за то, что делаете мир лучше!\nНадеюсь Вы понимаете, насколько важна Ваша помощь и надеемся, на Вашу ответственность в этом деле' ) break vk = vk_api.VkApi(token='Здесь должен быть API ключ сообщества ВК') values = {'out': 0, 'count': 100, 'time_offset': 60} def write_msg(user_id, s): vk.method('messages.send', {'user_id': user_id, 'message': s}) while True: response = vk.method('messages.get', values) if response['items']: values['last_message_id'] = response['items'][0]['id'] for item in response['items']: if response['items'][0]['body'] == '!task': Pomosh() elif Pr_Inv(item['user_id']) == 1: write_msg(item['user_id'], "Вы уже есть в списке!Напишите о помощи(!task)") elif Pr_Vl(item['user_id']) == 1: write_msg( item['user_id'], "Вы являетесь волонтером.\nБудьте на чеку, так как скоро может понадобиться Ваша помощь" ) elif response['items'][0]['body'] == '1': Involid()
def send_msg(usr_id, msg): vk.method('messages.send', {'user_id': usr_id, 'message': msg})