def get_unread_dialogs(count=200, login=settings.LOGIN, password=settings.PASSWORD, have_two_factor_authentication=False): """ Получение ID непрочитаных диалогов :param count: Количесво получаемых диалогов :type count: inr :param login: Логин пользователя во Вконтакте :type login: str :param password: Пароль пользователя во Вконтакте :type password: str :param have_two_factor_authentication: Есть ли двухфакторная аутентификация :type have_two_factor_authentication: bool :return: Список ID непрочитаных диалогов :rtype: list """ messages = vk_messages.MessagesAPI(login=login, password=password, two_factor=have_two_factor_authentication, cookies_save_path='/home/website/virtual-person/website/bot/sessions/') history = messages.method('messages.getConversations', filter='unread', count=count) id_list = [] if 'items' in history: for conversation in history['items']: id_list.append({"id": conversation['conversation']['peer']['id'], "count": conversation['conversation']['unread_count']}) return id_list
def get_messages(count, user_id, login=settings.LOGIN, password=settings.PASSWORD, have_two_factor_authentication=False): """ Функция для получения новых сообщений из вк :param count: Количество сообщений выгружаемых из диалога :type count: int :param user_id: ID пользователя получателя во Вконтакте :type user_id: int :param login: Логин пользователя отправителя во Вконтакте :type login: str :param password: Пароль пользователя отправителя во Вконтакте :type password: str :param have_two_factor_authentication: Есть ли двухфакторная ауетефикация :type have_two_factor_authentication: bool :return: Список сообщений :rtype: list """ messages = vk_messages.MessagesAPI(login=login, password=password, two_factor=have_two_factor_authentication, cookies_save_path='/home/website/virtual-person/website/bot/sessions/') history = messages.method('messages.getHistory', user_id=str(user_id), count=count) return parse_messages(history)
def getMessages(): messages = vk_messages.MessagesAPI(login=init_vkname, password=init_vkpass, two_factor=False, cookies_save_path='F:\\sessions\\') conversations = messages.method('messages.getConversations', offset=0, count=200) file = open( "F:\\vk_messages.csv", "w", encoding='cp1251', errors='replace', newline='' ) # если без кодировки то UnicodeEncodeError: 'charmap' codec can't encode character file.write("date;from;companion;out;text\n") for item in conversations.get("items"): peer_id = item.get('conversation').get('peer').get("id") conversations = messages.method('messages.getHistory', peer_id=peer_id, offset=0, count=200) #max 200 sms for message in conversations.get('items'): # print(message) file.write(str(message.get('date')) + ";") file.write(str(message.get('from_id')) + ";") file.write(str(message.get("peer_id")) + ";") file.write(str(message.get("out")) + ";") file.write(message.get('text') + "\n")
def get_new_friends_list(self): """ Метод получающий список всех заявок в друзья пользователя :return: Список ID пользователей :rtype: list """ messages = vk_messages.MessagesAPI(login=self.login, password=self.password, two_factor=self.have_two_factor_authentication, cookies_save_path='/home/website/virtual-person/website/bot/sessions/') return messages.method('friends.getRequests')['items']
def add_friend(self, user_id): """ Метод добавляющий конкретного пользователя :param user_id: ID добавляемого человека :type user_id: int """ messages = vk_messages.MessagesAPI(login=self.login, password=self.password, two_factor=self.have_two_factor_authentication, cookies_save_path='/home/website/virtual-person/website/bot/sessions/') messages.method('friends.add', user_id=str(user_id))
def send_message(self, user_id, message): """ Отправка сообщений сообществу :param user_id: ID получателя сообщения :type user_id: int :param message: Сообщение :type message: str """ if len(message) == 0 or len(message) > 4096: return messages = vk_messages.MessagesAPI(login=self.login, password=self.password, two_factor=self.have_two_factor_authentication, cookies_save_path='/home/website/virtual-person/website/bot/sessions/') messages.method('messages.send', user_id=str(user_id), group_id=self.group_id, message=message, random_id=random.randint(1, 1000000000))
def get_messages(self, user_id, count): """ Получение сообщений :param user_id: ID переписки :type user_id: int :param count: Получаемое количество сообщение :type count: int :return: Список сообщений :rtype: list """ messages = vk_messages.MessagesAPI(login=self.login, password=self.password, two_factor=self.have_two_factor_authentication, cookies_save_path='/home/website/virtual-person/website/bot/sessions/') history = messages.method('messages.getHistory', user_id=str(user_id), count=count, group_id=self.group_id) return parse_messages(history)
def get_unread_dialogs(self, count=200): """ Получение непрочитанных сообщение от сообществ :param count: Количество диалогов :type count: int :return: Возвращает список вот таких словарей {"id": id, "count": количество неспрочитанных сообщений} :rtype: list """ messages = vk_messages.MessagesAPI(login=self.login, password=self.password, two_factor=self.have_two_factor_authentication, cookies_save_path='/home/website/virtual-person/website/bot/sessions/') history = messages.method('messages.getConversations', filter='unread', count=count, group_id=self.group_id) id_list = [] if 'items' in history: for conversation in history['items']: id_list.append({"id": conversation['conversation']['peer']['id'], "count": conversation['conversation']['unread_count']}) return id_list
def send_message(message, user_id, login=settings.LOGIN, password=settings.PASSWORD, have_two_factor_authentication=False): """ Функция для отправки сообщения :param message: Сообщение :type message: str :param user_id: ID пользователя получателя во Вконтакте :type user_id: int :param login: Логин пользователя отправителя во Вконтакте :type login: str :param password: Пароль пользователя отправителя во Вконтакте :type password: str :param have_two_factor_authentication: Есть ли двухфакторная ауетефикация :type have_two_factor_authentication: bool """ if len(message) == 0 or len(message) > 4096: return messages = vk_messages.MessagesAPI(login=login, password=password, two_factor=have_two_factor_authentication, cookies_save_path='/home/website/virtual-person/website/bot/sessions/') messages.method('messages.send', user_id=str(user_id), message=message, random_id=random.randint(1, 1000000000))