89 lines
2.4 KiB
Python
89 lines
2.4 KiB
Python
|
|
from flask import Flask
|
|
from flask import Flask, Blueprint,render_template, send_from_directory,jsonify, url_for, abort
|
|
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
|
|
|
|
#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.route('/')
|
|
def home():
|
|
query=request.args.get("query")
|
|
if query:
|
|
links,hits=solr.search(query)
|
|
else:
|
|
links=None
|
|
return render_template("search.html", query=query, results=links)
|
|
|
|
@app.route('/send/<text>')
|
|
def send(text=None):
|
|
bot.bot.send_message(chat_id, text)
|
|
return "Text: %s <br> %s" % (text,request.headers)
|
|
|
|
@app.route('/send/<chat_id>/<text>')
|
|
def send_to(chat_id,text=None):
|
|
print("sending:%s" %chat_id)
|
|
chats.send(chat_id,text)
|
|
|
|
return "Text: %s <br> %s" % (text,request.headers)
|
|
|
|
|
|
@app.route('/auth/<user_id>/<token>')
|
|
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.route('/intern/<path:path>')
|
|
def intern_web(path):
|
|
return render_template("wiki.html", slug=slugify(path), content="<div>ewfwef</div>")
|
|
|
|
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
|
|
assert isinstance(update, Update)
|
|
|
|
print(yaml.dump(update.to_array()))
|
|
chats.process_update(update)
|
|
|
|
app.run(host="0.0.0.0",port="5001",debug=True)
|