Open jeeand0305 opened 1 year ago
import json import vk_api import time import random
from message_bot_gpt_izm1 import mes_1
token="vk1.a.aoB6wd8voabpRI7ppT_a9i59rSrc6DWlelTRdtV0j6IyhNpHU4-ymvWdFfAUdeGKeHo-_UT64rcKLr_4_S1dmb8abSEZQNmZvZSY9kckiXBM0-bfgu7EEv-ej69vvqDO_v_QIrru_cpwEv0ieVpTNyuQ4n1OR1WrXd7Ft6GO9uoIxIvBn2CclLXeOn2VsohjGWHIj9VmnOyXsOCxBEELmA"
vk_session = vk_api.VkApi(token=token) vk = vk_session.get_api()
count_send=0
'''
def searh_users_vk( count=20, city=56, sex=1, age_from=21, age_to=45 ): danie_vk=vk.users.search( count=count, city=city, #городам присвоены номера sex=sex, #1жен, 2муж age_from=age_from, #возрост от age_to=age_to #возрост до )
print(danie_vk) return danie_vk
def get_messag_vk( offset = 1, #смеще для выборки int count=10, #количество сообщений
filters = 5 ):# важные сообщения 8
mne_message = vk.messages.get(
offset = offset, count=count,
filters = filters) print(mne_message)
диалоги из ВК def get_messa_dialig( offset=1, count=5, start_message_id=5, preview_length=10, unread =0): def get_messa_dialig( offset=1, count=5, start_message_id=5, preview_length=10, unread =0):
for i in range( 10): try: message=get_messag_vk( offset = i*(1), count=5,
filters = 8) print (message) except: print ('error')
def perenos_json(pars_dan): dict_n_json=json.dumps(pars_dan) with open("vk_users_ide.json", "w") as wrem_file:
json.dump(pars_dan["items"], wrem_file)
def perenos_open(): with open("vk_users_ide.json.son", "r") as wrem_file: file_j=json.load(wrem_file) print(file_j[0]) print(wrem_file)
def prints(nam,mes, drop): name=nam print(mes[drop][0], name, mes[drop][2])
def send_messenge(num_id, message): global count_send count_messe_error=0 try: vk_session.method("messages.send",{ 'user_id':num_id, 'message': message, 'random_id':0 }) count_send+=1 except: count_messe_error+=1
def sleep_random(count_id): for i in range(1, count_id): number_second = random.randint(2, 5) time.sleep(number_second)
def message_get(): request_m = vk.messages.get(filters=8, count=200) f = vk.messages.getByld(message_ids=7744818) print (f)
def user_parsin_id(id_user): pars_user=vk.users.get(users_ids=id_user, fields='about') print (pars_user)
def main(): count_send_day20=0 count_num_mess=0 users_parsi=searh_users_vk( count=100, city=56, sex=1, age_from=30, age_to=31)
for dict_user in users_parsi['items']: sleep_random(3)
count_send_day20+=1 if count_send_day20 < 20: count_num_mess=random.randint(1,5) messeng= mes_1[count_num_mess][0]+dict_user['first_name']+mes_1[count_num_mess][2] send_messenge(dict_user['id'], messeng) print("Количество человек получившие сообщение", count_send)
def frends_messen(): count=0 user_str='' friends =vk_session.method('friends.get') for friend in friends["items"] : user =vk_session.method('users.get', {'user_ids': friend}) status =vk_session.method('status.get', {'status_ids': friend}) user_str = str(user[0] ['last_name'] )
if user_str[-1] in "а, я": count+=1 print(count, '/', user_str)
ВК работа--c api
import json import vk_api import time import random
import vk_users_ide
from message_bot_gpt_izm1 import mes_1
import message_bot_gpt_izm1
25.09
token="vk1.a.aoB6wd8voabpRI7ppT_a9i59rSrc6DWlelTRdtV0j6IyhNpHU4-ymvWdFfAUdeGKeHo-_UT64rcKLr_4_S1dmb8abSEZQNmZvZSY9kckiXBM0-bfgu7EEv-ej69vvqDO_v_QIrru_cpwEv0ieVpTNyuQ4n1OR1WrXd7Ft6GO9uoIxIvBn2CclLXeOn2VsohjGWHIj9VmnOyXsOCxBEELmA"
vk_session = vk_api.VkApi(token=token) vk = vk_session.get_api()
global peremenai
count_send=0
'''
'''
парсит данные user по критериям отбора
чтобы спарсить максимум count<1000, работа по age
def searh_users_vk( count=20, city=56, sex=1, age_from=21, age_to=45 ): danie_vk=vk.users.search( count=count, city=city, #городам присвоены номера sex=sex, #1жен, 2муж age_from=age_from, #возрост от age_to=age_to #возрост до )
print("function work")
&&&&____
получить сообщение пришедшее в ВК
def get_messag_vk( offset = 1, #смеще для выборки int count=10, #количество сообщений
time_offset = 0, # 0 все сообщени
last_message_id есть метод по id но завтсим от count, offset
offset = offset, count=count,
time_offset = time_offset,
диалоги из ВК def get_messa_dialig( offset=1, count=5, start_message_id=5, preview_length=10, unread =0): def get_messa_dialig( offset=1, count=5, start_message_id=5, preview_length=10, unread =0):
for i in range( 10):
try: message=get_messag_vk( offset = i*(1), count=5,
time_offset = 0,
упаковывает в json, file
def perenos_json(pars_dan): dict_n_json=json.dumps(pars_dan) with open("vk_users_ide.json", "w") as wrem_file:
for index in pars_dan:
perenos_json(vk_dan)
распаковывает в json id,name -users
def perenos_open(): with open("vk_users_ide.json.son", "r") as wrem_file: file_j=json.load(wrem_file) print(file_j[0]) print(wrem_file)
perenos_open()
text для мессенджера
def prints(nam,mes, drop): name=nam print(mes[drop][0], name, mes[drop][2])
отправка сообщения через id сообщения
не больше 20 сообщений новых пользователей в день
def send_messenge(num_id, message): global count_send count_messe_error=0 try: vk_session.method("messages.send",{ 'user_id':num_id, 'message': message, 'random_id':0 }) count_send+=1 except: count_messe_error+=1
send_messenge(322428004) #zakriti. chat
send_messenge(799172833)# otcrity chat
функция для таймера с рандомоm, для отправки count_id
def sleep_random(count_id): for i in range(1, count_id): number_second = random.randint(2, 5) time.sleep(number_second)
функция чтения сообщение от user
def message_get(): request_m = vk.messages.get(filters=8, count=200) f = vk.messages.getByld(message_ids=7744818) print (f)
message_get()
получение данных по id
def user_parsin_id(id_user): pars_user=vk.users.get(users_ids=id_user, fields='about') print (pars_user)
def main(): count_send_day20=0 count_num_mess=0 users_parsi=searh_users_vk( count=100, city=56, sex=1, age_from=30, age_to=31)
print ("hood", users_parsi['items'][0]['first_name'])
чтобы увеличить тайм рандома по времени можно поменять числа
main()
следующий шаг принимать сообщения
и написать простую логику ответа
пояснения
_____
парсит данные user по критериям отбора
чтобы спарсить максимум count<1000, работа по age
def searh_users_vk(
count=20,
city=56,
sex=1,
age_from=21, ;
age_to=45
):
danie_vk=vk.users.search(
count=count,
city=city, #городам присвоены номера
sex=sex, #1жен, 2муж
age_from=age_from, #возрост от
age_to=age_to #возрост до
)
print("function work")
print(danie_vk)
return danie_vk
searh_users_vk(
count=200.,
city=56,
sex=1,
age_from=30,
age_to=31)
собираем данные из друзей из моей страницы и отбираем женский пол по окончанию фамилии
def frends_messen(): count=0
user_str='' friends =vk_session.method('friends.get') for friend in friends["items"] : user =vk_session.method('users.get', {'user_ids': friend}) status =vk_session.method('status.get', {'status_ids': friend}) user_str = str(user[0] ['last_name'] )
отбираем женский пол по окончание в фамилии
frends_messen()