PDA

Просмотр полной версии : поиск строки по содержимому(telebot)


дмитрий куст
31.01.2023, 20:00
учусь питону, а именно телеботу. видели видеоролики в тт с переходником на тг бота где по номеру фильм ищешь? так вот, хочу сделать "типо исходника" таких ботов, но нужна функция чтобы выдавать ответ по схожести запроса от юзера.

хз даж как нормально обьяснить, но вот типо:

bot введите номер фильма

user 1067

bot 1067. Фильм про 6 негров

txt with data

...

1066. аризона дерьмо

1067. фильм про 6 негров

1068. я стрейф

...

кто шарит подскажите) только учусь этой херне

эчпочмак
31.01.2023, 21:39
Python:






@bot.message_handler
(
)
#ебашим какую-то ***ню, забыл как называется))0))
def
get_user_text
(
message
)
:
#ебашим функцию
if
message
.
text
==
'фильм про 6 негров'
:
#типа если юзер еблыга отправил нам сообщение
bot
.
send_video
(
m
.
s
.
id
,
c
:
\ягей\бубубубыаыаы\film
6
niggers
.
mp4
,
caption
=
'на смотри хуесос'
)
#вставляем путь к фильму и все

дмитрий куст
31.01.2023, 23:01
Python:






@bot.message_handler
(
)
#ебашим какую-то ***ню, забыл как называется))0))
def
get_user_text
(
message
)
:
#ебашим функцию
if
message
.
text
==
'фильм про 6 негров'
:
#типа если юзер еблыга отправил нам сообщение
bot
.
send_video
(
m
.
s
.
id
,
c
:
\ягей\бубубубыаыаы\film
6
niggers
.
mp4
,
caption
=
'на смотри хуесос'
)
#вставляем путь к фильму и все





мне не сам видос нужен) а ток поиск нужной строки из заранее загруженного файла

эчпочмак
31.01.2023, 23:07
мне не сам видос нужен) а ток поиск нужной строки из заранее загруженного файла


из файла хз). могу если в переменную все закинешь

дмитрий куст
31.01.2023, 23:39
из файла хз). могу если в переменную все закинешь


lets try

xionerme
31.01.2023, 23:46
https://forum.antichat.xyz/attachments/28247825/img_2e9e939f7d.png

12390:






from
aiogram
import
Bot
,
Dispatcher
,
executor
,
types

bot
=
Bot
(
token
=
'token'
)
dp
=
Dispatcher
(
bot
)
@dp.message_handler
(
commands
=
[
'start'
]
)
async
def
send_welcome
(
message
:
types
.
Message
)
:
if
message
.
chat
.
type
==
'private'
:
await
message
.
reply
(
'Привет! Введи номер фильма.'
)
@dp.message_handler
(
)
async
def
films
(
message
:
types
.
Message
)
:
if
message
.
chat
.
type
==
'private'
:
with
open
(
'films.txt'
,
'r'
,
encoding
=
'utf-8'
)
as
f
:
lines
=
f
.
readlines
(
)
local
=
int
(
message
.
text
)
await
message
.
reply
(
lines
[
local
]
)
if
__name__
==
"__main__"
:
executor
.
start_polling
(
dp
,
skip_updates
=
True
)




aiogram > telebot

дмитрий куст
01.02.2023, 01:48
12390:






from
aiogram
import
Bot
,
Dispatcher
,
executor
,
types

bot
=
Bot
(
token
=
'token'
)
dp
=
Dispatcher
(
bot
)
@dp.message_handler
(
commands
=
[
'start'
]
)
async
def
send_welcome
(
message
:
types
.
Message
)
:
if
message
.
chat
.
type
==
'private'
:
await
message
.
reply
(
'Привет! Введи номер фильма.'
)
@dp.message_handler
(
)
async
def
films
(
message
:
types
.
Message
)
:
if
message
.
chat
.
type
==
'private'
:
with
open
(
'films.txt'
,
'r'
,
encoding
=
'utf-8'
)
as
f
:
lines
=
f
.
readlines
(
)
local
=
int
(
message
.
text
)
await
message
.
reply
(
lines
[
local
]
)
if
__name__
==
"__main__"
:
executor
.
start_polling
(
dp
,
skip_updates
=
True
)




aiogram > telebot


бля убедил) попробую себя в айограме, почитал что вроде как он пизже чем телебот, но и сложнее. новичок в питоне, смогу разобраться?

дмитрий куст
01.02.2023, 10:49
на гите видел фулл исходник такого бота на питоне, упустил ссылку


максим карамелькин дизреспект

verseti
04.02.2023, 17:58
ChatGPT в помощь:

Для решения этой задачи вам нужно использовать алгоритм строкового сравнения. Он позволяет оценить похожесть двух строк и позволяет программе находить наиболее подходящую строку в заданном списке. В Python есть библиотека difflib, которая предоставляет функции для сравнения строк. Вот пример использования этой библиотеки:

# Импортируем библиотеку

import difflib

# Создаем список строк, которые будем сравнивать

list_of_strings = ["1066. аризона дерьмо", "1067. фильм про 6 негров", "1068. я стрейф"]

# Получаем запрос от пользователя

user_input = "1067"

# Ищем наиболее подходящую строку из списка

best_match = difflib.get_close_matches(user_input, list_of_strings)[0]

# Выводим результат

print(best_match)

# Результат: 1067. фильм про 6 негров