Beispiel #1
0
    def _add_sender(self, user_to_response, message):
        response = 'Я отправил запрос к {0}. ' \
                   'Необходимо зайти на эту страницу и подтвердить добавление.'.format(vkapi.message_to_vkid(message))

        vkapi.send_message(vkapi.message_to_vkid(message), self._token,
                           'Вашу страницу добавляют для рассылки, '
                           'для подтверждения этого надо пройти по этой ссылке {0}, '
                           'скопировать ссылку из адресной строки и отправить мне обратно.'
                           .format(vkapi.auth_link))

        logger.info('Added to _wait_for_sender {0}'.format(vkapi.message_to_scrname(message)))
        self._wait_for_sender.append(vkapi.message_to_vkid(message))

        return response
    def reply_to_message(self, data):
        logger.info('call "bot.reply_to_message')
        user_id = data['object']['user_id']

        logger.info('USERID: '+ str(user_id))
        print('After USERID, moderators: ', end='')
        print(self._wait_for_moderators)


        # TODO производить удаления пользователей при добавлении в другие категории (Юзер -> админ)
        try:
            if user_id in self._wait_for_moderators:

                logger.info('Group moderator sended url with access token.')
                self._add_group(self._wait_for_moderators[user_id], user_id, data)

                logger.info('before send_message')
                self.send_message(user_id, 'Группа добавлена.')

                del self._wait_for_moderators[user_id]

            elif user_id in self._wait_for_sender:
                # страница-рассыльщик прислала ссылку с токеном
                self._received_sender_access(data)

            elif AdminPage.select().where(AdminPage.vkid == user_id).exists():
                self.send_message(user_id, self.reply_to_admin(data))

            elif UserPage.select().where(UserPage.vkid == user_id).exists():
                # если страница пользователя прислала ответ
                self._receive_user_response(data)

            else:
                self._response_random_user(data)

        except ManualException as ex:
            vkapi.send_message(user_id=user_id, token=self._token, message=ex.message)
        except Exception as ex:
            vkapi.send_message(user_id=user_id, token=self._token, message=self._bad_message)
            raise ex

        return 'ok'
Beispiel #3
0
 def send_message(self, from_token, to_id, message):
     logger.info('send \"' + str(message) + ' \" from ' + str(from_token) + ' to ' + str(to_id))
     vkapi.send_message(user_id=to_id, token=from_token, message=message)
Beispiel #4
0
 def send_message(self, user_id, message):
     vkapi.send_message(user_id, config.token, message)
Beispiel #5
0
 def send_message(self, user_id, message):
     vkapi.send_message(user_id, self._token, message)
Beispiel #6
0
    def reply_to_message(self, data):
        logger.info('call "bot.reply_to_message')
        user_id = data['object']['user_id']

        logger.info('USERID: ' + str(user_id))
        print('After USERID, moderators: ', end='')
        print(self._wait_for_moderators)

        # TODO производить удаления пользователей при добавлении в другие категории (Юзер -> админ)
        try:
            if user_id in self._wait_for_moderators:

                logger.info('Group moderator sended url with access token.')
                self._add_group(self._wait_for_moderators[user_id], user_id,
                                data)

                logger.info('before send_message')
                self.send_message(user_id, 'Группа добавлена.')

                del self._wait_for_moderators[user_id]

            elif user_id in self._wait_for_sender:
                # страница-рассыльщик прислала ссылку с токеном

                logger.info('Sender sended url with access token.')

                message = data['object']['body']

                access_token = vkapi.get_access_token_from_url(message)

                sender = SenderPage.create(
                    vkid=user_id,
                    token=access_token,
                    message_count=self._sender._message_limit)
                self._sender.something_is_changed()

                logger.info('wait_for_sender: ' + str(self._wait_for_sender))
                self._wait_for_sender.remove(user_id)

                self.send_message(user_id, 'Я добавил эту страницу.')

            elif AdminPage.select().where(AdminPage.vkid == user_id).exists():
                self.send_message(user_id, self.reply_to_admin(data))

            elif UserPage.select().where(UserPage.vkid == user_id).exists():
                # если страница пользователя прислала ответ
                self._receive_user_response(data)

            else:
                logger.info('Random user sended to me a message.')

                random_query = AdminPage.select().order_by(fn.Random())

                # tgroup = TargetGroup.get(TargetGroup.admin_id == random_admin.vkid)
                # new_user = UserPage.create(vkid=user_id, target_group=tgroup, status='active') # TODO check

                if random_query.exists():
                    random_admin = random_query.get()
                    vkapi.forward_messages(random_admin.vkid,
                                           token=self._token,
                                           messages_id=str(
                                               data['object']['id']))

        except ManualException as ex:
            vkapi.send_message(user_id=user_id,
                               token=self._token,
                               message=ex.message)
        except Exception as ex:
            vkapi.send_message(user_id=user_id,
                               token=self._token,
                               message=self._bad_message)
            raise ex

        return 'ok'