Update logging and cleanup the updater.
This commit is contained in:
parent
e94ff7ede7
commit
f86693b22b
@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user