Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 04.06.2021
Сообщений: 1

Оптимизация телеграм бота

04.06.2021, 16:13. Показов 2252. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь сделать телеграм бота для поиска.
Вроде бы все готово, но вот проблема, def s работает слишком долго и отправляет сообщение только через 5-7 секунд.
Как можно оптимизировать мой код, если можно?
Python Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import telebot
import pyscp
from googlesearch import search
scp = "scp-"
bot = telebot.TeleBot("NO")
def extract_arg(arg):
    return arg.split()[1:]
@bot.message_handler(commands=['o'])
def o(message):
   global status
   status = extract_arg(message.text)
   try:
    object = status[0]
   except Exception as e:
    object ="7777"
   l = scp + object
   url = "scpfoundation.net/" + l
   ru_wiki = pyscp.wikidot.Wiki('scpfoundation.net')
   p = ru_wiki(l)
   try:
    k = ('{}'.format(p.title))
    text = (f'<a href="{url}">{k}</a>')
   except Exception as e:
    text="Простите, этот номер не присвоен не одному из объектов"
   bot.send_message(message.chat.id, text,parse_mode='HTML')
def extract_argument(argument):
    return argument.split()[3:]
@bot.message_handler(commands=['s'])
def s(m):
    status1 = m.text
    status2 = status1.replace('/s', "")
    f = open("base.txt", "r")
    searchlines = [line.strip() for line in f.              readlines() if line.strip()]
    f.close()
    out = []
    out1=[]
    try:
        for i, line in enumerate(searchlines):
                if status2.lower() in line.lower():
                            for l in searchlines[i : i + 1]:
                                    out.append(l.split(maxsplit=1)[0])
                                    out1.append(l.split(maxsplit=1)[1])
    except Exception as e:
        bot.send_message(m.chat.id, "Простите, не смог ничего найти.",parse_mode='HTML')
        pass
    finalout = list(set(out))
    number = len(finalout)
    g, nm, count, count1, gey =[], int("0"), int("0"), int("0"), []
    while (nm<number):
        url = 'http://scpfoundation.net/'
        try:
            ru_wiki = pyscp.wikidot.Wiki('scpfoundation.net')
            p = ru_wiki(finalout[count])
            k = ('{}'.format(p.title))
            gey.append(k)
            result = " ".join ([url, finalout[count]])
            g.append(f'<a href="{result}">{k}</a>')
        except Exception as e:
            pass
        count+=1
        count1+=1
        nm+=1
    numbeer=int('0')
    counter=int('0')
    ka = search(f'{status2} site:scpfoundation.net', num_results=4)
    while (numbeer<5):
        try:
            ru_wiki = pyscp.wikidot.Wiki('scpfoundation.net')
            p = ru_wiki(ka[counter])
            kj = ('{}'.format(p.title))
            if (kj not in gey and "forum" not in ka[counter] and "draft" not in ka[counter] and "fragment" not in ka[counter]):
                    result = ka[counter]
                    g.append(f'<a href="{result}">{kj}</a>')
        except Exception as e:
            pass
        numbeer+=1
        counter+=1
    story = '\n'.join(g)
    try:
        bot.send_message(m.chat.id, story,parse_mode='HTML')
    except Exception as e:
        bot.send_message(m.chat.id, "Простите, ничего не найдено.", parse_mode='HTML')
@bot.message_handler(commands=['help'])
def help(t):
    bot.send_message(t.chat.id, "/o — поиск по номеру; /s — поиск по названию; /help — это сообщение; /join — присоеденится к сообществу; /faq — ответы на частые вопросы",parse_mode='HTML')
@bot.message_handler(commands=['join'])
def join(j):
    joiner=(f'<a href="http://scpfoundation.net/system:join">Подай простую заявку!</a>')
    bot.send_message(j.chat.id, joiner,parse_mode='HTML')
@bot.message_handler(commands=['faq'])
def faq(f):
    faqer=(f'<a href="http://scpfoundation.net/faq">Читать тут.</a>')
    bot.send_message(f.chat.id, faqer,parse_mode='HTML')
bot.polling()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2021, 16:13
Ответы с готовыми решениями:

Создание телеграм бота
Всем доброго времени суток! Заинтересовался созданием телеграм бота и столкнулся с проблемой... Мне нужно сделать бота, который раз в сутки...

Не работает клавиатура у телеграм бота
До этого кода есть другая функция с обычным выведением текста из текстового файла после команд /grammar1, /lesson и тд. Хотела, чтобы на...

Запуск телеграм бота на маке
Написали бота на винде, все прекрасно работает, поставили на мак, выдает ошибку подключения к хосту, не понимаем в чем дело. Текст...

1
 Аватар для facelessbrother
3 / 2 / 1
Регистрация: 20.04.2019
Сообщений: 47
06.06.2021, 13:58
Ты используешь библиотеку googlesearch. Чувствую что в ней вся проблема, так как сначала программа все это ищет в гугле, а потом парсит все эти значения, вот была бы эта информация в базе данных, то данная проблема решалась бы посредством индексов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2021, 13:58
Помогаю со студенческими работами здесь

Календарь для телеграм бота
Есть 2 функции: реализации календаря и выбора даты. @bot.message_handler(commands=) def get_calendar(message): now =...

Создание простого бота в телеграм
Бот начинает работу с команды &quot;/start&quot; и последовательно задает пользователю 5 тестовых вопросов с четырьмя вариантами ответа. Вопросы...

Как создать телеграм бота?
Как создать телеграм бота?

Загрузка телеграм бота на сервер
Есть бот выполняющий следующие функции: парсит сайт, скачивает документ, извлекает данные из документа в текстовый файл, и в итоге передаёт...

Создал телеграм бота, подскажите
Написал бота, его задача заключается в том что бы скачивать каждые 24 часа .doc файл обработать его переводить данные в .txt и уже потом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер