2016-03-09 3 views
0

Мне нужно заполнить мой arraylist твитами из онлайн, а не жестко закодированными строками. Im с использованием twitter4j 3.0.3.Заселение arraylist в twitter4j

Im довольно тупик с этим проектом. Начиная с его для школы, мне действительно нужно понять это. Я начинающий программист, и я очень смущен.

int numGood = 50; 
    int numBad = 50; 
    for (int i = 0; i < numGood; i++) { 
    tweets.add("test"); 
    } 
    for (int i = 0; i < numBad; i++) { 
    tweets.add("#bad"); 
    } 

} 

ArrayList<String> tweets = new ArrayList<String>(); 



//create a function that counts the tweets 
//that contain a certain hashtag 
int countTweets(String hashtag){ 
    int total = 0; 
    for(String tweet : tweets){ 
    if(tweet.contains(hashtag)){ 
     total++; 
    } 
    } 
    return total; 
} 

Полная версия:

ConfigurationBuilder cb = new ConfigurationBuilder(); 
Twitter twitterInstance; 
Query queryForTwitter; 

//ArrayList tweets; 

void setup() { 
    cb.setOAuthConsumerKey("xxxx"); 
    cb.setOAuthConsumerSecret("xxxx"); 
    cb.setOAuthAccessToken("xxxx"); 
    cb.setOAuthAccessTokenSecret("xxxx"); 
    cb.setUseSSL(true); 

    size(640,440); 

} //setup 

//ArrayList<String> tweets = new ArrayList<String>(); 

public static void main (String args[]) throws TwitterException { 
    Twitter twitter = new TwitterFactory().getInstance(); 
    List<Status> statuses = twitter.getUserTimeline("google"); 
    String hashtag = "#AlphaGo"; 
    System.out.println("The Twitter page contains " 
         + countTweets(hashtag, statuses) 
         + " tweets with the hashtag : " + hashtag); 

} 

public static int countTweets(String hashtag, List<Status> statuses){ 
    return (int) statuses.stream() 
         .filter(x -> x.getText().contains(hashtag)) 
         .count(); 
} 

//create a function that counts the tweets 
//that contain a certain hashtag 
int countTweets(String hashtag){ 
    int total = 0; 
    for(String tweet : tweets){ 
    if(tweet.contains(hashtag)){ 
     total++; 
    } 
    } 
    return total; 
} 

void draw(){ 

    //count the good and bad tweets 
    int goodTweets = countTweets("#good"); 
    int badTweets = countTweets("#bad"); 

    //calculate color based on tweet counts 
    float r = badTweets/100.0 * 255; 
    float g = goodTweets/100.0 * 255; 
    float b = 0; 

    background(r, g, b); 

} 

EDIT: Я хочу, чтобы данные хэштегом, чтобы изменить цвет фона в тени цвета между красным и зеленым, в зависимости от количества и #good #bad tweets. Мне нравится думать об этом как о спектре + 100/-100. каждый # хороший твит +1, каждый #bad равен -1. Если оно равно -100 твитов, то эллипс будет красным. Если оно равно +100 твитов, то эллипс будет полностью зеленым.

Я знаю, что это немного сложно, но его для арт-проекта им делать. Я следил за учебником и в настоящее время данные twitter отвечают на простой список твитов (tutorial @https://www.youtube.com/watch?v=gwS6irtGK-c) Я использую обработку, java, twitter4j 3.0.3 и macbook pro с OSX el capitan. 10.11.3

+0

Вы забыли задать вопрос. –

+0

@JBNizet Код, который я поставил, - это жестко закодированные строки, мой вопрос заключается в том, как заставить код вывести данные хэштега из твиттера. –

ответ

0

Здесь, используя и простая реализация

public static void main (String args[]) throws TwitterException { 
    Twitter twitter = new TwitterFactory().getInstance(); 
    List<Status> statuses = twitter.getUserTimeline("google"); 
    String hashtag = "#AlphaGo"; 
    System.out.println("The Twitter page contains " 
         + countTweets(hashtag, statuses) 
         + " tweets with the hashtag : " + hashtag); 

} 

public static int countTweets(String hashtag, List<Status> statuses){ 
    return (int) statuses.stream() 
         .filter(x -> x.getText().contains(hashtag)) 
         .count(); 
} 
+0

спасибо за ответ! Однако у меня возникают проблемы с его интеграцией. Я вынул старые жестко закодированные строки и добавил ваш код. Я включил весь свой код в свой оригинальный пост в разделе «ПОЛНАЯ ВЕРСИЯ», и я добавил свое намерение в самом низу. Надеюсь, это сделает вещи более ясными. –