from flask import Flask from flask import Flask, Blueprint,render_template, send_from_directory,jsonify, url_for, abort, make_response from flask import request from teleflask import Teleflask from teleflask.messages import TextMessage from key import API_KEY import logging import yaml import requests #from bot1.states import CreatePostWorkflow from pytgbot.api_types.sendable.reply_markup import InlineKeyboardButton,InlineKeyboardMarkup import os from bot1.chats import ChatManager from bot1 import users from solrfet2020 import SolrFet2020 from slugify import slugify import wiki import internfiles #logging.basicConfig(level=logging.INFO) URL_HOSTNAME='bot.2020.fet.at' os.environ['URL_HOSTNAME'] = 'bot.2020.fet.at' app = Flask(__name__) chat_id = '108021014' bot = Teleflask(API_KEY) bot.init_app(app) chats=ChatManager(bot.bot) solr=SolrFet2020() #app.config['SERVER_NAME'] = 'bot.2020.fet.at' @app.route('/') def home(): query=request.args.get("query") if query: links,_=solr.search(query) else: links=None return render_template("search.html", query=query, results=links) @app.route('/send//') def send_to(chat_id,text=None): print("sending:%s" %chat_id) chats.send(chat_id,text) return "Text: %s
%s" % (text,request.headers) @app.route('/auth//') def auth_user(user_id, token): if user_id in users.data: print("known user") u=users[user_id] if token == u.token: u.user=request.headers["Remote-User"] u.fet_user=True users.to_file() print("authenticating") return "development" app.register_blueprint(wiki.bp) app.register_blueprint(internfiles.bp) def download_file(url): local_filename = url.split('/')[-1] # NOTE the stream=True parameter below with requests.get(url, stream=True) as r: r.raise_for_status() with open(local_filename, 'wb') as f: for chunk in r.iter_content(chunk_size=8192): f.write(chunk) return local_filename @bot.on_update def bot_update(update): from pytgbot.api_types.receivable.updates import Update if not isinstance(update, Update): raise TypeError("Update needs to be of Type update") print(yaml.dump(update.to_array())) chats.process_update(update) app.run(host="0.0.0.0",port="5001",debug=True)