From fbf3dba2aebc498157baad587b1d3b3fc748c438 Mon Sep 17 00:00:00 2001 From: Rykov7 Date: Sun, 25 Dec 2022 12:13:40 +0300 Subject: [PATCH] add stackoverflow searcher --- README.md | 4 ++-- app/bot.py | 23 +++++++++-------------- app/{me.py => helpers.py} | 17 ++++++++++++++++- app/reloader.py | 4 ++-- 4 files changed, 29 insertions(+), 19 deletions(-) rename app/{me.py => helpers.py} (55%) diff --git a/README.md b/README.md index 0862f9b..45d602a 100644 --- a/README.md +++ b/README.md @@ -34,14 +34,14 @@ Bot can recieve commands and behave depending on chat situation. Standard command pack for bot father includes: * nobot - Telebot shouldn't be your first Python project -* noparse - Web-scraper shouldn't be your first Python project * nogui - GUI app shouldn't be your first Python project * nometa - Don't ask meta questions * neprivet - Don't hello +* bdmtss - Rimshot * quote - Random quote * add - Add quote * g - Google it [Request text can be any text from replied message or arguments if there's text after `\g example`] * rules - Chat rules * faq - FAQ -* books - Pythonista's Library ( +* books - Pythonista's Library * lutz - Send Lutz book \ No newline at end of file diff --git a/app/bot.py b/app/bot.py index fb819da..866e012 100644 --- a/app/bot.py +++ b/app/bot.py @@ -1,7 +1,7 @@ import shelve from datetime import datetime as dt from flask import Flask, request, abort -from urllib import parse + import threading from time import sleep @@ -9,7 +9,7 @@ from . import stan from . import reminder from . import reloader from . import report -from .me import get_me +from .helpers import get_me, search_it from .filters import * from .config import * @@ -184,18 +184,13 @@ GUI приложение не должно быть твоим первы @bot.message_handler(commands=['g']) def google_it(message: types.Message): """ Google it! """ - search_engine = 'https://www.google.com/search?q=' - if message.reply_to_message and message.reply_to_message.text: - if len(message.text.split()) == 1: - r = parse.quote_plus(message.reply_to_message.text) - else: - r = parse.quote_plus(' '.join(message.text.split()[1:])) - bot.reply_to(message.reply_to_message, f"{search_engine}{r}", - disable_web_page_preview=True) - else: - if len(message.text.split()) > 1: - r = parse.quote_plus(' '.join(message.text.split()[1:])) - bot.reply_to(message, f"{search_engine}{r}") + search_it('https://www.google.com/search?q=', message) + + +@bot.message_handler(commands=['s']) +def google_it(message: types.Message): + """ Stackoverflow it! """ + search_it('https://stackoverflow.com/search?q=', message) @bot.message_handler(func=check_nongrata) diff --git a/app/me.py b/app/helpers.py similarity index 55% rename from app/me.py rename to app/helpers.py index 5ab429e..5d02ded 100644 --- a/app/me.py +++ b/app/helpers.py @@ -1,8 +1,9 @@ """ Send User's info. """ +from urllib import parse +from .config import bot def get_me(message): - # Fields tip: https://core.telegram.org/bots/api#user msg = f"Telegram ID: {message.from_user.id}\n\ ├ Is bot: {message.from_user.is_bot}\n\ ├ First name: {message.from_user.first_name}\n" @@ -18,3 +19,17 @@ def get_me(message): msg += f" ├ Chat ID: {message.chat.id}" return msg + + +def search_it(engine, message): + if message.reply_to_message and message.reply_to_message.text: + if len(message.text.split()) == 1: + r = parse.quote_plus(message.reply_to_message.text) + else: + r = parse.quote_plus(' '.join(message.text.split()[1:])) + bot.reply_to(message.reply_to_message, f"{engine}{r}", + disable_web_page_preview=True) + else: + if len(message.text.split()) > 1: + r = parse.quote_plus(' '.join(message.text.split()[1:])) + bot.reply_to(message, f"{engine}{r}") diff --git a/app/reloader.py b/app/reloader.py index baf1679..66af68f 100644 --- a/app/reloader.py +++ b/app/reloader.py @@ -3,7 +3,7 @@ from importlib import reload from . import bot from . import filters from . import config -from . import me +from . import helpers from . import report from . import stan @@ -12,6 +12,6 @@ def reload_modules(): reload(bot) reload(filters) reload(config) - reload(me) + reload(helpers) reload(report) reload(stan)