def subscribe(message): db = SQLighter() if not db.subscriber_exists(message.from_user.id): db.add_subscriber(message.from_user.id) else: db.update_subscription(message.from_user.id, True) bot.send_message(message.chat.id, "Вы успешно подписались на рассылку!\nПо умолчанию вам будут приходить все уведомление машин с сайта. =)") db.close()
def add_car_command(message): db = SQLighter() if message.chat.id in [i[0] for i in db.get_subscriptions()]: bot.send_message(message.chat.id, 'Введите название комплекта фильтра:') bot.register_next_step_handler(message, add_car) else: bot.send_message(message.chat.id, "Вы не подписаны.") db.close()
def unsubscribe(message): db = SQLighter() if not db.subscriber_exists(message.from_user.id): db.add_subscriber(message.from_user.id, False) bot.send_message(message.chat.id, "Вы итак не подписаны.") else: db.update_subscription(message.from_user.id, False) bot.send_message(message.chat.id, "Вы успешно отписаны от рассылки.") db.close()
def schedule(wait_for): while True: sleep(wait_for) db = SQLighter() for i in db.get_subscriptions(): for j, k in eval(i[2]).items(): sg = KolesaKz('users/'+str(i[0])+'.txt', filters=k) for l in sg.new_cars(): bot.send_message(i[0], 'Новая объявление в %s: %s' % (j, l), disable_notification=False) db.close()
def filters(message): db = SQLighter() if message.chat.id in [i[0] for i in db.get_subscriptions()]: keyboard = types.InlineKeyboardMarkup() subscriber = db.get_subscriber(message.chat.id) for i in eval(subscriber[0][2]).keys(): keyboard.add(types.InlineKeyboardButton(i, callback_data='19.'+i)) bot.send_message(message.chat.id, 'Выберите комплект фильтра:', reply_markup=keyboard) else: bot.send_message(message.chat.id, "Вы не подписаны.") db.close()
def save_filter(id, text, filter, car): db = SQLighter() filters = eval(db.get_subscriber(id)[0][2]) if text.lower() == 'неважен': filters[car][filter] = None else: filters[car][filter] = text db.update_subscription(id, True, filters=filters) bot.send_message(id, "Фильтр применен.") db.close()
from datetime import datetime from aiogram import Bot, Dispatcher, executor, types from aiogram.types import ReplyKeyboardRemove, \ ReplyKeyboardMarkup, KeyboardButton, \ InlineKeyboardMarkup, InlineKeyboardButton # 2 - Мы импортируем объекты для работы бота from sqlighter import SQLighter logging.basicConfig(level=logging.INFO) # 4 - Эта строчка кода необходима для выведения сообщения о работе нашего бота и его юзернейма. bot = Bot(token=config.TOKEN) # 5 - Здесь мы создаем основу бота, где указываем что его токен равен нашей переменной. dp = Dispatcher(bot) # 6 - Диспетчер. Понадобится для принятия будущих сообщений. # инициализируем соединение с БД dbase = SQLighter('dbase.db') block_number = 0 picture = Image() name_of_cat = picture.get_categories() # 50 length_of_block = len(name_of_cat) // 4 # 12 n_of_blocks = 4 + bool(len(name_of_cat) % 4) # 5 com = ['/📷Фото', '/☰Категории', '/☺Подписаться', '/😢Отписаться', '/❓Статус'] # возвращает Inline Keyboard - блок категорий под номером def create_block(number): markup = InlineKeyboardMarkup(row_width=3) if number == 1: markup_item0 = InlineKeyboardButton('All photos', callback_data='/photos')
import random from sqlighter import SQLighter from messages import MESSAGES, NAMES from utils import TestStates logging.basicConfig(level=logging.INFO) bot = Bot(token='1160891964:AAE0ba37vkpS14RQlH0VVlI2VPTovdS_D7U') dp = Dispatcher(bot, storage=MemoryStorage()) dp.middleware.setup(LoggingMiddleware()) db = SQLighter('tables.db') @dp.message_handler(commands=['start'], state='*') async def start_and_add_user_in_BD(message: types.Message): """Начало работы бота и добавление юзера в БД. Возможно стоит добавлять в БД на следующих этапах""" if not db.user_exists(message.from_user.id): db.add_user(message.from_user.id) await message.answer(MESSAGES['start']) @dp.message_handler(commands=['help'], state='*')
from aiogram import Bot, Dispatcher, executor, types import re import sys from bs4 import BeautifulSoup as BS import requests from sqlighter import SQLighter from aiogram.bot import api # блокировки # pached_url = "https://telegg.ru/orig/bot{token}/{method}" # setattr(api, 'API_URL', pached_url) bot = Bot(token='1005395522:AAH_Mz2DUbMfJ5J9gVvMkEO6xO2tFUhcz-E') dp = Dispatcher(bot) # инициализируем соединение с БД db = SQLighter() session = requests.Session() logging.basicConfig(level=logging.INFO) # button_subscribe = KeyboardButton('Подписатся') # button_unsubscribe = KeyboardButton('Отписаться') # button_get_last = KeyboardButton('Получить последнюю станицу') # # greet_kb = ReplyKeyboardMarkup() # greet_kb.add(button_subscribe) # greet_kb.add(button_unsubscribe) # greet_kb.add(button_get_last) def login():
import asyncio from aiogram import Bot, Dispatcher, executor, types from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton from sqlighter import SQLighter from conf import token_ from get import chek_url, get_data_serch, get_similar_value, get_id_by_url, get_exact_book, check_text db = SQLighter('db.db') # Подключение к Базе # chats = {} bot = Bot(token=token_) dp = Dispatcher(bot) loop = asyncio.get_event_loop() inline_btn_1 = InlineKeyboardButton('Нет', callback_data='cancel_1') inline_btn_2 = InlineKeyboardButton('Да', callback_data='subsc_2') inline_kb1 = InlineKeyboardMarkup(row_width=2).add(inline_btn_1, inline_btn_2) @dp.callback_query_handler(lambda c: c.data) async def process_callback_button1(callback_query: types.CallbackQuery): code = callback_query.data[-1] # использовать последний символ if code.isdigit(): code = int(code) last_message_id = db.get_last_message_id( callback_query.from_user.id ) #Сравнить текущий message_id с послденим из бызы if code == 2 and last_message_id == callback_query.message.reply_to_message.message_id: #Да await bot.answer_callback_query(callback_query.id) await bot.send_message(callback_query.from_user.id,
from bs4 import BeautifulSoup as BS from sqlighter import SQLighter print("[Log]: " + "All API loaded") print("[Log]: " + "All files loaded") print("[Log]: " + "All lib's loaded") # задаем уровень логов logging.basicConfig(level=logging.INFO) # инициализируем бота bot = Bot(token=config.TOKEN) dp = Dispatcher(bot) #Пдключние к БД db = SQLighter('heroes.db') @dp.message_handler(commands=['start']) async def welcome(message: types.Message): markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2) item1 = types.KeyboardButton("Список героев") item2 = types.KeyboardButton("Полезная информация") item3 = types.KeyboardButton("Связки героев") markup.add(item1, item2, item3) await bot.send_message(message.chat.id, "Привет, я бот по игре AFK Arena", parse_mode='html', reply_markup=markup)
def handler_callback_query(query): if query.data.startswith('1.'): keyboard = types.InlineKeyboardMarkup() for i in bodywork.keys(): keyboard.add(types.InlineKeyboardButton(i, callback_data='14.'+bodywork[i]+'.'+query.data.split('1.')[1])) keyboard.add(types.InlineKeyboardButton('Неважно', callback_data='14.0.'+query.data.split('1.')[1])) bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Кузов:", reply_markup=keyboard) elif query.data.startswith('2.'): keyboard = types.InlineKeyboardMarkup() regions = get_regions() for i in regions.keys(): keyboard.add(types.InlineKeyboardButton(i, callback_data='15.'+regions[i]+'.'+query.data.split('2.')[1])) keyboard.add(types.InlineKeyboardButton('Неважно', callback_data='15.0.'+query.data.split('2.')[1])) bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Где искать (неважно):", reply_markup=keyboard) elif query.data.startswith('7.'): keyboard = types.InlineKeyboardMarkup() marks = get_marks() for i in marks.keys(): keyboard.add(types.InlineKeyboardButton(i, callback_data='16.'+marks[i]+'.'+query.data.split('7.')[1])) keyboard.add(types.InlineKeyboardButton('Неважно', callback_data='16.0.'+query.data.split('7.')[1])) bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Марка:", reply_markup=keyboard) elif query.data.startswith('8.'): db = SQLighter() subscriber = db.get_subscriber(query.from_user.id) db.close() if eval(subscriber[0][2])[query.data.split('8.')[1]]['car'] != None: keyboard = types.InlineKeyboardMarkup() models = get_models(eval(subscriber[0][2])[query.data.split('8.')[1]]['car']) for i in models.keys(): keyboard.add(types.InlineKeyboardButton(i, callback_data='17.'+models[i]+'.'+query.data.split('8.')[1])) keyboard.add(types.InlineKeyboardButton('Неважно', callback_data='17.0.'+query.data.split('8.')[1])) bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Модель:", reply_markup=keyboard) else: bot.send_message(query.from_user.id, "Выберите марку!") elif query.data.startswith('12.'): keyboard = types.InlineKeyboardMarkup() for i in KKP.keys(): keyboard.add(types.InlineKeyboardButton(i, callback_data='18.'+KKP[i]+'.'+query.data.split('12.')[1])) keyboard.add(types.InlineKeyboardButton('Неважно', callback_data='18.0.'+query.data.split('12.')[1])) bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="КПП:", reply_markup=keyboard) elif query.data.startswith('3.'): bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Введите год от (неважно):") bot.register_next_step_handler(query.message, lambda message: save_filter(message.chat.id, message.text, 'year[from]', query.data.split('3.')[1])) elif query.data.startswith('4.'): bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Введите год до 2020 (неважно):") bot.register_next_step_handler(query.message, lambda message: save_filter(message.chat.id, message.text, 'year[to]', query.data.split('4.')[1])) elif query.data.startswith('5.'): bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Цену от (неважно):") bot.register_next_step_handler(query.message, lambda message: save_filter(message.chat.id, message.text, 'price[from]', query.data.split('5.')[1])) elif query.data.startswith('6.'): bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Цену до (неважно):") bot.register_next_step_handler(query.message, lambda message: save_filter(message.chat.id, message.text, 'price[to]', query.data.split('6.')[1])) elif query.data.startswith('9.'): bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Введите пробег (неважно):") bot.register_next_step_handler(query.message, lambda message: save_filter(message.chat.id, message.text, 'auto-run[to]', query.data.split('9.')[1])) elif query.data.startswith('10.'): bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Введите объем от (неважно):") bot.register_next_step_handler(query.message, lambda message: save_filter(message.chat.id, message.text, 'auto-car-volume[from]', query.data.split('10.')[1])) elif query.data.startswith('11.'): bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Введите объем до (неважно):") bot.register_next_step_handler(query.message, lambda message: save_filter(message.chat.id, message.text, 'auto-car-volume[to]', query.data.split('11.')[1])) elif query.data.startswith('13.'): db = SQLighter() db.reset_filters(query.from_user.id, query.data.split('13.')[1]) bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Фильтры сброшены.") db.close() elif query.data.startswith('14.') or query.data.startswith('15.') or query.data.startswith('16.') or query.data.startswith('17.') or query.data.startswith('18.'): data = query.data.split('.') if query.data.startswith('14.'): name = 'bodywork' elif query.data.startswith('15.'): name = 'region' elif query.data.startswith('16.'): name = 'car' elif query.data.startswith('17.'): name = 'model' elif query.data.startswith('18.'): name = 'auto-car-transm' db = SQLighter() filters = eval(db.get_subscriber(query.from_user.id)[0][2]) if data == '0': filters[data[2]][name] = None else: filters[data[2]][name] = data[1] db.update_subscription(query.from_user.id, True, filters=filters) db.close() bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text='Фильтр применен.') elif query.data.startswith('19.'): data = query.data.split('19.')[1] filters_keyboard = types.InlineKeyboardMarkup() filters_keyboard.row(types.InlineKeyboardButton('Кузов', callback_data='1.'+data), types.InlineKeyboardButton('Где искать', callback_data='2.'+data), types.InlineKeyboardButton('Год ОТ', callback_data='3.'+data)) filters_keyboard.row(types.InlineKeyboardButton('Год ДО', callback_data='4.'+data), types.InlineKeyboardButton('Цена ОТ', callback_data='5.'+data), types.InlineKeyboardButton('Цена ДО', callback_data='6.'+data)) filters_keyboard.row(types.InlineKeyboardButton('Марка', callback_data='7.'+data), types.InlineKeyboardButton('Модель', callback_data='8.'+data), types.InlineKeyboardButton('Пробег', callback_data='9.'+data)) filters_keyboard.row(types.InlineKeyboardButton('Объем ОТ', callback_data='10.'+data), types.InlineKeyboardButton('Объем ДО', callback_data='11.'+data), types.InlineKeyboardButton('КПП', callback_data='12.'+data)) filters_keyboard.row(types.InlineKeyboardButton('Сброс', callback_data='13.'+data)) bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text='Выберите желаемый фильтр:', reply_markup=filters_keyboard) elif query.data.startswith('20.'): db = SQLighter() db.delete_car(query.from_user.id, query.data.split('20.')[1]) db.close() bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text="Комплект фильтра удален.") elif query.data.startswith('21.'): db = SQLighter() text = '' filters = eval(db.get_subscriber(query.from_user.id)[0][2])[query.data.split('21.')[1]] if filters['bodywork'] != None: text += 'Кузов: {}\n'.format(filters['bodywork']) else: text += 'Кузов: не важен\n' if filters['region'] != None: text += 'Где искать: {}\n'.format(filters['region']) else: text += 'Где искать: не важен\n' if filters['year[from]'] != None: text += 'Год ОТ: {}\n'.format(filters['year[from]']) else: text += 'Год ОТ: не важен\n' if filters['year[to]'] != None: text += 'Год ДО: {}\n'.format(filters['year[to]']) else: text += 'Год ДО: не важен\n' if filters['price[from]'] != None: text += 'Цена ОТ: {}\n'.format(filters['price[from]']) else: text += 'Цена ОТ: не важен\n' if filters['price[to]'] != None: text += 'Цена ДО: {}\n'.format(filters['price[to]']) else: text += 'Цена ДО: не важен\n' if filters['car'] != None: text += 'Марка: {}\n'.format(filters['car']) else: text += 'Марка: не важен\n' if filters['model'] != None: text += 'Модель: {}\n'.format(filters['model']) else: text += 'Модель: не важен\n' if filters['auto-run[to]'] != None: text += 'Пробег: {}\n'.format(filters['auto-run[to]']) else: text += 'Пробег: не важен\n' if filters['auto-car-volume[from]'] != None: text += 'Объём ОТ: {}\n'.format(filters['auto-car-volume[from]']) else: text += 'Объём ОТ: не важен\n' if filters['auto-car-volume[to]'] != None: text += 'Объём ДО: {}\n'.format(filters['auto-car-volume[to]']) else: text += 'Объём ДО: не важен\n' if filters['auto-car-transm'] != None: text += 'КПП: {}\n'.format(filters['auto-car-transm']) else: text += 'КПП: не важен\n' bot.edit_message_text(chat_id=query.from_user.id, message_id=query.message.message_id, text=text) db.close() bot.answer_callback_query(query.id)
import config # import time from sqlighter import SQLighter logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=config.loggingLevel) logger = logging.getLogger(__name__) BOT_TOKEN = config.token bot = telebot.TeleBot(BOT_TOKEN) # task = bot.get_me() # result = task.wait() # bot.send_message(message.chat.id, result) db = SQLighter(user=config.db_user, passwd=config.db_passwd, db=config.db) WelcomeText = f'Welcome!\n' \ f'This bot can save songs from different users.\n' \ f'You can request a random song from DB that any users added\n' \ f'And much more) stay tuned!' def print_keyboard(): markup = telebot.types.InlineKeyboardMarkup(row_width=3) markup.add( telebot.types.InlineKeyboardButton(text='Subscribe', callback_data='sub'), telebot.types.InlineKeyboardButton(text='Unsubscribe', callback_data='unsub'), telebot.types.InlineKeyboardButton(text='Status', callback_data='status'), telebot.types.InlineKeyboardButton(text='Get song', callback_data='get_song_call'), telebot.types.InlineKeyboardButton(text='Get song+rotate', callback_data='get_rotate_call'),
logging.basicConfig(level=logging.INFO) # # Считываем учетные данные # config = configparser.ConfigParser() # config.read("config.ini") # # # Присваиваем значения внутренним переменным # api_id = config['Telegram']['api_id'] # api_hash = config['Telegram']['api_hash'] # username = config['Telegram']['username'] bot = Bot(token=config.TOKEN) dp = Dispatcher(bot) # Инициализируем соединение с БД db = SQLighter('subscriptions.db') # инициализируем парсер sg = StopGame('lastkey.txt') # Команда активации подписки @dp.message_handler(commands=['subscribe']) async def echo(message: types.Message): if not db.subscribers_exists(message.from_user.id): # если юзера нет в базе - добавляем его db.add_subscriber(message.from_user.id) else: # если он уже есть, то просто обновляем ему статус подписки db.update_subscription(message.from_user.id, True)
import requests from bs4 import BeautifulSoup import telebot from telebot import types import datetime from datetime import timedelta from sqlighter import SQLighter import exchange_rates import config bot = telebot.TeleBot(config.TOKEN) db = SQLighter('tgbot_db.db') main_buttons = telebot.types.ReplyKeyboardMarkup(True, True, True) main_buttons.row('Coronavirus', 'New articles', 'Exchange Rates') button_sub = telebot.types.ReplyKeyboardMarkup(True) button_sub.row('Subscribe') @bot.message_handler(commands=['start']) def cmd_start(message): bot.send_message(message.chat.id, f'BOT LAUNCHED\n\n {config.command_list}', reply_markup=button_sub) @bot.message_handler(commands=['help']) def cmd_help(message): bot.send_message(message.chat.id,
import asyncio # import config import logging import requests from aiogram import Bot, Dispatcher, executor, types from aiogram.types import CallbackQuery from sqlighter import SQLighter from datetime import date logging.basicConfig(level=logging.INFO) # initialising bot bot = Bot(token="1155158545:AAF-Z3nxdsxIkLT1Bl3LJrDZVRvTu2fmXiM") dp = Dispatcher(bot) db = SQLighter('privat_curr.db') date = str(date.today()) id = 382233106 # money keys = ['ccy', 'buy', 'sale'] USD, EUR, RUB, BTC = [], [], [], [] USD_old, EUR_old, RUB_old, BTC_old = [], [], [], [] # USD data = requests.get('https://api.privatbank.ua/p24api/pubinfo?exchange&json&coursid=11').json() for key in keys:
def send_joke(message): keyboard = types.InlineKeyboardMarkup() keyboard.add(types.InlineKeyboardButton(text="Еще анекдот!", callback_data="anekdot")) sqlighter = SQLighter(config.DB_PATH) reply_text = "{0} :satisfied:".format(sqlighter.get_random_joke()) bot.send_message(message.chat.id, unescape(emojize(reply_text)),reply_markup=keyboard)
def add_car(message): db = SQLighter() db.add_car(message.chat.id, message.text) db.close() bot.send_message(message.chat.id, "Комплект фильтра добавлен.")
from aiogram import Bot, types from aiogram.utils import executor from aiogram.dispatcher import Dispatcher from config import Token import config from pars import News from sqlighter import SQLighter import asyncio import aioschedule bot = Bot(token=Token) dp = Dispatcher(bot) news = News('check.txt') db = SQLighter('db.db') @dp.message_handler(commands=['start']) async def process_start_command(message: types.Message): await message.reply( "Привет!\nЧтобы получать новости подпишитесь на рассылку!\n/subscribe\n/help - помощь, для TheMrSuperAlex007, а то хер разберется)", reply_markup=config.keyboard1) @dp.message_handler(commands=['help']) async def help_comand(message: types.Message): await message.reply( 'Выберите команду \n\n /subscribe - подписаться на рассылку \n /unsubscribe - отписаться от рассылки \n /start - перезапустить бота' ) # Команда активации подписки
import telebot import markup import config import text import sqlite3 from sqlighter import SQLighter bot = telebot.TeleBot(config.token) # DataBase db = SQLighter('bot.db') con = sqlite3.connect('bot.db', check_same_thread=False) cur = con.cursor() # Комманда - /start - ГОТОВО @bot.message_handler(commands=['start']) def handler_start(message): bot.send_message(message.from_user.id, 'Добро пожаловать!', reply_markup=markup.start_markup) db.add_user(message.from_user.id, message.from_user.first_name, message.from_user.last_name) # db.create_user_table(message.from_user.id) # Комманда - /anal @bot.message_handler(commands=['anal']) def handler_analytics(message): bot.send_message(config.admin, 'Аналитика',