2022-04-03 11:36:54 +01:00
|
|
|
import dotenv
|
|
|
|
import os
|
|
|
|
import dokuwiki
|
|
|
|
import requests
|
|
|
|
|
|
|
|
from flask import Flask
|
|
|
|
|
2022-11-01 19:59:51 +00:00
|
|
|
|
|
|
|
from telegram import Update, PhotoSize, File, BotCommand
|
|
|
|
from telegram.ext import Updater, MessageHandler, CommandHandler, Filters, CallbackContext, ConversationHandler
|
2022-04-03 11:36:54 +01:00
|
|
|
|
|
|
|
|
|
|
|
app = Flask("rafael")
|
|
|
|
RAFAEL_UA = "RAFAEL/0.1"
|
|
|
|
|
2022-04-03 11:51:59 +01:00
|
|
|
|
|
|
|
from rafael.bookmarks import RafaelBookmarkPlugin
|
|
|
|
|
2022-11-01 19:59:51 +00:00
|
|
|
def handle(update: Update, context: CallbackContext):
|
|
|
|
|
|
|
|
print("args:", context.args)
|
|
|
|
|
|
|
|
|
|
|
|
print(f"Received a message: {update.message.text}")
|
|
|
|
update.message.reply_text(f"You said: {update.message.text}")
|
|
|
|
|
|
|
|
print(update.message.to_json())
|
|
|
|
|
|
|
|
if update.message.document is not None:
|
|
|
|
print("Document", update.message.document.get_file())
|
|
|
|
|
|
|
|
elif update.message.effective_attachment:
|
|
|
|
|
|
|
|
for att in update.message.effective_attachment:
|
|
|
|
|
|
|
|
if isinstance(att, PhotoSize):
|
|
|
|
print(att.get_file())
|
|
|
|
else:
|
|
|
|
print("unknown attachment:", att)
|
|
|
|
|
|
|
|
update.message.reply_text("done m8")
|
|
|
|
|
|
|
|
ADDING = 0
|
|
|
|
|
|
|
|
class JournalPlugin():
|
|
|
|
|
|
|
|
def init_convo(self, update: Update, context: CallbackContext):
|
|
|
|
update.message.reply_text("Add photos for your journal")
|
|
|
|
return ADDING
|
|
|
|
|
|
|
|
def handle_file(self, update: Update, context: CallbackContext):
|
|
|
|
update.message.reply_text("Got your update m8")
|
|
|
|
return ADDING
|
|
|
|
|
|
|
|
def done_handler(self, update: Update, context: CallbackContext):
|
|
|
|
update.message.reply_text("Great storing your images...")
|
|
|
|
return ConversationHandler.END
|
|
|
|
|
|
|
|
def invalid_handler(self, update: Update, context: CallbackContext):
|
|
|
|
update.message.reply_text("Sorry, I don't understand. Please upload photos or type 'Done' to exit")
|
|
|
|
|
|
|
|
def register(self, updater: Updater):
|
|
|
|
|
|
|
|
updater.dispatcher.add_handler(ConversationHandler(
|
|
|
|
entry_points=[
|
|
|
|
CommandHandler("journal", self.init_convo)
|
|
|
|
],
|
|
|
|
states={
|
|
|
|
ADDING: [MessageHandler(Filters.attachment, self.handle_file)]
|
|
|
|
},
|
|
|
|
fallbacks=[
|
|
|
|
MessageHandler(Filters.regex("^Done$"), self.done_handler),
|
|
|
|
MessageHandler(Filters.all, self.invalid_handler)
|
|
|
|
]
|
|
|
|
))
|
2022-04-03 11:51:59 +01:00
|
|
|
|
2022-04-03 11:36:54 +01:00
|
|
|
class RafaelBot:
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
self.updater = Updater(os.getenv("TELEGRAM_API_KEY"))
|
|
|
|
|
|
|
|
self.dispatcher = self.updater.dispatcher
|
|
|
|
|
2022-11-01 19:59:51 +00:00
|
|
|
|
2022-04-03 11:51:59 +01:00
|
|
|
bh = RafaelBookmarkPlugin()
|
2022-11-01 19:59:51 +00:00
|
|
|
bh.register(self.updater)
|
2022-04-03 11:36:54 +01:00
|
|
|
|
2022-11-01 19:59:51 +00:00
|
|
|
jp = JournalPlugin()
|
|
|
|
jp.register(self.updater)
|
|
|
|
|
|
|
|
#self.updater.dispatcher.add_handler(CommandHandler("journal", handle))
|
|
|
|
#self.updater.dispatcher.add_handler(MessageHandler(Filters.attachment, handle))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-04-03 11:36:54 +01:00
|
|
|
|
|
|
|
def run(self):
|
|
|
|
self.updater.start_polling()
|
|
|
|
|
|
|
|
|
2022-11-01 19:59:51 +00:00
|
|
|
|
2022-04-03 11:36:54 +01:00
|
|
|
@app.route("/", methods=['GET'])
|
|
|
|
def index():
|
|
|
|
return "hello"
|
|
|
|
|
|
|
|
def main():
|
|
|
|
dotenv.load_dotenv()
|
|
|
|
|
2022-11-01 19:59:51 +00:00
|
|
|
print("run bot")
|
2022-04-03 11:36:54 +01:00
|
|
|
bot = RafaelBot()
|
2022-11-01 19:59:51 +00:00
|
|
|
|
2022-04-03 11:36:54 +01:00
|
|
|
bot.run()
|
2022-11-01 19:59:51 +00:00
|
|
|
print("bot run")
|
2022-04-03 11:36:54 +01:00
|
|
|
|
|
|
|
|
|
|
|
# app.run()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|