예제 #1
0
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
예제 #2
0
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)
예제 #3
0
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")
예제 #4
0
    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']
예제 #5
0
    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))
예제 #6
0
    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))
예제 #7
0
    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)
예제 #8
0
    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
예제 #9
0
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))