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