Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2013-11-12 19:24:38 Renvoyer le contenu d'un tweet en UDP

lv-esad
nouveau membre
Date d'inscription: 2013-11-12
Messages: 1

Renvoyer le contenu d'un tweet en UDP



B'soir ! Dans le cadre d'un petit projet je souhaite renvoyer le contenu de tweets (contenant un #adéfinir ), en udp sur le port 6400. Du coup j'ai testé quelques bouts de codes trouvés par ci par là http://codelab.fr/4537 mais rien ne fonctionne...
J'imagine que "tweetText" n'est pas approprié, mais j'en sais rien ...


citation :

import twitter4j.conf.*;
import twitter4j.internal.async.*;
import twitter4j.internal.org.json.*;
import twitter4j.internal.logging.*;
import twitter4j.json.*;
import twitter4j.internal.util.*;
import twitter4j.management.*;
import twitter4j.auth.*;
import twitter4j.api.*;
import twitter4j.util.*;
import twitter4j.internal.http.*;
import twitter4j.*;
import twitter4j.internal.json.*;
import java.util.*;
import hypermedia.net.*;
UDP udps;

Twitter twitter; // objet twitter
String searchString = "#11novembre"; // utilisé dans la recherche de tweets
List<Status> tweets; // liste contenant 100 tweets
PImage img; // conteneur de l'image de profil
String imageUrl; // url de l'image de profil
String tweetText; // le texte du tweet
float xPos, yPos; // coordonnées de notre tweet
float imageWidth, imageHeight; // taille de l'image de profil
int currentTweet = 0; //variable nous indiquant quel tweet doit être affiché
int tweetRows, tweetColumns; //variables servant a placer le tweet dans le sketch
int tweetRowsCount = 0, tweetColumnsCount = 0; //variables indiquant sur quelle ligne et sur quelle colone il faut afficher le tweet

//Mensuration du tweet a afficher
int tweetWidth ; // largeur total du tweet + photo affiché
int tweetHeight ; // taille de l'image de profil
int tweetTextSize ; // place occupé par le text du tweet
int frameNumber = 0;

void setup(){
    //variables d'affichages
    background(0); // couleur du fond d'ecran
    textSize(11); // taille du texte
    textLeading(11); //taille des interlignes du texte

    tweetColumns = 5; //nombre de collones a afficher dans le sketch
    tweetRows = 16; // nombre de lignes a afficher dans le sktech

    tweetWidth = 278; // largeur total du tweet + photo affiché
    tweetHeight = 48; // taille de l'image de profil
    tweetTextSize = tweetWidth - tweetHeight ; // place occupé par le text du tweet

    // la taille du sketch est dynamique et depend du nombre de collones, de lignes ainsi que de la taille des twetts que nous affichons
    size(tweetColumns*tweetWidth,tweetRows*tweetHeight);

    //preparation des identifiants de l'application
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setOAuthConsumerKey("   ");
    cb.setOAuthConsumerSecret("   ");
    cb.setOAuthAccessToken("  ");
    cb.setOAuthAccessTokenSecret("   ");

    TwitterFactory tf = new TwitterFactory(cb.build());

    //création de l'objet twitter qui servira tout au long du sketch
    twitter = tf.getInstance();

    //fonction appellé pour la premiere fois afin de charger des tweets dans notre liste
    getNewTweets();
    //la fonction refreshTweets est ensuite appellé dans un thread a par afin de ne pas ralentir le sketch lorsque de nouveaux tweets sont chargé dans le tableau
    thread("refreshTweets");
}

void draw(){

    // si le compteur "curentTweet" depasse le total de tweets dans la list nous faisons une remise a zero du sketch
    if (currentTweet >= tweets.size()){
        currentTweet = 0;
        tweetColumnsCount = 0;
        tweetRowsCount = 0;
        background(0);

    }

    // contient le tweet à afficher pour cette frame
    Status status = tweets.get(currentTweet);
    currentTweet ++;
    //------------------------------------------------

    //On determine la position du tweet
    xPos = tweetColumnsCount*tweetWidth;
    yPos = tweetRowsCount*tweetHeight;

    //image de profil
    imageUrl = status.getUser().getProfileImageURL();
    img = loadImage(imageUrl,"jpg");
    imageWidth = img.width;
    imageHeight = img.height;

    // texte du tweet
    tweetText = status.getText();

    //Affichage du tweet
    // fill(0);
   // image(img, xPos, yPos);
    text(tweetText ,xPos+tweetHeight, yPos, tweetTextSize, tweetHeight);
 
 


    // determiner la position du prochain tweet
    if(tweetColumnsCount%tweetColumns == 0 && tweetColumnsCount !=0){
        tweetColumnsCount = 0;
        tweetRowsCount ++;
        if(tweetRowsCount%tweetRows ==0 && tweetRowsCount !=0){
            tweetRowsCount = 0;
        }
    } else{
        tweetColumnsCount++;
    }
}

//fonction qui vient chercher les 100 derniers tweets
void getNewTweets(){
    try {
        Query query = new Query(searchString);
        query.count(100);
        QueryResult result = twitter.search(query);
        tweets = result.getTweets();
    } catch (TwitterException te) {
        println("Echec de la recherche de tweets: " + te.getMessage());
        exit();
    }
}

//charge de nouveau tweets dans la list "tweets" toutes les
void refreshTweets(){
    while (true){
        getNewTweets();
        println("tweets mis a jours");
        delay(30000);
       
  String ip       = "127.0.0.1";  // the remote IP address
  int port        = 6400;    // the destination port
  udps.send( tweetText, ip, port ) ;


    }
       
}

Dernière modification par lv-esad (2013-11-13 20:49:52)

Hors ligne

 

#2 2013-11-13 14:10:05 Re : Renvoyer le contenu d'un tweet en UDP

m2c
nouveau membre
Date d'inscription: 2013-11-13
Messages: 1

Re: Renvoyer le contenu d'un tweet en UDP



salut lv-esad,

je vais regarder le tuto dont tu t'es servi.

pour ma part, je me suis un peu intéresser à ce sujet pour un projet professionnel.

j'avais retenu une autre solution (plus simple?), sur la base de ce tuto http://www.learningprocessing.com/tutorials/php/

avec une partie server en PHP pour récupérer les twit (avec l'api REST qui marche pas terrible, faut que j'essaie l'api STREAM, qui sont 2 api de twitter)
--> je nourris une BDD, MySql,
--> je sauve le dernier twitt dans un fichier .txt (en fonction de la réponse du client, voir ci-dessous)
et côté client :
--> processing récupére le fichier .txt, et l'affiche avec une petite anim
--> processing previens le serveur via l'upload du autre fichier .txt de la récup du dernier twitt

cordialement.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2025