Update logging and cleanup the updater.
This commit is contained in:
parent
e94ff7ede7
commit
f86693b22b
@ -1,11 +1,8 @@
|
||||
package ss13
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
import "time"
|
||||
|
||||
var updatedservers []string
|
||||
var updatedServers []string
|
||||
|
||||
type RawServerData struct {
|
||||
Title string
|
||||
@ -17,64 +14,49 @@ type RawServerData struct {
|
||||
|
||||
func (i *Instance) UpdateServers() {
|
||||
reset()
|
||||
|
||||
tx := i.db.NewTransaction()
|
||||
|
||||
if i.Debug {
|
||||
fmt.Println("\nPolling servers...")
|
||||
}
|
||||
polled := i.PollServers(i.Config.Servers, i.Config.UpdateTimeout)
|
||||
for _, s := range polled {
|
||||
i.update_server(tx, s)
|
||||
i.updateServer(tx, s)
|
||||
}
|
||||
|
||||
if i.Debug {
|
||||
fmt.Println("\nScraping servers...")
|
||||
}
|
||||
scraped, e := i.ScrapePage()
|
||||
if e != nil {
|
||||
Log("Error scraping servers: %s", e)
|
||||
} else {
|
||||
for _, s := range scraped {
|
||||
i.update_server(tx, s)
|
||||
i.updateServer(tx, s)
|
||||
}
|
||||
}
|
||||
|
||||
if i.Debug {
|
||||
fmt.Println("\nUpdating inactive servers...")
|
||||
}
|
||||
for _, s := range i.get_old_servers() {
|
||||
i.update_server(tx, s)
|
||||
for _, s := range i.getOldServers() {
|
||||
i.updateServer(tx, s)
|
||||
}
|
||||
|
||||
if i.Debug {
|
||||
fmt.Println("\nRemoving old servers...")
|
||||
}
|
||||
tx.RemoveOldServers(Now())
|
||||
|
||||
tx.Commit()
|
||||
}
|
||||
|
||||
func reset() {
|
||||
// If the updater is running in daemon mode we have to reset some stuff
|
||||
// each time we try to run a new update.
|
||||
updatedservers = *new([]string)
|
||||
// Have to reset some stuff between each update.
|
||||
updatedServers = *new([]string)
|
||||
ResetNow()
|
||||
}
|
||||
|
||||
func isupdated(title string) bool {
|
||||
func isUpdated(title string) bool {
|
||||
// Prevent low pop. servers, with identical name as a high pop. server,
|
||||
// from fucking with another server's history.
|
||||
for _, t := range updatedservers {
|
||||
for _, t := range updatedServers {
|
||||
if title == t {
|
||||
return true
|
||||
}
|
||||
}
|
||||
updatedservers = append(updatedservers, title)
|
||||
updatedServers = append(updatedServers, title)
|
||||
return false
|
||||
}
|
||||
|
||||
func (i *Instance) get_old_servers() []*RawServerData {
|
||||
func (i *Instance) getOldServers() []*RawServerData {
|
||||
var tmp []*RawServerData
|
||||
for _, old := range i.db.GetOldServers(Now()) {
|
||||
s := RawServerData{
|
||||
@ -89,21 +71,15 @@ func (i *Instance) get_old_servers() []*RawServerData {
|
||||
return tmp
|
||||
}
|
||||
|
||||
func (i *Instance) update_server(tx *DB, s *RawServerData) {
|
||||
if isupdated(s.Title) {
|
||||
func (i *Instance) updateServer(tx *DB, s *RawServerData) {
|
||||
if isUpdated(s.Title) {
|
||||
return
|
||||
}
|
||||
|
||||
if i.Debug {
|
||||
fmt.Println(s.Title)
|
||||
}
|
||||
|
||||
// get server's db id (or create)
|
||||
id := tx.InsertOrSelect(s)
|
||||
|
||||
// create new player history point
|
||||
tx.AddServerPopulation(id, s)
|
||||
|
||||
// update server (urls and player stats)
|
||||
tx.UpdateServerStats(id, s)
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package ss13
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"html/template"
|
||||
"mime"
|
||||
"net/http"
|
||||
@ -67,7 +66,7 @@ func (i *Instance) Run() error {
|
||||
i.UpdateServers()
|
||||
dur := time.Since(start)
|
||||
if i.Debug {
|
||||
fmt.Printf("Update completed in %s\n", dur)
|
||||
Log("Update completed in %s", dur)
|
||||
}
|
||||
time.Sleep(td)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user