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

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

26.09.2022, 10:43. Показов 1200. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru