picocms / Pico

Pico is a stupidly simple, blazing fast, flat file CMS.
http://picocms.org/
MIT License
3.81k stars 616 forks source link

[PLUGIN] XMPP: Post to PubSub [NOT CLOSED YET] #696

Closed sjehuda closed 2 months ago

sjehuda commented 2 months ago

Greetings!

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 urn:xmpp:microblog:0 as a common choice to manage news for client accounts (e.g. blog@picocms.org), yet a component account (e.g. pubsub.picocms.org) may use all of its nodes for this purpose.

pubsub.picocms.org/
|
|-- updates/
    |-- Sombre
     `-- Varied
|-- releases/
 `-- events/
pubsub service/
|
|-- node/
    |-- item
     `-- item
|-- node/
 `-- node/

A PHP library that can be utilized would be Moxl of Movim.

I have made a script that realizes viewing PubSub node items as Atom XML feeds over HTTP.

  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. Moxl
  7. PubSub Over HTTP
PhrozenByte commented 2 months ago

I assume you picked the wrong repo here, Pico CMS doesn't use XMPP.

sjehuda commented 2 months ago

I know well what this is about. This is a CMS software. I am looking for CMS software.

XMPP is an IM system, and yet...

It is extensible using XEPs.

There is an XEP-0060 called PubSub, which is installed on almost 100% of XMPP servers, and which allows uploading textual content to PubSub services on XMPP server and XMPP accounts.

Currently, Movim is the prominent platform that utilizes PubSub extensively. I advise you to check Movim so you would see a visual realization of PubSub potential.

This has a great potential. I advise to reopen this ticket.

PhrozenByte commented 2 months ago

I see. It didn't really emerge from your description that this is a suggested addition. This definitely isn't something for Pico's core, Pico intentionally sticks to the bare minimum. However, if you wanna create a plugin for that please go ahead, we appreciate any 3rd-party plugin! :+1: You can then add your plugin to our wiki or the website to spread the word, see https://picocms.org/plugins/#entry-zzz_contribute

I'm re-opening this for now if you have any questions about how to create such plugin. However, it will be closed in a few days by our Stale bot anyway; we don't usually keep non-bug issues open.

Happy coding! :clap: :+1:

sjehuda commented 2 months ago

Very well and thank you for the explanation and good will!

If this ticket is closed, will it be locked?

PhrozenByte commented 2 months ago

If this ticket is closed, will it be locked?

No, we don't usually lock tickets, you can add new comments at any time :+1:

sjehuda commented 2 months ago

Then I will close this ticket. I have changed the title.

I do not code in PHP often.

Is there a forum? Are there people I can consult with in the Pico community?