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_admin(self, data): logger.info('in reply_to_admin()') message = data['object']['body'].lower() user_id = data['object']['user_id'] try: if message.find('добавь админа') != -1 or message.find( 'добавить админа') != -1: self._add_admin(message) return 'Админ добавлен.' elif message.find('добавь группу') != -1 or message.find( 'добавить группу') != -1: #TODO change find to [a, b] # self._add_group(user_id, message) self._wait_for_moderators[user_id] = vkapi.message_to_vkid( message) # будем ждать ответа print(self._wait_for_moderators) return self._get_mess_with_auth_link() elif message[:15] == 'колво сообщений': self._change_mess_count(message) return 'Количество сообщений изменено.' elif message[:5] == 'текст': # TODO text для конкретной группы self._change_text( data['object']['body']) # неизмененный текст нужен return 'Текст изменен.' elif message[:24].find( 'добавь страницу') != -1 or message[:24].find( 'добавить страницу') != -1: return self._add_sender(user_id, message) elif message[:16].find( 'запусти рассылку') != -1 or message[:16].find( 'запустить рассылку') != -1: self._sender.run() return 'Рассылка запущена.' elif message[:20].find( 'останови рассылку') != -1 or message[:20].find( 'остановить рассылку') != -1: self._sender.stop() return 'Рассылка остановлена.' else: return 'Я не понял команды. Попробуйте еще раз.' except ManualException as ex: logger.info('EXCEPTION RAISED: ' + ex.message) return ex.message except Exception as ex: logger.info('EXCEPTION RAISED: ' + str(ex)) traceback.print_exc() return self._bad_message
def test_consumer_mess(): g.db.close() screenname = 'https://vk.com/paulpalich' consumer_id = vkapi.message_to_vkid(screenname) debug_processing( '{"type": "message_new", "object": {"id": 43, "date": 1492522323, ' '"out": 0, "user_id": ' + str(consumer_id) + ', "read_state": 0, ' '"body": "Это случайное сообщение от случайного чувака!!!"}}')
def _change_mess_count(self, message): self._sender.something_is_changed() logger.info('in BotBase._change_mess_count()') without_mes_count = message.split() without_mes_count.pop() # выкидывает количество сообщений group_id = vkapi.message_to_vkid(without_mes_count[-1]) # кидает внутрь последнее слово group = TargetGroup.get(TargetGroup.vkid == group_id) group.message_count = message.split()[-1] group.save()
def _change_text(self, message): self._sender.something_is_changed() text = re.findall('\"[\w\W]*\"', message)[0] # берет текст request = message.replace(' ' + text, '') group_id = vkapi.message_to_vkid(request) text = text[1:-1] # отрезает ковычки group = TargetGroup.get(TargetGroup.vkid == group_id) group.text = text group.save()
def _add_admin(self, message): logger.info('in BotBase._add_admin()') new_anmin_vkid = vkapi.message_to_vkid(message) admin = AdminPage.create(vkid=new_anmin_vkid, target_group=None)