Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
371 / 269 / 93
Регистрация: 18.11.2015
Сообщений: 1,001
Telegram Bot

Telegram бот с QR кодом и возращением данных в Excel

26.09.2022, 10:43. Показов 1135. Ответов 0

Студворк — интернет-сервис помощи студентам
Всем добра!
Возникла идея-надобность в телеграмм-боте, опыта в питоне маловато (нет фактически), поэтому прошу помочь:
Основная идея создать бота, который сканируя QR-код, передает расшифрованный текст из QR-кода, id и комментарий пользователя в excel
при выполнении строки:
Python
1
context.bot.register_next_step_handler(msg.chat_id, get_TItog)
вознкает ошибка: 'ExtBot' object has no attribute 'register_next_step_handler'
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
95
96
97
98
99
import telebot
from telebot import types
import pandas as pd
from time import strftime, time
from time import sleep, time
import datetime
#https://t.me/GSPMUMiT_bot  #GSPM-UMiT
# Telegram
from operator import index
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
from telegram.ext import Updater, Filters, MessageHandler, CallbackContext
 
# QR Code
from pyzbar.pyzbar import decode
 
# System libraries
import os
from os import listdir
from os.path import isfile, join
import pandas as pd
from io import BytesIO
from PIL import Image
mylist = [5331122166, 897142962]
BOT_TOKEN='token'
bot=telebot.TeleBot(BOT_TOKEN)
 
wTech=''
rTech=''
sTech=''
iTech=''
oTech=''
otTech=''
 
@bot.message_handler(commands=['start'])
def handle_start(message):
    stic = open('C:/Projects/UMIT/stic/logo.webp', 'rb')
 
    # клавиатура
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    but1 = types.KeyboardButton("Техника")
    but2 = types.KeyboardButton("Сотрудники")
    but3 = types.KeyboardButton("Другое")
    markup.add(but1, but2, but3)
    fName = message.from_user.username
    dt_now = datetime.datetime.now()
    iTech=message.id
    oTech=message.first_name
    bot.reply_to(message, "Добрый день, {0.first_name}\nВыберите раздел" .format(message.from_user),parse_mode='html',reply_markup=markup) #, 0.id 0.first_name, 0.last_name, 0.phone_number
    bot.reply_to(message, dt_now)
    bot.send_sticker(message.chat.id,stic)
 
#Сканер QR
    QRtxt = ''
def decode_qr(update: Update, context: CallbackContext):
    chat_id = update.message.chat_id
 
    if update.message.photo:
        id_img = update.message.photo[-1].file_id
    else:
        return
    foto = context.bot.getFile(id_img)
    new_file = context.bot.get_file(foto.file_id)
    new_file.download('qrcode.png')
    
    try:
        result = decode(Image.open('qrcode.png'))
        #context.bot.sendMessage(chat_id=chat_id, text=result[0].data.decode("utf-8")) #Оригинал
        messg = result[0].data.decode("utf-8")
        print(messg)
        wTech = messg.split(";")[0]
        rTech = messg.split(";")[1]
        sTech = messg.split(";")[2]
        msg = context.bot.sendMessage(chat_id=chat_id, text=result[0].data.decode("utf-8")) #context.bot.reply_to(messg, "Комментарий")
        context.bot.register_next_step_handler(msg.chat_id, get_TItog)
        os.remove("qrcode.png")
 
    except Exception as e:
        print(str(e))
        context.bot.sendMessage(chat_id=chat_id, text=str(e))   
#Передача в excel
def get_TItog(message):
    salaries1 = pd.DataFrame({'Показатель': ['Номер ПЛ', 'Гар№', 'ФИО', 'iD', 'Name', 'Другое'],
                            'Кол-во': [wTech, rTech, sTech, iTech, oTech, otTech]})
            #print(salaries1)
    filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
    NewName = filename1+'.xlsx'
    writer = pd.ExcelWriter('C:/Projects/UMIT/OP/'+NewName, engine='xlsxwriter')
    salaries1.to_excel('./teams.xlsx', sheet_name='Budgets', index=False)
    writer.save()
 
def main():
    updater = Updater(BOT_TOKEN, request_kwargs={'read_timeout': 20, 'connect_timeout': 20}, use_context=True)
    dp = updater.dispatcher
    dp.add_handler(MessageHandler(Filters.photo, decode_qr))
    updater.start_polling()
    updater.idle()
if __name__ == '__main__':
    main()
bot.polling(none_stop=True)
Буду очень признателен за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2022, 10:43
Ответы с готовыми решениями:

Telegram бот с использованием базы данных sqlite3
Ребят, столкнулся с такой проблемой, хочу чтобы бот по команде от пользователя считывал его айди с базы данных, и по его айди, менял ему...

Чат бот Telegram для сбора данных от пользователя
В общем решил разбираться с созданием Telegram ботов, хочу попробовать научить его собирать данные которые ему отправляет пользователь и...

Бот telegram не может подключиться к https://api.telegram.org:443: (Java)
Здравствуйте! Возникла такая проблема при запуске бота в intelij idea ultimate программа выдает такое сообщение:"юн. 02, 2018 8:42:11...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2022, 10:43
Помогаю со студенческими работами здесь

При передачи данных из matlab в excel построить там график средствами excel (кодом)
Здравствуйте! Есть ли возможность в коде, при передачи данных из matlab в excel построить там график средствами excel

Бот в Telegram
Всем привет!! Я хочу сделать игру в телеграм боте, но не знаю как сделать время в игре. Персонаж приходит на работу, и через 30 минут,...

Telegram бот
Всем привет. Кто-нибудь создавал Telegram бота в Питоне? Почему в консоле такое вылазит? Смотрел видео, просто переписал код, у него все...

Telegram-бот
Здравствуйте! Разбираю пример телеграм-бота, написанного с помощью модуля node-telegram-bot-api.Бот создается и при команде /start...

Telegram - бот
В обще всем доброго времени суток, господа! Сам я не программист, но написал скрипт, который криво работает. 1)Суть его в том, что...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru