Categories
Internet Python Réseau

pyAggr3g470r 0.8 – Changelog

Et voilà la version 0.8 de pyAggr3g470r. Principales modifications:

  • la base est plus petite (moins de redondances). Bien qu’elle était déjà assez petite (environ 3Mo pour plus de 1200 articles, maintenant bien moins);
  • la recherche fonctionne mieux (les balises HTML sont filtrées avec une expression régulière…);
  • il est possible de partager un article sur delicious, reddit, Digg, Scoopeo et Blogmarks très simplement;
  • la page de gestion présente des informations sur la base ainsi que des statistiques sur les mots (avec un histogramme en utilisant matplotlib). Je trouvais ça sympa et en plus on voit que le mot le plus fréquent dans mes flux est le mot libre! Cette page permettra aussi d’ajouter des flux avec une adresse d’un site;

On ma proposé aujourd’hui d’afficher les images des flux (comme des favicons) en me disant qu’elles sont disponibles dans les flux. J’ai vérifié et en effet il est possible de trouver ces images (ou leur adresses) de cette manière (je suis assez étonné). Seulement je me rends compte que peux de flux utilisent cette fonctionnalité. Du coup je pense que des agrégateurs comme aKregator utilisent plutôt les favicons. Voilà le résultat en utilisant les informations du flux. Bref, je vais devoir choisir…

Plus de captures et à bientôt!

Categories
Internet Python

pyAggr3g470r 0.6 – Changelog

http://cedric.bonhomme.free.fr/images/pyAggr3g470r/pyAggr3g470r-1.png
pyAggr3g470r 0.6

Et voilà la version 0.6 de pyAggr3g470r. Principales modifications:

  • les articles non lus sont affichés en gras (et ajout dans la base d’un champ pour distinguer les articles lus de ceux qui ne le sont pas);
  • le menu de droite indique maintenant pour chaque flux le nombre d’articles total ainsi que le nombre d’articles non lus;
  • pour chaque flux, la page principale présente les 10 derniers articles;
  • évidemment pour chaque flux on peut voir la liste de tout les articles (en cliquant sur “All articles”);
  • cliquer sur le nombre d’articles non lus dans le menu de droite (ou à gauche quand il y a des articles non lus) permet de voir uniquement les articles non lus;
  • cliquer sur un article ouvre sa description dans un nouvel onglet, avec à la fin de la description un lien vers l’article original. L’ouverture dans un nouvel onglet est accompagnée de l’attribut rel=”noreferrer”. Avec cet attribut Chrome est forcé de créer un nouveau processus. Ce qui devrait être automatique quand on consulte l’article original étant donné que le domaine n’est plus le même. Cette fonctionalité devrait arriver dans un certain temps sur Firefox;
  • correction de deux bugs stupides. Exemple de bug stupide (raison pour laquelle il n’y a que des “23” dans le menu de la capture ci-dessus 😉

Je pense que maintenant on peut agréablement l’utiliser avec pas mal de flux. En tout cas avec une trentaine de flux c’est encore utilisable. Et la base SQLite ne devient pas trop grosse (environ 2 Mo pour 500 articles dans 23 flux).  aKregator utilise quand même plus de un giga octet de sauvegarde sur mon disque. Ce sera encore mieux avec la recherche sur le contenu des descriptions 😉

Categories
Internet Python Réseau

pyAggr3g470r 0.4

Il arrive que les trajets de train soient assez productifs (parfois…). (Ah si j’avais un de ces petits Eee PC avec une autonomie de 12 heures…) Bref, ce dernier trajet me donne l’occasion d’annoncer la version 0.4 de pyAggr3g470r. Déjà !

Voici les quelques nouveautés:
  • apparition d’un menu avec des ancres pour la liste des flux. Facilite la navigation ;
  • 10 articles par flux maximum sont affichés sur la page principale. Pour chaque flux une page est dédiée à la  liste complète des articles ;
  • il n’y a plus de valeur hashée (avec sha256) dans la base pour identifiant. C’était idiot et ça prenait trop de place. La taille de la base est considérablement réduite ;
  • la description des articles est aussi mieux gérée (et présente dans la base). Avant il y avait des problèmes avec les URL contenant des “/” dans un mot (par exemple ~/blog) ainsi qu’avec les URL contenant des caractères accentués ;
  • les accès à la base lors de la récupération des flux sont aussi mieux gérés au sein des threads :
  • voici quelques screen shots.

La suite en fonction de mes idées demain matin ou demain soir dans le train 😉

Categories
Python Réseau

pyAggr3g470r

Really first version of pyAggr3g470r
Really first version of pyAggr3g470r

Aujourd’hui j’ai l’honneur de vous présenter: pyAggr3g470r ! Le futur fabuleux agrégateur d’informations 🙂

Voici déjà quelques particularités:

  • il utilise le module Python Universal Feed Parser et est donc capable de récupérer aussi bien les flux RSS qu’ATOM;
  • la récupération des flux est multi-threadé;
  • les articles sont stockés dans une base SQLite, donc pas de serveur;
  • une interface Web construite avec CherryPy pour lire les articles, donc serveur ultra léger:
    • l’interface a encore a évoluer bien sûr (beau CSS avec menu pour les flux, recherche de flux, trie, etc.);
    • peut être qu’un plasmoïde préviendra de l’arrivée de nouveaux articles.
  • super facile à configurer. Il suffit d’éditer une ligne dans ./cfg/pyAggr3g470r.cfg puis de mettre les flux à surveiller dans le fichier ./var/feed.lst;
  • possibilité de lancer la récupération des articles ponctuellement ou avec un cron (ou planificateur de tâches).

Plus d’informations sur l’utilisation (super simple 😉 ) ici.

Mise à jour:
Il est maintenant possible de lire les descriptions des articles. La base est mieux gérée et les articles sont triés pas dates. Il faudrait encore un beau CSS avec de l’XHTML pour faire des menus déroulants pour les différents flux. Et implémenter la recherche.

Categories
Python

Minesweeper

Minesweeper est une nouvelle implémentation Python du classique jeu du démineur.

Je l’ai écrit avec un ami il y a quelques temps et continue de le maintenir un petit peu. Il utilise la librairie Tkinter. Celle-ci est assez simple mais je trouve le jeu tout de même assez esthétique. Vous pourrez découvrir quelques fonctionnalités bien originales 😉

Étant donné que Python 3 est sorti, je vais d’ici quelques temps le porter afin qu’il puisse être utilisé avec la dernière version de Python.