【发布时间】:2016-06-11 23:56:40
【问题描述】:
好的,所以我对编写代码还不太了解。我正在开发一个使用 twitter API 数据的项目。我对这个项目的目标是使用哈希标签来表示好的和坏的东西(为了简单起见,让我们使用#good 和 #bad)。
我希望该主题标签数据将简单椭圆的颜色修改为介于红色和绿色之间的颜色,具体取决于 #good 和 #bad 推文的数量。 我喜欢将其视为 +100/-100 频谱。每条#good 推文都是 +1,每条 #bad 都是 -1。如果是 -100 条推文,则椭圆是全红色的。如果是 +100 条推文,则椭圆为全绿色。
我知道这有点复杂,但它适用于我正在做的一个艺术项目。我遵循了一个教程,目前有推特数据响应一个简单的推文数组列表(教程@@https://www.youtube.com/watch?v=gwS6irtGK-c) 我正在使用处理、java、twitter4j 3.0.3 和带有 OSX el capitan 10.11.3 的 macbook pro
任何帮助将不胜感激。甚至为我指明了如何自己编写代码的方向。如果您需要我提供更多信息,请尽快回复!
ConfigurationBuilder cb = new ConfigurationBuilder();
Twitter twitterInstance;
Query queryForTwitter;
ArrayList tweets;
void setup() {
cb.setOAuthConsumerKey("****");
cb.setOAuthConsumerSecret("****");
cb.setOAuthAccessToken("****");
cb.setOAuthAccessTokenSecret("****");
cb.setUseSSL(true);
twitterInstance = new TwitterFactory( cb.build()
).getInstance();
queryForTwitter = new Query("#good");
size(640,440);
FetchTweets();
} //setup
void draw() {
background(0);
DrawTweets();
} //draw
void DrawTweets() {
for(int i=0; i<tweets.size(); i++) {
Status t = (Status) tweets.get(i);
String user = t.getUser().getName();
String msg = t.getText();
text(user + ": " + msg,
20,15+i*30-mouseY, width-20, 40);
} //for
} //drawTweets
void FetchTweets(){
try {
QueryResult result = twitterInstance.search(
queryForTwitter );
tweets = (ArrayList) result.getTweets();
} catch(TwitterException te) {
println("Couldn't connect: " +te);
} // end of catch TwitterException
}// end of FetchAndDrawTweets()
第二版:
ConfigurationBuilder cb = new ConfigurationBuilder();
Twitter twitterInstance;
Query queryForTwitter;
//ArrayList tweets;
void setup() {
cb.setOAuthConsumerKey("****");
cb.setOAuthConsumerSecret("****");
cb.setOAuthAccessToken("****");
cb.setOAuthAccessTokenSecret("****");
cb.setUseSSL(true);
//twitterInstance = new TwitterFactory( cb.build()
// ).getInstance();
//queryForTwitter = new Query("#feelthebern");
size(640,440);
int numGood = 50;
int numBad = 50;
for (int i = 0; i < numGood; i++) {
tweets.add("#good");
}
for (int i = 0; i < numBad; i++) {
tweets.add("#bad");
}
} //setup
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;
}
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);
}
【问题讨论】:
标签: java twitter colors processing twitter4j