Rethinking syndication
I maintainer di solito rispondono entro 1 giorno
@paulrobertlloyd ci sta già lavorando.
Dal 17/1/2023.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Syndication is not working. As much as I try to patch over the cracks, fundamental flaws reveal themselves.
Here are a few things I learnt while trying to get syndication working reliably.
mp-syndicate-to is a directive, not a post property
Much like mp-slug, mp-photo-alt and (eventually) mp-destination do not appear in a posts properties, neither should mp-syndicate-to. As a directive to the Micropub server, it does not need saving in a content store.
- #582
- Record syndication targets in
post.syndicateTo
Should syndication status be stored with posts or separately?
Syndication is flakey. APIs respond with weird errors, go down, or API keys get invalidated; the list is endless. Therefore, syndication needs to be a very asynchronous task.
Rather than try to keep a record of syndication status across different posts, a dedicated syndications database could be used.
When an incoming request includes mp-syndicate-to, we could add the post _id (not path or URL) to the list of outstanding syndications for that target:
{
"https://mastodon.example": [
"507f1f77bcf86cd799439011"
],
"https://web.internet.archive": [
"507f1f77bcf86cd799439011",
"507f1f77bcf86cd799448372"
]
}
This information could be shown in the interface for the syndication endpoint, possibly at some stage allowing for some management, if that turns out to be a need.
Syndication can occur before or after a post is published
Currently, syndication only happens after Indiekit has published a post. One reason for this is that one syndicator, Internet Archive, needs to crawl the generated post HTML, meaning syndication makes sense once there is post URL for it to visit.
Also, while not currently possible, were statuses to contain a back-links, a post would need to be published for that link to work. Maybe this is not a massive problem; it’s unlikely back-links would be clicked on immediately after being tweeted/tooted/published, but it underlines this point.
What if syndication plug-ins could provide methods that are called pre-publication, as well as methods that are called post-publication? Then a syndication plug-in can dictate the most desirable point at which syndication occurs.
Syndication is not a one-time action
Currently, syndication is a one-time write action. What happens if you update or delete a post? Twitter has creation and deletion methods, and Mastodon allows statuses to be created, updated and deleted.
In that respect, syndicator plug-ins could be more similar to content store plug-ins, providing CRUD methods where possible that the Micropub endpoint can call as part of undertaking the respective CRUD Micropub action.
How would this fit in with the above suggestion (a separate database). Would that only be used to record and track syndications that failed (and maybe post-publication syndications)?
Next steps
I will mull over some of these ideas in the coming months. My immediate priority is to simplify when and how data is updated in the database and reflected in files sent to content stores.
- Lingua principale
- JavaScript
- Stelle
- 392
- Fork
- 39
- Merge medio
- 8h 25m
- PR unite (30g)
- 26
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di getindiekit/indiekit
-
Docs: no path for someone who just wants to try IndiekitForse già presa @rmdes l’ha presa 7 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
getindiekit/indiekit#1028 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
getindiekit/indiekit#1030 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
getindiekit/indiekit#1027 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
getindiekit/indiekit#1026 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 1-2 giorni Idoneità per principianti 48/100
getindiekit/indiekit#1025 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di getindiekit/indiekit
Issue simili
-
enhancement version-minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
cuttle-cards/cuttle#1467 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 3-5 giorni Idoneità per principianti 62/100
career-ops-hq/career-ops#6399 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Link Checker ReportApertaautomated issue report
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
area: hook area: plugin claude-code difficulty: easy dx enhancement good first issue help wanted tech: node
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
flisk-sh/run-my-agents#25 ·