-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
67 lines (57 loc) · 2.12 KB
/
app.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
59
60
61
62
63
64
65
66
import feed
import data
import util
import json
from flask import Flask, Response, jsonify
from flask import render_template
from flask import request
from jinja2 import Template
from access import crossdomain
app = Flask(__name__)
def render(template='', context={}):
t = Template(template)
return t.render(**context)
def renderAll(templates={'head': '', 'body': '', 'foot': ''}, context={}):
return render(templates.get('head'), context) \
+ render(templates.get('body'), context) \
+ render(templates.get('foot'), context)
def replaceInsert():
hasOne = data.Template.objects.first()
if not hasOne:
hasOne = data.Template(head='', body='', foot='')
hasOne.save()
return hasOne
@app.route("/")
def hello():
return "Hello World!"
@app.route("/templates")
def templates():
resp = {'templates': json.loads(data.Template.objects.only('body', 'foot', 'head').to_json())}
return jsonify(**resp)
@app.route("/tool", methods=['GET', 'POST'])
def tool():
saveTemplate = replaceInsert()
if request.method.lower() == 'post':
saveTemplate.head = request.form.get('head')
saveTemplate.body = request.form.get('body')
saveTemplate.foot = request.form.get('foot')
saveTemplate.save()
return render_template('tool/index.html', head=saveTemplate.head, foot=saveTemplate.foot, body=saveTemplate.body)
@crossdomain(origin='*')
@app.route('/dummy.rss')
def dummy():
return Response(render_template('roku_template.xml'), mimetype='application/rss+xml'), 200
# aovxTElR
@crossdomain(origin='*')
@app.route('/xml/<key>')
def xml(key=''):
loadTemplate = replaceInsert()
feedJSON = feed.fetchParse(key)
feedJSON['first'] = feedJSON.get('items', [])[0]
body = "{% for item in items %}" + loadTemplate.body + "{% endfor %}"
renderedXML = renderAll({'head': loadTemplate.head, 'body': body, 'foot': loadTemplate.foot}, feedJSON)
# util.string2s3(renderedXML, '%s.rss' % key)
return Response(renderedXML, mimetype='text/xml'), 200
if __name__ == "__main__":
app.debug = True
app.run()