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

Проблема с ответом на сообщение

21.06.2022, 15:38. Показов 806. Ответов 18

Студворк — интернет-сервис помощи студентам
Здравствуйте, пользователи форума!
Такая проблема:
в коде бота я написал чтобы он отписал о успешной регистрации пользователя, после чего он занёс его в папку User с уникальным ником который ты ввёл
файл.txt создаётся, всё ок
но бот не отвечает на сообщение после ввода ника, как хотелось бы.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def reg_msg(message):
    if bool(message.text==nickname)== True
        if bool(os.path.isfile(path)) == False:
            bot.send_message(message.from_user.id, "Вы зарегестрировались как - " + nickname)
            bot.send_message(message.from_user.id, "Регистрация заверешена! Спасибо")
            register()
        else:
            bot.send_message(message.from_user.id, "Данное имя занято! Введите другое")
            get_nickname(message)
 
 
def register():
    path=str('Users/'+nickname+'.txt')
    if os.path.isfile(path) == True:
        return
    else:
        create = open(path, 'w')
        create.close()
bot.infinity_polling()
Заранее благодарю!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2022, 15:38
Ответы с готовыми решениями:

Проблема с ответом
Нужно для заданной функции p=1,7*c^3-5,6*cos((2*c-1)/(c^2+3,4)) вывести на экран значения функции, которые лежат в пределах от –5 до 5 и...

Проблема с json ответом
для начала - да, это майнкрафт делаю запрос на api.vime.world/user/name/xtrafrancyz получаю ответ json со статистикой, но в массиве ...

Проблема с ответом в решении суммы ряда
Пытаюсь написать программу для счета суммы ряда, и не могу понять как решить проблему, которая заключается в том, что при вводе значения...

18
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 16:53
если такое можно достаточно часто увидеть
Цитата Сообщение от Ex3shka Посмотреть сообщение
if bool(os.path.isfile(path)) == False
то такое я в первый раз вижу
Цитата Сообщение от Ex3shka Посмотреть сообщение
if bool(message.text==nickname)== True


Добавлено через 1 минуту
Цитата Сообщение от Ex3shka Посмотреть сообщение
но бот не отвечает на сообщение после ввода ника, как хотелось бы.
где в коде ввод ника?
0
2 / 1 / 1
Регистрация: 21.06.2022
Сообщений: 11
21.06.2022, 16:56  [ТС]
вот тебе и писал кода с часу ночи до утра

Добавлено через 46 секунд
сейчас докину код

Добавлено через 1 минуту
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
import os.path
 
import telebot
 
bot = telebot.TeleBot('API не дам')
global nickname
nickname = ''
 
 
@bot.message_handler(content_types=['text'])
def start(message):
    if message.text == "/start":
        bot.send_message(message.from_user.id, "Привет! Ты попал в квест-бота 'Patch of Redemption'")
        bot.send_message(message.from_user.id, "Введите /reg для регистрации")
    if message.text == "/reg":
        bot.send_message(message.from_user.id, "Для регистрации введите ник (вдальнейшем нельзя будет изменить)")
        bot.register_next_step_handler(message, get_nickname)
 
 
def get_nickname(message):
    global nickname
    nickname = str(message.text)
    register()
 
 
def nreg_msg(message):
    bot.send_message(message.from_user.id, "Данное имя занято! Введите другое")
    reg_msg(message)
 
 
def reg_msg(message):
    if bool(message.text==nickname)== True
        if bool(os.path.isfile(path)) == False:
            bot.send_message(message.from_user.id, "Вы зарегестрировались как - " + nickname)
            bot.send_message(message.from_user.id, "Регистрация заверешена! Спасибо")
            register()
        else:
            bot.send_message(message.from_user.id, "Данное имя занято! Введите другое")
            get_nickname(message)
 
 
def register():
    path=str('Users/'+nickname+'.txt')
    if os.path.isfile(path) == True:
        return
    else:
        create = open(path, 'w')
        create.close()
bot.infinity_polling()
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 16:56
Цитата Сообщение от Ex3shka Посмотреть сообщение
str('Users/'+nickname+'.txt')
почему?

Цитата Сообщение от Ex3shka Посмотреть сообщение
create = open(path, 'w')
        create.close()
если нет ничего в середине, можно
Python
1
open(path, 'w').close()
0
2 / 1 / 1
Регистрация: 21.06.2022
Сообщений: 11
21.06.2022, 16:58  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
почему?


если нет ничего в середине, можно
Python
1
open(path, 'w').close()
Цитата Сообщение от Jabbson Посмотреть сообщение
1
open(path, 'w').close()
учту
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 17:00
Цитата Сообщение от Ex3shka Посмотреть сообщение
str(message.text)
зачем?

Цитата Сообщение от Ex3shka Посмотреть сообщение
if bool(message.text==nickname)== True
не хватает чего-то в конце...

Цитата Сообщение от Ex3shka Посмотреть сообщение
if bool(os.path.isfile(path)) == False:
откуда тут берется path?
0
2 / 1 / 1
Регистрация: 21.06.2022
Сообщений: 11
21.06.2022, 17:06  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
откуда тут берется path?
из функции с созданием файла( для проверки на наличие этого файла

Добавлено через 31 секунду
Цитата Сообщение от Jabbson Посмотреть сообщение
не хватает чего-то в конце..
заметил._.

Добавлено через 1 минуту
Цитата Сообщение от Jabbson Посмотреть сообщение
зачем?
если вдруг кто-то введёт цифры как ник
на всякий
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 17:10
Цитата Сообщение от Ex3shka Посмотреть сообщение
если вдруг кто-то введёт цифры как ник
на всякий
но они все равно придут как str, нет? '123' - это строка.

Добавлено через 1 минуту
почему nickname передается через глобальную переменную?
0
2 / 1 / 1
Регистрация: 21.06.2022
Сообщений: 11
21.06.2022, 17:12  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
почему nickname передается через глобальную переменную?
для использование позднее в коде повсеместно
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 17:13
как попасть в функцию nreg_msg?

Добавлено через 32 секунды
Цитата Сообщение от Ex3shka Посмотреть сообщение
для использование позднее в коде повсеместно
это очень плохая причина для этого, у вас только один пользователь предполагается?
0
2 / 1 / 1
Регистрация: 21.06.2022
Сообщений: 11
21.06.2022, 17:14  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
это очень плохая причина для этого, у вас только один пользователь предполагается?
нет
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 17:15
Цитата Сообщение от Ex3shka Посмотреть сообщение
нет
то есть все пользователи одновременно будут пользоваться одной глобальной переменной, верно?
0
2 / 1 / 1
Регистрация: 21.06.2022
Сообщений: 11
21.06.2022, 17:16  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
то есть все пользователи одновременно будут пользоваться одной глобальной переменной, верно?
нет, у каждого пользователя она будет уникальна и браться из содержания файла
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 17:21
Цитата Сообщение от Ex3shka Посмотреть сообщение
у каждого пользователя она будет уникальна
Как же она будет уникальна? Для этого нужно запустить по скрипту на каждого пользователя.
0
2 / 1 / 1
Регистрация: 21.06.2022
Сообщений: 11
21.06.2022, 17:21  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
Как же она будет уникальна? Для этого нужно запустить по скрипту на каждого пользователя.
это планирую сделать
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 17:26
Цитата Сообщение от Ex3shka Посмотреть сообщение
это планирую сделать
вот тут интересно, есть идеи как это организовать? потенциально 700 миллионов копий? Понятно, не все 700 миллионов пойдут погонять квест-бота 'Patch of Redemption', но как будет организовано столько скриптов, сколько людей захочет зайти? И главное зачем?
0
2 / 1 / 1
Регистрация: 21.06.2022
Сообщений: 11
21.06.2022, 17:28  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
сколько людей захочет зайти? И главное зачем?
не много это точно
организовать думаю просто запуская на каждого пользователя по скрипту

Добавлено через 41 секунду
Цитата Сообщение от Ex3shka Посмотреть сообщение
организовать думаю просто запуская на каждого пользователя по скрипту
или можно это сделать более оптимизированно
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
21.06.2022, 18:05
за исключением того, что я перечислил выше и самой идеи создавать файлы с именами пользователей, все работает как написано - приветствует, просит ввести ник, создает файл с введенным словом.

Добавлено через 2 минуты
то есть. эти функции присутствуют, но ничего не делают
def nreg_msg(message):
def reg_msg(message):
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
24.06.2022, 01:14
Цитата Сообщение от Ex3shka Посмотреть сообщение
bot = telebot.TeleBot('API не дам')
а токен?

Добавлено через 4 минуты
исходя из того, что сумел вычитать из этой неглубокой дискуссии:
1. зачем global? если переменная гуляет по функциям, для этого есть передача аргументов. Судя по уровню ТС6 в области видимости и т. п. лучше не лезть, закопаете себя еще глубже
2. для хранения данных о пользователях можно использовать 2.1 - класс, где будет хранится данные
2.2 - просто словарик двойной вложенности ( {id/nickname: {data: ''}} )
2.3 - json файл(то же самое что и 2.2 собственно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2022, 01:14
Помогаю со студенческими работами здесь

Проблема с ответом от сервера Google для recaptcha
Всем привет. Прошу помощи! Сколько ни разбирался..не получается решить проблемы с работой капчи. Есть хостинг в стиле...

VK методы с ответом
Здравствуйте, подскажите, пожалуйста, как использовать методы vk api, которые присылают ответы, в библиотеке AndroidVkSdk...

не сходится с ответом
http://s41.***********/i093/1009/6e/e6b008115d71.jpg Помогите !!!!! Завтра нужно сдать отчёт...... unit Unit1; interface ...

Трудности с ответом
1) Дана следуюшая declarations: int myFunction(int myValue); int myArray; Что из ниже следуюшего имеет легальный call to this...

Не сходится с ответом
<!DOCTYPE html> <html> <head> <title>codebra</title> <meta charset="UTF-8"> </head> <body> ...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru