92 lines
3.3 KiB
Python
92 lines
3.3 KiB
Python
from telegram.ext import CommandHandler
|
|
import os
|
|
import datetime
|
|
import telegram
|
|
import logging
|
|
import json
|
|
from config import updater
|
|
from config import bot
|
|
|
|
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
|
level=logging.INFO)
|
|
|
|
|
|
j = updater.job_queue
|
|
|
|
|
|
def hello(bot, update):
|
|
print(update)
|
|
update.message.reply_text(
|
|
'Hello {}'.format(update.message.from_user.first_name))
|
|
|
|
def start(bot, update):
|
|
update.message.reply_text("Du möchtest auch jeden morgen Motiviert in den Tag starten?")
|
|
update.message.reply_text("Dann abonniere jetzt diesen motivierenden Bot der dir jeden Morgen um 6 perfekt für deinen Tag vorbereitet")
|
|
update.message.reply_text("Schreibe dafür einen /subscribe .... wenn du irgendwan genug motiviert bist kannst du dich mit /unsubscribe wieder abmleden")
|
|
|
|
def subscribe(bot, update):
|
|
users = getAllUsers()
|
|
for user in users:
|
|
if user["chatId"] == update["message"]["chat"]["id"]:
|
|
update.message.reply_text("Du willst wohl besonders motiviert in den Tag starten, dabei hast du doch schon aboniert");
|
|
return;
|
|
|
|
users.append({"chatId": update["message"]["chat"]["id"]})
|
|
saveUser(users)
|
|
update.message.reply_text("Danke, ab jetzt wirst du jeden morgen motiviert!");
|
|
|
|
def unsubscribe(bot, update):
|
|
users = getAllUsers()
|
|
newUserList = []
|
|
unsubscribed = False
|
|
for user in users:
|
|
if user["chatId"] == update["message"]["chat"]["id"]:
|
|
unsubscribed = True
|
|
else:
|
|
newUserList.append(user)
|
|
|
|
if unsubscribed:
|
|
saveUser(newUserList)
|
|
update.message.reply_text("Schade das du uns verlassen hast, ich weiß nicht ob ich so morgen weiter motivieren kann :'(")
|
|
else:
|
|
update.message.reply_text("Du stehst nicht in meiner Abonenten liste, aboniere einfach mit einem /subscribe")
|
|
|
|
def getAllUsers():
|
|
f = open("user.txt")
|
|
content = f.read();
|
|
f.close()
|
|
return json.loads(content)
|
|
|
|
def saveUser(users):
|
|
j = json.dumps(users)
|
|
f = open("user.txt", "w")
|
|
f.write(j)
|
|
f.close()
|
|
|
|
def sendAudio(a, b):
|
|
print(datetime.datetime.now().hour)
|
|
day = str(datetime.datetime.now().year)+"-"+str(datetime.datetime.now().month)+"-"+str(datetime.datetime.now().day)
|
|
print("DAY: "+str(day))
|
|
if datetime.datetime.now().hour >= 6:
|
|
if not os.path.exists('./sendDays/'+day):
|
|
f = open("./sendDays/"+day, "w")
|
|
f.write("DONE")
|
|
f.close()
|
|
if os.path.exists('mp3/'+day+'.mp3'):
|
|
a.send_message(chat_id='184170946', text='Der frühe Vogel fängt den Wurm, und hier ist deine motivation für heute:')
|
|
a.send_audio(chat_id='184170946', audio=open('mp3/'+day+'.mp3', 'rb'))
|
|
else:
|
|
a.send_message(chat_id='184170946', text='Für heute habe ich keine Motivierende nachricht gefunden, das wird bestimmt ein scheiß tag :(')
|
|
|
|
|
|
|
|
updater.dispatcher.add_handler(CommandHandler('hello', hello))
|
|
updater.dispatcher.add_handler(CommandHandler('subscribe', subscribe))
|
|
updater.dispatcher.add_handler(CommandHandler('unsubscribe', unsubscribe))
|
|
updater.dispatcher.add_handler(CommandHandler('start', start))
|
|
|
|
job_minute = j.run_repeating(sendAudio, interval=60, first=0)
|
|
|
|
|
|
updater.start_polling()
|
|
updater.idle()
|