mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Twitter: monitor direct messages
This commit is contained in:
		| @@ -112,9 +112,10 @@ | ||||
|             <option value="false">all public tweets</option> | ||||
|             <option value="true">the tweets of who you follow</option> | ||||
|             <option value="user">the tweets of specific users</option> | ||||
|             <option value="dm">your direct messages</option> | ||||
|         </select> | ||||
|     </div> | ||||
|     <div class="form-row"> | ||||
|     <div class="form-row" id="node-input-tags-row"> | ||||
|         <label for="node-input-tags"><i class="icon-tags"></i> <span id="node-input-tags-label">for</span></label> | ||||
|         <input type="text" id="node-input-tags" placeholder="comma-separated words, @ids, #tags"> | ||||
|     </div> | ||||
| @@ -159,9 +160,13 @@ | ||||
|             $("#node-input-user").change(function() { | ||||
|                 var type = $("#node-input-user option:selected").val(); | ||||
|                 if (type == "user") { | ||||
|                     $("#node-input-tags-row").show(); | ||||
|                     $("#node-input-tags-label").html("User"); | ||||
|                     $("#node-input-tags").attr("placeholder","comma-separated @twitter handles"); | ||||
|                 } else if (type == "dm") { | ||||
|                     $("#node-input-tags-row").hide(); | ||||
|                 } else { | ||||
|                     $("#node-input-tags-row").show(); | ||||
|                     $("#node-input-tags-label").html("for"); | ||||
|                     $("#node-input-tags").attr("placeholder","comma-separated words, @ids, #hashtags"); | ||||
|                 }                 | ||||
|   | ||||
| @@ -57,6 +57,10 @@ function TwitterInNode(n) { | ||||
|                 },function() {  | ||||
|                     var u = user+""; | ||||
|                     return function(err,cb) { | ||||
|                         if (err) { | ||||
|                             node.error(err); | ||||
|                             return; | ||||
|                         } | ||||
|                         if (cb[0]) { | ||||
|                             node.since_ids[u] = cb[0].id_str; | ||||
|                         } else { | ||||
| @@ -89,6 +93,48 @@ function TwitterInNode(n) { | ||||
|                     } | ||||
|                 }()); | ||||
|             } | ||||
|         } else if (this.user === "dm") { | ||||
|             node.poll_ids = []; | ||||
|             twit.getDirectMessages({ | ||||
|                     screen_name:node.twitterConfig.screen_name, | ||||
|                     trim_user:0, | ||||
|                     count:1 | ||||
|             },function(err,cb) { | ||||
|                 if (err) { | ||||
|                     node.error(err); | ||||
|                     return; | ||||
|                 } | ||||
|                 if (cb[0]) { | ||||
|                     node.since_id = cb[0].id_str; | ||||
|                 } else { | ||||
|                     node.since_id = '0'; | ||||
|                 } | ||||
|                 node.poll_ids.push(setInterval(function() { | ||||
|                         twit.getDirectMessages({ | ||||
|                                 screen_name:node.twitterConfig.screen_name, | ||||
|                                 trim_user:0, | ||||
|                                 since_id:node.since_id | ||||
|                         },function(err,cb) { | ||||
|                             if (cb) { | ||||
|                                 for (var t=cb.length-1;t>=0;t-=1) { | ||||
|                                     var tweet = cb[t]; | ||||
|                                     var where = tweet.user.location||""; | ||||
|                                     var la = tweet.lang || tweet.user.lang; | ||||
|                                     //console.log(tweet.user.location,"=>",tweet.user.screen_name,"=>",pay); | ||||
|                                     var msg = { topic:node.topic+"/"+tweet.user.screen_name, payload:tweet.text, location:where, lang:la, tweet:tweet }; | ||||
|                                     node.send(msg); | ||||
|                                     if (t == 0) { | ||||
|                                         node.since_id = tweet.id_str; | ||||
|                                     } | ||||
|                                 } | ||||
|                             } | ||||
|                             if (err) { | ||||
|                                 node.error(err); | ||||
|                             } | ||||
|                         }); | ||||
|                 },65000)); | ||||
|             }); | ||||
|              | ||||
|         } else if (this.tags !== "") { | ||||
|             try { | ||||
|                 var thing = 'statuses/filter'; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user