This repository has been archived on 2019-06-21. You can view files and clone it, but cannot push or open issues or pull requests.
motivationsBot/run.py
2019-06-21 15:07:03 +02:00

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()