Journal CPlanet : enfin un planet simple

Posté par  (site web personnel) .
Étiquettes : aucune
9
17
juil.
2009
CPlanet est un moteur de planet écrit en C utilisant le système de template de http://www.clearsilver.net (ce qui le rend très souple) et de http://www.autistici.org/bakunin/libmrss/ pour la lecture des flux RSS et ATOM.

CPlanet peut en fait générer tout type de fichiers depuis un contenu RSS/ATOM. il est déjà utilisé pour propulser le naissant http://planet.etoilebsd.net

il est diffusé sous licence WTFPL.

Pourquoi un nouveau logiciel, tout simplement parce que je trouvais l'existant bien lourd (python,perl,ou php) avec plein de chose inutiles (un SGBD par exemple) alors que pour beaucoup de planet, une simple génération de fichiers html/xml statique est amplement suffisante.

avec cplanet une simple crontab vous permettra de générer votre planet automatiquement, les logs iront proprement être écrite via la syslog si vous utilisez l'option -l.

c'est une première version 0.1 (donc alpha), beaucoup de choses sont à améliorer dans le code, mais la majeure parties des fonctionnalités sont présentes.

Testé uniquement sous FreeBSD pour le moment, il devrait marcher sous tout type d'unix pour peu que la libmrss et clearsilver soient présent et que vous disposez de bsd make sous le coude, je suis bien sur ouvert à toute contribution.

http://wiki.github.com/bapt/CPlanet
  • # Qu'est-ce qu'un moteur de planet ?

    Posté par  . Évalué à 9.

    J'imagine que ce n'est pas un truc de méchant de James Bond pour dévier la planète de son orbite.
    Mais alors qu'est-ce ?

    BeOS le faisait il y a 20 ans !

  • # Enfin, ou un autre de plus

    Posté par  . Évalué à 4.

    Si je ne me trompe pas, Planet ou son successeur http://www.intertwingly.net/code/venus/ Planet-venus font exactement ça, juste un cron, sans base de donnée, et génération d'une page (avec des templates à définir avant si l'on veut faire des trucs sympa dans la mise en page).

    Bon ok c'est en python, mais je ne suis pas certain que les performances soient cruciales pour télécharger quelques flux rss et mettre à jour une page statique toutes les demi-heures.

    Je testerais en tout cas, c'est sympa les Planets.
    • [^] # Re: Enfin, ou un autre de plus

      Posté par  (site web personnel) . Évalué à 4.

      Bon ok c'est en python, mais je ne suis pas certain que les performances soient cruciales pour télécharger quelques flux rss et mettre à jour une page statique toutes les demi-heures.

      Je ne pense pas que ce soit les performances qui importent, mais tout le monde ne veut peut être pas python sur son serveur web.

      /me pense par exemple à un "planet" / "portail" / "aggrégateur" perso sur un soekris avec un OpenBSD.
      • [^] # Re: Enfin, ou un autre de plus

        Posté par  . Évalué à 2.

        > tout le monde ne veut peut être pas python sur son serveur web.

        Et du C, ça ne te choque pas? Il va falloir autoriser les binaires sur le serveur!

        L'avantage d'un agrégateur de RSS en PHP, c'est qu'il y a plein d'hébergeurs gratuits qui te permettront de l'utiliser. Du coup, tu peux l'utiliser plus librement.

        ....



        ......



        .....


        Oui, on est bien Vendredi. Et en plus je pars 3 semaines en vacances, pour vous laisser nourrir le troll tranquilles.

        ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

        • [^] # Re: Enfin, ou un autre de plus

          Posté par  (site web personnel) . Évalué à 5.

          C'est pas un CGI ou un fast cgi ou un truc du genre, c'est un binaire simple que ton serveur web au sens application (apache, lighttpd ou autre) ne connait pas et n'a pas a connaitre, ça génère des pages html statique ou tu veux, ensuite tu les poses ailleurs chez ton hébergeur gratuit si ça te chante.
          • [^] # Re: Enfin, ou un autre de plus

            Posté par  . Évalué à 3.

            Donc ça ne peut pas marcher "tout seul" chez un hébergeur... il me faut 2 machines pour fournir le service... non, vraiment, PHP, c'est pratique des fois!

            ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

            • [^] # Re: Enfin, ou un autre de plus

              Posté par  . Évalué à 6.

              Tout dépend de l'hébergeur. J'en connais un qui permet de compiler et exécuter n'importe quel binaire via ssh ainsi que de planifier des taches cron. Le tout pour 0€ par mois si tu peut te contenter de 10Mo d'espace.
              Il faut arrêter de réduire l'hébergement à php/mysql.
              • [^] # Re: Enfin, ou un autre de plus

                Posté par  (site web personnel) . Évalué à 2.

                et 10Mo ça suffit largement pour monter un planetŴ aggregateur de flux RSS avec cplanet, mais alors large, tu peux même en monter plein de différents :)

                D'ailleurs CPlanet est tellement souple, que tu peux même imaginer faire plusieurs planet différents avec le même fichier de conf et le même process (il faut bien que je pousse mon bébé :))
  • # Vive les langages compilés

    Posté par  . Évalué à 8.

    Ça fait plaisir de voir que l'on peut joindre des choses bien web 2.0 avec des langages compilés.

    Voila, c'était juste à la limite du hors sujet.

    Envoyé depuis mon lapin.

  • # Archives

    Posté par  (site web personnel) . Évalué à 1.

    Sur les autres planet, il n'y a pas d'archives.

    Je suppose qu'avec celui-la, ca devient facile de faire des archives, meme si il doit ne pas y avoir d'index.
    • [^] # Re: Archives

      Posté par  (site web personnel) . Évalué à 1.

      Ca dépend de tes besoins, mais en soit ça ne vas pas être simple d'avoir des archives, sauf si tu backup avant génération les fichiers statiques générés.
      genre
      cp $WWW_PLANET/index.html $WWW_PLANET/index-old.html
      cplanet -c bla.hdf -l

      le truc c'est que tu risque d'avoir des posts en double, enfin en creusant un peu l'idée ça doit être faisable oui.

      autre solution donner à cplanet un de son propre flux + celui de la / les pages de backup dans le fichier hdf, dans le template de génération du planet "normal" de vérifier que l'on ne prend pas le flux provenant du backup, et dans un second template générer la page de backup en ne prenant que ce qui vient de l'ancien cplanet.

      Enfin en creusant un peu ça doit être possible oui si il manque une fonctionnalité pour pouvoir y arriver, je la rajouterai avec plaisir.
  • # Problèmes de compilation sous Gentoo

    Posté par  . Évalué à 2.

    Ce petit soft a l'air d'être exactement ce que je cherchais :)

    Par contre impossible de le compiler sur ma Gentoo:


    cc -O2 -Wall -g -I/usr/include -I/usr/include/ClearSilver -Werror -c cplanet.c
    cplanet.c: In function ‘str_to_time_t’:
    cplanet.c:76: erreur: ‘errno’ undeclared (first use in this function)
    cplanet.c:76: erreur: (Each undeclared identifier is reported only once
    cplanet.c:76: erreur: for each function it appears in.)
    cc1: warnings being treated as errors
    cplanet.c:77: erreur: implicit declaration of function ‘strptime’
    cplanet.c:77: erreur: initialization makes pointer from integer without a cast
    cplanet.c:79: erreur: ‘EINVAL’ undeclared (first use in this function)
    cplanet.c: In function ‘str_to_UTF8’:
    cplanet.c:136: erreur: ‘ENOMEM’ undeclared (first use in this function)
    cplanet.c:139: erreur: passing argument 2 of ‘iconv’ from incompatible pointer type
    cplanet.c: In function ‘main’:
    cplanet.c:328: erreur: ‘errno’ undeclared (first use in this function)
    cplanet.c:334: erreur: ‘ERANGE’ undeclared (first use in this function)
    *** Error code 1

    Stop.
    pmake: stopped in /home/sov/cplanet/cplanet-0.1/CPlanet


    n'étant pas familier avec le C c'est plutot du chinois pour moi. Si quelqu'un a une idée ?

    Ah oui et aussi sous gentoo (et sous archlinux aussi et sans doute sous d'autres distros) il faut changer les chemins dans le Makefile:
    /usr/local/include => /usr/include
    /usr/local/include/ClearSilver => /usr/include/ClearSilver

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.