mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Twitter: monitor direct messages
This commit is contained in:
parent
8176506d72
commit
f2ed2365cd
@ -112,9 +112,10 @@
|
|||||||
<option value="false">all public tweets</option>
|
<option value="false">all public tweets</option>
|
||||||
<option value="true">the tweets of who you follow</option>
|
<option value="true">the tweets of who you follow</option>
|
||||||
<option value="user">the tweets of specific users</option>
|
<option value="user">the tweets of specific users</option>
|
||||||
|
<option value="dm">your direct messages</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</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>
|
<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">
|
<input type="text" id="node-input-tags" placeholder="comma-separated words, @ids, #tags">
|
||||||
</div>
|
</div>
|
||||||
@ -159,9 +160,13 @@
|
|||||||
$("#node-input-user").change(function() {
|
$("#node-input-user").change(function() {
|
||||||
var type = $("#node-input-user option:selected").val();
|
var type = $("#node-input-user option:selected").val();
|
||||||
if (type == "user") {
|
if (type == "user") {
|
||||||
|
$("#node-input-tags-row").show();
|
||||||
$("#node-input-tags-label").html("User");
|
$("#node-input-tags-label").html("User");
|
||||||
$("#node-input-tags").attr("placeholder","comma-separated @twitter handles");
|
$("#node-input-tags").attr("placeholder","comma-separated @twitter handles");
|
||||||
|
} else if (type == "dm") {
|
||||||
|
$("#node-input-tags-row").hide();
|
||||||
} else {
|
} else {
|
||||||
|
$("#node-input-tags-row").show();
|
||||||
$("#node-input-tags-label").html("for");
|
$("#node-input-tags-label").html("for");
|
||||||
$("#node-input-tags").attr("placeholder","comma-separated words, @ids, #hashtags");
|
$("#node-input-tags").attr("placeholder","comma-separated words, @ids, #hashtags");
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,10 @@ function TwitterInNode(n) {
|
|||||||
},function() {
|
},function() {
|
||||||
var u = user+"";
|
var u = user+"";
|
||||||
return function(err,cb) {
|
return function(err,cb) {
|
||||||
|
if (err) {
|
||||||
|
node.error(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (cb[0]) {
|
if (cb[0]) {
|
||||||
node.since_ids[u] = cb[0].id_str;
|
node.since_ids[u] = cb[0].id_str;
|
||||||
} else {
|
} 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 !== "") {
|
} else if (this.tags !== "") {
|
||||||
try {
|
try {
|
||||||
var thing = 'statuses/filter';
|
var thing = 'statuses/filter';
|
||||||
|
Loading…
Reference in New Issue
Block a user