Пример #1
0
def bl_check(message):
    #print(message)
    if (message.forward_from_chat):
        forwared = str(message.forward_from_chat.id)
        #print(bl.all()[k]['ID'])
        #print(forwared)
        users = Query()
        #print(bl.search(users.ID.matches(forwared)))
        if bl.search(users.ID.matches(forwared)):
            uid = message.from_user
            #pprint(message)
            m = (jsonpickle.encode(message))
            message_dict = m
            event_name = 'Ban'
            botan.track(botan_token, uid, message_dict, event_name)
            bot.kick_chat_member(message.chat.id, message.from_user.id)
            bot.send_message(message.chat.id,
                             message.from_user.first_name + ' (@' +
                             message.from_user.username + ') ' + '*BANNED!*',
                             parse_mode='Markdown')
            bot.forward_message(me, message.chat.id, message.message_id)
            bot.send_message(me,
                             message.from_user.first_name + ' (@' +
                             message.from_user.username + ') ' + 'id: #' +
                             str(message.from_user.id) + ' *BANNED!*',
                             parse_mode='Markdown')
Пример #2
0
def handle_start(message):
    user_markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    user_markup.row('Назад')
    user_markup.row('Кoнтакты', 'Локация', 'VitrA')
    bot.send_message(message.from_user.id,
                     'Выберите подраздел',
                     reply_markup=user_markup)
    botan.track(botan_key, uid, event_name, 'Контакты')
Пример #3
0
def handle_start(message):
    user_markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    user_markup.row('Назад')
    user_markup.row('Раковина', 'Унитаз')
    user_markup.row('Биде')
    bot.send_message(message.from_user.id,
                     'Выберите коллекцию',
                     reply_markup=user_markup)
    botan.track(botan_key, uid, event_name, 'Сантехника')
Пример #4
0
def handle_start(message):
    user_markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    user_markup.row('Кафель', 'Сантехника')
    user_markup.row('Аксессуар', 'Смеситель')
    user_markup.row('Ванна', 'Контакты')
    bot.send_message(message.from_user.id,
                     'Выберите раздел',
                     reply_markup=user_markup)
    botan.track(botan_key, uid, event_name, 'start')
Пример #5
0
def handle_start(message):
    user_markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    user_markup.row('Назад')
    user_markup.row('Istаnbul', 'Q-Line')
    user_markup.row('Style-X', 'T4')
    user_markup.row('Juno', 'Z-Line')
    bot.send_message(message.from_user.id,
                     'Выберите коллекцию',
                     reply_markup=user_markup)
    botan.track(botan_key, uid, event_name, 'Смеситель')
Пример #6
0
def handle_start(message):
    user_markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    user_markup.row('Назад')
    user_markup.row('Т4', 'Silence')
    user_markup.row('Neon', 'Balance')
    user_markup.row('Comfort', 'Combo')
    bot.send_message(message.from_user.id,
                     'Выберите коллекцию',
                     reply_markup=user_markup)
    botan.track(botan_key, uid, event_name, 'Ванна')
Пример #7
0
def handle_start(message):
    user_markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    user_markup.row('Назад')
    user_markup.row('Istanbul', 'Matrix')
    user_markup.row('Somnia', 'Nest Trendy')
    user_markup.row('Juno Swarovski')
    bot.send_message(message.from_user.id,
                     'Выберите коллекцию',
                     reply_markup=user_markup)
    botan.track(botan_key, uid, event_name, 'Аксессуар')
Пример #8
0
def handle_start(message):
    user_markup = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    user_markup.row('Назад')
    user_markup.row('Provence', 'Inside')
    user_markup.row('Celebration', 'Deja Vu')
    user_markup.row('Vintage', 'Pera')
    bot.send_message(message.from_user.id,
                     'Выберите коллекцию',
                     reply_markup=user_markup)
    botan.track(botan_key, uid, event_name, 'Кафель')
Пример #9
0
def handle_idioms(message):
    if str(message.chat.id) in languages_db.keys():
        text = message.text
        text = text[7:]
        botan.track(config.botan_key, message.chat.id, message.text, 'Идиомы')
        bot.send_message(message.chat.id,
                         newparser.search_idioms(
                             text,
                             strings.get_string(
                                 languages_db[str(message.chat.id)], 'wrong'),
                             message.chat.id),
                         parse_mode='Markdown')
    else:
        handle_start(message, True)
Пример #10
0
def repeat_all_messages(message):
    if str(message.chat.id) in languages_db.keys():
        if isWorking(message.chat.id):
            pass
        else:
            botan.track(config.botan_key, message.chat.id, message.text,
                        'Запрос')
            bot.send_message(message.chat.id,
                             newparser.search(
                                 message.text,
                                 strings.get_string(
                                     languages_db[str(message.chat.id)],
                                     'wrong'), message.chat.id),
                             parse_mode='Markdown')
    else:
        handle_start(message, True)
Пример #11
0
def echo(bot, update):
    uid = update.message.from_user
    message_dict = update.message.to_dict()
    event_name = update.message.text
    botan.track(config.BOTAN_TOKEN, uid, message_dict, event_name)
    lang = update.message.from_user.language_code[:2]
    lang = 'en' if lang != 'es' else lang
    service = TvmazeService()
    text = ''
    serie = service.next_episode(update.message.text)
    serie_active = False
    reply_markup = None
    if serie:
        serie_active = True if serie['status'] != 'Ended' else False
        if lang == 'es':
            serie['status'] = translations[serie['status']][lang]
        text += translations['title'][lang].format(name=serie['name'],
                                                   status=serie['status'])
        next_episode = serie.get('next', None)
        previous_episode = serie.get('previous', None)
        text = print_episode(text, previous_episode, lang, 'last_episode')
        if next_episode:
            text = print_episode(text, next_episode, lang, 'next_episode')
        else:
            if serie_active:
                text += translations['serie_active'][lang]
    else:
        text += "Not found."
    if serie_active:
        search = database.search(update.message.from_user.id, serie['id'])
        if not search:
            button_list = [[
                telegram.InlineKeyboardButton(
                    text=translations['subscribe'][lang],
                    callback_data=str(serie['id'])),
            ]]
        else:
            button_list = [[
                telegram.InlineKeyboardButton(
                    text=translations['unsubscribe'][lang],
                    callback_data=str('baja' + str(serie['id']))),
            ]]
        reply_markup = telegram.InlineKeyboardMarkup(button_list)
    bot.send_message(chat_id=update.message.chat_id,
                     text=text,
                     reply_markup=reply_markup,
                     parse_mode=telegram.ParseMode.HTML)
Пример #12
0
 def log_and_botan_track(self, event_name, message=None):
     logger.info("Event: %s", event_name)
     if message:
         if self.botan_token:
             try:
                 # uid = message.chat_id
                 uid = message.from_user.id
             except AttributeError:
                 logger.warning('No chat_id in message')
                 return False
             data = json.loads(message.to_json())
             return botan.track(self.botan_token, uid, data, event_name)
         else:
             return False
Пример #13
0
def jova_do_something(message):
    if message.text:
        # jova, I choose you!
        if 'jova' in message.text.lower() or '/' in message.text[0]:
            logging.info("[from {0}] [message ['{1}']]".format(
                str(message.from_user).encode('utf-8'),
                message.text.encode('utf-8')))
            chat_id = message.chat_id
            answer = jova_answer(message.text.lower())
            logging.info('answer => [{}]'.format(answer))
            if answer and isinstance(answer, tuple) and answer[0]:
                formatting = answer[1]
                if 'jovaize' in formatting:
                    answer = jovaize(answer[0])
                else:
                    answer = answer[0]  # don't jovaize!
                bot.sendChatAction(chat_id=chat_id,
                                   action=telegram.ChatAction.TYPING)
                # markdown-formatted message?
                parse_mode = None
                if 'markdown' in formatting:
                    parse_mode = telegram.ParseMode.MARKDOWN
                # are we handling a sticker?
                if 'sticker' in formatting:
                    bot.sendSticker(chat_id=chat_id,
                                    reply_to_message_id=message.message_id,
                                    sticker=answer)
                else:
                    # otherwise, send a normal message
                    bot.sendMessage(chat_id=chat_id,
                                    text=answer,
                                    reply_to_message_id=message.message_id,
                                    parse_mode=parse_mode)
                # botan.io stats tracking
                if webapp.config['BOTANIO_TOKEN']:
                    bt = botan.track(webapp.config['BOTANIO_TOKEN'],
                                     message.from_user, message.to_dict(),
                                     message.text.lower())
                    if bt:
                        logging.info('botan.io track result: [{0}]'.format(bt))
Пример #14
0
def jova_do_something(message):
    if message.text:
        # jova, I choose you!
        if 'jova' in message.text.lower() or '/' in message.text[0]:
            logging.info("[from {0}] [message ['{1}']]"
                         .format(str(message.from_user).encode('utf-8'),
                                 message.text.encode('utf-8')))
            chat_id = message.chat_id
            answer = jova_answer(message.text.lower())
            logging.info('answer => [{}]'.format(answer))
            if answer and isinstance(answer, tuple) and answer[0]:
                formatting = answer[1]
                if 'jovaize' in formatting:
                    answer = jovaize(answer[0])
                else:
                    answer = answer[0]  # don't jovaize!
                bot.sendChatAction(chat_id=chat_id,
                                   action=telegram.ChatAction.TYPING)
                # markdown-formatted message?
                parse_mode = None
                if 'markdown' in formatting:
                    parse_mode = telegram.ParseMode.MARKDOWN
                # are we handling a sticker?
                if 'sticker' in formatting:
                    bot.sendSticker(chat_id=chat_id, reply_to_message_id=message.message_id, sticker=answer)
                else:
                    # otherwise, send a normal message
                    bot.sendMessage(chat_id=chat_id, text=answer,
                                    reply_to_message_id=message.message_id,
                                    parse_mode=parse_mode)
                # botan.io stats tracking
                if webapp.config['BOTANIO_TOKEN']:
                    bt = botan.track(webapp.config['BOTANIO_TOKEN'],
                                     message.from_user, message.to_dict(),
                                     message.text.lower())
                    if bt:
                        logging.info('botan.io track result: [{0}]'.format(bt))
Пример #15
0
def track(uid, event, data):
    if BOTAN_TOKEN:
        if isinstance(data, dict) == False:
            data = data.to_dict()
        botan.track(BOTAN_TOKEN, uid, data, event)
Пример #16
0
#!/usr/bin/env python2

from botanio import botan

print botan.track(1111, 1, {'text': 2}, 'Search')
print botan.track('ab', 1, {'text': 2}, 'Search')
Пример #17
0
#!/usr/bin/env python
import telebot
import constants
import sys
import os
import json
from botanio import botan
botan_key = "5c68ded3-3a98-4523-bdcf-b553454037ba"
uid = 'message.from_user'
message_dict = 'message.to_dict()'
event_name = 'update.message.text'
print(botan.track(botan_key, uid, event_name))
TRACK_URL = 'https://api.botan.io/track'
from telebot import types
bot = telebot.TeleBot(constants.token)


def make_json(message):
    data = {}
    data['message_id'] = message.message_id
    data['from'] = {}
    data['from']['id'] = message.from_user.id
    if message.from_user.username is not None:
        data['from']['username'] = message.from_user.username
    data['chat'] = {}
    # Chat.Id используется в обоих типах чатов
    data['chat']['id'] = message.chat.id
    return data


def track(token, uid, message, name='Message'):
Пример #18
0
 def _save_stats(self, bot, update):
     uid = update.message.from_user
     message_dict = update.message.to_dict()
     event_name = update.message.text
     botan.track(BOTAN_TOKEN, uid, message_dict, event_name)
Пример #19
0
def handle_text(message):
    if message.text == 'tproger quote':
        try:
            response = requests.get(
                'https://tproger.ru/wp-content/plugins/citation-widget/getQuotes.php',
                timeout=1)
            soup = BeautifulSoup(response.text, 'html.parser')
            bot.send_message(message.chat.id, soup)
            botan.track(botan_token,
                        uid=message.from_user.id,
                        message='tproger quote',
                        name='tproger quote')
        except requests.exceptions.ConnectTimeout:
            bot.send_message(message.chat.id,
                             'Oops. Connection timeout occurred!')
    elif message.text == 'xkcd':
        bot.send_message(message.chat.id, xkcd_rand())
        botan.track(botan_token,
                    uid=message.from_user.id,
                    message='xkcd',
                    name='xkcd')
    elif message.text == 'explosm':
        bot.send_message(message.chat.id, explosm_rand())
        botan.track(botan_token,
                    uid=message.from_user.id,
                    message='explosm',
                    name='explosm')
    elif message.text == 'rxkcd':
        val = ru_xkcd_rand()
        if val:
            bot.send_message(message.chat.id, ru_xkcd_link(val))
            botan.track(botan_token,
                        uid=message.from_user.id,
                        message='rxkcd',
                        name='rxkcd')
        else:
            bot.send_message(message.chat.id,
                             'Oops. Connection timeout occurred!')
    elif message.text == 'txkcd':
        val = ru_xkcd_rand()
        if val:
            bot.send_message(message.chat.id,
                             xkcd_rand(link=f'http://xkcd.com/{val}'))
            bot.send_message(message.chat.id, ru_xkcd_link(val))
            botan.track(botan_token,
                        uid=message.from_user.id,
                        message='txkcd',
                        name='txkcd')
        else:
            bot.send_message(message.chat.id,
                             'Oops. Connection timeout occurred!')
    # elif message.text == 'programmers.life':
    #     bot.send_message(message.chat.id, get_link_life(message))
    elif message.text == 'commitstrip':
        bot.send_message(message.chat.id, commitstrip_rand())
        botan.track(botan_token,
                    uid=message.from_user.id,
                    message='commitstrip',
                    name='commitstrip')
    else:
        bot.send_message(message.chat.id, 'Send me commands')