Exemple #1
0
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']} Оператор подключился")
Exemple #2
0
    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
Exemple #3
0
    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.")
Exemple #4
0
 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
Exemple #6
0
 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))
Exemple #7
0
    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'),
            ))
Exemple #8
0
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
Exemple #9
0
 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)
Exemple #10
0
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']]
Exemple #11
0
 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.")
Exemple #12
0
    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
Exemple #14
0
    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"
Exemple #15
0
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()
Exemple #16
0
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())
Exemple #17
0
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
Exemple #18
0
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']
Exemple #19
0
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):
Exemple #20
0
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';"
Exemple #21
0
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)
Exemple #22
0
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(),
Exemple #23
0
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")
Exemple #24
0
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
Exemple #25
0
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)
Exemple #26
0
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)
Exemple #29
0
                                         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)
Exemple #30
0
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": "Напомнить позже"
    }]
}