use of twitter4j.Query in project Talon-for-Twitter by klinker24.
the class SearchedTrendsActivity method doSearch.
public void doSearch(final String mQuery) {
spinner.setVisibility(View.VISIBLE);
new Thread(new Runnable() {
@Override
public void run() {
try {
Twitter twitter = Utils.getTwitter(context, settings);
Log.v("talon_search", "search query: " + mQuery);
query = new Query();
if (mQuery.contains(" TOP")) {
query.setResultType(Query.ResultType.popular);
}
query.setQuery(mQuery.replace(" TOP", ""));
QueryResult result;
try {
result = twitter.search(query);
} catch (OutOfMemoryError e) {
return;
}
tweets.clear();
for (twitter4j.Status status : result.getTweets()) {
tweets.add(status);
}
if (result.hasNext()) {
query = result.nextQuery();
hasMore = true;
} else {
hasMore = false;
}
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
adapter = new TimelineArrayAdapter(context, tweets);
listView.setAdapter(adapter);
listView.setVisibility(View.VISIBLE);
spinner.setVisibility(View.GONE);
}
});
} catch (Exception e) {
e.printStackTrace();
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
spinner.setVisibility(View.GONE);
}
});
}
}
}).start();
}
use of twitter4j.Query in project Talon-for-Twitter by klinker24.
the class ConversationFragment method getDiscussion.
public void getDiscussion(final ListView listView, final long tweetId, final LinearLayout progressBar, final HoloTextView none, final Status status) {
Log.v("talon_replies", "getting discussion");
if (replies.size() == 0) {
replies.add(status);
}
Thread getReplies = new Thread(new Runnable() {
@Override
public void run() {
if (!isRunning) {
return;
}
ArrayList<twitter4j.Status> all = null;
Twitter twitter = Utils.getTwitter(context, settings);
try {
Log.v("talon_replies", "looking for discussion");
long id = status.getId();
String screenname = status.getUser().getScreenName();
query = new Query("@" + screenname + " since_id:" + id);
Log.v("talon_replies", "query string: " + query.getQuery());
try {
query.setCount(100);
} catch (Throwable e) {
// enlarge buffer error?
query.setCount(30);
}
QueryResult result = twitter.search(query);
Log.v("talon_replies", "result: " + result.getTweets().size());
all = new ArrayList<twitter4j.Status>();
do {
Log.v("talon_replies", "do loop repetition");
if (!isRunning) {
return;
}
List<Status> tweets = result.getTweets();
for (twitter4j.Status tweet : tweets) {
if (tweet.getInReplyToStatusId() == id) {
all.add(tweet);
Log.v("talon_replies", tweet.getText());
}
}
if (all.size() > 0) {
for (int i = all.size() - 1; i >= 0; i--) {
Log.v("talon_replies", "inserting into arraylist:" + all.get(i).getText());
replies.add(all.get(i));
}
all.clear();
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
progressBar.setVisibility(View.GONE);
try {
if (replies.size() > 0) {
if (adapter == null || adapter.getCount() == 0) {
adapter = new TimelineArrayAdapter(context, replies);
listView.setAdapter(adapter);
listView.setVisibility(View.VISIBLE);
} else {
Log.v("talon_replies", "notifying adapter change");
adapter.notifyDataSetChanged();
}
} else {
none.setVisibility(View.VISIBLE);
}
} catch (Exception e) {
// none and it got the null object
e.printStackTrace();
listView.setVisibility(View.GONE);
none.setVisibility(View.VISIBLE);
}
}
});
}
try {
Thread.sleep(250);
} catch (Exception e) {
// since we are changing the arraylist for the adapter in the background, we need to make sure it
// gets updated before continuing
}
query = result.nextQuery();
if (query != null)
result = twitter.search(query);
} while (query != null);
} catch (Exception e) {
e.printStackTrace();
} catch (OutOfMemoryError e) {
e.printStackTrace();
}
if (replies.size() < 2) {
// nothing to show, so tell them that
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
progressBar.setVisibility(View.GONE);
listView.setVisibility(View.GONE);
none.setVisibility(View.VISIBLE);
}
});
}
}
});
getReplies.setPriority(8);
getReplies.start();
}
use of twitter4j.Query in project Talon-for-Twitter by klinker24.
the class TwitterSearchFragment method onRefreshStarted.
public void onRefreshStarted() {
new Thread(new Runnable() {
@Override
public void run() {
final long topId;
if (tweets.size() > 0) {
topId = tweets.get(0).getId();
} else {
topId = 0;
}
try {
Twitter twitter = Utils.getTwitter(context, settings);
query = new Query(searchQuery);
if (topTweets) {
query.setResultType(Query.POPULAR);
} else {
query.setResultType(null);
}
QueryResult result = twitter.search(query);
tweets.clear();
for (twitter4j.Status status : result.getTweets()) {
tweets.add(status);
}
if (result.hasNext()) {
query = result.nextQuery();
hasMore = true;
} else {
hasMore = false;
}
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
int top = 0;
for (int i = 0; i < tweets.size(); i++) {
if (tweets.get(i).getId() == topId) {
top = i;
break;
}
}
adapter = new TimelineArrayAdapter(context, tweets, onlyStatus);
listView.setAdapter(adapter);
listView.setVisibility(View.VISIBLE);
listView.setSelection(top);
spinner.setVisibility(View.GONE);
mPullToRefreshLayout.setRefreshing(false);
}
});
} catch (Exception e) {
e.printStackTrace();
((Activity) context).runOnUiThread(new Runnable() {
@Override
public void run() {
spinner.setVisibility(View.GONE);
mPullToRefreshLayout.setRefreshing(false);
}
});
}
}
}).start();
}
use of twitter4j.Query in project camel by apache.
the class SearchConsumer method directConsume.
public List<Exchange> directConsume() throws TwitterException {
String keywords = endpoint.getProperties().getKeywords();
if (keywords == null || keywords.trim().length() == 0) {
return Collections.emptyList();
}
Query query = new Query(keywords);
LOG.debug("Searching twitter with keywords: {}", keywords);
return search(query);
}
use of twitter4j.Query in project aries by apache.
the class TwitterQuery method start.
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
Twitter twitter = new Twitter();
Query query = new Query("from:theasf");
try {
QueryResult result = twitter.search(query);
List<Tweet> tweets = result.getTweets();
System.out.println("hits:" + tweets.size());
for (Tweet tweet : tweets) {
System.out.println(tweet.getFromUser() + ":" + StringEscapeUtils.unescapeXml(tweet.getText()));
}
} catch (Exception e) {
e.printStackTrace();
}
}
Aggregations