From 5774dbfb2caa42cb55bafab98a40e47f395e44d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Gl=C3=BCpker?= Date: Wed, 5 May 2021 20:09:30 +0200 Subject: Initial commit of RSS converter application --- webapp.py | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100755 webapp.py (limited to 'webapp.py') diff --git a/webapp.py b/webapp.py new file mode 100755 index 0000000..b992150 --- /dev/null +++ b/webapp.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python3 + +# from flask import Flask, redirect, render_template, request, session, url_for +from flask import Flask, Response + +# from wsgiref.util import setup_testing_defaults +from collections import OrderedDict +from concurrent.futures import ThreadPoolExecutor + +import json +import os +import re +import sys +import time, datetime +# import traceback +import logging + +from twitter import twitter +from telegram import telegram +from netto import netto +from rss import buildRSS +from zdf import zdf + +app = Flask(__name__) +app.secret_key = "NMcgoB.0wd+$.KVKj!F{3>U{%BBUVhL=7=5$:46rQH$Q{enCuU" + + +@app.route("/") +def main(): + return 'this is sparta' + +@app.errorhandler(404) +def not_found(e): + return 'Die angeforderte Seite konnte nicht gefunden werden.' + +@app.route("/twitter/") +def feedTwitter(account): + content = [{'title': t, 'url': u, 'content': c, 'date': d, 'enclosures': e} + for t,c,u,d,e in twitter(account)] + xml = buildRSS( + title = 'Twitter: ' + account, + url = 'https://twitter.com/' + account, + description = 'The latest entries of the twitter account of ' + account, + content = content) + response = Response(xml, mimetype='text/xml') + response.headers['Access-Control-Allow-Origin'] = '*' + return response + +@app.route("/telegram/") +def feedTelegram(account): + content = [{'title': t, 'url': u, 'content': c, 'date': d} + for t,c,u,d in telegram(account)] + xml = buildRSS( + title = 'Telegram: ' + account, + url = 'https://t.me/s/' + account, + description = 'The latest entries of the telegram channel of ' + account, + content = content) + response = Response(xml, mimetype='text/xml') + response.headers['Access-Control-Allow-Origin'] = '*' + return response + +@app.route("/netto/") +def feedNetto(market): + title, url = netto(market) + content = [{ + 'title': 'Angebote für ' + title, + 'url': url, + 'content': 'Angebote für ' + title + ' finden sich unter ' + url, + }] + xml = buildRSS( + title = 'Netto Angebote für ' + market, + url = 'https://www.netto-online.de/ueber-netto/Online-Prospekte.chtm/' + market, + description = 'PDF der neuen Netto Angebote für den Laden um die Ecke.', + content = content) + response = Response(xml, mimetype='text/xml') + response.headers['Access-Control-Allow-Origin'] = '*' + return response + +@app.route("/zdf/") +def filterZDFFeed(feed): + title, url, description, content = zdf(feed) + xml = buildRSS( + title = title, + url = url, + description = description, + content = content) + response = Response(xml, mimetype='text/xml') + response.headers['Access-Control-Allow-Origin'] = '*' + return response + + +if __name__ == '__main__': + logging.basicConfig(filename='./main.log', level=logging.INFO) + + app.config['TEMPLATES_AUTO_RELOAD'] = True + app.run(threaded=True) + -- cgit v1.2.3