summaryrefslogtreecommitdiffstats
path: root/modules/twitter.module/module.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/twitter.module/module.cpp')
-rw-r--r--modules/twitter.module/module.cpp57
1 files changed, 42 insertions, 15 deletions
diff --git a/modules/twitter.module/module.cpp b/modules/twitter.module/module.cpp
index b0aa499..eb704cc 100644
--- a/modules/twitter.module/module.cpp
+++ b/modules/twitter.module/module.cpp
@@ -66,8 +66,9 @@ SYNAPSE_REGISTER(twitter_Request)
if (state==GET_USERS)
{
- out["url"]="http://api.twitter.com/1/statuses/user_timeline.json";
+ out["url"]="http://api.twitter.com/1/statuses/home_timeline.json?count=200";
}
+
else if (state==STREAM)
{
out["url"]="https://userstream.twitter.com/2/user.json";
@@ -180,23 +181,38 @@ SYNAPSE_REGISTER(curl_Ok)
{
Cvar data;
data.fromJson(queue);
- //traverse all the users and send their last statusses
- userIds="";
- for (CvarList::iterator I=data.list().begin(); I!=data.list().end(); I++)
- {
- if (userIds=="")
- userIds+=(*I)["id_str"].str();
- else
- userIds+=","+(*I)["id_str"].str();
+ if (data.which()==CVAR_MAP && data.isSet("error"))
+ {
Cmsg out;
- out.event="twitter_Data";
- out.map()=(*I).map();
+ out.event="twitter_Error";
+ out["error"]=data["error"].str();
out.send();
- }
- state=STREAM;
- request();
+ delayedRequest();
+ }
+ else
+ {
+ //traverse all the users and send their last statusses
+ userIds="";
+ ERROR("count " << data.list().size());
+
+ for (CvarList::reverse_iterator I=data.list().rbegin(); I!=data.list().rend(); I++)
+ {
+ if (userIds=="")
+ userIds+=(*I)["id_str"].str();
+ else
+ userIds+=","+(*I)["id_str"].str();
+
+ Cmsg out;
+ out.event="twitter_Data";
+ out.map()=(*I).map();
+ out.send();
+ }
+ state=STREAM;
+
+ request();
+ }
}
else if (state==STREAM)
{
@@ -251,7 +267,18 @@ SYNAPSE_REGISTER(curl_Data)
{
//convert to data
Cvar data;
- data.fromJson(jsonStr);
+ try
+ {
+ data.fromJson(jsonStr);
+ }
+ catch(...)
+ {
+ Cmsg out;
+ out.event="twitter_Error";
+ out["error"]=jsonStr;
+ out.send();
+ return;
+ }
//send out message
Cmsg out;