experiments/rssgen.html

81 lines
2.3 KiB
HTML

<!doctype html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/pyodide/v0.25.1/full/pyodide.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
body {
color: white;
background-color: black;
padding: 10px;
font-size: 20px;
}
a {
color: white;
}
</style>
</head>
<body>
Pyodide rss feed gen test, rss code is rfeed from: <a href="https://github.com/svpino/rfeed">https://github.com/svpino/rfeed<a>, please wait while we generate some xml<br>
<script type="text/javascript">
async function main(){
try {
let pyodide = await loadPyodide();
// Downloading a single file
await pyodide.runPythonAsync(`
from pyodide.http import pyfetch
response = await pyfetch("rfeed.py")
with open("rfeed.py", "wb") as f:
f.write(await response.bytes())
`)
alert("running");
let p = pyodide.runPython(`
import datetime
from rfeed import *
item1 = Item(
title = "First article",
link = "http://www.example.com/articles/1",
description = "This is the description of the first article",
author = "Santiago L. Valdarrama",
guid = Guid("http://www.example.com/articles/1"),
pubDate = datetime.datetime(2014, 12, 29, 10, 00))
item2 = Item(
title = "Second article",
link = "http://www.example.com/articles/2",
description = "This is the description of the second article",
author = "Santiago L. Valdarrama",
guid = Guid("http://www.example.com/articles/2"),
pubDate = datetime.datetime(2014, 12, 30, 14, 15))
feed = Feed(
title = "Sample RSS Feed",
link = "http://www.example.com/rss",
description = "This is an example of how to use rfeed to generate an RSS 2.0 feed",
language = "en-US",
lastBuildDate = datetime.datetime.now(),
items = [item1, item2])
def p():
return feed.rss()
p()
`);
let br = document.createElement('br');
document.body.appendChild(br);
let elemx = document.createElement('a');
elemx.href = 'data:text/xml;charset=utf-8,' + encodeURIComponent(p); // ! encodeURIComponent
elemx.download = "rss.xml";
elemx.innerHTML = "rss.xml"; document.body.appendChild(elemx);
} catch (e){
alert(e);
}
}
main();
</script>
</body>
</html>