2017-08-27 09:33:45 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import "time"
|
|
|
|
|
2017-09-10 16:57:22 +00:00
|
|
|
var lastSync time.Time
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
lastSync = time.Now()
|
|
|
|
}
|
|
|
|
|
2017-09-03 04:50:31 +00:00
|
|
|
func handleExpiredScheduledGroups() error {
|
2017-08-27 09:33:45 +00:00
|
|
|
rows, err := get_expired_scheduled_groups_stmt.Query()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
defer rows.Close()
|
|
|
|
|
|
|
|
var uid int
|
|
|
|
for rows.Next() {
|
|
|
|
err := rows.Scan(&uid)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
_, err = replace_schedule_group_stmt.Exec(uid, 0, 0, time.Now(), false)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2017-09-03 04:50:31 +00:00
|
|
|
_, err = set_temp_group_stmt.Exec(0, uid)
|
2017-08-27 09:33:45 +00:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
_ = users.Load(uid)
|
|
|
|
}
|
|
|
|
return rows.Err()
|
|
|
|
}
|
2017-09-10 16:57:22 +00:00
|
|
|
|
|
|
|
func handleServerSync() error {
|
|
|
|
var lastUpdate time.Time
|
|
|
|
var lastUpdateStr string
|
|
|
|
err := get_sync_stmt.QueryRow().Scan(&lastUpdateStr)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
layout := "2006-01-02 15:04:05"
|
|
|
|
lastUpdate, err = time.Parse(layout, lastUpdateStr)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
if lastUpdate.After(lastSync) {
|
|
|
|
// TODO: A more granular sync
|
|
|
|
err = fstore.LoadForums()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
// TODO: Resync the groups
|
|
|
|
// TODO: Resync the permissions
|
|
|
|
err = LoadSettings()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = LoadWordFilters()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|