def ViberIncoming(): try: if not viber.verify_signature( request.get_data(), request.headers.get('X-Viber-Content-Signature')): return Response(status=403) logging.debug(f"Viber data: {request.get_data().decode('utf-8')}") viber_request = viber.parse_request(request.get_data()) if viber_request.event_type == "message": user_update(viber_request, 'viber') if (isinstance(viber_request, ViberConversationStartedRequest)) or (isinstance(viber_request, ViberMessageRequest) and \ viber_request.message.text.lower() == "привет"): # Пользователь который только что тыкнул на бота или написал привет out = """Welcome message Viber""" try: viber.send_messages(viber_request.user.id, [TextMessage(text=out)]) except: viber.send_messages(viber_request.sender.id, [TextMessage(text=out)]) elif isinstance(viber_request, ViberMessageRequest): # Пользователь написал что-то боту user = db_users.find_one({"_id": viber_request.sender.id}) MessageBox.Message(bot, viber, viber_request, user) except Exception as Error: logging.error(Error) return abort(404) finally: return Response(status=200)
def incoming(): logger.debug("received request. post data: {0}".format(request.get_data())) if not viber.verify_signature(request.get_data(), request.headers.get('X-Viber-Content-Signature')): return Response(status=403) # this library supplies a simple way to receive a request object # эта библиотека предоставляет простой способ получения объекта запроса viber_request = viber.parse_request(request.get_data()) #If comeone sents a message # Если кто-то отправляет сообщение if isinstance(viber_request, ViberMessageRequest): message = viber_request.message if message.text=="Ping": viber.send_messages(viber_request.sender.id, [TextMessage(text="Pong")]) #if some one subscribes to you # если кто-то подписывается на вас elif isinstance(viber_request, ViberSubscribedRequest): viber.send_messages(viber_request.get_user.id, [ TextMessage(text="thanks for subscribing stranger") ]) elif isinstance(viber_request, ViberFailedRequest): logger.warn("client failed receiving message. failure: {0}".format(viber_request)) return Response(status=200)
def send_reply(self, rep, reply_text, user_id): viber = self.api if rep.type == 'place': # Send the image and a button for the user to confirm or reject kbd = self.get_place_keyboard(user_id, rep.buttons) if rep.img: self.send_img(user_id, rep, keyboard=kbd) else: txtmsg = TextMessage(text=str(reply_text), keyboard=kbd) viber.send_messages(user_id, [txtmsg]) elif rep.type == 'place_list': logging.info("Reply itinerary: %s", reply_text) txtmsg = TextMessage(text=str(reply_text), keyboard=buttons_to_keyboard(rep.buttons)) viber.send_messages(user_id, [txtmsg]) elif rep.type == 'interest_question': txtmsg = TextMessage(text=str(reply_text), keyboard=buttons_to_keyboard(rep.buttons)) viber.send_messages(user_id, [txtmsg]) else: rkbd = buttons_to_keyboard(rep.buttons) logging.info("KBD: %s", rkbd) txtmsg = TextMessage(text=str(reply_text), keyboard=rkbd) viber.send_messages(user_id, [txtmsg])
def ViberMessage(viber, viber_request): file_io("read") if viber_request.sender.id in user_amator or viber_request.user.id in user_amator: if (user_amator[viber_request.sender.id]["subscrib"] == False and user_amator[viber_request.sender.id]["registered"] == False and user_amator[viber_request.sender.id]["phone_number"] == None): viber.send_messages(viber_request.sender.id, [ TextMessage(text=msg_text.msg_text[1].format(user_amator[ viber_request.sender.id]["name"])) ]) user_amator[viber_request.sender.id]["subscrib"] = True file_io("write") return if (user_amator[viber_request.sender.id]["subscrib"] == True and user_amator[viber_request.sender.id]["registered"] == False and user_amator[viber_request.sender.id]["phone_number"] == None): #viber.send_messages(viber_request.sender.id, [TextMessage(text=msg_text.msg_text[2])]) viber.send_messages(viber_request.sender.id, [ TextMessage(min_api_version=3, keyboard=keyboard_dict["REG_KEYBOARD"], text=msg_text.msg_text[2]) ]) user_amator[viber_request.sender.id][ "phone_number"] = viber_request.message.contact.phone_number print("--------------------------------TELEPHONE---------", user_amator[viber_request.sender.id]["phone_number"]) file_io("write")
def incoming(): """Catching all requests to bot and defining the request type.""" create_table() viber_request = viber.parse_request(request.get_data()) # Defining type of the request and replying to it if isinstance(viber_request, ViberMessageRequest): # Passing any message from user to message handler in handlers.py user_message_handler(viber, viber_request) elif isinstance(viber_request, ViberSubscribedRequest): viber.send_messages(viber_request.user.id, [ TextMessage(text="Спасибо за подписку!") ]) elif isinstance(viber_request, ViberFailedRequest): logger.warn("client failed receiving message. failure: {0}" .format(viber_request)) elif isinstance(viber_request, ViberConversationStartedRequest): # First touch, sending to user keyboard with phone sharing button keyboard = kb.SHARE_PHONE_KEYBOARD viber.send_messages(viber_request.user.id, [ TextMessage( text=txt.GREETING, keyboard=keyboard, min_api_version=3) ] ) return Response(status=200)
def incoming(): logger.debug("received request. post data: {0}".format(request.get_data())) if not viber.verify_signature( request.get_data(), request.headers.get('X-Viber-Content-Signature')): return Response(status=403) viber_request = viber.parse_request(request.get_data()) if isinstance(viber_request, ViberMessageRequest): # if viber_request.message.text == 'clue': #send out setence to correct # else: message = TextMessage(text=sentences) viber.send_messages(viber_request.sender.id, [message]) elif isinstance(viber_request, ViberSubscribedRequest): viber.send_messages(viber_request.get_user.id, [TextMessage(text='welcome to the sentence bot!')]) elif isinstance(viber_request, ViberFailedRequest): logger.warn('client failed receiving message. failure: {0}'.format( viber_request)) return Response(status=200)
def incoming(): keyboarddate ={ "DefaultHeight": True, "BgColor": "#FFFFFF", "Buttons": [{ "Columns": 6, "Rows": 1, "BgColor": "#2db9b9", "BgMediaType": "gif", "BgLoop": True, "ActionType": "open-url", "ActionBody": "www.tut.by", "Text": "Key text", "TextVAlign": "middle", "TextHAlign": "center", "TextOpacity": 60, "TextSize": "regular" }] } diser = jsonify(keyboarddate) keyboard=json.dumps(keyboarddate) keyb={"DefaultHeight": True} logger.debug("received request. post data: {0}".format(request.get_data())) # every viber message is signed, you can verify the signature using this method if not viber.verify_signature(request.get_data(), request.headers.get('X-Viber-Content-Signature')): return Response(status=403) # this library supplies a simple way to receive a request object viber_request = viber.parse_request(request.get_data()) if isinstance(viber_request, ViberConversationStartedRequest): viber.send_messages(viber_request.user.id, [TextMessage(text="Здравствуйте! Вас приветствует бот helpegisso.")]) logger.debug(" viber_request.get_user().get_id()-{0}".format(viber_request.user.id)) logger.debug("keyboard:{0}".format(keyboard)) if isinstance(viber_request, ViberSubscribedRequest): viber.send_messages(viber_request.user,[TextMessage(text="Спасибо за подписку!")]) logger.debug("_viber_request.get_event_type():{0}".format(viber_request.get_event_type())) elif isinstance(viber_request, ViberUnsubscribedRequest): #viber.send_messages(viber_request.user_id, viber_request.get_event_type()) viber.send_messages(viber_request.user_id, [TextMessage(text="Вы отписались!")]) logger.debug("1_viber_request.get_event_type():{0}".format(viber_request.get_event_type())) elif isinstance(viber_request, ViberFailedRequest): logger.warning("client failed receiving message. failure: {0}".format(viber_request)) if isinstance(viber_request, ViberMessageRequest): messages_echo = viber_request.message #logger.debug("keyboard:{0}".format(keyboard)) #account_info = TextMessage(text=str(viber_request.sender.name)) viber.send_messages(to=viber_request.sender.id, messages=[messages_echo]) if messages_echo=="@1": text=TextMessage(text="test") viber.send_messages(to=viber_request.sender.id, messages=[text]) # viber.post_messages_to_public_account(sender=viber_request., messages=[TextMessage(text="sample message")]) return Response(status=200)
def incoming(): logger.debug("received request. post data: {0}".format(request.get_data())) if not viber.verify_signature( request.get_data(), request.headers.get('X-Viber-Content-Signature')): return Response(status=403) viber_request = viber.parse_request(request.get_data()) if isinstance(viber_request, ViberMessageRequest): if viber_request.sender.id in db.getall(): if viber_request.message.text is '?': report_status() pass else: db.set(viber_request.sender.id, viber_request.sender.id) viber.send_messages(viber_request.sender.id, [TextMessage(text="Welcome to Trojanda")]) elif isinstance(viber_request, ViberSubscribedRequest): db.set(viber_request.user.id, viber_request.user.id) viber.send_messages(viber_request.user.id, [TextMessage(text="Welcome to Trojanada")]) elif isinstance(viber_request, ViberFailedRequest): logger.warn("client failed receiving message. failure: {0}".format( viber_request)) return Response(status=200)
def AdminStart(message): if not re.search("\/start (\d+)", message.text): markup = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True) buttons = [types.KeyboardButton('🎓 Персонал')] buttons.append(types.KeyboardButton('🔥 Сессии')) buttons.append(types.KeyboardButton('⚙️ Сменить имя')) markup.add(*buttons) bot.send_message(message.chat.id, 'Панель управления', reply_markup=markup) return system_id = int(re.search("(\d+)", message.text).group(1)) user = db_users.find_one({"_id": message.from_user.id}) tolker = db_users.find_one({"system id": system_id}) if tolker['operator']['active session'] is not None: bot.send_message(message.chat.id, 'Пользователь сейчас занят другим оператором') return tolker['operator']['active session'] = user['system id'] if user['operator']["sessions"] is None: user['operator']["sessions"] = [] if user['operator']['active session'] is None: user['operator']['active session'] = system_id if system_id in user['operator']["sessions"]: user['operator']["sessions"].remove(system_id) db_users.replace_one({"_id": message.from_user.id}, user, True) db_users.replace_one({"system id": system_id}, tolker, True) bot.send_message(message.chat.id, f'Диалог с {tolker["name"]} активен') if tolker["messenger"] == "viber": viber = Api( BotConfiguration(name=user['operator']['name'], avatar=cfg.v_avatar, auth_token=cfg.v_token)) viber.send_messages(tolker["_id"], [TextMessage(text='Оператор подключился')]) elif tolker["messenger"] == "telegram": bot.send_message( tolker["_id"], f"{user['operator']['name']} Оператор подключился") return if system_id in user['operator']["sessions"]: user['operator']["sessions"].remove(system_id) if user['operator']['active session'] is not None: user['operator']["sessions"].append(user['operator']['active session']) user['operator']['active session'] = system_id db_users.replace_one({"_id": message.from_user.id}, user, True) db_users.replace_one({"system id": system_id}, tolker, True) bot.send_message(message.chat.id, f'Диалог с {tolker["name"]} активен') if tolker["messenger"] == "viber": viber = Api( BotConfiguration(name=user['operator']['name'], avatar=cfg.v_avatar, auth_token=cfg.v_token)) viber.send_messages(tolker["_id"], [TextMessage(text='Оператор подключился')]) elif tolker["messenger"] == "telegram": bot.send_message(tolker["_id"], f"{user['operator']['name']} Оператор подключился")
def listen(viber): sock = socket.socket() sock.bind(('172.31.53.92', 9090)) sock.listen(1) conn, addr = sock.accept() print('connected:', addr) try: while True: data = conn.recv(1024).decode() jsonData = json.loads(data) print(jsonData) if jsonData['wparname'] != 'none': print("trueeee") #+str(jsonData['action']) if jsonData['action'] == 'start': viber.send_messages(jsonData['user_id'], [ TextMessage(text=str(jsonData['wparname']) + " успішно запущено (checkmark)"), KeyboardMessage(keyboard=buttons.student_account) ]) elif jsonData['action'] == 'stop': viber.send_messages(jsonData['user_id'], [ TextMessage(text=str(jsonData['wparname']) + " успішно зупинено (checkmark)"), KeyboardMessage(keyboard=buttons.student_account) ]) #global wparData #if wparData!="none": #print(wparQueue.qsize()) if wparQueue.qsize() > 0: wparEntity = wparQueue.get() print(wparEntity["wparname"]) sendingData = { 'wparname': wparEntity['wparname'], 'action': wparEntity['action'], 'user_id': wparEntity['user_id'] } conn.send(json.dumps(sendingData).encode()) else: sendingData = { 'wparname': 'none', 'action': 'none', 'user_id': 'none' } conn.send(json.dumps(sendingData).encode()) #print(wparData) #if wparData.qsize() == 0: # wparData.put("none") # print("none") #print(wparData) time.sleep(2) except Exception as e: conn.close() print("Server error:", e)
def incoming(): viber_request = viber.parse_request(request.get_data()) if isinstance(viber_request, ViberMessageRequest): # lets echo back get_user_id(viber_request.sender.id) request_content = str(viber_request.message.text).lower() if request_content.__eq__(Constants.QUERY_BIRTHDAY_MONTH): list_user = get_list_users_in_month() if list_user is None or len(list_user) == 0: viber.send_messages(viber_request.sender.id, [ TextMessage( text= "Tháng này không có nhân viên có sinh nhật \n --end--") ]) else: now_date = datetime.datetime.now() viber.send_messages(viber_request.sender.id, [ TextMessage( text="Danh sách nhân viên sinh nhật tháng {0} :". format(now_date.month)) ]) send_list_users(viber_request.sender.id, list_user) viber.send_messages(viber_request.sender.id, [TextMessage(text="--end--")]) elif request_content.__eq__(Constants.QUERY_BIRTHDAY_TODAY): list_user = get_list_users_today() if list_user is None or len(list_user) == 0: viber.send_messages(viber_request.sender.id, [ TextMessage( text= "Hôm nay không có nhân viên có sinh nhật \n --end--") ]) else: now_date = datetime.datetime.now() viber.send_messages(viber_request.sender.id, [ TextMessage(text="Danh sách nhân viên sinh nhật ngày {0} :" .format(now_date.date().strftime("%d/%m/%Y"))) ]) send_list_users(viber_request.sender.id, list_user) viber.send_messages(viber_request.sender.id, [TextMessage(text="--end--")]) elif request_content.__eq__(Constants.QUERY_GET_USER_ID): message = viber_request.message viber.send_messages(viber_request.sender.id, [message]) else: viber.send_messages(viber_request.sender.id, [ TextMessage( text="Xin chào " + str(viber_request.sender.name) + "\n - Để lấy danh sách sinh nhật tháng này, gửi:{0}". format(Constants.QUERY_BIRTHDAY_MONTH) + "\n - Để lấy danh sách sinh nhật hôm nay, gửi: {0}".format( Constants.QUERY_BIRTHDAY_TODAY) + "\n --end--") ]) elif isinstance(viber_request, ViberSubscribedRequest): get_user_id(viber_request.sender.id) viber.send_messages(viber_request.get_user.id, [TextMessage(text="thanks for subscribing!")]) return Response(status=200)
def answer(text, game): db = MyDataBase('database.db') user_id = db.find_user(game.viber_id)[0] if text == game.word["translation"]: # счётчик правильных ответов game.count_correct += 1 db.update_learning(user_id, game.word['word']) bot_response = TextMessage(text='Правильно') else: bot_response = TextMessage(text='Неправильно') # всего ответов game.count_all += 1 viber.send_messages(game.viber_id, [bot_response]) question(game)
def main(viber, viber_request, condition): if re.match(r'(?i).*(лабораторн).*\d.*', condition): viber.send_messages(viber_request.sender.id, [ URLMessage(media=functions.send_task_for_lab( functions.parse_digits_from_text(condition))) ]) elif re.match(r'(?i).*(дякую).*', condition): viber.send_messages(viber_request.sender.id, [TextMessage(text="Нема за що, звертайся ще 😉.")]) elif re.match(r'(?i).*не можу зробити лабораторну.*', condition): viber.send_messages(viber_request.sender.id, [ TextMessage( text="У тебе все вийде 😉, я у тебе вірю 😘. Тримай шоколадку 🍫") ])
def incoming(): logger.debug("Получил запрос. Отправка данных: {0}".format( request.get_data())) viber_request = viber.parse_request(request.get_data()) viber_request = viber.parse_request(request.get_data().decode('utf8')) if isinstance(viber_request, ViberMessageRequest): message_vmr = viber_request.message viber.send_messages(viber_request.sender.id, [message_vmr]) print( "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ТЕКСТОВОЕ СООБЩЕНИЕ *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" ) elif isinstance(viber_request, ViberConversationStartedRequest): message_vcsr = '''Рады приветствовать Вас, {0}! Вы вошли на главную страницу бота СТ "АМАТОР". Созданного для обмена информацией между членами товарищества и правлением. НАПИШИТЕ ЛЮБОЕ СООБЩЕНИЕ для того чтоб подписаться и получить доступ к основному функционалу нашего бота.'''.format( viber_request.user.name) viber.send_messages(viber_request.user.id, [TextMessage(text=message_vcsr)]) print( "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ПРИВЕТСТВЕННОЕ *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" ) elif isinstance(viber_request, ViberSubscribedRequest): message_vsubsc = '''Отлично, {0}! Вы успешно подписались на наш публичный канал СТ "АМАТОР", и теперь вам доступен весь функционал нашего чат бота.'''.format( viber_request.user.name) viber.send_messages(viber_request.user.id, [TextMessage(text=message_vsubsc)]) logger.debug("Получил запрос: ПОДПИСАТЬСЯ") print( "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ПОДПИСАТЬСЯ *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" ) elif isinstance(viber_request, ViberUnsubscribedRequest): #message_vunsubsc='''{0}, Вы успешно отписались от нашего публичного канала СТ "АМАТОР"'''.format(viber_request.user_id) #viber.send_messages(viber_request.user_id, [TextMessage(text=message_vunsubsc)]) logger.debug("Получил запрос. ОТПИСАТЬСЯ") print( "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ОТПИСАТЬСЯ *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" ) elif isinstance(viber_request, ViberFailedRequest): logger.warn( "Клиент не получил сообщение. Ошибка: {0}".format(viber_request)) return Response(status=200)
def question(game): session = Session() if game.count_all <= 3: # вывести вопрос next_word(game) bot_response = TextMessage(text=f'{game.count_all + 1}. Перевод слова: {game.word["word"]}', keyboard=CreateKBD(game), tracking_data='tracking_data') viber.send_messages(game.viber_id, [bot_response]) else: # вывести итоги раунда bot_response = TextMessage(text=f"Верно {game.count_correct} из {game.count_all}", keyboard=START_KBD, tracking_data='tracking_data') viber.send_messages(game.viber_id, [bot_response]) session.close()
def _callback_on_searching(self, user_id, details): viber = self.api logging.info("Starting search at %s", details) place = details['location'].capitalize() t = details['type'] if len(t) == 0: txtmsg = TextMessage( text="Great. Here are a few places for you to stay in {0}..". format(place)) viber.send_messages(user_id, [txtmsg]) else: txtmsg = TextMessage( text="Great. I'll start searching for {0} in {1}..".format( 'placest to stay', place)) viber.send_messages(user_id, [txtmsg])
def incoming(): logger.debug("received request. post data: {0}".format(request.get_data())) # handle the request here return Response(status=200) if not viber.verify_signature( request.get_data(), request.headers.get('X-Viber-Content-Signature')): return Response(status=403) # this library supplies a simple way to receive a request object viber_request = viber.parse_request(request.get_data()) if isinstance(viber_request, ViberMessageRequest): message = viber_request.message viber.send_messages(viber_request.sender.id, [message]) elif isinstance(viber_request, ViberSubscribedRequest): viber.send_messages(viber_request.user.id, [TextMessage(text="thanks for subscribing!")]) elif isinstance(viber_request, ViberFailedRequest): logger.warn("client failed receiving message. failure: {0}".format( viber_request)) return Response(status=200)
def notify_users(): logger.debug("received request for send_message. post data: {0}".format( request.get_data())) data = json.loads(request.get_data().decode()) users = data['users'] rule_id = data['rule_id'] time = data['time'] timeout = data['timeout'] user_friendly_name = data['user_friendly_name'] for user in users: logger.info("Sending message to {0}. id: {1}".format( user['name'], user['id'])) viber.send_messages( user['id'], [ # TextMessage(text='Через {0} хвилин {1} будут поливатися {2}хв.\nДля того, щоб відмнінити правило, наберіть \'Відмінити {3}\' або перейдіть за посиланням з наступного повідомлення'.format(timeout, user_friendly_name, time, rule_id)) TextMessage( text= "Через {0} хвилин почнеться полив гілки '{1}'. Триватиме {2} хвилин.\nДля того, щоб відмнінити цей полив, відправте мені повідомлення \n'Відмінити {3}'" .format(timeout, user_friendly_name, time, rule_id)) # URLMessage(media="http://185.20.216.94:7542/cancel_rule?id={0}".format(rule_id)) ]) logger.info("Done") return Response(status=200)
def example(game, number): bot_response = TextMessage(text=f'{game.word["examples"][number]}', keyboard=CreateKBD(game), tracking_data='tracking_data') keyboard = KeyboardMessage(tracking_data='tracking_data', keyboard=CreateKBD(game)) viber.send_messages(game.viber_id, [bot_response])
def incoming(): logger.debug("received request. post data: {0}".format(request.get_data())) viber_request = viber.parse_request(request.get_data()) subscriptions = [ ] # contains instances of classes on which other processes are signed # --- simple request handling bloc start --- if isinstance(viber_request, ViberMessageRequest): message = viber_request.get_message() viber.send_messages(viber_request.get_sender().get_id(), [message]) elif isinstance(viber_request, ViberConversationStartedRequest) \ or isinstance(viber_request, ViberSubscribedRequest) \ or isinstance(viber_request, ViberUnsubscribedRequest): viber.send_messages( viber_request.get_user().get_id(), [TextMessage(None, None, viber_request.get_event_type())]) elif isinstance(viber_request, ViberFailedRequest): logger.warn("client failed receiving message. failure: {0}".format( viber_request)) # --- simple request handling bloc end --- # event processor cycle for subscription in subscriptions: for class_key, subscribers in subscribers_dict.iteritems(): if isinstance(subscription, class_key): for subscriber in subscribers: event_queues_dict.get(subscriber).put_nowait(subscription) return Response(status=200)
def __get__disable__(self): if self.current_user.id not in KeysWords: keyboard = self.__get__keys_start__() else: keyboard = KeysWords[self.current_user.id]['keyboard'] if self.current_user.is_notice_need: message = \ [TextMessage(text="Включить напоминание можно будет в конце каждого раунда"), KeyboardMessage(keyboard=keyboard)] else: message = \ [TextMessage(text="Я о вас не забуду."), KeyboardMessage(keyboard=keyboard)] self.current_user.is_notice_need = not self.current_user.is_notice_need self.session.commit() return message
def handle_message_request(self, viber_request): message = viber_request.message userid = viber_request.sender.id response = self.ask_question(userid, message) self._viber_bot.send_messages(viber_request.sender.id, [TextMessage(text=response)])
def faq_options(viber, viber_request, condition): print("faq", condition) if re.match(r'(?i)(^завдання.*)|(.*(лаб).*(роб).*)', condition): viber.send_messages(viber_request.sender.id, [ RichMediaMessage(rich_media=buttons.carousel_contentFirstLabs, min_api_version=2, alt_text="Обери потрібну лабораторну роботу"), RichMediaMessage(rich_media=buttons.carousel_contentSecondLabs, min_api_version=2, alt_text="Обери потрібну лабораторну роботу"), KeyboardMessage(keyboard=buttons.faq_keyboard) ]) elif re.match(r'(?i).*(розклад).*', condition): viber.send_messages(viber_request.sender.id, [ TextMessage(text=texts.schedule), KeyboardMessage(keyboard=buttons.faq_keyboard) ]) elif re.match(r'(?i).*((вимоги)|(звіт)).*', condition): viber.send_messages(viber_request.sender.id, [ TextMessage(text=texts.requirements), KeyboardMessage(keyboard=buttons.faq_keyboard) ]) elif re.match(r'(?i)(.*цікав.*факт.*)', condition): viber.send_messages(viber_request.sender.id, [ TextMessage(text=choice(texts.interesting_facts)), KeyboardMessage(keyboard=buttons.faq_keyboard) ]) elif re.match(r'(?i).*((ssh.*)|(з wpar)).*', condition): viber.send_messages(viber_request.sender.id, [ TextMessage(text=texts.connect_ssh), URLMessage( media= "https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html" ), KeyboardMessage(keyboard=buttons.faq_keyboard) ]) elif condition == "До головного меню": #keyboard = KeyboardMessage(tracking_data='tracking_data', keyboard=buttons.main_menu()) viber.send_messages(viber_request.sender.id, [ TextMessage(text="Чим я можу тобі допомогти? (eyes)"), KeyboardMessage(keyboard=buttons.main_keyboard) ]) else: dialog.main(viber, viber_request, condition)
def answer(text, game): session = Session() if text == game.word["translation"]: # счётчик правильных ответов game.count_correct += 1 user_id = session.query(Users.user_id).filter(Users.viber_id == game.viber_id) learning = session.query(Learning).filter(Learning.user_id == user_id).filter( Learning.word == game.word["word"]).first() learning.correct_answer += 1 session.commit() bot_response = TextMessage(text='Правильно') else: bot_response = TextMessage(text='Неправильно') # всего ответов game.count_all += 1 viber.send_messages(game.viber_id, [bot_response]) session.close() question(game)
def Subscribed(viber, viber_request): file_io("read") viber.send_messages(viber_request.user.id, [ TextMessage(text=msg_text.msg_text[1].format(viber_request.user.name)) ]) user_amator[viber_request.user.id]["subscrib"] = True print( "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ПОДПИСАТЬСЯ *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" )
def incoming(): logging.debug("received request. post data: {0}".format( request.get_data())) # every viber message is signed, you can verify the signature using this method if not viber.verify_signature( request.get_data(), request.headers.get('X-Viber-Content-Signature')): return Response(status=403) # this library supplies a simple way to receive a request object viber_request = viber.parse_request(request.get_data()) if isinstance(viber_request, ViberMessageRequest): message = viber_request.message subscribers = load_subscribers() if 'unsubscribe' in message.text: if viber_request.sender.id in subscribers: subscribers.pop(subscribers.index(viber_request.sender.id)) message = TextMessage(text='Unsubscribed!') else: message = TextMessage(text='Thanks For Subscribing!') subscribers.append(viber_request.sender.id) viber.send_messages(viber_request.sender.id, [message]) subscribers = list(set(subscribers)) with open('subscribers.json', 'w') as fp: json.dump(subscribers, fp) elif isinstance(viber_request, ViberUnsubscribedRequest): subscribers = load_subscribers() if viber_request.sender.id in subscribers: subscribers.pop(subscribers.index(viber_request.sender.id)) with open('subscribers.json', 'w') as fp: json.dump(subscribers, fp) elif isinstance(viber_request, ViberFailedRequest): logging.warn("client failed receiving message. failure: {0}".format( viber_request)) return Response(status=200)
def SessionClose(message): system_id = int(re.search("(\d+)", message.text).group(1)) user = db_users.find_one({"_id": message.from_user.id}) if not db_users.find_one({"system id": system_id}): bot.send_message(message.chat.id, 'Такого пользователя нет') return tolker = db_users.find_one({"system id": system_id}) if user['operator']['active session'] == system_id: user['operator']['active session'] = None tolker['operator']['active session'] = None db_users.replace_one({"_id": message.from_user.id}, user, True) db_users.replace_one({"_id": tolker["_id"]}, tolker, True) bot.send_message(message.chat.id, f'Активная сессия с {tolker["name"]} закрыта') if tolker["messenger"] == "viber": viber = Api( BotConfiguration(name=user['operator']['name'], avatar=cfg.v_avatar, auth_token=cfg.v_token)) viber.send_messages(tolker["_id"], [TextMessage(text='Оператор отключился')]) elif tolker["messenger"] == "telegram": bot.send_message(tolker["_id"], f"{user['operator']['name']}\nОтключился") return if system_id in user['operator']["sessions"]: user['operator']['sessions'].remove(system_id) tolker['operator']['active session'] = None if len(user['operator']["sessions"]) == 0: user['operator']["sessions"] = None db_users.replace_one({"_id": message.from_user.id}, user, True) db_users.replace_one({"_id": tolker["_id"]}, tolker, True) bot.send_message(message.chat.id, f'Сессия с {tolker["name"]} закрыта') if tolker["messenger"] == "viber": viber = Api( BotConfiguration(name=user['operator']['name'], avatar=cfg.v_avatar, auth_token=cfg.v_token)) viber.send_messages(tolker["_id"], [TextMessage(text='Оператор отключился')]) elif tolker["messenger"] == "telegram": bot.send_message(tolker["_id"], f"{user['operator']['name']}\nОтключился") return
def _on_start(self, user_id): viber = self.api d = self.get_dialog(user_id) g = d.start() d.on_searching( lambda details: self._callback_on_searching(user_id, details)) keyboard_msg = self.get_initial_keyboard(user_id)._keyboard viber.send_messages(user_id, [ TextMessage(text=g, keyboard=keyboard_msg), ])
def main(viber, id): switchTrue2 = True while True: response = json.loads(requests.get(url).content) description=response["details"] picture=response["links"]["patch"]["small"] launch_time=int(response["static_fire_date_unix"]) print("launch date: ", datetime.utcfromtimestamp(launch_time).strftime('%Y-%m-%d %H:%M:%S')) current_time = int(time.time()) print("current date: ", datetime.utcfromtimestamp(current_time).strftime('%Y-%m-%d %H:%M:%S')) if launch_time<=current_time and switchTrue2==True: #and launch_time+14400>=current_time and switchTrue: switchTrue2=False print(response) print(description) pictureSpacex = PictureMessage(media=picture) viber.send_messages(id, [TextMessage(text="Ілон Маск сьогодні запустив ракету (rocket), а що за сьогодні зробив корисного ти? (what)"), pictureSpacex]) viber.send_messages(id, [TextMessage(text=description), KeyboardMessage(keyboard=buttons.main_keyboard)]) time.sleep(60)
def postMessages(): logger.debug("received request. post data: {0}".format(request.get_data())) req_data = request.get_json() message = req_data['text'] userDtl = db.subusers subscribedUsrs = userDtl.find({'subscribed': True}) for subuser in subscribedUsrs: viber.send_messages(subuser['userId'], [TextMessage(text=message)]) return Response(status=200)