feeds
Des flux d'articles que le plugin fournit. Un foyer les suit comme n'importe quelle autre source : le plugin donne les articles, et Hodi les range dans le bon thème.
Où dans Hodi
Un flux d'articles du plugin apparaît dans Réglages › Sources, parmi les sources proposées, dans le thème que le flux indique. Une fois que le foyer suit le flux, les articles du flux arrivent dans le fil du foyer, avec ceux des autres sources.
Un flux n'a pas besoin de partie web : tout se passe dans plugin.json et dans la partie serveur. Pour cette raison, feeds n'est pas une clé de definePlugin(), mais un champ de plugin.json.
Déclarer le flux
Dans plugin.json, le champ feeds liste les flux du plugin. La permission network liste les sites que le plugin lit :
"permissions": {
"network": [
"example.com"
]
},
"feeds": [
{
"key": "news",
"name": "Example",
"site": "example.com",
"lang": "fr",
"topic": "tech"
}
]Voici les champs d'un flux de feeds :
keystringLe nom technique du flux, le même que dans feeds côté serveur.
namestringLe nom que le foyer voit, 60 caractères au plus.
sitestringLe site des articles du flux. Ce site doit être dans network.
lang'fr' | 'en'La langue des articles du flux.
topicstringLe thème où le flux se range, comme tech, world ou climate.
Remplir le flux
Dans la partie serveur, feeds donne une fonction par flux, avec la même clé que dans plugin.json. Cette fonction renvoie la liste des articles du flux :
const plugin: ServerPlugin = {
feeds: {
news: async ctx => {
const { text } = await ctx.fetchText('https://example.com/api/latest')
return JSON.parse(text).map(item => ({
title: item.title,
link: item.url,
summary: item.lead
}))
}
}
}Les champs d'un article
titlestringLe titre de l'article.
linkstringL'adresse de l'article, en https, sur le site du flux.
summary?stringLe résumé de l'article, en texte simple.
publishedAt?string | numberLa date de l'article, ISO ou en millisecondes.
image?stringL'adresse https de l'image de l'article.
À savoir
- Quand Hodi lit un flux : toutes les quelques minutes, tant qu'un foyer suit ce flux.
- Combien d'articles : 100 articles par lecture au plus, et 5 flux par plugin au plus.
- Comment s'ouvre un article : avec son résumé et un lien vers le site, jamais dans le lecteur.