Initial commit
Still a lot to do here, such as better error handling and handling multiple teams matching the name typed in, but it's a start.
This commit is contained in:
59
node_helper.js
Normal file
59
node_helper.js
Normal file
@ -0,0 +1,59 @@
|
||||
let NodeHelper = require('node_helper')
|
||||
let ShiftStats = require('node-shiftstats')
|
||||
|
||||
module.exports = NodeHelper.create({
|
||||
start: function() {
|
||||
this.setTimer(12 * 60 * 60 * 1000)
|
||||
},
|
||||
|
||||
doUpdate: async function() {
|
||||
console.log("doupdate")
|
||||
if (!this.config) {
|
||||
return
|
||||
}
|
||||
|
||||
const s = new ShiftStats(this.config.apiKey)
|
||||
await s.login()
|
||||
let teams = await s.teamSearch(this.config.sport, this.config.teamName)
|
||||
// standings will be sorted in the order of the type we requested (regular season, playoffs, ...) but also includes
|
||||
// stats for other types. consider sorting by the type we want first. see property division_rank
|
||||
let standings = await s.divisionStandings(teams.references.division[0].id, this.config.type)
|
||||
let games = sortGames(await s.divisionGamesList(teams.references.division[0].id), this.config.type)
|
||||
this.sendSocketNotification('SHIFTSTATS_STANDINGS', {standings: standings, games: games})
|
||||
},
|
||||
|
||||
setTimer: function(updateInterval) {
|
||||
var update = true
|
||||
update = typeof this.updateInterval === 'undefined' || this.updateInterval != updateInterval
|
||||
this.updateInterval = updateInterval
|
||||
|
||||
if (update) {
|
||||
if (typeof this.timer !== 'undefined') {
|
||||
clearInterval(this.timer)
|
||||
}
|
||||
|
||||
this.timer = setInterval(() => {
|
||||
this.doUpdate()
|
||||
}, this.updateInterval)
|
||||
}
|
||||
},
|
||||
|
||||
socketNotificationReceived: function(notification, payload) {
|
||||
if (notification === 'SHIFTSTATS_CONFIG') {
|
||||
this.config = payload
|
||||
this.setTimer(this.config.updateInterval)
|
||||
}
|
||||
if (notification === 'SHIFTSTATS_UPDATE') {
|
||||
this.doUpdate()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function sortGames(games, type) {
|
||||
games.games = games.games.filter(game => game.type == type)
|
||||
games.games.sort((a, b) => {
|
||||
return new Date(a.datetime) - new Date(b.datetime)
|
||||
})
|
||||
|
||||
return games
|
||||
}
|
Reference in New Issue
Block a user