safubot 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.yardoc/checksums +7 -7
- data/.yardoc/objects/root.dat +0 -0
- data/README.md +9 -4
- data/doc/Safubot.html +103 -1
- data/doc/Safubot/Bot.html +511 -224
- data/doc/Safubot/Evented.html +2 -3
- data/doc/Safubot/KnownUser.html +5 -5
- data/doc/Safubot/Log.html +37 -10
- data/doc/Safubot/Query.html +34 -7
- data/doc/Safubot/Request.html +3 -82
- data/doc/Safubot/Response.html +1 -1
- data/doc/Safubot/Test.html +76 -13
- data/doc/Safubot/Twitter.html +14 -2
- data/doc/Safubot/Twitter/Bot.html +441 -105
- data/doc/Safubot/Twitter/DirectMessage.html +16 -16
- data/doc/Safubot/Twitter/Tweet.html +31 -31
- data/doc/Safubot/XMPP.html +14 -2
- data/doc/Safubot/XMPP/Bot.html +324 -61
- data/doc/Safubot/XMPP/Message.html +13 -13
- data/doc/_index.html +1 -1
- data/doc/file.README.html +43 -5
- data/doc/index.html +43 -5
- data/doc/method_list.html +155 -83
- data/doc/top-level-namespace.html +1 -1
- data/lib/safubot/bot.rb +35 -16
- data/lib/safubot/evented.rb +1 -1
- data/lib/safubot/log.rb +2 -0
- data/lib/safubot/test_helper.rb +8 -1
- data/lib/safubot/twitter.rb +52 -21
- data/lib/safubot/version.rb +1 -1
- data/lib/safubot/xmpp.rb +34 -15
- data/safubot.gemspec +3 -3
- metadata +29 -29
data/doc/Safubot/Twitter.html
CHANGED
@@ -77,7 +77,19 @@
|
|
77
77
|
</dl>
|
78
78
|
<div class="clear"></div>
|
79
79
|
|
80
|
-
<h2>
|
80
|
+
<h2>Overview</h2><div class="docstring">
|
81
|
+
<div class="discussion">
|
82
|
+
<p>
|
83
|
+
XMPP-specific functionality.
|
84
|
+
</p>
|
85
|
+
|
86
|
+
|
87
|
+
</div>
|
88
|
+
</div>
|
89
|
+
<div class="tags">
|
90
|
+
|
91
|
+
|
92
|
+
</div><h2>Defined Under Namespace</h2>
|
81
93
|
<p class="children">
|
82
94
|
|
83
95
|
|
@@ -97,7 +109,7 @@
|
|
97
109
|
</div>
|
98
110
|
|
99
111
|
<div id="footer">
|
100
|
-
Generated on
|
112
|
+
Generated on Tue Nov 29 11:44:04 2011 by
|
101
113
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
102
114
|
0.7.3 (ruby-1.9.2).
|
103
115
|
</div>
|
@@ -169,6 +169,60 @@ Returns the value of attribute opts.
|
|
169
169
|
</p>
|
170
170
|
</div></span>
|
171
171
|
|
172
|
+
</li>
|
173
|
+
|
174
|
+
|
175
|
+
<li class="public ">
|
176
|
+
<span class="summary_signature">
|
177
|
+
|
178
|
+
<a href="#pid-instance_method" title="#pid (instance method)">- (Object) <strong>pid</strong> </a>
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
</span>
|
183
|
+
|
184
|
+
|
185
|
+
<span class="note title readonly">readonly</span>
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
<span class="summary_desc"><div class='inline'><p>
|
195
|
+
Returns the value of attribute pid.
|
196
|
+
</p>
|
197
|
+
</div></span>
|
198
|
+
|
199
|
+
</li>
|
200
|
+
|
201
|
+
|
202
|
+
<li class="public ">
|
203
|
+
<span class="summary_signature">
|
204
|
+
|
205
|
+
<a href="#stream-instance_method" title="#stream (instance method)">- (Object) <strong>stream</strong> </a>
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
</span>
|
210
|
+
|
211
|
+
|
212
|
+
<span class="note title readonly">readonly</span>
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
<span class="summary_desc"><div class='inline'><p>
|
222
|
+
Returns the value of attribute stream.
|
223
|
+
</p>
|
224
|
+
</div></span>
|
225
|
+
|
172
226
|
</li>
|
173
227
|
|
174
228
|
|
@@ -284,6 +338,30 @@ Stores a tweet.
|
|
284
338
|
</p>
|
285
339
|
</div></span>
|
286
340
|
|
341
|
+
</li>
|
342
|
+
|
343
|
+
|
344
|
+
<li class="public ">
|
345
|
+
<span class="summary_signature">
|
346
|
+
|
347
|
+
<a href="#init_stream-instance_method" title="#init_stream (instance method)">- (Object) <strong>init_stream</strong> </a>
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
</span>
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
|
360
|
+
<span class="summary_desc"><div class='inline'><p>
|
361
|
+
Initializes the TweetStream client.
|
362
|
+
</p>
|
363
|
+
</div></span>
|
364
|
+
|
287
365
|
</li>
|
288
366
|
|
289
367
|
|
@@ -403,7 +481,31 @@ Constructs the appropriate series of mentions for a reply to this tweet.
|
|
403
481
|
|
404
482
|
|
405
483
|
<span class="summary_desc"><div class='inline'><p>
|
406
|
-
Starts our TweetStream client running.
|
484
|
+
Starts our TweetStream client running in a new process.
|
485
|
+
</p>
|
486
|
+
</div></span>
|
487
|
+
|
488
|
+
</li>
|
489
|
+
|
490
|
+
|
491
|
+
<li class="public ">
|
492
|
+
<span class="summary_signature">
|
493
|
+
|
494
|
+
<a href="#run_stream-instance_method" title="#run_stream (instance method)">- (Object) <strong>run_stream</strong> </a>
|
495
|
+
|
496
|
+
|
497
|
+
|
498
|
+
</span>
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
<span class="summary_desc"><div class='inline'><p>
|
508
|
+
Runs the TweetStream client.
|
407
509
|
</p>
|
408
510
|
</div></span>
|
409
511
|
|
@@ -431,6 +533,30 @@ Sends a Twitter-sourced Response to the appropriate target.
|
|
431
533
|
</p>
|
432
534
|
</div></span>
|
433
535
|
|
536
|
+
</li>
|
537
|
+
|
538
|
+
|
539
|
+
<li class="public ">
|
540
|
+
<span class="summary_signature">
|
541
|
+
|
542
|
+
<a href="#stop-instance_method" title="#stop (instance method)">- (Object) <strong>stop</strong> </a>
|
543
|
+
|
544
|
+
|
545
|
+
|
546
|
+
</span>
|
547
|
+
|
548
|
+
|
549
|
+
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
|
554
|
+
|
555
|
+
<span class="summary_desc"><div class='inline'><p>
|
556
|
+
Shut down the TweetStream client.
|
557
|
+
</p>
|
558
|
+
</div></span>
|
559
|
+
|
434
560
|
</li>
|
435
561
|
|
436
562
|
|
@@ -476,21 +602,21 @@ Options are passed straight through to ::TweetStream and ::Twitter, but the
|
|
476
602
|
<pre class="lines">
|
477
603
|
|
478
604
|
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
605
|
+
283
|
606
|
+
284
|
607
|
+
285
|
608
|
+
286
|
609
|
+
287
|
610
|
+
288
|
611
|
+
289
|
612
|
+
290
|
613
|
+
291
|
614
|
+
292
|
615
|
+
293
|
616
|
+
294</pre>
|
491
617
|
</td>
|
492
618
|
<td>
|
493
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
619
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 283</span>
|
494
620
|
|
495
621
|
<span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='id options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
496
622
|
<span class='id defaults'>defaults</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:username</span> <span class='op'>=></span> <span class='kw'>nil</span><span class='comma'>,</span>
|
@@ -542,12 +668,12 @@ Returns the value of attribute client
|
|
542
668
|
<pre class="lines">
|
543
669
|
|
544
670
|
|
545
|
-
159
|
546
671
|
160
|
547
|
-
161
|
672
|
+
161
|
673
|
+
162</pre>
|
548
674
|
</td>
|
549
675
|
<td>
|
550
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
676
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
|
551
677
|
|
552
678
|
<span class='kw'>def</span> <span class='id client'>client</span>
|
553
679
|
<span class='ivar'>@client</span>
|
@@ -585,12 +711,12 @@ Returns the value of attribute opts
|
|
585
711
|
<pre class="lines">
|
586
712
|
|
587
713
|
|
588
|
-
159
|
589
714
|
160
|
590
|
-
161
|
715
|
+
161
|
716
|
+
162</pre>
|
591
717
|
</td>
|
592
718
|
<td>
|
593
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
719
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
|
594
720
|
|
595
721
|
<span class='kw'>def</span> <span class='id opts'>opts</span>
|
596
722
|
<span class='ivar'>@opts</span>
|
@@ -601,6 +727,92 @@ Returns the value of attribute opts
|
|
601
727
|
</div>
|
602
728
|
|
603
729
|
|
730
|
+
<span id=""></span>
|
731
|
+
<span id="pid-instance_method"></span>
|
732
|
+
<div class="method_details ">
|
733
|
+
<p class="signature " id="pid-instance_method">
|
734
|
+
|
735
|
+
- (<tt>Object</tt>) <strong>pid</strong> <span class="extras">(readonly)</span>
|
736
|
+
|
737
|
+
|
738
|
+
|
739
|
+
</p><div class="docstring">
|
740
|
+
<div class="discussion">
|
741
|
+
<p>
|
742
|
+
Returns the value of attribute pid
|
743
|
+
</p>
|
744
|
+
|
745
|
+
|
746
|
+
</div>
|
747
|
+
</div>
|
748
|
+
<div class="tags">
|
749
|
+
|
750
|
+
|
751
|
+
</div><table class="source_code">
|
752
|
+
<tr>
|
753
|
+
<td>
|
754
|
+
<pre class="lines">
|
755
|
+
|
756
|
+
|
757
|
+
160
|
758
|
+
161
|
759
|
+
162</pre>
|
760
|
+
</td>
|
761
|
+
<td>
|
762
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
|
763
|
+
|
764
|
+
<span class='kw'>def</span> <span class='id pid'>pid</span>
|
765
|
+
<span class='ivar'>@pid</span>
|
766
|
+
<span class='kw'>end</span></pre>
|
767
|
+
</td>
|
768
|
+
</tr>
|
769
|
+
</table>
|
770
|
+
</div>
|
771
|
+
|
772
|
+
|
773
|
+
<span id=""></span>
|
774
|
+
<span id="stream-instance_method"></span>
|
775
|
+
<div class="method_details ">
|
776
|
+
<p class="signature " id="stream-instance_method">
|
777
|
+
|
778
|
+
- (<tt>Object</tt>) <strong>stream</strong> <span class="extras">(readonly)</span>
|
779
|
+
|
780
|
+
|
781
|
+
|
782
|
+
</p><div class="docstring">
|
783
|
+
<div class="discussion">
|
784
|
+
<p>
|
785
|
+
Returns the value of attribute stream
|
786
|
+
</p>
|
787
|
+
|
788
|
+
|
789
|
+
</div>
|
790
|
+
</div>
|
791
|
+
<div class="tags">
|
792
|
+
|
793
|
+
|
794
|
+
</div><table class="source_code">
|
795
|
+
<tr>
|
796
|
+
<td>
|
797
|
+
<pre class="lines">
|
798
|
+
|
799
|
+
|
800
|
+
160
|
801
|
+
161
|
802
|
+
162</pre>
|
803
|
+
</td>
|
804
|
+
<td>
|
805
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
|
806
|
+
|
807
|
+
<span class='kw'>def</span> <span class='id stream'>stream</span>
|
808
|
+
<span class='ivar'>@stream</span>
|
809
|
+
<span class='kw'>end</span></pre>
|
810
|
+
</td>
|
811
|
+
</tr>
|
812
|
+
</table>
|
813
|
+
</div>
|
814
|
+
|
815
|
+
|
604
816
|
<span id=""></span>
|
605
817
|
<span id="username-instance_method"></span>
|
606
818
|
<div class="method_details ">
|
@@ -628,12 +840,12 @@ Returns the value of attribute username
|
|
628
840
|
<pre class="lines">
|
629
841
|
|
630
842
|
|
631
|
-
159
|
632
843
|
160
|
633
|
-
161
|
844
|
+
161
|
845
|
+
162</pre>
|
634
846
|
</td>
|
635
847
|
<td>
|
636
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
848
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 160</span>
|
637
849
|
|
638
850
|
<span class='kw'>def</span> <span class='id username'>username</span>
|
639
851
|
<span class='ivar'>@username</span>
|
@@ -675,13 +887,13 @@ Stores a DM and creates a matching Request as needed.
|
|
675
887
|
<pre class="lines">
|
676
888
|
|
677
889
|
|
678
|
-
179
|
679
890
|
180
|
680
891
|
181
|
681
|
-
182
|
892
|
+
182
|
893
|
+
183</pre>
|
682
894
|
</td>
|
683
895
|
<td>
|
684
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
896
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 180</span>
|
685
897
|
|
686
898
|
<span class='kw'>def</span> <span class='id handle_message'>handle_message</span><span class='lparen'>(</span><span class='id message'>message</span><span class='rparen'>)</span>
|
687
899
|
<span class='kw'>return</span> <span class='kw'>if</span> <span class='id message'>message</span><span class='period'>.</span><span class='id sender'>sender</span><span class='period'>.</span><span class='id screen_name'>screen_name</span> <span class='op'>==</span> <span class='ivar'>@username</span>
|
@@ -717,12 +929,12 @@ Emit a request event unless the request is already processed.
|
|
717
929
|
<pre class="lines">
|
718
930
|
|
719
931
|
|
720
|
-
174
|
721
932
|
175
|
722
|
-
176
|
933
|
+
176
|
934
|
+
177</pre>
|
723
935
|
</td>
|
724
936
|
<td>
|
725
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
937
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 175</span>
|
726
938
|
|
727
939
|
<span class='kw'>def</span> <span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id req'>req</span><span class='rparen'>)</span>
|
728
940
|
<span class='id emit'>emit</span><span class='lparen'>(</span><span class='symbol'>:request</span><span class='comma'>,</span> <span class='id req'>req</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id req'>req</span><span class='period'>.</span><span class='id nil?'>nil?</span> <span class='op'>||</span> <span class='id req'>req</span><span class='period'>.</span><span class='id processed'>processed</span>
|
@@ -758,17 +970,17 @@ Otherwise, emit a :timeline event.
|
|
758
970
|
<pre class="lines">
|
759
971
|
|
760
972
|
|
761
|
-
186
|
762
973
|
187
|
763
974
|
188
|
764
975
|
189
|
765
976
|
190
|
766
977
|
191
|
767
978
|
192
|
768
|
-
193
|
979
|
+
193
|
980
|
+
194</pre>
|
769
981
|
</td>
|
770
982
|
<td>
|
771
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
983
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 187</span>
|
772
984
|
|
773
985
|
<span class='kw'>def</span> <span class='id handle_tweet'>handle_tweet</span><span class='lparen'>(</span><span class='id status'>status</span><span class='rparen'>)</span>
|
774
986
|
<span class='kw'>return</span> <span class='kw'>if</span> <span class='id status'>status</span><span class='period'>.</span><span class='id user'>user</span><span class='period'>.</span><span class='id screen_name'>screen_name</span> <span class='op'>==</span> <span class='ivar'>@username</span>
|
@@ -781,6 +993,80 @@ Otherwise, emit a :timeline event.
|
|
781
993
|
</td>
|
782
994
|
</tr>
|
783
995
|
</table>
|
996
|
+
</div>
|
997
|
+
|
998
|
+
<div class="method_details ">
|
999
|
+
<p class="signature " id="init_stream-instance_method">
|
1000
|
+
|
1001
|
+
- (<tt>Object</tt>) <strong>init_stream</strong>
|
1002
|
+
|
1003
|
+
|
1004
|
+
|
1005
|
+
</p><div class="docstring">
|
1006
|
+
<div class="discussion">
|
1007
|
+
<p>
|
1008
|
+
Initializes the TweetStream client.
|
1009
|
+
</p>
|
1010
|
+
|
1011
|
+
|
1012
|
+
</div>
|
1013
|
+
</div>
|
1014
|
+
<div class="tags">
|
1015
|
+
|
1016
|
+
|
1017
|
+
</div><table class="source_code">
|
1018
|
+
<tr>
|
1019
|
+
<td>
|
1020
|
+
<pre class="lines">
|
1021
|
+
|
1022
|
+
|
1023
|
+
227
|
1024
|
+
228
|
1025
|
+
229
|
1026
|
+
230
|
1027
|
+
231
|
1028
|
+
232
|
1029
|
+
233
|
1030
|
+
234
|
1031
|
+
235
|
1032
|
+
236
|
1033
|
+
237
|
1034
|
+
238
|
1035
|
+
239
|
1036
|
+
240
|
1037
|
+
241
|
1038
|
+
242
|
1039
|
+
243
|
1040
|
+
244
|
1041
|
+
245
|
1042
|
+
246</pre>
|
1043
|
+
</td>
|
1044
|
+
<td>
|
1045
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 227</span>
|
1046
|
+
|
1047
|
+
<span class='kw'>def</span> <span class='id init_stream'>init_stream</span>
|
1048
|
+
<span class='ivar'>@stream</span> <span class='op'>=</span> <span class='const'>TweetStream</span><span class='op'>::</span><span class='const'>Client</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='ivar'>@opts</span><span class='rparen'>)</span>
|
1049
|
+
|
1050
|
+
<span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_direct_message'>on_direct_message</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id message'>message</span><span class='op'>|</span>
|
1051
|
+
<span class='id req'>req</span> <span class='op'>=</span> <span class='id handle_message'>handle_message</span><span class='lparen'>(</span><span class='id message'>message</span><span class='rparen'>)</span>
|
1052
|
+
<span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id req'>req</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id req'>req</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Request</span>
|
1053
|
+
<span class='kw'>end</span>
|
1054
|
+
|
1055
|
+
<span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_error'>on_error</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id err'>err</span><span class='op'>|</span>
|
1056
|
+
<span class='kw'>if</span> <span class='id err'>err</span><span class='period'>.</span><span class='id match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>invalid status code: 401</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
|
1057
|
+
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TweetStream authentication failure!</span><span class='tstring_end'>"</span></span>
|
1058
|
+
<span class='kw'>else</span>
|
1059
|
+
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Unhandled TweetStream error: </span><span class='embexpr_beg'>#{</span><span class='id error_report'>error_report</span><span class='lparen'>(</span><span class='gvar'>$!</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
1060
|
+
<span class='kw'>end</span>
|
1061
|
+
<span class='kw'>end</span>
|
1062
|
+
|
1063
|
+
<span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_inited'>on_inited</span> <span class='kw'>do</span>
|
1064
|
+
<span class='const'>Log</span><span class='period'>.</span><span class='id info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TweetStream client is online at @</span><span class='embexpr_beg'>#{</span><span class='ivar'>@username</span><span class='rbrace'>}</span><span class='tstring_content'> :3</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1065
|
+
<span class='kw'>end</span>
|
1066
|
+
<span class='kw'>end</span></pre>
|
1067
|
+
</td>
|
1068
|
+
</tr>
|
1069
|
+
</table>
|
784
1070
|
</div>
|
785
1071
|
|
786
1072
|
<div class="method_details ">
|
@@ -810,7 +1096,6 @@ offline.
|
|
810
1096
|
<pre class="lines">
|
811
1097
|
|
812
1098
|
|
813
|
-
209
|
814
1099
|
210
|
815
1100
|
211
|
816
1101
|
212
|
@@ -824,10 +1109,11 @@ offline.
|
|
824
1109
|
220
|
825
1110
|
221
|
826
1111
|
222
|
827
|
-
223
|
1112
|
+
223
|
1113
|
+
224</pre>
|
828
1114
|
</td>
|
829
1115
|
<td>
|
830
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
1116
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 210</span>
|
831
1117
|
|
832
1118
|
<span class='kw'>def</span> <span class='id pull'>pull</span>
|
833
1119
|
<span class='kw'>begin</span>
|
@@ -841,7 +1127,7 @@ offline.
|
|
841
1127
|
<span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>Twitter</span><span class='op'>::</span><span class='const'>Error</span><span class='op'>::</span><span class='const'>ServiceUnavailable</span>
|
842
1128
|
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Twitter: Couldn't pull tweets due to temporary service unavailability.</span><span class='tstring_end'>"</span></span>
|
843
1129
|
<span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=></span> <span class='id e'>e</span>
|
844
|
-
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Twitter: Unhandled error: </span><span class='embexpr_beg'>#{</span><span class='id
|
1130
|
+
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Twitter: Unhandled error: </span><span class='embexpr_beg'>#{</span><span class='id error_report'>error_report</span><span class='lparen'>(</span><span class='id e'>e</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
845
1131
|
<span class='kw'>end</span>
|
846
1132
|
<span class='kw'>end</span></pre>
|
847
1133
|
</td>
|
@@ -912,12 +1198,12 @@ The response text.
|
|
912
1198
|
<pre class="lines">
|
913
1199
|
|
914
1200
|
|
915
|
-
203
|
916
1201
|
204
|
917
|
-
205
|
1202
|
+
205
|
1203
|
+
206</pre>
|
918
1204
|
</td>
|
919
1205
|
<td>
|
920
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
1206
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 204</span>
|
921
1207
|
|
922
1208
|
<span class='kw'>def</span> <span class='id reply'>reply</span><span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='comma'>,</span> <span class='id text'>text</span><span class='rparen'>)</span>
|
923
1209
|
<span class='ivar'>@client</span><span class='period'>.</span><span class='id update'>update</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id reply_header'>reply_header</span><span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id text'>text</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='symbol'>:in_reply_to_status_id</span> <span class='op'>=></span> <span class='id tweet'>tweet</span><span class='period'>.</span><span class='id raw'>raw</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>id</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
@@ -952,12 +1238,12 @@ Constructs the appropriate series of mentions for a reply to this tweet.
|
|
952
1238
|
<pre class="lines">
|
953
1239
|
|
954
1240
|
|
955
|
-
196
|
956
1241
|
197
|
957
|
-
198
|
1242
|
+
198
|
1243
|
+
199</pre>
|
958
1244
|
</td>
|
959
1245
|
<td>
|
960
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
1246
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 197</span>
|
961
1247
|
|
962
1248
|
<span class='kw'>def</span> <span class='id reply_header'>reply_header</span><span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='rparen'>)</span>
|
963
1249
|
<span class='lparen'>(</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>@</span><span class='embexpr_beg'>#{</span><span class='id tweet'>tweet</span><span class='period'>.</span><span class='id username'>username</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='lparen'>(</span><span class='id tweet'>tweet</span><span class='period'>.</span><span class='id header_mentions'>header_mentions</span> <span class='op'>-</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>@</span><span class='embexpr_beg'>#{</span><span class='ivar'>@username</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id join'>join</span>
|
@@ -977,7 +1263,55 @@ Constructs the appropriate series of mentions for a reply to this tweet.
|
|
977
1263
|
</p><div class="docstring">
|
978
1264
|
<div class="discussion">
|
979
1265
|
<p>
|
980
|
-
Starts our TweetStream client running.
|
1266
|
+
Starts our TweetStream client running in a new process.
|
1267
|
+
</p>
|
1268
|
+
|
1269
|
+
|
1270
|
+
</div>
|
1271
|
+
</div>
|
1272
|
+
<div class="tags">
|
1273
|
+
|
1274
|
+
|
1275
|
+
</div><table class="source_code">
|
1276
|
+
<tr>
|
1277
|
+
<td>
|
1278
|
+
<pre class="lines">
|
1279
|
+
|
1280
|
+
|
1281
|
+
267
|
1282
|
+
268
|
1283
|
+
269
|
1284
|
+
270
|
1285
|
+
271
|
1286
|
+
272
|
1287
|
+
273</pre>
|
1288
|
+
</td>
|
1289
|
+
<td>
|
1290
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 267</span>
|
1291
|
+
|
1292
|
+
<span class='kw'>def</span> <span class='id run'>run</span>
|
1293
|
+
<span class='ivar'>@pid</span> <span class='op'>=</span> <span class='const'>Process</span><span class='period'>.</span><span class='id fork'>fork</span> <span class='kw'>do</span>
|
1294
|
+
<span class='const'>Signal</span><span class='period'>.</span><span class='id trap'>trap</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TERM</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id stop'>stop</span> <span class='rbrace'>}</span>
|
1295
|
+
<span class='id init_stream'>init_stream</span>
|
1296
|
+
<span class='id run_stream'>run_stream</span>
|
1297
|
+
<span class='kw'>end</span>
|
1298
|
+
<span class='kw'>end</span></pre>
|
1299
|
+
</td>
|
1300
|
+
</tr>
|
1301
|
+
</table>
|
1302
|
+
</div>
|
1303
|
+
|
1304
|
+
<div class="method_details ">
|
1305
|
+
<p class="signature " id="run_stream-instance_method">
|
1306
|
+
|
1307
|
+
- (<tt>Object</tt>) <strong>run_stream</strong>
|
1308
|
+
|
1309
|
+
|
1310
|
+
|
1311
|
+
</p><div class="docstring">
|
1312
|
+
<div class="discussion">
|
1313
|
+
<p>
|
1314
|
+
Runs the TweetStream client.
|
981
1315
|
</p>
|
982
1316
|
|
983
1317
|
|
@@ -992,29 +1326,6 @@ Starts our TweetStream client running.
|
|
992
1326
|
<pre class="lines">
|
993
1327
|
|
994
1328
|
|
995
|
-
226
|
996
|
-
227
|
997
|
-
228
|
998
|
-
229
|
999
|
-
230
|
1000
|
-
231
|
1001
|
-
232
|
1002
|
-
233
|
1003
|
-
234
|
1004
|
-
235
|
1005
|
-
236
|
1006
|
-
237
|
1007
|
-
238
|
1008
|
-
239
|
1009
|
-
240
|
1010
|
-
241
|
1011
|
-
242
|
1012
|
-
243
|
1013
|
-
244
|
1014
|
-
245
|
1015
|
-
246
|
1016
|
-
247
|
1017
|
-
248
|
1018
1329
|
249
|
1019
1330
|
250
|
1020
1331
|
251
|
@@ -1027,46 +1338,29 @@ Starts our TweetStream client running.
|
|
1027
1338
|
258
|
1028
1339
|
259
|
1029
1340
|
260
|
1030
|
-
261
|
1341
|
+
261
|
1342
|
+
262
|
1343
|
+
263
|
1344
|
+
264</pre>
|
1031
1345
|
</td>
|
1032
1346
|
<td>
|
1033
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
1034
|
-
|
1035
|
-
<span class='kw'>def</span> <span class='id run'>run</span>
|
1036
|
-
<span class='const'>Fiber</span><span class='period'>.</span><span class='id new'>new</span> <span class='kw'>do</span>
|
1037
|
-
<span class='ivar'>@stream</span> <span class='op'>=</span> <span class='const'>TweetStream</span><span class='op'>::</span><span class='const'>Client</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='ivar'>@opts</span><span class='rparen'>)</span>
|
1038
|
-
|
1039
|
-
<span class='ivar'>@stream</span><span class='period'>.</span><span class='id on_direct_message'>on_direct_message</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id message'>message</span><span class='op'>|</span>
|
1040
|
-
<span class='id dm'>dm</span> <span class='op'>=</span> <span class='id handle_message'>handle_message</span><span class='lparen'>(</span><span class='id message'>message</span><span class='rparen'>)</span>
|
1041
|
-
<span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id dm'>dm</span><span class='period'>.</span><span class='id request'>request</span><span class='rparen'>)</span>
|
1042
|
-
<span class='kw'>end</span>
|
1347
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 249</span>
|
1043
1348
|
|
1044
|
-
|
1045
|
-
<span class='
|
1046
|
-
|
1047
|
-
|
1048
|
-
<span class='kw'>
|
1049
|
-
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Unhandled TweetStream error: </span><span class='embexpr_beg'>#{</span><span class='gvar'>$!</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='gvar'>$@</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
1050
|
-
<span class='kw'>end</span>
|
1349
|
+
<span class='kw'>def</span> <span class='id run_stream'>run_stream</span>
|
1350
|
+
<span class='kw'>begin</span>
|
1351
|
+
<span class='ivar'>@stream</span><span class='period'>.</span><span class='id userstream'>userstream</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id status'>status</span><span class='op'>|</span>
|
1352
|
+
<span class='id req'>req</span> <span class='op'>=</span> <span class='id handle_tweet'>handle_tweet</span><span class='lparen'>(</span><span class='id status'>status</span><span class='rparen'>)</span>
|
1353
|
+
<span class='id handle_request'>handle_request</span><span class='lparen'>(</span><span class='id req'>req</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id req'>req</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Request</span>
|
1051
1354
|
<span class='kw'>end</span>
|
1052
|
-
|
1053
|
-
<span class='kw'>
|
1054
|
-
<span class='
|
1055
|
-
|
1056
|
-
|
1057
|
-
<span class='kw'>end</span>
|
1058
|
-
<span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=></span> <span class='id e'>e</span>
|
1059
|
-
<span class='kw'>if</span> <span class='id e'>e</span><span class='period'>.</span><span class='id is_a?'>is_a?</span> <span class='const'>Interrupt</span>
|
1060
|
-
<span class='id exit'>exit</span>
|
1061
|
-
<span class='kw'>else</span>
|
1062
|
-
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TweetStream event loop exited: </span><span class='embexpr_beg'>#{</span><span class='gvar'>$!</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='gvar'>$@</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
1063
|
-
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Reinitialising TweetStream in 5 seconds.</span><span class='tstring_end'>"</span></span>
|
1064
|
-
<span class='const'>EM</span><span class='op'>::</span><span class='const'>Timer</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id run'>run</span> <span class='rbrace'>}</span>
|
1065
|
-
<span class='kw'>end</span>
|
1355
|
+
<span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=></span> <span class='id e'>e</span>
|
1356
|
+
<span class='kw'>unless</span> <span class='id e'>e</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Interrupt</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id e'>e</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>SignalException</span><span class='rparen'>)</span>
|
1357
|
+
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TweetStream client exited unexpectedly: </span><span class='embexpr_beg'>#{</span><span class='id error_report'>error_report</span><span class='lparen'>(</span><span class='id e'>e</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
1358
|
+
<span class='const'>Log</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Restarting TweetStream client in 5 seconds.</span><span class='tstring_end'>"</span></span>
|
1359
|
+
<span class='id sleep'>sleep</span> <span class='int'>5</span><span class='semicolon'>;</span> <span class='id init_stream'>init_stream</span><span class='semicolon'>;</span> <span class='id run_stream'>run_stream</span>
|
1066
1360
|
<span class='kw'>end</span>
|
1067
|
-
|
1068
|
-
<span class='const'>Log</span><span class='period'>.</span><span class='id info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>
|
1069
|
-
<span class='kw'>end</span
|
1361
|
+
<span class='kw'>else</span>
|
1362
|
+
<span class='const'>Log</span><span class='period'>.</span><span class='id info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TweetStream client shutdown complete.</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
1363
|
+
<span class='kw'>end</span>
|
1070
1364
|
<span class='kw'>end</span></pre>
|
1071
1365
|
</td>
|
1072
1366
|
</tr>
|
@@ -1098,7 +1392,6 @@ Sends a Twitter-sourced Response to the appropriate target.
|
|
1098
1392
|
<pre class="lines">
|
1099
1393
|
|
1100
1394
|
|
1101
|
-
162
|
1102
1395
|
163
|
1103
1396
|
164
|
1104
1397
|
165
|
@@ -1107,10 +1400,11 @@ Sends a Twitter-sourced Response to the appropriate target.
|
|
1107
1400
|
168
|
1108
1401
|
169
|
1109
1402
|
170
|
1110
|
-
171
|
1403
|
+
171
|
1404
|
+
172</pre>
|
1111
1405
|
</td>
|
1112
1406
|
<td>
|
1113
|
-
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line
|
1407
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 163</span>
|
1114
1408
|
|
1115
1409
|
<span class='kw'>def</span> <span class='id send'>send</span><span class='lparen'>(</span><span class='id resp'>resp</span><span class='rparen'>)</span>
|
1116
1410
|
<span class='id source'>source</span> <span class='op'>=</span> <span class='id resp'>resp</span><span class='period'>.</span><span class='id request'>request</span><span class='period'>.</span><span class='id source'>source</span>
|
@@ -1125,6 +1419,48 @@ Sends a Twitter-sourced Response to the appropriate target.
|
|
1125
1419
|
</td>
|
1126
1420
|
</tr>
|
1127
1421
|
</table>
|
1422
|
+
</div>
|
1423
|
+
|
1424
|
+
<div class="method_details ">
|
1425
|
+
<p class="signature " id="stop-instance_method">
|
1426
|
+
|
1427
|
+
- (<tt>Object</tt>) <strong>stop</strong>
|
1428
|
+
|
1429
|
+
|
1430
|
+
|
1431
|
+
</p><div class="docstring">
|
1432
|
+
<div class="discussion">
|
1433
|
+
<p>
|
1434
|
+
Shut down the TweetStream client.
|
1435
|
+
</p>
|
1436
|
+
|
1437
|
+
|
1438
|
+
</div>
|
1439
|
+
</div>
|
1440
|
+
<div class="tags">
|
1441
|
+
|
1442
|
+
|
1443
|
+
</div><table class="source_code">
|
1444
|
+
<tr>
|
1445
|
+
<td>
|
1446
|
+
<pre class="lines">
|
1447
|
+
|
1448
|
+
|
1449
|
+
276
|
1450
|
+
277
|
1451
|
+
278
|
1452
|
+
279</pre>
|
1453
|
+
</td>
|
1454
|
+
<td>
|
1455
|
+
<pre class="code"><span class="info file"># File 'lib/safubot/twitter.rb', line 276</span>
|
1456
|
+
|
1457
|
+
<span class='kw'>def</span> <span class='id stop'>stop</span>
|
1458
|
+
<span class='ivar'>@stream</span><span class='period'>.</span><span class='id stop'>stop</span> <span class='kw'>if</span> <span class='ivar'>@stream</span>
|
1459
|
+
<span class='const'>Process</span><span class='period'>.</span><span class='id kill'>kill</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TERM</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='ivar'>@pid</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@pid</span>
|
1460
|
+
<span class='kw'>end</span></pre>
|
1461
|
+
</td>
|
1462
|
+
</tr>
|
1463
|
+
</table>
|
1128
1464
|
</div>
|
1129
1465
|
|
1130
1466
|
</div>
|
@@ -1132,7 +1468,7 @@ Sends a Twitter-sourced Response to the appropriate target.
|
|
1132
1468
|
</div>
|
1133
1469
|
|
1134
1470
|
<div id="footer">
|
1135
|
-
Generated on
|
1471
|
+
Generated on Tue Nov 29 11:44:04 2011 by
|
1136
1472
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1137
1473
|
0.7.3 (ruby-1.9.2).
|
1138
1474
|
</div>
|