Page 1 sur 1

Flux RSS?

Publié : jeu. févr. 21, 2013 6:56 pm
par Remz
Salut,

Je pense que pas mal utilisent les flux RSS pour s'informer. C'est ce que je fais avec le magnifique "Reeder" pour Mac OSX qui me fait gagner un temps fou. J'aimerai avoir Koruldia en flux RSS pour m'informer des dernières news, mais c'est pour l'instant pas possible à ma connaissance.

Les KoruNews (http://koruldia.info/koru_news.php) peuvent elles être transformées en flux rss ? Si oui comment? Je pense qu'il serait malin de créer un Koru-blog avec les news, puis d'utiliser TwitterFeed qui est un service gratuit pour publier automatiquement les articles du blog sur Twitter et sur Facebook.

Ou peut-être voir si il n'y a pas moyen de créer un flux RSS avec des articles de forum phpBB? Puis cibler ce flux en selectionnant certains articles des Korunews?

Bref, si vous avez une idée, je suis prenneur :)

Publié : jeu. févr. 21, 2013 9:46 pm
par KaYsEr
Je pensais que c'était déjà possible en reprenant le twitter, mais comme je suis pas super familier avec ça...
Tu crois que cette méthode est encore beaucoup utilisé ? Si c'est le cas dit moi à quoi tu penses pour l'intégrer. J'avais déjà pensé copier/coller dans un blog les news, surtout si le système de blog en question a tous les outils de ce genre embarqués.

Je me disais par contre que ce serait mieux d'y mettre des sortes de résumés de news, et en anglais. Vraiment le truc concentré sur le jeu, sans grosses parenthèses qui parlent un peu de la pluie/beau temps, mais qui ont un peu plus de sens ici en mode friendly.

A une certaine étape de développement, et s'il y a campagne de levé de fonds surtout, faudra d'ailleurs bien plus souvent donner les nouvelles de la progression vu que ce sera une sorte de devoir vis à vis de ceux qui ont payé, mais le temps dira comment ça va se goupiller toutes ces choses, toujours est-il que c'est toujours bien de diversifier les méthodes de communications.

Publié : jeu. févr. 21, 2013 11:40 pm
par Raytwo-x
Bah si tu veux une page qui condense en flux RSS, tu peux faire une sorte de page Twitter en php sur ce FTP, et ensuite tu fais un flux RSS à partir de ça?

Publié : sam. févr. 23, 2013 12:32 am
par Griminy

Publié : sam. févr. 23, 2013 2:56 am
par KaYsEr
Wé voilà Griminy... Je me disais aussi.
mouamem a écrit :Je pensais que c'était déjà possible en reprenant le twitter, mais comme je suis pas super familier avec ça...
Vu l'influence de Twitter y avait forcément moyen directement avec ça, bon après faut juste pas oublier d'updater ce truc (comme un peu en ce moment) mais je vais pas l'oublier cette fois ci, je prépare la prochaine news.

Par contre du coup ça file pas la news entière c'est certain, ça redirige juste vers le topic mais ça aide à savoir quand ça arrive (comme le groupe Facebook aussi quoi) mais perso je pensais à un micro-blog-journal pour copier les news en anglais par la suite (au cas où ça les emmerderaient de venir ici se taper l'inévitable français qui traîne un peu partout sans qu'on fasse gaffe), et ça serait sans doute sur un site que j'ai déjà expérimenté sur le jeu indé, bien que ce soit un peu centré sur RM. (donc je verrai s'il y a plus générique)

Publié : sam. févr. 23, 2013 2:58 pm
par Remz
J'ai essayé le twitter RSS déjà, ça fonctionne mais c'est pas du tout ergonomique. Perso je l'utiliserai pas ;)

Oui je pense que les flux RSS sont beaucoup utilisés ^^ C'est bien pratique lorsque l'on fait de la veille informatique ou web pour pas être obligé de se taper chaque blog, mais un regroupement de tous ces blogs dans une liseuse propre. Après pour Koruldia, es ce que ça va être beaucoup utilisé je sais pas...?

Ouais pourquoi pas faire un blog avec des news en mode propre et pro (pas de private joke), genre les photos et le texte principal, et pourquoi pas un lien vers la news à la fin sur le KoruHub FR pour en savoir plus?

Es-ce qu'il est possible de faire ce blog avec une partie FR et une partie EN? Si ça demande trop de boulot laisse tomber ;)

De plus en créant un blog, tu peux générer automatiquement les articles pour Facebook et Twitter grâce à TwitterFeed. C'est ce que beaucoup de blogs font et ça fait gagner pas mal de temps.

Publié : sam. févr. 23, 2013 4:30 pm
par KaYsEr
Je m'y connais pas trop donc c'est parfait pour te poser les questions j'en profite :

Alors apparemment un flux RSS ça peut contenir tout un article et pas juste quelques lignes ? (lol je débarque^^)

Donc oui un blog qui restitue ça automatiquement, je m'en occuperai et ce sera pour la version en anglais (donc pas de VF je crois, ce serait en effet trop de taf) comme ça j'aurai couvert cette option.

Pour le reste des fonctionnalité bonus, je verrai ce que le système proposera.
Effectivement, pas de private joke ni rien dans la version anglaise (y en a déjà assez peu dans les premiers messages en VF, c'est plutôt dans ceux qui suivent) mais aussi plus condensé.

(bon dja l'anglais est plus efficace que le français donc un même texte parait toujours plus court, je me souviens plus du pourcentage mais je me rappel que c'est le même dans l'autre sens en négatif pour l'allemand lol... ptetre 30% j'crois bien, j'avais lu ça dans un bouquin de game concept concernant la gestion des boites de dialogue pour les traductions, le truc courant étant que de l'anglais à l'allemand si t'as pas prévu le coup tu débordes de ta boite ! Arrrrrch, zé chian zé konneuries !!)

Publié : sam. févr. 23, 2013 5:52 pm
par Remz
KaYsEr a écrit :Je m'y connais pas trop donc c'est parfait pour te poser les questions j'en profite :

Alors apparemment un flux RSS ça peut contenir tout un article et pas juste quelques lignes ? (lol je débarque^^)

Donc oui un blog qui restitue ça automatiquement, je m'en occuperai et ce sera pour la version en anglais (donc pas de VF je crois, ce serait en effet trop de taf) comme ça j'aurai couvert cette option.

Pour le reste des fonctionnalité bonus, je verrai ce que le système proposera.
Effectivement, pas de private joke ni rien dans la version anglaise (y en a déjà assez peu dans les premiers messages en VF, c'est plutôt dans ceux qui suivent) mais aussi plus condensé.

(bon dja l'anglais est plus efficace que le français donc un même texte parait toujours plus court, je me souviens plus du pourcentage mais je me rappel que c'est le même dans l'autre sens en négatif pour l'allemand lol... ptetre 30% j'crois bien, j'avais lu ça dans un bouquin de game concept concernant la gestion des boites de dialogue pour les traductions, le truc courant étant que de l'anglais à l'allemand si t'as pas prévu le coup tu débordes de ta boite ! Arrrrrch, zé chian zé konneuries !!)
Oui, l'article entier ou quelques lignes, pour le coup je pense qu'il serait judicieux de mettre l'article résumé (sans private joke, détails techniques trop poussés) et de mettre un lien vers l'article plus complet sur le KoruHub. Le problème avec les débuts d'article c'est qu'en général les gens cliquent dessus que si ça les intéresse VRAIMENT car ça coupe le logiciel de flux RSS pour passer sur un navigateur parfois.

Dommage pour la VF mais bon je me contenterai de l'anglais ;)

Publié : dim. févr. 24, 2013 11:35 pm
par nuki
Si tu veux a l'époque j'avais écris cette atroce outil pour manipuler les flux RSS:

Code : Tout sélectionner

<?php
class RSSFactory{
     
    //Pour créer une passerelle avec un RSS Externe
    public static function getExternRSS($chemin){
        return new RSS($chemin, false);
    }
     
    //Pour convertir un fichier PHP en flux RSS composé grâce aux outils plus bas
    public static function makeRSS(){
        return new RSS(false, true);
    }
     
    //Créer un fichier RSS physique
    public static function buildRSS($chemin){
        return new RSS($chemin, true);
    }
     
    //Crée un item vide à remplir
    public static function buildClearItem(){
        return new RSSItem();
    }
     
    //Créer un item avec le stricte minimum
    public static function buildStrictItem($titre, $lien, $description, $auteur, $date){
        $item = new RSSItem();
        $item->setAuteur($auteur);
        $item->setTitre($titre);
        $item->setLien($lien);
        $item->setDescription($description);
        $item->setDate($date);
        return $item;
    }
     
    //Crée un item complet
    public static function buildItem($titre, $lien, $description, $auteur, $date, $categorie, $commentaire, $guid){
        $item = new RSSItem();
        $item->setAuteur($auteur);
        $item->setTitre($titre);
        $item->setLien($lien);
        $item->setDescription($description);
        $item->setDate($date);
        $item->setCategorie($categorie);
        $item->setCommentaire($commentaire);
        $item->setGuid($guid);
        return $item;
    }
}
class RSS{
     
    private $chemin;
    private $ecriture;
    private $rss;
    private $channel;
     
    public static function is_picture($url){
        if(!is_file($url))return false;
        $url = substr($url,strrpos($url,".")+1);
        $url = strtolower($url);
        $extension = array('gif','jpg','png','jpeg');
        return in_array($url, $extension);
    }
    public function __construct($chemin, $ecriture){
        $this->chemin = $chemin;
        $this->ecriture = $ecriture;
        if($this->ecriture){
            $this->rss = new SimpleXMLElement('<rss/>');
            $this->rss->addAttribute('version', '2.0');
            $this->channel = $this->rss->addChild('channel');
        }else{
            $curlConnexion = curl_init();
            curl_setopt($curlConnexion, CURLOPT_URL, $this->chemin);
            curl_setopt($curlConnexion, CURLOPT_POST, 1);
            curl_setopt($curlConnexion, CURLOPT_RETURNTRANSFER, 1);
            $xmlExternString = curl_exec($curlConnexion);
            $this->rss = simplexml_load_string($xmlExternString);
        }
    }
     
    //Gestion du Channel du flux RSS
    //Uniquement possible en mode écriture 
    public function setChannelTitre($title){
        if(!$this->ecriture)throw new Exception("Cannot write file");
        $this->channel->addChild('title', $title);
    }
    public function setChannelLien($link){
        if(!$this->ecriture)throw new Exception("Cannot write file");
        $this->channel->addChild('link', $link);
    }
    public function setChannelDescription($desc){
        if(!$this->ecriture)throw new Exception("Cannot write file");
        $this->channel->addChild('description', $desc);
    }
    public function setChannelLangage($lang){
        if(!$this->ecriture)throw new Exception("Cannot write file");
        $this->channel->addChild('language', $lang);
    }
    public function setChannelImage($url){
        if(!$this->ecriture)throw new Exception("Cannot write file");
        if(!self::is_picture($url))throw new Exception("Not a picture");
        $this->channel->addChild('image', $url);
    }
    public function setChannelCopyright($copy){
        if(!$this->ecriture)throw new Exception("Cannot write file");
        $this->channel->addChild('copyright', $copy);
    }    
    public function setChannelManaging($manage){
        if(!$this->ecriture)throw new Exception("Cannot write file");
        $this->channel->addChild('managingEditor', $manage);
    }    
    public function setChannelWebmaster($webmaster){
        if(!$this->ecriture)throw new Exception("Cannot write file");
        $this->channel->addChild('webmaster', $webmaster);
    }
    public function addItem(RSSItem $item){
        if($item->getTitre() === null || $item->getLien() === null || $item->getDescription() === null)
            throw new Exception("Vital Datas are empty");
        $newItem = $this->channel->addChild('item');
        $newItem->addChild('title', $item->getTitre());
        $newItem->addChild('link', $item->getLien());
        $newItem->addChild('description', $item->getDescription());
        if($item->getAuteur() !== null)$newItem->addChild('auteur', $item->getAuteur());
        if($item->getCategorie() !== null)$newItem->addChild('category', $item->getCategorie());
        if($item->getCommentaire() !== null)$newItem->addChild('comments', $item->getCommentaire());
        if($item->getGuid() !== null)$newItem->addChild('guid', $item->getGuid());
        if($item->getDate() !== null)$newItem->addChild('pubDate', $item->getDate());
    }
     
    //Gestion du flux externe
    public function getChannelInfos(){
        $array = array(
            "titre" => $this->rss->channel->title,
            "lien" => $this->rss->channel->link,
            "description" => $this->rss->channel->description,
            "langue" => $this->rss->channel->language,
            "image" => $this->rss->channel->image,
        );
        return $array;
    }
    public function fetch($nb = -1){
        $iteration = 0;
        foreach($this->rss->channel->item as $item){
            $listItem[] = array(
                "titre"=>(string)($item->title),
                "lien"=>(string)($item->link),
                "description"=>(string)($item->description)
            );
            if($nb != -1)if((++$iteration>=$nb))break;
        }
        return $listItem;
    }
     
    //Fin et affichage du fichier
    public function finalise(){
        if(!$this->ecriture || !$this->chemin){
            header('content-type: application/xml');
            echo $this->rss->asXML();
        }
        else $this->rss->asXML($this->chemin);
    }
}
class RSSItem{
     
    private $titre;
    private $lien;
    private $description;
    private $auteur;
    private $categorie;
    private $commentaire;
    private $guid;
    private $date;
     
    public function __construct(){
        $this->titre = null;
        $this->lien = null;
        $this->description = null;
        $this->auteur = null;
        $this->categorie = null;
        $this->commentaire = null;
        $this->guid = null;
        $this->date = null;
    }
     
    public function getTitre(){ return $this->titre; }
    public function getLien(){ return $this->lien; }
    public function getDescription(){ return $this->description; }
    public function getAuteur(){ return $this->auteur; }
    public function getCategorie(){ return $this->categorie; }
    public function getCommentaire(){ return $this->commentaire; }
    public function getGuid(){ return $this->guid; }
    public function getDate(){ return $this->date; }
     
    public function setTitre($var){
        $this->titre = $var;
    }
    public function setLien($var){
        $this->lien = $var;
    }
    public function setDescription($var){
        $this->description = $var;
    }
    public function setAuteur($var){
        $this->auteur = $var;
    }
    public function setCategorie($var){
        $this->categorie = $var;
    }
    public function setCommentaire($var){
        $this->commentaire = $var;
    }
    public function setGuid($var){
        $this->guid = $var;
    }
    public function setDate($var){
        $this->date = $var;
    }
}
 
?>

Publié : lun. févr. 25, 2013 12:08 am
par Güney
Behh, c'est pas compliqué, mais c'est un peu "lourd" comme façon de faire non x) ?

Publié : lun. févr. 25, 2013 2:41 am
par nuki
Je suppose qu'il y a des manières plus concise d'écrire une librairie de gestion de flux (diffusion/parser/receveur).

Publié : lun. févr. 25, 2013 10:53 am
par Rikov
Clairement ouai.
Après c'est surtout à titre didactique personnel vu que maintenant t'as des tas de sites qui s'occupent de gérer ça, un truc qui se généralise pour beaucoup de domaines je trouve.

Je vote la solution externe. Toute façon maintenant tout est externalisé de partout, même l'OS de l'ordi ça continu il va être en cloud.
Voir l'ordi directement pourquoi pas. Putain ça va bien me faire chier ça je serai un vieu con et je dirai "de mon temps on avait des ordis à coté de nous avec des ventillateurs à leds de couleur rigolos dessus !"

Et le mioche répondra "c'est quoi un ventillateur ?".
Ptain, c'était mieux avant lol.

Publié : lun. févr. 25, 2013 11:12 am
par nuki
Oui enfin, cette librairie fait "lecteur" mais générateur de flux aussi hein.

Publié : lun. févr. 25, 2013 11:45 am
par KaYsEr
Souvent j’me dis : « tant que le consommateur final voit pas le making-of, ça passe, même si c’est le gros bordel derrière le rideau ». :p
(ok après c'est chiant tu peux en profiter pour faire passer du cheval pour du bœuf ^^ donc faut pas généraliser ça à tous les domaines j’ai dit bordel pas arnaque non plus, sinon bientôt on aura droit aux insectes… même si ça pourrait arriver pour d’autres raisons, mais là au moins on sera au courant mouarf)

La méthode « automatisée » d'un service externe permet de foutre des œufs dans un autre panier en plus de pas avoir à se soucier de la technique (pour se concentre sur le but final) cela dit.
Oui enfin, cette librairie fait "lecteur" mais générateur de flux aussi hein.
Lecteur et générateur ? On a juste besoin de taper le truc sur chépakel blog bien connu qui propose cette option, et le titre (ou début) de la news est directement généré dans un flux nan, ensuite pour le lecteur c’est au consommateur de voir nan ? (j’avais testé à l’époque le widget alakon de windows vista et les twit’ d’ici allaient directement dedans en + des news MSN relous)

Ou alors j’ai mal saisi la différence entre les 2 trucs. C’est aussi que j’ai jamais tenté de mettre les mains là-dedans donc je fais juste des spéculations, j’irai zieuter ça plus sérieusement quand j’aurai du temps entre mon taf et klimbo, enfin quand ce sera utile surtout avec l'anglais.
Toute façon maintenant tout est externalisé de partout, même l'OS de l'ordi ça continu il va être en cloud.
Zoui, ça et la tendance middlewaresque qui va avec.
Spoiler!
Y a qu’à voir le nouveau UDK, limite tu peux faire un jeu sans taper de lignes de code directement (c’est encore de nos jours utile de le faire par contre pour augmenter son contrôle sur le bordel) menfin l’évolution de cette tendance va vers une absence de programmation humaine sur le long terme. Puis ce sera la singularité, et ensuite les loutres prendront le pouvoir.
:peur:
Bon sinon, pas question de foutre mon ordi en cloud nanmé, j'en garderai un sous la main pour faire des vieilles conneries quoi qu'il arrive, on garde bien nos vieilles consoles, rien n'empêche ça. M'enfin, difficile de prévoir ce qu'on sera tenté de faire avec des trucs pas encore dispo, de nos jours nos vieilles consoles sont plutôt parfois sous la forme emu-rom et ça nous fait pas mal pour autant, au contraire ça prend moins de place.
Etant gamin on m'aurait dit ça à moi et mon armoire de cartouches Megadrive ça m'aurait bien fait chié...

Publié : mar. févr. 26, 2013 4:12 pm
par Remz
Je crois que le meilleur est FeedBurner car il propose directement de t'abonner avec ton lecteur de flux préfèré et te laisse quand même l'adresse du flux a disposition, j'ai jamais eu de problème sur windows ou mac.

http://feedburner.google.com/

Ensuite concernant le lecteur, oui c'est l'utilisateur qui choisit. ;)

D'ailleurs, pour info, sur mac y'a Reeder qui est payant (pas bien cher) mais qui est juste génial, beau, ergonomique, rapide... Y'a même un navigateur intégré, et le tout très léger. Bref parfait.

Sur Windows, je n'utilisai pas de logiciel mais plutôt directement Google Reader. Pratique, mais pas très beau ni ergonomique, doit y avoir bien mieux.

Publié : mar. févr. 26, 2013 5:45 pm
par nuki
Mais le problème ne semble pas être la lecture du flux, mais la génération du flux... non?

Publié : mar. févr. 26, 2013 6:26 pm
par Raytwo-x
nuki a écrit :Mais le problème ne semble pas être la lecture du flux, mais la génération du flux... non?
Me disait aussi... ( bon retour parmi nous Nuki ! )
Bah comme j'disais au pire une p'tite page toute conne sur un coin du FTP du hub en PHP devrait suffir, non? Pas besoin de se faire chier à ouvrir un blog et tous le tralala juste pour ça... Enfin, je pense :clope:

Publié : mar. févr. 26, 2013 6:44 pm
par KaYsEr
Lol sur mac c'est payant, tu m'étonnes. :dent:

Sinon ok j'y regarderai de plus prés le moment venu, même si je pencherai sans doute plus sur une méthode transparente que je remarque pas ou qui se fait direct à partir de l'endroit où s'est tapé, genre d'option bonus. A vrai dire j'en sais encore rien car je suis pas encore dans la situation, mais sans doute que c'est pas une grosse affaire à gérer.