Added twitter url support
This commit is contained in:
parent
ce96232b11
commit
89a5df9e2b
18
.brackets.json
Executable file
18
.brackets.json
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"language": {
|
||||||
|
"javascript": {
|
||||||
|
"linting.prefer": "JSHint",
|
||||||
|
"linting.usePreferredOnly": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"jwolfe.file-tree-exclude.list": [
|
||||||
|
"node_modules",
|
||||||
|
"bower_components",
|
||||||
|
".git",
|
||||||
|
"dist",
|
||||||
|
"vendor",
|
||||||
|
"deploy",
|
||||||
|
".hg",
|
||||||
|
"build"
|
||||||
|
]
|
||||||
|
}
|
3
.jshintrc
Executable file
3
.jshintrc
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"predef": ["angular", "define", "require", "requirejs", "module", "Phaser", "console"]
|
||||||
|
}
|
19
app.js
19
app.js
|
@ -2,11 +2,8 @@
|
||||||
var irc = require('irc');
|
var irc = require('irc');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var winston = require('winston');
|
var winston = require('winston');
|
||||||
var owmapi = require('./owmapi')();
|
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
|
|
||||||
var googletin = require('./googleapi.js')();
|
|
||||||
|
|
||||||
var iconCodeToText = {
|
var iconCodeToText = {
|
||||||
'01d': 'selkeää',
|
'01d': 'selkeää',
|
||||||
'02d': 'puolipilvistä',
|
'02d': 'puolipilvistä',
|
||||||
|
@ -31,10 +28,13 @@ var iconCodeToText = {
|
||||||
var config = require('./config');
|
var config = require('./config');
|
||||||
|
|
||||||
// Load plugins
|
// Load plugins
|
||||||
var getTemperatureString = require('./plugins/getWeather')();
|
var googletin = require('./googleapi.js')(config);
|
||||||
|
var owmapi = require('./owmapi')(config);
|
||||||
|
var getTemperatureString = require('./plugins/getWeather')(config);
|
||||||
var getDnDCharacter = require('./plugins/getCharacter')();
|
var getDnDCharacter = require('./plugins/getCharacter')();
|
||||||
var getDiceString = require('./plugins/getDice')();
|
var getDiceString = require('./plugins/getDice')();
|
||||||
var getUrlString = require('./plugins/getUrl')();
|
var getUrlString = require('./plugins/getUrl')();
|
||||||
|
var getTweet = require('./plugins/getTweet')(config);
|
||||||
|
|
||||||
// Configure logger
|
// Configure logger
|
||||||
// create a write stream (in append mode)
|
// create a write stream (in append mode)
|
||||||
|
@ -176,12 +176,19 @@ var handleMessage = function(from, to, message) {
|
||||||
console.log('error');
|
console.log('error');
|
||||||
client.say(to, 'Youtube: jokin meni pieleen...');
|
client.say(to, 'Youtube: jokin meni pieleen...');
|
||||||
});
|
});
|
||||||
|
} else if (res = message.match(/http(s)?:\/\/(www\.)?((twitter\.com\/([a-zA-Z0-9_-]*)\/status\/([a-zA-Z0-9_-]*)))/)) {
|
||||||
|
var status = res[6];
|
||||||
|
getTweet(status).then(function(tweet) {
|
||||||
|
client.say(to, 'Twiitti: ' + tweet);
|
||||||
|
});
|
||||||
} else if (res = message.match(/http(s)?:\/\/([^ ]*)/i)) {
|
} else if (res = message.match(/http(s)?:\/\/([^ ]*)/i)) {
|
||||||
var url = res[0];
|
// Not liked. Disabled for now
|
||||||
|
/*var url = res[0];
|
||||||
console.log('Get url: ' + url);
|
console.log('Get url: ' + url);
|
||||||
getUrlString(url).then(function(str) {
|
getUrlString(url).then(function(str) {
|
||||||
client.say(to, 'Otsikko: ' + str);
|
client.say(to, 'Otsikko: ' + str);
|
||||||
});
|
});*/
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Do nothing? :D
|
// Do nothing? :D
|
||||||
}
|
}
|
||||||
|
|
50
appTest.js
50
appTest.js
|
@ -6,9 +6,59 @@ var regExp = /http(s)?:\/\/(www\.)?((youtu\.be\/([a-zA-Z0-9_-]*))|(youtube\.com\
|
||||||
|
|
||||||
var res = text.match(regExp);
|
var res = text.match(regExp);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
console.log(res[5]);
|
console.log(res[5]);
|
||||||
console.log(res[7]);
|
console.log(res[7]);
|
||||||
|
|
||||||
|
|
||||||
|
var tweet = "https://twitter.com/lanxu/status/266184139324157952";
|
||||||
|
|
||||||
|
var config = require('./config');
|
||||||
|
var getTweet = require('./plugins/getTweet')(config);
|
||||||
|
|
||||||
|
var tRegExp = /http(s)?:\/\/(www\.)?((twitter\.com\/([a-zA-Z0-9_-]*)\/status\/([a-zA-Z0-9_-]*)))/;
|
||||||
|
var res = tweet.match(tRegExp);
|
||||||
|
var sta = console.log(res[6]);
|
||||||
|
getTweet(sta).then(
|
||||||
|
function(tweet) {
|
||||||
|
console.log(tweet);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
var Twitter = require('twitter');
|
||||||
|
*/
|
||||||
|
/*client.get('statuses/user_timeline', params, function(error, tweets, response){
|
||||||
|
if (!error) {
|
||||||
|
console.log(tweets);
|
||||||
|
}
|
||||||
|
});*/
|
||||||
|
/*client.stream('statuses/filter', {track: 'twitter'}, function(stream){
|
||||||
|
stream.on('data', function(tweet) {
|
||||||
|
console.log(tweet.text);
|
||||||
|
});
|
||||||
|
|
||||||
|
stream.on('error', function(error) {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
|
||||||
|
client.get('statuses/show/266184139324157952', function(error, tweet, response) {
|
||||||
|
if(!error) {
|
||||||
|
var user = tweet.user.screen_name;
|
||||||
|
var time = tweet.created_at;
|
||||||
|
var dateTime = new Date(time);
|
||||||
|
var dateTimeLocale = dateTime.toLocaleDateString('fi-FI') + ' ' + dateTime.getHours() + '.' + dateTime.getMinutes();
|
||||||
|
var str = 'Twiitti: @' + user + ': "' + tweet.text + '" ('+ dateTimeLocale +')';
|
||||||
|
console.log(str);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
var getYoutubeTitle = function(query) {
|
var getYoutubeTitle = function(query) {
|
||||||
var google = require('googleapis');
|
var google = require('googleapis');
|
||||||
|
|
|
@ -41,6 +41,10 @@ var config = {
|
||||||
user: /Palin$/,
|
user: /Palin$/,
|
||||||
host: /(.*)\.elisa-mobile\.fi$/
|
host: /(.*)\.elisa-mobile\.fi$/
|
||||||
},
|
},
|
||||||
|
'palinKoti': {
|
||||||
|
user: /Palin$/,
|
||||||
|
host: /(.*)\.elisa-laajakaista\.fi$/
|
||||||
|
},
|
||||||
'rootmer': {
|
'rootmer': {
|
||||||
user: /ror$/,
|
user: /ror$/,
|
||||||
host: /(.*)\.inet\.fi$/
|
host: /(.*)\.inet\.fi$/
|
||||||
|
@ -63,5 +67,17 @@ var config = {
|
||||||
Karinainen: 654059,
|
Karinainen: 654059,
|
||||||
Lappeenranta: 648900,
|
Lappeenranta: 648900,
|
||||||
Helsinki: 658225
|
Helsinki: 658225
|
||||||
|
},
|
||||||
|
keys: {
|
||||||
|
twitter: {
|
||||||
|
consumerKey: '',
|
||||||
|
consumerSecret: ''
|
||||||
|
},
|
||||||
|
google: {
|
||||||
|
apiKey: ''
|
||||||
|
},
|
||||||
|
owm: {
|
||||||
|
apiKey: ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
|
@ -1,7 +1,6 @@
|
||||||
var request = require('request');
|
var request = require('request');
|
||||||
var Promise = require('promise');
|
var Promise = require('promise');
|
||||||
var google = require('googleapis');
|
var google = require('googleapis');
|
||||||
var apikey = 'AIzaSyBCLnmbmjjHvfScHNj8PBqINjoyLTAXEjg';
|
|
||||||
|
|
||||||
var youtube = google.youtube('v3');
|
var youtube = google.youtube('v3');
|
||||||
|
|
||||||
|
@ -24,6 +23,7 @@ var requestPromise = function (url, urlArgs) {
|
||||||
|
|
||||||
module.exports = function(config) {
|
module.exports = function(config) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
var apikey = config.keys.google.apiKey;
|
||||||
return {
|
return {
|
||||||
getYoutubeVideoById: function(videoId) {
|
getYoutubeVideoById: function(videoId) {
|
||||||
var promise = new Promise(function(resolve, reject) {
|
var promise = new Promise(function(resolve, reject) {
|
||||||
|
|
|
@ -27,6 +27,8 @@ var requestPromise = function(url, urlArgs) {
|
||||||
*/
|
*/
|
||||||
module.exports = function(config) {
|
module.exports = function(config) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
var apikey = config.keys.owm.apiKey;
|
||||||
return {
|
return {
|
||||||
/** Get temperatures from Pena API (Aura) */
|
/** Get temperatures from Pena API (Aura) */
|
||||||
getTemperature: function(city, code) {
|
getTemperature: function(city, code) {
|
||||||
|
@ -35,7 +37,7 @@ module.exports = function(config) {
|
||||||
var urlArgs = {
|
var urlArgs = {
|
||||||
'q': city,
|
'q': city,
|
||||||
'lang': language,
|
'lang': language,
|
||||||
'APPID': '4e3b7bbd3da07052c4fed6d342e48707'
|
'APPID': apikey
|
||||||
};
|
};
|
||||||
var url = 'http://api.openweathermap.org/data/2.5/weather';
|
var url = 'http://api.openweathermap.org/data/2.5/weather';
|
||||||
var promise = requestPromise(url, urlArgs);
|
var promise = requestPromise(url, urlArgs);
|
||||||
|
@ -58,7 +60,7 @@ module.exports = function(config) {
|
||||||
var urlArgs = {
|
var urlArgs = {
|
||||||
'id': idList,
|
'id': idList,
|
||||||
'lang': language,
|
'lang': language,
|
||||||
'APPID': '4e3b7bbd3da07052c4fed6d342e48707'
|
'APPID': apikey
|
||||||
};
|
};
|
||||||
var url = 'http://api.openweathermap.org/data/2.5/group';
|
var url = 'http://api.openweathermap.org/data/2.5/group';
|
||||||
var promise = requestPromise(url, urlArgs);
|
var promise = requestPromise(url, urlArgs);
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
"description": "Kulmapaikka",
|
"description": "Kulmapaikka",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"start": "./node_modules/.bin/nodemon app.js",
|
||||||
|
"test": "./node_modules/.bin/nodemon appTest.js"
|
||||||
},
|
},
|
||||||
"author": "Jukka Lankinen <jukka.lankinen@gmail.com>",
|
"author": "Jukka Lankinen <jukka.lankinen@gmail.com>",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
@ -24,7 +26,8 @@
|
||||||
"finalhandler": "latest",
|
"finalhandler": "latest",
|
||||||
"node-uuid": "latest",
|
"node-uuid": "latest",
|
||||||
"irc": "latest",
|
"irc": "latest",
|
||||||
"googleapis": "latest"
|
"googleapis": "latest",
|
||||||
|
"twitter": "latest"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"nodemon": "^1.2.1"
|
"nodemon": "^1.2.1"
|
||||||
|
|
33
plugins/getTweet.js
Normal file
33
plugins/getTweet.js
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
var Promise = require('promise');
|
||||||
|
var Twitter = require('twitter');
|
||||||
|
|
||||||
|
module.exports = function(config) {
|
||||||
|
|
||||||
|
var client = new Twitter({
|
||||||
|
consumer_key: config.keys.twitter.consumerKey,
|
||||||
|
consumer_secret: config.keys.twitter.consumerSecret,
|
||||||
|
access_token_key: '',
|
||||||
|
access_token_secret: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
var getTweet = function(statusId) {
|
||||||
|
var promise = new Promise(function(resolve, reject) {
|
||||||
|
client.get('statuses/show/' + statusId, function(error, tweet, response) {
|
||||||
|
if(!error) {
|
||||||
|
var user = tweet.user.screen_name;
|
||||||
|
var time = tweet.created_at;
|
||||||
|
var dateTime = new Date(time);
|
||||||
|
var dateTimeLocale = dateTime.toLocaleDateString('fi-FI') + ' ' + dateTime.getHours() + '.' + dateTime.getMinutes();
|
||||||
|
var str = '@' + user + ': "' + tweet.text + '" ('+ dateTimeLocale +')';
|
||||||
|
resolve(str);
|
||||||
|
} else {
|
||||||
|
reject();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
return promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
return getTweet;
|
||||||
|
};
|
|
@ -1,5 +1,4 @@
|
||||||
var penaapi = require('./../penaapi')();
|
var penaapi = require('./../penaapi')();
|
||||||
var owmapi = require('./../owmapi')();
|
|
||||||
var Promise = require('promise');
|
var Promise = require('promise');
|
||||||
|
|
||||||
var iconCodeToText = {
|
var iconCodeToText = {
|
||||||
|
@ -24,6 +23,8 @@ var iconCodeToText = {
|
||||||
};
|
};
|
||||||
module.exports = function(config) {
|
module.exports = function(config) {
|
||||||
|
|
||||||
|
var owmapi = require('./../owmapi')(config);
|
||||||
|
|
||||||
var getTemperatureString = function(owmCityIds) {
|
var getTemperatureString = function(owmCityIds) {
|
||||||
var promise = new Promise(function(resolve, reject) {
|
var promise = new Promise(function(resolve, reject) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user