2017-09-13 3 views
0

私はPython-Telegram-botモジュールを使ってテレグラムボットを構築しましたが、今は30日しか働かないように設定したい、つまりユーザーが/startをボットに送信すると、ボットは30日間停止します.MYコード:ユーザーごとに30日間しか動作しないで、そこで停止するテレグラムボットを作成するにはどうすればいいですか?

# -*- coding: utf-8 -*- 
from telegram.ext import Updater, MessageHandler, Filters, CommandHandler 
import re                               


def delete_method(bot, update): 
    if not update.message.text: 
     print("it does not contain text") 
     return 

    mlist=['hello', 'by', 'world'] 


    for i in mlist: 
     if re.search(i, update.message.text): 
      bot.delete_message(chat_id=update.message.chat_id, message_id=update.message.message_id) 

def start_method(bot, update): 
    bot.send_message(chat_id=update.message.chat_id, "This bot only works for 30 days") 

def main(): 
    updater = Updater(token = 'TOKEN') 
    dispatcher = updater.dispatcher 
    dispatcher.add_handler(MessageHandler(Filters.all, delete_method)) 

    start_command = CommandHandler('start', start_method) 
    dispatcher.add_handler(start_command) 

    updater.start_polling() 
    updater.idle() 

if __name__ == '__main__': 
    main() 
# for exit 
# updater.idle() 

私は何をすべきか、ボットは、各ユーザーの30日後に作業を停止するように私は私のコードに何を追加する必要があります?

+1

chat_id(これはユーザーを識別します)とデータベースへの登録日を格納し、30日が経過した場合にはメッセージのチェックを送信します。 30日が経過してもメッセージを送信しないでください(または「このボットをもう使用できません」)。 – newsha

+0

@newsha \t 私の英語は良くありません。あなたが言ったあなたのコミントを読むことができません。私のコードを修正してください。 - – Sajjad

答えて

1

ユーザーがボットを初めて起動したとき、電報IDと共にデータベースにタイムスタンプを記録する必要があります。

たとえば、INTプライマリキーとタイムスタンプを最初に使用するテーブルを作成します。

ボットが受け取る "/ start"コマンドの場合は、IDとタイムスタンプをテーブルに挿入します(すでに存在する場合は何もしません)。

メッセージがボットに到着するたびに、30日間経過したかどうかを確認します。

+0

@ 91DarioDev私は何をすべきか正確には分かりません。可能であれば、コードを修正してください。どうもありがとうございます。 – Sajjad

+0

あなたの問題をどのように解決できるかを完全に説明する2つの有益な回答(1つの回答、1つのコメント)。あなたが何かを全く理解していないならば、コミュニティは他に何ができますか?あなたの問題が何であるか、ここで、または質問で詳しく教えてください... – nostradamus

関連する問題