ablog icon indicating copy to clipboard operation
ablog copied to clipboard

XMPP: Post to PubSub

Open sjehuda opened this issue 1 year ago • 5 comments

Describe the feature

In XMPP, using PubSub(1) (XEP-0060), it is possible to store posts as Atom Syndication(2) entries into XMPP(3).

There are several XMPP extensions that apply it, namely XEP-0227 (4) and XEP-0472 (5) which make node xmpp:microblog:0 as a common choice to manage news for client accounts (e.g. [email protected]), yet a component account (e.g. pubsub.ablog.i2p) may use all of its nodes for this purpose.

pubsub.ablog.i2p/
|
|-- updates/
    |-- Sombre
     `-- Varied
|-- releases/
 `-- events/
pubsub service/
|
|-- node/
    |-- item
     `-- item
|-- node/
 `-- node/

Proposed solution

I have posted this ticket to multiple projects.

I am willing to work on this feature.


I have made a software currently it is a read-only system) that realizes viewing PubSub node items as Atom XML feeds over HTTP(6).

  1. XEP-0060: Publish-Subscribe
  2. RFC 4287: The Atom Syndication Format
  3. Atom Over XMPP
  4. XEP-0277: Microblogging over XMPP
  5. XEP-0472: Pubsub Social Feed
  6. The Rivista Publication Project You should see it (including screenshots)

sjehuda avatar Aug 30 '24 10:08 sjehuda

Hi @sjehuda,

Do you know how much effort this would be to add to Ablog?

nabobalis avatar Sep 05 '24 16:09 nabobalis

Do you know how much effort this would be to add to Ablog?

No. I do not know, yet.

  1. I have yet to add publishing functionality to my project (Rivista).

  2. I did not even observe the code of ABlog.

If you would guide me through ABlog, I will gladly contribute XMPP related code.

Once I would know what content should be sent, it will require several hours or a day, at most.

I will be at https://xmpp.link/#[email protected]?join and we can discuss about it there.

sjehuda avatar Sep 05 '24 18:09 sjehuda

To be honest, while I used to maintain this library. I am not really versed on how it works and adding new features.

nabobalis avatar Sep 05 '24 19:09 nabobalis

This is what I think I need to know.

  • Where is the code which is responsible for reading or parsing content files (RST, MD etc.)

  • Where is the code which initiates the publishing process.

Once I know these, I would probably know what to do.

This is what the XMPP code would do.

  • Read the content files.

  • Pack the files as HTML within Atom Syndication Format.

  • Send the files to XMPP PubSub node.

Once this is done, we might want to arrange the nodes by dates, tags and other parameters that would help to map contents.

sjehuda avatar Sep 06 '24 07:09 sjehuda

I actually don't know where the code is for those two parts. I am trying to re template the package interaly, so when I have a better idea of those. Hopefully I can tell you.

nabobalis avatar Sep 10 '24 17:09 nabobalis