31 lines
898 B
Python
31 lines
898 B
Python
|
import urllib.parse as parse
|
||
|
import xml.etree.ElementTree as ET
|
||
|
|
||
|
import requests
|
||
|
from flask import Flask, request
|
||
|
|
||
|
app = Flask(__name__)
|
||
|
|
||
|
@app.route('/convert_feed_to_oregonian_amp/')
|
||
|
def bring_out_feed():
|
||
|
|
||
|
# De-url encode the input
|
||
|
url = parse.unquote(request.args.get('url'))
|
||
|
|
||
|
oregon = requests.get(url)
|
||
|
content = oregon.content
|
||
|
|
||
|
root = ET.fromstring(content)
|
||
|
|
||
|
for child in root.iter('item'):
|
||
|
updated_url = parse.urlparse(child.find('link').text, allow_fragments=True)
|
||
|
if updated_url.query != '':
|
||
|
updated_url = updated_url._replace(query=updated_url.query + '&')
|
||
|
updated_url = updated_url._replace(query=updated_url.query + 'outputType=amp')
|
||
|
print(updated_url)
|
||
|
child.find('link').text = str(parse.urlunparse(updated_url))
|
||
|
|
||
|
return app.response_class(ET.tostring(root), mimetype='application/xml')
|
||
|
|
||
|
print(app.url_map)
|