comparison mod_twitter/mod_twitter.lua @ 803:be509416d64c

mod_twitter: Use module:send()
author Kim Alvefur <zash@zash.se>
date Sat, 25 Aug 2012 19:25:16 +0200
parents 4f9cd19c4658
children ac9bf3fcbcfe
comparison
equal deleted inserted replaced
802:4e43becc3bbe 803:be509416d64c
20 20
21 function print_r(obj) 21 function print_r(obj)
22 return require("util.serialization").serialize(obj); 22 return require("util.serialization").serialize(obj);
23 end 23 end
24 24
25 function send_stanza(stanza)
26 if stanza ~= nil then
27 core_route_stanza(prosody.hosts[component_host], stanza)
28 end
29 end
30
31 function dmsg(jid, msg) 25 function dmsg(jid, msg)
32 module:log("debug", msg or "nil"); 26 module:log("debug", msg or "nil");
33 if jid ~= nil then 27 if jid ~= nil then
34 send_stanza(st.message({to=jid, from=component_host, type='chat'}):tag("body"):text(msg or "nil"):up()); 28 module:send(st.message({to=jid, from=component_host, type='chat'}):tag("body"):text(msg or "nil"):up());
35 end 29 end
36 end 30 end
37 31
38 function substring(string, start_string, ending_string) 32 function substring(string, start_string, ending_string)
39 local s_value_start, s_value_finish = nil, nil; 33 local s_value_start, s_value_finish = nil, nil;
97 if userdata ~= nil then 91 if userdata ~= nil then
98 self.data = userdata; 92 self.data = userdata;
99 if self.data['_twitter_sess'] ~= nil then 93 if self.data['_twitter_sess'] ~= nil then
100 http_headers['Cookie'] = "_twitter_sess="..self.data['_twitter_sess']..";"; 94 http_headers['Cookie'] = "_twitter_sess="..self.data['_twitter_sess']..";";
101 end 95 end
102 send_stanza(st.presence({to=self.jid, from=component_host})); 96 module:send(st.presence({to=self.jid, from=component_host}));
103 self:twitterAction("VerifyCredentials"); 97 self:twitterAction("VerifyCredentials");
104 if self.data.dosync == 1 then 98 if self.data.dosync == 1 then
105 self.dosync = true; 99 self.dosync = true;
106 timer.add_task(self.data.refreshrate, function() return users[self.jid]:sync(); end) 100 timer.add_task(self.data.refreshrate, function() return users[self.jid]:sync(); end)
107 end 101 end
108 else 102 else
109 send_stanza(st.message({to=self.jid, from=component_host, type='chat'}):tag("body"):text("You are not signed in.")); 103 module:send(st.message({to=self.jid, from=component_host, type='chat'}):tag("body"):text("You are not signed in."));
110 end 104 end
111 end 105 end
112 106
113 function user:logout() 107 function user:logout()
114 datamanager.store(self.jid, component_host, "data", self.data); 108 datamanager.store(self.jid, component_host, "data", self.data);
115 self.dosync = false; 109 self.dosync = false;
116 send_stanza(st.presence({to=self.jid, from=component_host, type='unavailable'})); 110 module:send(st.presence({to=self.jid, from=component_host, type='unavailable'}));
117 end 111 end
118 112
119 function user:sync() 113 function user:sync()
120 if self.dosync then 114 if self.dosync then
121 table.foreach(self.data.synclines, function(ind, line) self:twitterAction(line.name, {sinceid=line.sinceid}) end); 115 table.foreach(self.data.synclines, function(ind, line) self:twitterAction(line.name, {sinceid=line.sinceid}) end);
124 end 118 end
125 119
126 function user:signin() 120 function user:signin()
127 if datamanager.load(self.jid, component_host, "data") == nil then 121 if datamanager.load(self.jid, component_host, "data") == nil then
128 datamanager.store(self.jid, component_host, "data", {login=self.data.login, password=self.data.password, refreshrate=60, dosync=1, synclines={{name='HomeTimeline', sinceid=0}}, syncstatus=0}) 122 datamanager.store(self.jid, component_host, "data", {login=self.data.login, password=self.data.password, refreshrate=60, dosync=1, synclines={{name='HomeTimeline', sinceid=0}}, syncstatus=0})
129 send_stanza(st.presence{to=self.jid, from=component_host, type='subscribe'}); 123 module:send(st.presence{to=self.jid, from=component_host, type='subscribe'});
130 send_stanza(st.presence{to=self.jid, from=component_host, type='subscribed'}); 124 module:send(st.presence{to=self.jid, from=component_host, type='subscribed'});
131 end 125 end
132 end 126 end
133 127
134 function user:signout() 128 function user:signout()
135 if datamanager.load(self.jid, component_host, "data") ~= nil then 129 if datamanager.load(self.jid, component_host, "data") ~= nil then
136 datamanager.store(self.jid, component_host, "data", nil); 130 datamanager.store(self.jid, component_host, "data", nil);
137 send_stanza(st.presence({to=self.jid, from=component_host, type='unavailable'})); 131 module:send(st.presence({to=self.jid, from=component_host, type='unavailable'}));
138 send_stanza(st.presence({to=self.jid, from=component_host, type='unsubscribe'})); 132 module:send(st.presence({to=self.jid, from=component_host, type='unsubscribe'}));
139 send_stanza(st.presence({to=self.jid, from=component_host, type='unsubscribed'})); 133 module:send(st.presence({to=self.jid, from=component_host, type='unsubscribed'}));
140 end 134 end
141 end 135 end
142 136
143 local twitterApiUrl = "http://api.twitter.com"; 137 local twitterApiUrl = "http://api.twitter.com";
144 local twitterApiVersion = "1"; 138 local twitterApiVersion = "1";
200 if action.method == "GET" and post ~= {} then 194 if action.method == "GET" and post ~= {} then
201 url = url.."?"..http.formencode(post); 195 url = url.."?"..http.formencode(post);
202 end 196 end
203 http_add_action(line, url, action.method, post, function(...) self:twitterActionResult(...) end); 197 http_add_action(line, url, action.method, post, function(...) self:twitterActionResult(...) end);
204 else 198 else
205 send_stanza(st.message({to=self.jid, from=component_host, type='chat'}):tag("body"):text("Wrong twitter action!"):up()); 199 module:send(st.message({to=self.jid, from=component_host, type='chat'}):tag("body"):text("Wrong twitter action!"):up());
206 end 200 end
207 end 201 end
208 202
209 local twitterActionResultMap = { 203 local twitterActionResultMap = {
210 PublicTimeline = {exec=function(jid, response) 204 PublicTimeline = {exec=function(jid, response)
211 --send_stanza(st.message({to=jid, from=component_host, type='chat'}):tag("body"):text(print_r(response)):up()); 205 --module:send(st.message({to=jid, from=component_host, type='chat'}):tag("body"):text(print_r(response)):up());
212 return 206 return
213 end}, 207 end},
214 HomeTimeline = {exec=function(jid, response) 208 HomeTimeline = {exec=function(jid, response)
215 --send_stanza(st.message({to=jid, from=component_host, type='chat'}):tag("body"):text(print_r(response)):up()); 209 --module:send(st.message({to=jid, from=component_host, type='chat'}):tag("body"):text(print_r(response)):up());
216 return 210 return
217 end}, 211 end},
218 FriendsTimeline = {function(jid, response) 212 FriendsTimeline = {function(jid, response)
219 return 213 return
220 end}, 214 end},