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')
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, 'Контакты')
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, 'Сантехника')
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')
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, 'Смеситель')
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, 'Ванна')
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, 'Аксессуар')
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, 'Кафель')
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)
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)
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)
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
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))
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))
def track(uid, event, data): if BOTAN_TOKEN: if isinstance(data, dict) == False: data = data.to_dict() botan.track(BOTAN_TOKEN, uid, data, event)
#!/usr/bin/env python2 from botanio import botan print botan.track(1111, 1, {'text': 2}, 'Search') print botan.track('ab', 1, {'text': 2}, 'Search')
#!/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'):
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)
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')