diff --git a/README.md b/README.md index fcb0c79..46608eb 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,6 @@ Special thanks to "d3x" and "cchianel" from IRC channel #python on irc.libera.ch ## Similar Projects -* [AtomEntry](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/AtomEntry.java) and [PubSubPublishViewImpl](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/PubSubPublishViewImpl.java)- Convert XMPP Pubsub Nodes to Atom Syndication Format and convey them over HTTP. +* [AtomEntry](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/AtomEntry.java) and [PubSubPublishViewImpl](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/PubSubPublishViewImpl.java) - Convert XMPP Pubsub Nodes to Atom Syndication Format and convey them over HTTP. * [AtomToPubsub](https://github.com/edhelas/atomtopubsub) - A little client that parses Atom + RSS feeds and send them on XMPP Pubsub Nodes. diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..41a5b50 Binary files /dev/null and b/favicon.ico differ diff --git a/graphic/xmpp.svg b/graphic/xmpp.svg new file mode 100644 index 0000000..f0332bc --- /dev/null +++ b/graphic/xmpp.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pubsub_to_atom.py b/pubsub_to_atom.py index 33f318a..79f394e 100644 --- a/pubsub_to_atom.py +++ b/pubsub_to_atom.py @@ -3,6 +3,7 @@ #import datetime from fastapi import FastAPI, Request, Response +from fastapi.responses import FileResponse from fastapi.staticfiles import StaticFiles import feedgenerator from slixmpp import ClientXMPP @@ -25,11 +26,15 @@ class XmppInstance(ClientXMPP): xmpp = None -# Mount static scripts and stylesheet directories +# Mount static graphic, script and stylesheet directories app.mount("/css", StaticFiles(directory="css"), name="css") +app.mount("/graphic", StaticFiles(directory="graphic"), name="graphic") app.mount("/script", StaticFiles(directory="script"), name="script") app.mount("/xsl", StaticFiles(directory="xsl"), name="xsl") +@app.get('/favicon.ico', include_in_schema=False) +async def favicon(): + return FileResponse('favicon.ico') @app.get('/atom') async def view_pubsub(request: Request): @@ -65,7 +70,7 @@ async def view_pubsub(request: Request): 'optional parameter Node are missing.') return Response(content=result, media_type="application/xml") -def pubsub_to_atom(iq,link): +def pubsub_to_atom(iq, link): """Convert XEP-0060: Publish-Subscribe to RFC 4287: The Atom Syndication Format.""" feed = feedgenerator.Atom1Feed( description = ('This is a syndication feed generated with PubSub to ' @@ -82,7 +87,7 @@ def pubsub_to_atom(iq,link): namespace = '{http://www.w3.org/2005/Atom}' title = item.find(namespace + 'title') title = None if title == None else title.text - feed_url = 'sch' + feed_url = 'gemini://schimon.i2p/' updated = item.find(namespace + 'updated') updated = None if updated == None else updated.text # if updated: updated = datetime.datetime.fromisoformat(updated) diff --git a/xsl/atom_as_xhtml.xsl b/xsl/atom_as_xhtml.xsl index 83897aa..c59b7b7 100644 --- a/xsl/atom_as_xhtml.xsl +++ b/xsl/atom_as_xhtml.xsl @@ -54,6 +54,7 @@ xmlns:atom='http://www.w3.org/2005/Atom'> +