mirror of
https://github.com/node-red/node-red-nodes.git
synced 2025-03-01 10:37:43 +00:00
Add i18n content for moved core nodes
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
|
||||
module.exports = function(RED) {
|
||||
"use strict";
|
||||
var Ntwitter = require('twitter-ng');
|
||||
var ntwitter = require('twitter-ng');
|
||||
var OAuth= require('oauth').OAuth;
|
||||
var request = require('request');
|
||||
|
||||
@@ -37,17 +37,17 @@ module.exports = function(RED) {
|
||||
* Populate msg.location based on data found in msg.tweet.
|
||||
*/
|
||||
function addLocationToTweet(msg) {
|
||||
if (msg.tweet) {
|
||||
if (msg.tweet.geo) { // if geo is set, always set location from geo
|
||||
if (msg.tweet.geo.coordinates && msg.tweet.geo.coordinates.length === 2) {
|
||||
if(msg.tweet) {
|
||||
if(msg.tweet.geo) { // if geo is set, always set location from geo
|
||||
if(msg.tweet.geo.coordinates && msg.tweet.geo.coordinates.length === 2) {
|
||||
if (!msg.location) { msg.location = {}; }
|
||||
// coordinates[0] is lat, coordinates[1] is lon
|
||||
msg.location.lat = msg.tweet.geo.coordinates[0];
|
||||
msg.location.lon = msg.tweet.geo.coordinates[1];
|
||||
msg.location.icon = "twitter";
|
||||
}
|
||||
} else if (msg.tweet.coordinates) { // otherwise attempt go get it from coordinates
|
||||
if (msg.tweet.coordinates.coordinates && msg.tweet.coordinates.coordinates.length === 2) {
|
||||
} else if(msg.tweet.coordinates) { // otherwise attempt go get it from coordinates
|
||||
if(msg.tweet.coordinates.coordinates && msg.tweet.coordinates.coordinates.length === 2) {
|
||||
if (!msg.location) { msg.location = {}; }
|
||||
// WARNING! coordinates[1] is lat, coordinates[0] is lon!!!
|
||||
msg.location.lat = msg.tweet.coordinates.coordinates[1];
|
||||
@@ -70,7 +70,7 @@ module.exports = function(RED) {
|
||||
var credentials = RED.nodes.getCredentials(this.twitter);
|
||||
|
||||
if (credentials && credentials.screen_name == this.twitterConfig.screen_name) {
|
||||
var twit = new Ntwitter({
|
||||
var twit = new ntwitter({
|
||||
consumer_key: "OKjYEd1ef2bfFolV25G5nQ",
|
||||
consumer_secret: "meRsltCktVMUI8gmggpXett7WBLd1k0qidYazoML6g",
|
||||
access_token_key: credentials.access_token,
|
||||
@@ -92,10 +92,10 @@ module.exports = function(RED) {
|
||||
for (var i=0;i<users.length;i++) {
|
||||
var user = users[i].replace(" ","");
|
||||
twit.getUserTimeline({
|
||||
screen_name:user,
|
||||
trim_user:0,
|
||||
count:1
|
||||
},(function() {
|
||||
screen_name:user,
|
||||
trim_user:0,
|
||||
count:1
|
||||
},function() {
|
||||
var u = user+"";
|
||||
return function(err,cb) {
|
||||
if (err) {
|
||||
@@ -109,9 +109,9 @@ module.exports = function(RED) {
|
||||
}
|
||||
node.poll_ids.push(setInterval(function() {
|
||||
twit.getUserTimeline({
|
||||
screen_name:u,
|
||||
trim_user:0,
|
||||
since_id:node.since_ids[u]
|
||||
screen_name:u,
|
||||
trim_user:0,
|
||||
since_id:node.since_ids[u]
|
||||
},function(err,cb) {
|
||||
if (cb) {
|
||||
for (var t=cb.length-1;t>=0;t-=1) {
|
||||
@@ -124,7 +124,7 @@ module.exports = function(RED) {
|
||||
addLocationToTweet(msg);
|
||||
}
|
||||
node.send(msg);
|
||||
if (t === 0) {
|
||||
if (t == 0) {
|
||||
node.since_ids[u] = tweet.id_str;
|
||||
}
|
||||
}
|
||||
@@ -135,14 +135,14 @@ module.exports = function(RED) {
|
||||
});
|
||||
},60000));
|
||||
}
|
||||
}()));
|
||||
}());
|
||||
}
|
||||
} else if (this.user === "dm") {
|
||||
node.poll_ids = [];
|
||||
twit.getDirectMessages({
|
||||
screen_name:node.twitterConfig.screen_name,
|
||||
trim_user:0,
|
||||
count:1
|
||||
screen_name:node.twitterConfig.screen_name,
|
||||
trim_user:0,
|
||||
count:1
|
||||
},function(err,cb) {
|
||||
if (err) {
|
||||
node.error(err);
|
||||
@@ -154,11 +154,11 @@ module.exports = function(RED) {
|
||||
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) {
|
||||
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];
|
||||
@@ -170,7 +170,7 @@ module.exports = function(RED) {
|
||||
addLocationToTweet(msg);
|
||||
}
|
||||
node.send(msg);
|
||||
if (t === 0) {
|
||||
if (t == 0) {
|
||||
node.since_id = tweet.id_str;
|
||||
}
|
||||
}
|
||||
@@ -191,9 +191,7 @@ module.exports = function(RED) {
|
||||
if (bits.length == 4) {
|
||||
if ((Number(bits[0]) < Number(bits[2])) && (Number(bits[1]) < Number(bits[3]))) {
|
||||
st = { locations: node.tags };
|
||||
}
|
||||
else {
|
||||
node.log("possible bad geo area format. Should be lower-left lon, lat, upper-right lon, lat");
|
||||
node.log(RED._("twitter.status.using-geo",{location:node.tags.toString()}));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,19 +216,19 @@ module.exports = function(RED) {
|
||||
}
|
||||
});
|
||||
stream.on('limit', function(tweet) {
|
||||
node.warn("tweet rate limit hit");
|
||||
node.warn(RED._("twitter.errors.ratelimit"));
|
||||
});
|
||||
stream.on('error', function(tweet,rc) {
|
||||
if (rc == 420) {
|
||||
node.warn("Twitter rate limit hit");
|
||||
node.warn(RED._("twitter.errors.ratelimit"));
|
||||
} else {
|
||||
node.warn("Stream error:"+tweet.toString()+" ("+rc+")");
|
||||
node.warn(RED._("twitter.errors.streamerror",{error:tweet.toString(),rc:rc}));
|
||||
}
|
||||
setTimeout(setupStream,10000);
|
||||
});
|
||||
stream.on('destroy', function (response) {
|
||||
if (this.active) {
|
||||
node.warn("twitter ended unexpectedly");
|
||||
node.warn(RED._("twitter.errors.unexpectedend"));
|
||||
setTimeout(setupStream,10000);
|
||||
}
|
||||
});
|
||||
@@ -243,10 +241,10 @@ module.exports = function(RED) {
|
||||
node.error(err);
|
||||
}
|
||||
} else {
|
||||
this.error("Invalid tag property");
|
||||
this.error(RED._("twitter.errors.invalidtag"));
|
||||
}
|
||||
} else {
|
||||
this.error("missing twitter credentials");
|
||||
this.error(RED._("twitter.errors.missingcredentials"));
|
||||
}
|
||||
|
||||
this.on('close', function() {
|
||||
@@ -273,7 +271,7 @@ module.exports = function(RED) {
|
||||
var node = this;
|
||||
|
||||
if (credentials && credentials.screen_name == this.twitterConfig.screen_name) {
|
||||
var twit = new Ntwitter({
|
||||
var twit = new ntwitter({
|
||||
consumer_key: "OKjYEd1ef2bfFolV25G5nQ",
|
||||
consumer_secret: "meRsltCktVMUI8gmggpXett7WBLd1k0qidYazoML6g",
|
||||
access_token_key: credentials.access_token,
|
||||
@@ -281,11 +279,11 @@ module.exports = function(RED) {
|
||||
});
|
||||
node.on("input", function(msg) {
|
||||
if (msg.hasOwnProperty("payload")) {
|
||||
node.status({fill:"blue",shape:"dot",text:"tweeting"});
|
||||
node.status({fill:"blue",shape:"dot",text:RED._("twitter.status.tweeting")});
|
||||
|
||||
if (msg.payload.length > 140) {
|
||||
msg.payload = msg.payload.slice(0,139);
|
||||
node.warn("Tweet greater than 140 : truncated");
|
||||
node.warn(RED._("twitter.errors.truncated"));
|
||||
}
|
||||
|
||||
if (msg.media && Buffer.isBuffer(msg.media)) {
|
||||
@@ -298,13 +296,13 @@ module.exports = function(RED) {
|
||||
var r = request.post(signedUrl,function(err,httpResponse,body) {
|
||||
if (err) {
|
||||
node.error(err,msg);
|
||||
node.status({fill:"red",shape:"ring",text:"failed"});
|
||||
node.status({fill:"red",shape:"ring",text:RED._("twitter.status.failed")});
|
||||
} else {
|
||||
var response = JSON.parse(body);
|
||||
if (response.errors) {
|
||||
var errorList = response.errors.map(function(er) { return er.code+": "+er.message }).join(", ");
|
||||
node.error("Send tweet failed: "+errorList,msg);
|
||||
node.status({fill:"red",shape:"ring",text:"failed"});
|
||||
node.error(RED._("twitter.errors.sendfail",{error:errorList}),msg);
|
||||
node.status({fill:"red",shape:"ring",text:RED._("twitter.status.failed")});
|
||||
} else {
|
||||
node.status({});
|
||||
}
|
||||
@@ -317,14 +315,14 @@ module.exports = function(RED) {
|
||||
} else {
|
||||
twit.updateStatus(msg.payload, function (err, data) {
|
||||
if (err) {
|
||||
node.status({fill:"red",shape:"ring",text:"failed"});
|
||||
node.status({fill:"red",shape:"ring",text:RED._("twitter.status.failed")});
|
||||
node.error(err,msg);
|
||||
}
|
||||
node.status({});
|
||||
});
|
||||
}
|
||||
}
|
||||
else { node.warn("No payload to tweet"); }
|
||||
else { node.warn(RED._("twitter.errors.nopayload")); }
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -340,16 +338,14 @@ module.exports = function(RED) {
|
||||
"HMAC-SHA1"
|
||||
);
|
||||
|
||||
RED.httpAdmin.get('/twitter-credentials/:id/auth', function(req, res) {
|
||||
RED.httpAdmin.get('/twitter-credentials/:id/auth', function(req, res){
|
||||
var credentials = {};
|
||||
oa.getOAuthRequestToken({
|
||||
oauth_callback: req.query.callback
|
||||
},function(error, oauth_token, oauth_token_secret, results) {
|
||||
oauth_callback: req.query.callback
|
||||
},function(error, oauth_token, oauth_token_secret, results){
|
||||
if (error) {
|
||||
var resp = '<h2>Oh no!</h2>'+
|
||||
'<p>Something went wrong with the authentication process. The following error was returned:<p>'+
|
||||
'<p><b>'+error.statusCode+'</b>: '+error.data+'</p>'+
|
||||
'<p>One known cause of this type of failure is if the clock is wrong on system running Node-RED.';
|
||||
var error = {statusCode: 401, data: "dummy error"};
|
||||
var resp = RED._("twitter.errors.oautherror",{statusCode: error.statusCode, errorData: error.data});
|
||||
res.send(resp)
|
||||
} else {
|
||||
credentials.oauth_token = oauth_token;
|
||||
@@ -360,7 +356,7 @@ module.exports = function(RED) {
|
||||
});
|
||||
});
|
||||
|
||||
RED.httpAdmin.get('/twitter-credentials/:id/auth/callback', function(req, res, next) {
|
||||
RED.httpAdmin.get('/twitter-credentials/:id/auth/callback', function(req, res, next){
|
||||
var credentials = RED.nodes.getCredentials(req.params.id);
|
||||
credentials.oauth_verifier = req.query.oauth_verifier;
|
||||
|
||||
@@ -368,17 +364,17 @@ module.exports = function(RED) {
|
||||
credentials.oauth_token,
|
||||
credentials.token_secret,
|
||||
credentials.oauth_verifier,
|
||||
function(error, oauth_access_token, oauth_access_token_secret, results) {
|
||||
if (error) {
|
||||
function(error, oauth_access_token, oauth_access_token_secret, results){
|
||||
if (error){
|
||||
RED.log.error(error);
|
||||
res.send("something in twitter oauth broke.");
|
||||
res.send(RED._("twitter.errors.oauthbroke"));
|
||||
} else {
|
||||
credentials = {};
|
||||
credentials.access_token = oauth_access_token;
|
||||
credentials.access_token_secret = oauth_access_token_secret;
|
||||
credentials.screen_name = "@"+results.screen_name;
|
||||
RED.nodes.addCredentials(req.params.id,credentials);
|
||||
res.send("<html><head></head><body>Authorised - you can close this window and return to Node-RED</body></html>");
|
||||
res.send(RED._("twitter.errors.authorized"));
|
||||
}
|
||||
}
|
||||
);
|
||||
|
Reference in New Issue
Block a user