|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- title: Votre aggrégateur manquerait-il de fonctionnalités ?
- slug: votre-aggregateur-manquerait-il-de-fonctionnalites
- date: 2005-08-20 18:24:24
- type: post
- vignette:
- contextual_title1: Réflexions sur les conférences de geeks
- contextual_url1: 20090327-reflexions-sur-les-conferences-de-geeks
- contextual_title2: Son propre TinyURL en Python et HTML5 avec webpy
- contextual_url2: 20090221-son-propre-tinyurl-en-python-et-html5-avec-webpy
- contextual_title3: Analyse des données utilisateur d'AOL : suite et fin
- contextual_url3: 20060814-analyse-des-donnees-utilisateur-d-aol-suite-et-fin
-
- <p>Si vous n'avez toujours pas trouvé d'aggrégateur satisfaisant, il serait peut-être temps de <del>coder le votre</del> passer votre commande :-)</p>
-
-
- <p>Je me suis finalement décidé à coder un aggrégateur en python, d'une part pour réaliser un projet intéressant et d'autre part pour avoir des fonctionnalités qui me manquent cruellement, voila une première liste à compléter :</p>
-
- <h2>Fonctionnalités classiques</h2>
-
- <ul>
- <li>Créer une arborescence (dossiers/fils)</li>
- <li>Obtenir les items d'un fil en cliquant dessus (lus en grisé, ou non lus en gras ? ou les deux ?)</li>
- <li>Possibilité d'import/export de fichiers opml</li>
- </ul>
-
- <h2>Fonctionnalités avancées</h2>
-
- <ul>
- <li>Calcul d'un intervalle de mise à jour en fonction de la fréquence de mise à jour des items (min = 5 minutes et max = 3 heures, pas de 5 minutes). Signaler lorsque une mise à jour n'a pas été effectuée depuis longtemps (6 mois ?). La fonction de calcul doit ressembler à ça : (somme des intervalles - (plus grand + plus petit)) / ((nombre d'intervalles - 2) * facteur). On enlève le plus grand pour les vacances et le plus petit pour les cas de mise à jour frénétique. Le facteur pourra être déterminé en fonction du profil de l'utilisateur (normalement 3 profils prévus : geek, normal, découverte).</li>
- <li>Afficher les fils dans l'ordre de parution de manière à pourvoir déterminer à quelle date s'est arrêtée la lecture d'un fil. Pratique pour les personnes ayant cet aggrégateur au boulot et à la maison par exemple, un simple upload du fichier opml en fin de journée et on reprend la lecture à la maison à partir de là où on en était. Possibilité d'automatiser l'upload à la fermeture de l'aggrégateur.</li>
- <li>Possibilité de créer des dossiers virtuels recherchant des mots-clés dans les items non lus. Lorsqu'un item est lu, il est considéré comme lu dans tous les dossiers virtuels ainsi que dans son fil principal (objectif : ne pas lire deux fois le même item). Par exemple pour un fichier opml très (très) simple :</li>
- </ul>
- <pre>[Dossier] Non lus # contient tous les items non lus de biologeek, play et DLFP
- [Dossier] Ubuntu # contient les items non lus contenant le mot-clé "ubuntu"
- [Dossier] Blog Fr # contient les items non lus de biologeek et play
- Biologeek # contient tous les items de biologeek
- Play # contient tous les items de play
- [Dossier] Informations # contient les items non lus de DLFP
- DLFP # contient tous les items de DLFP</pre>
- <ul>
- <li>Possibilité de renommer les fils (ne pas oublier d'annoncer le changement éventuel de titre réel).</li>
- <li>Vérification de l'unicité des fils (à l'ajout et à l'import d'opml).</li>
- </ul>
-
- <p>La balise outline d'un opml aura donc (pour l'instant) les attributs suivants : xmlUrl, htmlUrl, realTitle, ownTitle, updateIntervalle, lastRead.</p>
-
-
- <h2>Reste à déterminer :</h2>
- <ul>
- <li>Profondeur de l'arborescence, faut-il limiter ?</li>
- <li>Dans le cas d'un dossier contenant un autre dossier, faut-il que le dossier parent afficher les items non lus de ses fils ou aussi les items non lus des items de ses dossiers fils ? (je sais entre les fils et les fils on s'y perd un peu... euh, comprendre feeds et children ;).</li>
- <li>Le nom, FeedManager ou mieux selon vos idées :-)</li>
- <li>Beaucoup d'autres choses, n'hésitez pas à passer commande, il vaut mieux définir les spécifications <strong>avant</strong> le début du développement !</li>
- </ul>
|