-
Notifications
You must be signed in to change notification settings - Fork 2
/
freedy.py
58 lines (46 loc) · 1.73 KB
/
freedy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from flask import Flask, render_template
import feedparser
import validators
from time import mktime
from datetime import datetime
import locale
app = Flask(__name__)
# needed for changing months to German for date entries
#locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
# custom filter for getting the published_date in the following format: 1. September 2018
@app.template_filter('convertTime')
def convertTime(timeVar):
return (datetime.fromtimestamp(mktime(timeVar))).strftime("%d. %B %Y")
@app.route("/")
@app.route("/feeds")
def displayRSS():
fileHandler = open("config/urls.txt", "r")
sites = [feedparser.parse(x) for x in sorted(fileHandler.readlines()) if validators.url(x)]
fileHandler.close()
# LEGACY Version - only entries, no site names etc.
# feedCount = 2
# counter = 0
# feedEntries = []
# for site in sites:
# while (counter < feedCount) and (counter < len(site.entries)):
# feedEntries.append(site.entries[counter])
# counter += 1
# counter = 0
# feedEntries.append("BREAKER")
# return render_template('feeds.html', feedEntries=feedEntries)
# TODO: Get vars from config file using configparser
# Change for desired amount of post showed from one site
feedCounter = 3
counter = 0
feeds = {}
for site in sites:
feeds[site.feed] = []
while (counter < feedCounter) and (counter < len(site.entries)):
feeds[site.feed].append(site.entries[counter])
counter += 1
counter = 0
return render_template('feeds.html', feeds=feeds)
@app.route("/impressum")
def displayImprint():
# TODO: Add full-fledged GDPR imprint
return render_template('impressum.html', title="Impressum")