Compare commits
No commits in common. "master" and "912ba3b711144e66a9f0ee073d3cd75ea86a78ab" have entirely different histories.
master
...
912ba3b711
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"
|
||||
]
|
||||
}
|
|
@ -13,4 +13,3 @@ backup/
|
|||
config.js
|
||||
.swp
|
||||
.orig
|
||||
log/
|
14
Dockerfile
14
Dockerfile
|
@ -1,14 +0,0 @@
|
|||
FROM node:alpine
|
||||
|
||||
# Setup
|
||||
WORKDIR /app
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
|
||||
# Copy code
|
||||
COPY app.js .
|
||||
COPY appTest.js .
|
||||
COPY logger.js .
|
||||
COPY plugins/ ./plugins/
|
||||
|
||||
CMD [ "node", "app.js" ]
|
|
@ -28,13 +28,6 @@ npm install
|
|||
npm run start
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
```sh
|
||||
docker build -t kulmapaikka-ircbot .
|
||||
docker run -v $(pwd)/config.js:/app/config.js kulmapaikka-ircbot
|
||||
```
|
||||
|
||||
## Tekijä
|
||||
|
||||
Jukka Susivainio <jukka.susivainio@posteo.fi>
|
||||
Jukka Lankinen <jukka.lankinen@gmail.com>
|
||||
|
|
8
app.js
8
app.js
|
@ -4,7 +4,7 @@ const path = require('path')
|
|||
|
||||
// Load config
|
||||
const config = require('./config')
|
||||
const CronJob = require('cron').CronJob
|
||||
const cron = require('node-cron')
|
||||
|
||||
// Load new plugins
|
||||
const PluginManager = require('./plugins/pluginManager.js')
|
||||
|
@ -118,13 +118,11 @@ client.addListener('names', function (channel, nicks) {
|
|||
|
||||
for (let i = 0; i < config.cron.length; i++) {
|
||||
let row = config.cron[i]
|
||||
logger.info('starting cron with ' + row.cron)
|
||||
const job = new CronJob(row.cron, () => {
|
||||
logger.info('cron triggered. Running command ' + row.command)
|
||||
cron.schedule(row.cron, () => {
|
||||
if (client.conn !== null) {
|
||||
for (let c = 0; c < config.irc.channels.length; c++) {
|
||||
handleMessage('BOT', config.irc.channels[c], row.command)
|
||||
}
|
||||
}
|
||||
}, null, true, 'Europe/Helsinki');
|
||||
})
|
||||
}
|
||||
|
|
7088
package-lock.json
generated
7088
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
|
@ -19,14 +19,14 @@
|
|||
"cron": "=1.7.1",
|
||||
"file-stream-rotator": "=0.4.1",
|
||||
"finalhandler": "=1.1.2",
|
||||
"googleapis": "^91.0.0",
|
||||
"googleapis": "=42.0.0",
|
||||
"html-to-text": "=5.1.1",
|
||||
"irc": "=0.5.2",
|
||||
"lokijs": "=1.5.7",
|
||||
"mkdirp": "=0.5.5",
|
||||
"mkdirp": "=0.5.1",
|
||||
"morgan": "=1.9.1",
|
||||
"node-cron": "^2.0.3",
|
||||
"node-dev": "^7.1.0",
|
||||
"node-dev": "=4.0.0",
|
||||
"node-uuid": "=1.4.8",
|
||||
"promise": "=8.0.3",
|
||||
"request": "=2.88.0",
|
||||
|
@ -36,6 +36,6 @@
|
|||
"winston-daily-rotate-file": "^3.10.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^2.0.15"
|
||||
"nodemon": "^1.18.5"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,10 @@ class Pwm extends BasePlugin {
|
|||
|
||||
today () {
|
||||
var today = new Date()
|
||||
return (new Intl.DateTimeFormat('fi-FI', {day: 'numeric', month: 'numeric', timeZone: 'Europe/Helsinki'}).format(today))
|
||||
var month = today.getMonth() + 1
|
||||
var day = today.getDate()
|
||||
var dateString = day + '.' + month + '.'
|
||||
return dateString
|
||||
}
|
||||
getWeather (city, code) {
|
||||
var language = 'fi'
|
||||
|
@ -75,8 +78,8 @@ class Pwm extends BasePlugin {
|
|||
|
||||
let sunriseDate = new Date(Number(weather.sys.sunrise) * 1000)
|
||||
let sunsetDate = new Date(Number(weather.sys.sunset) * 1000)
|
||||
let sunrise = new Intl.DateTimeFormat('fi-FI', {hour: 'numeric', minute: 'numeric', timeZone: 'Europe/Helsinki'}).format(sunriseDate)
|
||||
let sunset = new Intl.DateTimeFormat('fi-FI', {hour: 'numeric', minute: 'numeric', timeZone: 'Europe/Helsinki'}).format(sunsetDate)
|
||||
let sunrise = sunriseDate.getHours() + '.' + sunriseDate.getMinutes()
|
||||
let sunset = sunsetDate.getHours() + '.' + sunsetDate.getMinutes()
|
||||
|
||||
const $ = cheerio.load(data[0])
|
||||
let names = []
|
||||
|
|
|
@ -76,9 +76,7 @@ class Weather extends BasePlugin {
|
|||
'APPID': this.apikey
|
||||
}
|
||||
var url = 'http://api.openweathermap.org/data/2.5/group'
|
||||
var promise = requestPromise(url, urlArgs).catch(e => {
|
||||
logger.error('Failed to retrieve openweathermap data')
|
||||
})
|
||||
var promise = requestPromise(url, urlArgs)
|
||||
|
||||
return promise
|
||||
}
|
||||
|
@ -98,11 +96,9 @@ class Weather extends BasePlugin {
|
|||
urlArgs.stop = stop
|
||||
}
|
||||
|
||||
var url = 'https://masa.dy.fi/api/temperature.php'
|
||||
var url = 'http://masa.dy.fi/api/temperature.php'
|
||||
|
||||
var promise = requestPromise(url, urlArgs).catch(e => {
|
||||
logger.error('Failed to retrieve pena temperatures data')
|
||||
})
|
||||
var promise = requestPromise(url, urlArgs)
|
||||
|
||||
return promise
|
||||
}
|
||||
|
@ -115,23 +111,19 @@ class Weather extends BasePlugin {
|
|||
]).then(function (results) {
|
||||
var resultString = ''
|
||||
// OWM
|
||||
let weatherData = []
|
||||
if (results[0] !== undefined) {
|
||||
results[0].list.forEach((data) => {
|
||||
results[0].list.forEach(function (data) {
|
||||
var city = data.name
|
||||
var temp = (data.main.temp - 273.15).toFixed(1)
|
||||
var code = data.weather[0].icon
|
||||
|
||||
weatherData.push(city + ' (' + temp + ' °C, ' + that.iconCodeToText[code] + ')')
|
||||
resultString += '' + city + ' (' + temp + ' °C, ' + that.iconCodeToText[code] + '), '
|
||||
})
|
||||
}
|
||||
if (results[1] !== undefined) {
|
||||
|
||||
if (results[1].length > 0) {
|
||||
var temp = Number(results[1][0].temp).toFixed(1)
|
||||
weatherData.push('Aura (' + temp + ' °C)')
|
||||
resultString += 'Aura (' + temp + ' °C)'
|
||||
}
|
||||
}
|
||||
resultString = weatherData.join(', ')
|
||||
|
||||
resolve(resultString)
|
||||
}, (str) => reject(str))
|
||||
})
|
||||
|
|
|
@ -25,8 +25,8 @@ class Youtube extends BasePlugin {
|
|||
resultString += result.title
|
||||
resultString += ', esittäjänä ' + result.channelTitle
|
||||
if (typeof result.statistics !== 'undefined') {
|
||||
var likeCount = Number(result.statistics.likeCount)
|
||||
resultString += ' (' + result.duration + ', ' + result.statistics.viewCount + ' katselukertaa, ' + likeCount + ' 👍)'
|
||||
var rotten = (Number(result.statistics.likeCount) / (Number(result.statistics.likeCount) + Number(result.statistics.dislikeCount))).toFixed(2)
|
||||
resultString += ' (' + result.duration + ', ' + result.statistics.viewCount + ' katselukertaa, ' + rotten * 100 + '% tykätty, ' + result.url + ' )'
|
||||
}
|
||||
resolve(resultString)
|
||||
}, function (err) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user