• 28-12-2023, 21:51:59
    #1
    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
  • 28-12-2023, 21:56:30
    #2
    chatgpt
    Alıntı
    1. Dizilim ve Kod Bloğu: Kodunuzda bir dizilim uyuşmazlığı görünüyor. Kodunuz boyunca düzenin tutarlı olduğundan emin olun. Python'da dizilim, kodun yapısını belirlemenize yardımcı olur.
    2. Eksik Token Tanımı: updater nesnesinin yarım bir belirleme ile oluşturulduğu görünüyor. updater nesnesini tanımlayan satırın tamamlandığından emin olun ve Telegram bot oluştururken aldığınız gerçek belirteci içerdiğinden emin olun.
      pythonCopy code
      updater = Updater(token="telegram_bot_tokenunuz")
    3. Eksik İçe Aktarımlar: Bazı içe aktarımların eksik olduğu görünüyor, örneğin from telegram.ext import CommandHandler, MessageHandler, Filters, CallbackContext. Kodun başında gerekli tüm içe aktarımları eklediğinizden emin olun.
    4. Excel Dosya Yolu: EXCEL_FILE_PATH değişkenini Excel dosyanızın doğru yoluna güncelleyin.
    5. İş Parçacıklı Yürütme: Kod, bot başlatma (start_bot_thread) ve anket yapma (polling_thread) için iş parçacıkları kullanıyor gibi görünüyor. Bu iş parçacıklarını, betik çıkışından önce düzgün bir şekilde birleştirdiğinizden emin olun.
    6. Kullanılmayan Fonksiyonlar: handle_update ve run_polling fonksiyonları tanımlanmış ancak kodunuzda kullanılmıyor gibi görünüyor. Eğer kullanılmayacaklarsa, bunları kaldırabilirsiniz.
    Bu düzeltmeleri yaptıktan sonra betiği çalıştırabilir ve hata mesajlarını kontrol ederek olası diğer sorunları görebilirsiniz. Eğer belirli hata mesajları ile karşılaşırsanız, daha hedefli yardım için bu hata mesajlarını paylaşabilirsiniz.
  • 28-12-2023, 21:58:24
    #3
    Frown adlı üyeden alıntı: mesajı görüntüle
    chatgpt
    denedim hocam yok
  • 28-12-2023, 21:59:44
    #4
    Aldığınız hatayı, hangi satırda aldığınızı detaylıca iletir misiniz?
  • 28-12-2023, 22:02:52
    #5
    startakipci adlı üyeden alıntı: mesajı görüntüle
    Aldığınız hatayı, hangi satırda aldığınızı detaylıca iletir misiniz?
    C:UsersbkoyuncuDesktop123>deneme.py
    Traceback (most recent call last):
    File "C:UsersbkoyuncuDesktop123deneme.py", line 3, in <module>
    from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
    ImportError: cannot import name 'Filters' from 'telegram.ext' (C:UsersbkoyuncuAppDataLocalProgramsPythonPython31 2Libsite-packagestelegramext__init__.py). Did you mean: 'filters'?
  • 28-12-2023, 22:04:41
    #6
    IyibirNet adlı üyeden alıntı: mesajı görüntüle
    C:UsersbkoyuncuDesktop123>deneme.py
    Traceback (most recent call last):
    File "C:UsersbkoyuncuDesktop123deneme.py", line 3, in <module>
    from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
    ImportError: cannot import name 'Filters' from 'telegram.ext' (C:UsersbkoyuncuAppDataLocalProgramsPythonPython31 2Libsite-packagestelegramext__init__.py). Did you mean: 'filters'?
    Komut Yöneticisi ( CMD ) yi açın ve aşağıdaki kodu yapıştırarak kütüphaneyi yükleyin sorun çözülecektir.

    pip install python-telegram-bot
    https://pypi.org/project/python-telegram-bot/
    Kütüphane bağlantısı yukardakı gibidir.
  • 28-12-2023, 22:06:57
    #7
    startakipci adlı üyeden alıntı: mesajı görüntüle
    Komut Yöneticisi ( CMD ) yi açın ve aşağıdaki kodu yapıştırarak kütüphaneyi yükleyin sorun çözülecektir.

    pip install python-telegram-bot
    https://pypi.org/project/python-telegram-bot/
    Kütüphane bağlantısı yukardakı gibidir.
    kurdum hocam zatne

    C:UsersuneticalDesktop123>deneme.py
    Traceback (most recent call last):
    File "C:UsersuneticalDesktop123deneme.py", line 61, in <module>
    main()
    File "C:UsersuneticalDesktop123deneme.py", line 49, in main
    updater = Updater(TOKEN)
    ^^^^^^^^^^^^^^
    TypeError: Updater.__init__() missing 1 required positional argument: 'update_queue'


    F yerine f yapınca bu oldu Filter kullanımı değişmiş filter olmuş
  • 28-12-2023, 22:14:58
    #8
    def main() -> None:
        updater = Updater(TOKEN, use_context=True)
    
        dp = updater.dispatcher
    
        dp.add_handler(CommandHandler("start", start))
        dp.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_number))
    
        updater.start_polling()
    
        updater.idle()
    main kod parçacığını yukardaki gibi güncelleyip dener misin?
  • 28-12-2023, 22:25:32
    #9
    startakipci adlı üyeden alıntı: mesajı görüntüle
    def main() -> None:
        updater = Updater(TOKEN, use_context=True)
    
        dp = updater.dispatcher
    
        dp.add_handler(CommandHandler("start", start))
        dp.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_number))
    
        updater.start_polling()
    
        updater.idle()
    main kod parçacığını yukardaki gibi güncelleyip dener misin?

    C:\Users\unetical\Desktop\123>deneme.py
    Traceback (most recent call last):
      File "C:\Users\unetical\Desktop\123\deneme.py", line 61, in <module>
        main()
      File "C:\Users\unetical\Desktop\123\deneme.py", line 49, in main
        updater = Updater(TOKEN, use_context=True)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    TypeError: Updater.__init__() got an unexpected keyword argument 'use_context'
    hocam