Move rarely changed data to datamappings, fix profile updating
As result of profile format change, introduced in game update yesterday we need to change profile regexp. As result of some refactoring, rarely changed data removed from database and added to sources of bot.
This commit is contained in:
@@ -5,41 +5,44 @@ package datacache
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"source.wtfteam.pro/i2_bot/i2_bot/lib/dbmapping"
|
||||
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func (dc *DataCache) initLocations() {
|
||||
c.Log.Info("Initializing Locations storage...")
|
||||
dc.locations = make(map[int]*dbmapping.Location)
|
||||
dc.locations = make(map[int]*datamapping.Location)
|
||||
}
|
||||
|
||||
func (dc *DataCache) loadLocations() {
|
||||
c.Log.Info("Load current Locations data from database to DataCache...")
|
||||
locations := []dbmapping.Location{}
|
||||
err := c.Db.Select(&locations, "SELECT * FROM locations")
|
||||
if err != nil {
|
||||
// This is critical error and we need to stop immediately!
|
||||
c.Log.Fatal(err.Error())
|
||||
}
|
||||
c.Log.Info("Load current Locations data to DataCache...")
|
||||
locations := dc.getLocations()
|
||||
|
||||
dc.locationsMutex.Lock()
|
||||
for i := range locations {
|
||||
dc.locations[locations[i].ID] = &locations[i]
|
||||
}
|
||||
c.Log.Info("Loaded locations in DataCache: " + strconv.Itoa(len(dc.locations)))
|
||||
dc.locationsMutex.Unlock()
|
||||
}
|
||||
|
||||
func (dc *DataCache) getLocations() []datamapping.Location {
|
||||
locations := []datamapping.Location{}
|
||||
|
||||
locations = append(locations, datamapping.Location{1, "🌲", "Лес"})
|
||||
locations = append(locations, datamapping.Location{2, "⛰", "Горы"})
|
||||
locations = append(locations, datamapping.Location{3, "🚣", "Озеро"})
|
||||
locations = append(locations, datamapping.Location{4, "🏙", "Город"})
|
||||
locations = append(locations, datamapping.Location{5, "🏛", "Катакомбы"})
|
||||
locations = append(locations, datamapping.Location{6, "⛪️", "Кладбище"})
|
||||
|
||||
return locations
|
||||
}
|
||||
|
||||
func (dc *DataCache) findLocationIDByName(name string) (int, error) {
|
||||
dc.locationsMutex.Lock()
|
||||
for i := range dc.locations {
|
||||
if dc.locations[i].Name == name {
|
||||
dc.locationsMutex.Unlock()
|
||||
return i, nil
|
||||
}
|
||||
}
|
||||
|
||||
dc.locationsMutex.Unlock()
|
||||
return 0, errors.New("There is no location with name = " + name)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user