afrom queue import Queue
from threading import Thread
from telegram import Update
from telegram.ext import Updater, Dispatcher
def start_bot():
updater = Updater(token="6739937530:AAG9tFE-qhh9UpnzzGNTZFwyVzHOf1mjSsUimport logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
import openpyxl
# Telegram botunuzun token'ını ve Excel dosyasının yolu
TOKEN = "your_telegram_bot_token"
EXCEL_FILE_PATH = "path/to/your/excel/file.xlsx"
# Bot loglaması
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
def start(update: Update, context: CallbackContext) -> None:
update.message.reply_text('Merhaba! Numara sorgulamak için bir numara yazabilirsiniz.')
def handle_number(update: Update, context: CallbackContext) -> None:
try:
# Excel dosyasını aç
workbook = openpyxl.load_workbook(EXCEL_FILE_PATH)
# İlk sayfayı seç
sheet = workbook.active
# Kullanıcının girdiği numarayı al
user_number = int(update.message.text)
# C kolonundaki numarayı ara ve eşleşen satırı bul
for row in sheet.iter_rows(min_row=2, values_only=True):
if row[2] == user_number:
# Eşleşen satırdaki ürün adı (A kolonu) ve ürün fiyatı (B kolonu)
urun_adi = row[0]
urun_fiyati = row[1]
# Kullanıcıya cevap ver
update.message.reply_text(f'{user_number} numarasına ait ürün: {urun_adi}, Fiyatı: {urun_fiyati}')
# Eşleşme bulundu, döngüden çık
break
else:
update.message.reply_text(f'{user_number} numarasına ait bir ürün bulunamadı.')
# Excel dosyasını kapat
workbook.close()
except ValueError:
update.message.reply_text('Lütfen geçerli bir numara girin.')
def main() -> None:
updater = Updater(TOKEN)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
dp.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_number))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()", use_context=True)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
dp.add_handler(MessageHandler(filters.text & ~filters.command, search))
# Dışardan gelen mesajları almak ve işlemek için bir update_queue kullanın
updater.start_polling(queue=update_queue)
updater.idle()
def handle_update(update: Update):
dispatcher.process_update(update)
def run_polling():
while True:
update = update_queue.get()
handle_update(update)
update_queue = Queue()
start_bot_thread = Thread(target=start_bot)
polling_thread = Thread(target=run_polling)
start_bot_thread.start()
polling_thread.start()
telegram için uğraşıyorum ama bir türlü çalışmadı nerde hata yaptık