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 create_viber_bot(self, viber_token): if viber_token is None: YLogger.error(self, "'viber_token' missing") return None name = self.configuration.client_configuration.name if name is None: YLogger.error(self, "'name' missing from Viber configuration") return None avatar = self.configuration.client_configuration.avatar if avatar is None: YLogger.error(self, "'avatar' missing from Viber configuration") return None webhook = self.configuration.client_configuration.webhook if webhook is None: YLogger.error(self, "'webhook' missing from Viber configuration") return None configuration = BotConfiguration(name=name, avatar=avatar, auth_token=viber_token) bot = self.create_viber_api(configuration) if bot is not None: YLogger.error(self, "'Failed to create Viber api") bot.set_webhook(webhook) return bot
def __init__(self, appConfig, dbUsers = 'vb_users.json') -> None: http_tunnel = ngrok.connect() self.public_url = http_tunnel.public_url.replace('http', 'https') print('Public URL acquired: ' + self.public_url) self.usersDb = TinyDB(dbUsers) self.app = Flask(__name__) self.config = appConfig self.viber = Api(BotConfiguration( name = self.config.getProperty('Publishers.Viber.Name'), avatar = self.config.getProperty('Publishers.Viber.Avatar'), auth_token = self.config.getProperty('Publishers.Viber.Token') )) self.query = Query() ## Delayed webhook setup scheduler = sched.scheduler(time.time, time.sleep) scheduler.enter(5, 1, self.set_webhook, (self.viber,)) t = threading.Thread(target=scheduler.run) t.start() self.app.add_url_rule('/', 'incoming', self.incoming, methods=['POST']) self.app.add_url_rule('/ctrl', '', self.control, methods=['POST', 'GET']) self.t_webApp = threading.Thread(target=self.flaskThread) self.t_webApp.setDaemon(True) print("Viber worker created.")
def __init__(self, bot_configuration=None): if not bot_configuration: bot_configuration = BotConfiguration( name='VibeMachine', avatar= 'https://cdn.vox-cdn.com/thumbor/HftXuxUl3QZUjm9Hxjr9I9BQGUw=/0x0:570x375/1820x1213/filters:focal(240x143:330x233):format(webp)/cdn.vox-cdn.com/uploads/chorus_image/image/62359567/slack_imgs_2.0.jpg', auth_token=secrets['vibemachine_auth_token']) super().__init__(bot_configuration)
def init_bot(): config = BotConfiguration( name="Books delivery", avatar="", auth_token=settings.BOT_TOKEN ) bot = Api(config) return bot
def test_viber_verify_signature(self): bot_configuration = BotConfiguration( name='SKableBot', avatar='http://viber.com/avatar.jpg', auth_token=settings.VIBER_BOT_TOKEN) viber = Api(bot_configuration) request_header = '95a958f90bb88a0ef5312c2511e1c56650b968a37eb75f1e7326ebf52c1c9667' message = b'{"event":"message","timestamp":1524508607514,"message_token":5169273451608157073,"sender":{"id":"u2NYcWleYQgJQkgYdDhfzg==","name":"\\u0410\\u043B\\u0435\\u043A\\u0441\\u0430\\u043D\\u0434\\u0440 \\u0417\\u0430\\u0439\\u043A\\u0438\\u043D","avatar":"https://media-direct.cdn.viber.com/download_photo?dlid=PSF1BfvQJ9A1-blH6-shscNy-C3JnI4ax6BfvHWwdLyEAVEN_Obs-JD0DrUo6yVL_Y4Mokd8iyLhBA9a-KMVC7mXjWOEe5xDUy9htktinG1c9_lY5ejsWI8O3_T2sfjipqCj4g&fltp=jpg&imsz=0000","language":"ru","country":"RU","api_version":5},"message":{"text":"hello","type":"text"},"silent":false}' self.assertTrue(viber.verify_signature(message, request_header))
def __init__(self, token: str, **kwargs): super().__init__(token, **kwargs) self.bot = Api( BotConfiguration( auth_token=token, name=kwargs.get('name'), avatar=kwargs.get('avatar'), ))
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 __init__(self): name = 'Guide' avatar = 'https://st2.depositphotos.com/'\ '3146979/9765/v/950/depositphotos_97658722'\ '-stock-illustration-vector-round-icon-pile-of.jpg' auth_token = os.environ['VIBER_AUTH_TOKEN'] viber_bot_config = BotConfiguration(name=name, avatar=avatar, auth_token=auth_token) self.viber_bot = Api(viber_bot_config)
def getCurBotAPIRuntime(bot_config): global __BOT_API_RUNTIME__ if __BOT_API_RUNTIME__.get(bot_config['api_token']) == None: # Создаем экземпляр API для бота bot_configuration = BotConfiguration( name=bot_config['name'], avatar='', auth_token=bot_config['api_token']) # Создание API для запуска бота __BOT_API_RUNTIME__[bot_config['api_token']] = Api(bot_configuration) return __BOT_API_RUNTIME__[bot_config['api_token']]
def __init__(self, appConfig, dbName = 'vb_db.json') -> None: self.db = TinyDB(dbName) self.usersDb = TinyDB('vb_users.json') self.app = Flask(__name__) self.config = appConfig self.viber = Api(BotConfiguration( name = self.config.getProperty('Publishers.Viber.Name'), avatar = '', auth_token = self.config.getProperty('Publishers.Viber.Token') )) self.query = Query() print("Viber publisher created.")
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.add_url_rule('/message', view_func=self.message, methods=['POST']) bot_configuration = BotConfiguration( name=os.environ['VIBERBOT_NAME'], avatar=os.environ['VIBERBOT_AVATAR'], auth_token=os.environ['VIBERBOT_TOKEN']) self.viber = Api(bot_configuration) self.allowedUsers = os.environ['VIBERBOT_ALLOWED_USERS'] self.disk = YadiskWrapper(os.environ['YADISK_TOKEN'])
def create_viber_bot(self, viber_token): name = self.configuration.client_configuration.name avatar = self.configuration.client_configuration.avatar webhook = self.configuration.client_configuration.webhook bot_configuration = BotConfiguration(name=name, avatar=avatar, auth_token=viber_token) bot = self.create_viber_api(bot_configuration) bot.set_webhook(webhook) return bot
def __init__(self, web_url, web_config=('0.0.0.0', 8080)): super().__init__() self.thread = None self.token = os.environ.get('VIBER_TOKEN') if self.token is None: raise Exception('VIBER_TOKEN env variable is nil.') self.bot_configuration = BotConfiguration( name=os.environ.get('VIBER_NAME'), avatar='https://static.thenounproject.com/png/363639-200.png', auth_token=self.token) self.api = None self.app = Flask(__name__) self.web_config = web_config self.web_url = web_url self.setup_routes() self.last_message = None self.initial_button_text = "I want to book a hotel"
def main(): i18n.load_path.append(os.path.dirname(__file__)) i18n.set('file_format', 'json') token = None with open(os.path.dirname(__file__) + '/token_file', 'r') as tokenFile: token = tokenFile.readline() app = Flask(__name__) viber = Api( BotConfiguration(name=i18n.t(__get_res('botName')), avatar=i18n.t(__get_res('image-url')), auth_token=token)) messageSwitcher = MessageSwitcher(viber) @app.route('/' + token, methods=['POST']) def incoming(): logger.debug("received request. post data: {0}".format( request.get_data())) viber_request = viber.parse_request(request.get_data().decode('utf-8')) messageSwitcher.disassembleReq(viber_request) # if isinstance(viber_request, ViberMessageRequest): # message = viber_request.message # # lets echo back # userId = viber_request.sender.id # sendMessage(viber, userId) # # viber.send_messages(viber_request.sender.id, [message]) # elif isinstance(viber_request, ViberSubscribedRequest): # viber.send_messages(viber_request.get_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) app.run()
import logging import sched logger = logging.getLogger() logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) app = Flask(__name__) viber = Api( BotConfiguration( name='PythonBot', avatar= 'http://cs9.pikabu.ru/images/big_size_comm/2017-01_7/1485863230198053474.jpg', auth_token='46035a5801f49064-54a5b815877ccb4d-176654aa2704e14a')) # dictionary where key is an class of Viber and value is a key from event_queues_dict subscribers_dict = {} # incoming queues of all processes event_queues_dict = {} @app.route('/', methods=['POST']) def incoming(): logger.debug("received request. post data: {0}".format(request.get_data())) viber_request = viber.parse_request(request.get_data())
import os import utils.settings logger = logging.getLogger() logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) last_token = 0 last_token_track = 0 app = Flask(__name__) viber = Api(BotConfiguration( name=utils.settings.name, avatar=utils.settings.avatar, auth_token=utils.settings.auth_token )) @app.route('/', methods=['POST']) def incoming(): global last_token global last_token_track logger.debug("received request. post data: {0}".format(request.get_data())) viber_request = viber.parse_request(request.get_data().decode('utf8')) if isinstance(viber_request, ViberMessageRequest): message = viber_request.message token = viber_request.message_token
import answer_types from cart import Cart logger = logging.getLogger() logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) app = Flask(__name__) viber = Api( BotConfiguration( name='PythonSampleBot', avatar='', auth_token='45decab4eff228d7-e86f8a81930047f7-8e75c34b9894d46e')) @app.route('/', methods=['POST']) def incoming(): request_data = request.get_data().decode() logger.debug("received request. post data: {0}".format(request_data)) viber_request = viber.parse_request(request_data) request_json = json.loads(request_data) msg = TextMessage(text='Выберите пункт меню', keyboard=MAIN_MENU) if isinstance(viber_request, ViberMessageRequest): msg_text = request_json['message']['text']
logger = logging.getLogger() logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) user_amator = {} app = Flask(__name__) viber = Api( BotConfiguration( name='ST Amator', avatar='http://viber.com/avatar.jpg', auth_token='4daa90c76a27d2bd-da20e99cc428dc26-491a88d6cd292369')) @app.route('/', methods=['POST']) 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')) global user_amator if len(user_amator) == 0: user_amator = file_io("read", user_amator, "StartBot") if isinstance(viber_request, ViberMessageRequest):
logger = logging.getLogger() logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) token = "4723336bb367d06e-ab321ee6503a0206-58d9d2bfcc9b6386" avatar = 'https://pbs.twimg.com/profile_images/378800000472528007/7e3d601acd34222cd0e1accff4b92d2a_400x400.jpeg' # test_token='47180bc4e627d501-2fd700adf2113640-bb3e6b0f5459b969' app = Flask(__name__) viber = Api(BotConfiguration(name='ГрузоБот', avatar=avatar, auth_token=token)) conn = sqlite3.connect('database.db') c = conn.cursor() # ['id','stage','vehicle','time','place','loaders'] varchar def get_reply(stage, text, user_id): # по дефолту ответом является сообщение клиента, клавиатуры - нет reply = "Я тебя не понял!🚚\nStage:{}".format(stage) keyboard = None if stage == "1": c.execute( "UPDATE users SET vehicle = '', extra='', loaders='', place='', time='' WHERE id = '%s';"
from Settings import TOKEN, WEBHOOK from viberbot import Api from viberbot.api.bot_configuration import BotConfiguration bot_configuration = BotConfiguration(name='MyLearnEnglishBot4', avatar='http://viber.com/avatar.jpg', auth_token=TOKEN) viber = Api(bot_configuration) print('setting webhook: ' + WEBHOOK) viber.set_webhook(WEBHOOK)
handler = logging.FileHandler('viber bot.log') formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) app = Flask(__name__) api = flask_restful.Api(app) '''@app.route("/") def hello(): return "<h1 style='color:blue'>Hello There!</h1>"''' TOKEN = '49cc42b11a27d0ba-ccb237ef23e7f055-26665b55f3ebb019' webhookURL = 'https://ecoviewapp.fvds.ru/' viber = Api(BotConfiguration(name='ПЭЛ-помощник', avatar='', auth_token=TOKEN)) text_command = "" select_category = False OUTPUT_ = {'mass': []} OUTPUT = {'mass': []} name_razdel = "" @app.route('/', methods=["POST"]) def incoming(): #global output_ 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(),
from viberbot import Api from viberbot.api.bot_configuration import BotConfiguration import Constants viber = Api(BotConfiguration( name=Constants.BOT_NAME, avatar=Constants.AVATAR_URL, auth_token=Constants.AUTH_TOKEN )) viber.set_webhook("https://f2056b99634f.ngrok.io")
from viberbot.api.viber_requests import ViberUnsubscribedRequest import time import logging import sched import threading """ Переменная webApp определяется как экземпляр класса Flask в сценарии __init__.py, что делает его частью пакета приложения. """ app = Flask(__name__) app.config.from_object(Config) viber = Api( BotConfiguration(name=ViberBotConfig().name, avatar=ViberBotConfig().avatar, auth_token=ViberBotConfig().auth_token)) def set_webhook(viber): viber.set_webhook('https://egissoshechka.herokuapp.com:443') logging.info("Web hook has been set") #webApp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True #webApp.config['SECRET_KEY'] = "random string" """ Импорт модуля представлений view — это разные URL-адреса, которые приложение реализует. """ from egissoshechka.app import view
from Setting import TOKEN, WEBHOOK from viberbot import Api from viberbot.api.bot_configuration import BotConfiguration bot_configuration = BotConfiguration(name='FeaR', avatar='https://viber.com/avatar/jpg', auth_token=TOKEN) viber = Api(bot_configuration) viber.set_webhook(WEBHOOK)
from db import getCurrentClueNumber from db import getNextClueNumber from db import checkUserStatus app = Flask(__name__) logger = logging.getLogger() logger.setLevel(logging.DEBUG) handler = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) bot_configuration = BotConfiguration( name='HuntBot', avatar='https://grammarbuffet.org/static/viberhuntbot/assets/ninja-simple-512.png', auth_token=os.environ['VIBER_HUNT_TOKEN'] ) viber = Api(bot_configuration) initialKeyboardResponse = { "Type": "keyboard", "DefaultHeight": False, "BgColor": "#FFFFFF", "Buttons": [{ "Columns": 3, "Rows": 1, "BgColor": "#008383", "ActionType": "reply", "ActionBody": "get a clue",
from viberbot import Api from viberbot.api.bot_configuration import BotConfiguration from django.conf import settings bot_configuration = BotConfiguration( name='PipBot', avatar='https://www.prostir.ua/wp-content/uploads/2019/07/chatbot.png', auth_token=settings.VIBER_TOKEN ) viber = Api(bot_configuration) def set_webhook(): webhook_events = [ "failed", "subscribed", "unsubscribed", "conversation_started" ] viber.set_webhook('https://83e62f218da8.ngrok.io/bot/callback/', webhook_events=webhook_events)
from viberbot import Api from viberbot.api.bot_configuration import BotConfiguration bot_configuration = BotConfiguration( name='Avia Logistic', avatar='http://viber.com/avatar.jpg', auth_token='485a124213a7d7d9-9f3d9d22def5a3ce-ab15fd7f9dae9b25') viber = Api(bot_configuration)
ViberMessageRequest, ViberSubscribedRequest, ViberUnsubscribedRequest) #Logging logger = logging.getLogger(__name__) #Constants viber_bot_token = '49fd42821d67d3dd-8fa60f299b0fd824-2fc686a67f7a3354' viber_bot_name = 'DLTC' viber_bot_logo = 'logo.png' #Initialization app = Flask(__name__) bot_configuration = BotConfiguration(name=viber_bot_name, avatar=viber_bot_logo, auth_token=viber_bot_token) viber = Api(bot_configuration) @app.route('/', methods=['POST']) def incoming(): logger.debug("received request. post data: {0}".format(request.get_data())) #All messages must be signed (it is by default) if not viber.verify_signature( request.get_data(), request.headers.get('X-Viber-Content-Signature')): #Error if not signed return Response(status=403)
import requests from bot_settings import TOKEN from viberbot import Api from viberbot.api.bot_configuration import BotConfiguration from viberbot.api.messages import TextMessage from app import Session, Users, Settings from datetime import datetime from apscheduler.schedulers.blocking import BlockingScheduler bot_configuration = BotConfiguration(name='RinRinBot', avatar='http://viber.com/avatar.jpg', auth_token=TOKEN) viber = Api(bot_configuration) CLOCK_KEYBOARD = { "Type": "keyboard", "Buttons": [{ "Columns": 6, "Rows": 1, "BgColor": "#e6f5ff", "ActionBody": "Начать", "Text": "Начать" }, { "Columns": 6, "Rows": 1, "BgColor": "#e6f5ff", "ActionBody": "Напомнить позже", "Text": "Напомнить позже" }] }