Update logging and cleanup the updater.

This commit is contained in:
A. Svensson 2016-06-19 16:15:29 +02:00
parent e94ff7ede7
commit f86693b22b
2 changed files with 15 additions and 40 deletions

View File

@ -1,11 +1,8 @@
package ss13 package ss13
import ( import "time"
"fmt"
"time"
)
var updatedservers []string var updatedServers []string
type RawServerData struct { type RawServerData struct {
Title string Title string
@ -17,64 +14,49 @@ type RawServerData struct {
func (i *Instance) UpdateServers() { func (i *Instance) UpdateServers() {
reset() reset()
tx := i.db.NewTransaction() tx := i.db.NewTransaction()
if i.Debug {
fmt.Println("\nPolling servers...")
}
polled := i.PollServers(i.Config.Servers, i.Config.UpdateTimeout) polled := i.PollServers(i.Config.Servers, i.Config.UpdateTimeout)
for _, s := range polled { for _, s := range polled {
i.update_server(tx, s) i.updateServer(tx, s)
} }
if i.Debug {
fmt.Println("\nScraping servers...")
}
scraped, e := i.ScrapePage() scraped, e := i.ScrapePage()
if e != nil { if e != nil {
Log("Error scraping servers: %s", e) Log("Error scraping servers: %s", e)
} else { } else {
for _, s := range scraped { for _, s := range scraped {
i.update_server(tx, s) i.updateServer(tx, s)
} }
} }
if i.Debug { for _, s := range i.getOldServers() {
fmt.Println("\nUpdating inactive servers...") i.updateServer(tx, s)
}
for _, s := range i.get_old_servers() {
i.update_server(tx, s)
} }
if i.Debug {
fmt.Println("\nRemoving old servers...")
}
tx.RemoveOldServers(Now()) tx.RemoveOldServers(Now())
tx.Commit() tx.Commit()
} }
func reset() { func reset() {
// If the updater is running in daemon mode we have to reset some stuff // Have to reset some stuff between each update.
// each time we try to run a new update. updatedServers = *new([]string)
updatedservers = *new([]string)
ResetNow() ResetNow()
} }
func isupdated(title string) bool { func isUpdated(title string) bool {
// Prevent low pop. servers, with identical name as a high pop. server, // Prevent low pop. servers, with identical name as a high pop. server,
// from fucking with another server's history. // from fucking with another server's history.
for _, t := range updatedservers { for _, t := range updatedServers {
if title == t { if title == t {
return true return true
} }
} }
updatedservers = append(updatedservers, title) updatedServers = append(updatedServers, title)
return false return false
} }
func (i *Instance) get_old_servers() []*RawServerData { func (i *Instance) getOldServers() []*RawServerData {
var tmp []*RawServerData var tmp []*RawServerData
for _, old := range i.db.GetOldServers(Now()) { for _, old := range i.db.GetOldServers(Now()) {
s := RawServerData{ s := RawServerData{
@ -89,21 +71,15 @@ func (i *Instance) get_old_servers() []*RawServerData {
return tmp return tmp
} }
func (i *Instance) update_server(tx *DB, s *RawServerData) { func (i *Instance) updateServer(tx *DB, s *RawServerData) {
if isupdated(s.Title) { if isUpdated(s.Title) {
return return
} }
if i.Debug {
fmt.Println(s.Title)
}
// get server's db id (or create) // get server's db id (or create)
id := tx.InsertOrSelect(s) id := tx.InsertOrSelect(s)
// create new player history point // create new player history point
tx.AddServerPopulation(id, s) tx.AddServerPopulation(id, s)
// update server (urls and player stats) // update server (urls and player stats)
tx.UpdateServerStats(id, s) tx.UpdateServerStats(id, s)
} }

View File

@ -1,7 +1,6 @@
package ss13 package ss13
import ( import (
"fmt"
"html/template" "html/template"
"mime" "mime"
"net/http" "net/http"
@ -67,7 +66,7 @@ func (i *Instance) Run() error {
i.UpdateServers() i.UpdateServers()
dur := time.Since(start) dur := time.Since(start)
if i.Debug { if i.Debug {
fmt.Printf("Update completed in %s\n", dur) Log("Update completed in %s", dur)
} }
time.Sleep(td) time.Sleep(td)
} }