YAML files for rarely changed data. New weapon stats.
This commit is contained in:
parent
87214a9973
commit
b1975a161c
18
b0x.yaml
Normal file
18
b0x.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
pkg: static
|
||||||
|
dest: "./static/"
|
||||||
|
fmt: true
|
||||||
|
updater:
|
||||||
|
enabled: false
|
||||||
|
compression:
|
||||||
|
compress: false
|
||||||
|
clean: false
|
||||||
|
output: "ab0x.go"
|
||||||
|
unexporTed: false
|
||||||
|
spread: false
|
||||||
|
lcf: true
|
||||||
|
debug: false
|
||||||
|
custom:
|
||||||
|
- files:
|
||||||
|
- "data/*.yml"
|
||||||
|
base: "data/"
|
||||||
|
prefix: ""
|
48
data/elements.yml
Normal file
48
data/elements.yml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
- id: 1
|
||||||
|
symbol: "👊"
|
||||||
|
name: "Боевой"
|
||||||
|
league_id: 1
|
||||||
|
- id: 2
|
||||||
|
symbol: "🌀"
|
||||||
|
name: "Летающий"
|
||||||
|
league_id: 1
|
||||||
|
- id: 3
|
||||||
|
symbol: "💀"
|
||||||
|
name: "Ядовитый"
|
||||||
|
league_id: 1
|
||||||
|
- id: 4
|
||||||
|
symbol: "🗿"
|
||||||
|
name: "Каменный"
|
||||||
|
league_id: 1
|
||||||
|
- id: 5
|
||||||
|
symbol: "🔥"
|
||||||
|
name: "Огненный"
|
||||||
|
league_id: 2
|
||||||
|
- id: 6
|
||||||
|
symbol: "⚡"
|
||||||
|
name: "Электрический"
|
||||||
|
league_id: 2
|
||||||
|
- id: 7
|
||||||
|
symbol: "💧"
|
||||||
|
name: "Водяной"
|
||||||
|
league_id: 2
|
||||||
|
- id: 8
|
||||||
|
symbol: "🍀"
|
||||||
|
name: "Травяной"
|
||||||
|
league_id: 2
|
||||||
|
- id: 9
|
||||||
|
symbol: "💩"
|
||||||
|
name: "Отважный"
|
||||||
|
league_id: 3
|
||||||
|
- id: 10
|
||||||
|
symbol: "👁"
|
||||||
|
name: "Психический"
|
||||||
|
league_id: 3
|
||||||
|
- id: 11
|
||||||
|
symbol: "👿"
|
||||||
|
name: "Темный"
|
||||||
|
league_id: 3
|
||||||
|
- id: 12
|
||||||
|
symbol: "⌛"
|
||||||
|
name: "Времени"
|
||||||
|
league_id: 3
|
9
data/leagues.yml
Normal file
9
data/leagues.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
- id: 1
|
||||||
|
symbol: 🈸
|
||||||
|
name: "ИНСТИНКТ"
|
||||||
|
- id: 2
|
||||||
|
symbol: 🈳
|
||||||
|
name: "МИСТИКА"
|
||||||
|
- id: 3
|
||||||
|
symbol: 🈵
|
||||||
|
name: "ОТВАГА"
|
18
data/locations.yml
Normal file
18
data/locations.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
- id: 1
|
||||||
|
symbol: "🌲"
|
||||||
|
name: "Лес"
|
||||||
|
- id: 2
|
||||||
|
symbol: "⛰"
|
||||||
|
name: "Горы"
|
||||||
|
- id: 3
|
||||||
|
symbol: "🚣"
|
||||||
|
name: "Озеро"
|
||||||
|
- id: 4
|
||||||
|
symbol: "🏙"
|
||||||
|
name: "Город"
|
||||||
|
- id: 5
|
||||||
|
symbol: "🏛"
|
||||||
|
name: "Катакомбы"
|
||||||
|
- id: 6
|
||||||
|
symbol: "⛪️"
|
||||||
|
name: "Кладбище"
|
44
data/weapons.yml
Normal file
44
data/weapons.yml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
- id: 1
|
||||||
|
name: "Бита"
|
||||||
|
power: 3
|
||||||
|
price: 5
|
||||||
|
- id: 2
|
||||||
|
name: "Стальная бита"
|
||||||
|
power: 30
|
||||||
|
price: 2700
|
||||||
|
- id: 3
|
||||||
|
name: "Чугунная бита"
|
||||||
|
power: 60
|
||||||
|
price: 5400
|
||||||
|
- id: 4
|
||||||
|
name: "Титановая бита"
|
||||||
|
power: 100
|
||||||
|
price: 9000
|
||||||
|
- id: 5
|
||||||
|
name: "Алмазная бита"
|
||||||
|
power: 140
|
||||||
|
price: 12500
|
||||||
|
- id: 6
|
||||||
|
name: "Криптонитовая бита"
|
||||||
|
power: 160
|
||||||
|
price: 14500
|
||||||
|
- id: 7
|
||||||
|
name: "Буханка из пятёры"
|
||||||
|
power: 180
|
||||||
|
price: 16000
|
||||||
|
- id: 8
|
||||||
|
name: "Руки-базуки"
|
||||||
|
power: 200
|
||||||
|
price: 18000
|
||||||
|
- id: 9
|
||||||
|
name: "Какахи-торпеды"
|
||||||
|
power: 220
|
||||||
|
price: 20000
|
||||||
|
- id: 10
|
||||||
|
name: "Бита Бесконечности"
|
||||||
|
power: 250
|
||||||
|
price: 23000
|
||||||
|
- id: 11
|
||||||
|
name: "Бита 280"
|
||||||
|
power: 280
|
||||||
|
price: 25000
|
@ -5,7 +5,9 @@ package datacache
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"gopkg.in/yaml.v2"
|
||||||
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
||||||
|
"source.wtfteam.pro/i2_bot/i2_bot/static"
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -27,18 +29,17 @@ func (dc *DataCache) loadElements() {
|
|||||||
func (dc *DataCache) getElements() []datamapping.Element {
|
func (dc *DataCache) getElements() []datamapping.Element {
|
||||||
elements := []datamapping.Element{}
|
elements := []datamapping.Element{}
|
||||||
|
|
||||||
elements = append(elements, datamapping.Element{1, "👊", "Боевой", 1})
|
yamlFile, err := static.ReadFile("elements.yml")
|
||||||
elements = append(elements, datamapping.Element{2, "🌀", "Летающий", 1})
|
if err != nil {
|
||||||
elements = append(elements, datamapping.Element{3, "💀", "Ядовитый", 1})
|
c.Log.Error(err.Error())
|
||||||
elements = append(elements, datamapping.Element{4, "🗿", "Каменный", 1})
|
c.Log.Fatal("Can't read elements data file")
|
||||||
elements = append(elements, datamapping.Element{5, "🔥", "Огненный", 2})
|
}
|
||||||
elements = append(elements, datamapping.Element{6, "⚡", "Электрический", 2})
|
|
||||||
elements = append(elements, datamapping.Element{7, "💧", "Водяной", 2})
|
err = yaml.Unmarshal(yamlFile, &elements)
|
||||||
elements = append(elements, datamapping.Element{8, "🍀", "Травяной", 2})
|
if err != nil {
|
||||||
elements = append(elements, datamapping.Element{9, "💩", "Отважный", 3})
|
c.Log.Error(err.Error())
|
||||||
elements = append(elements, datamapping.Element{10, "👁", "Психический", 3})
|
c.Log.Fatal("Can't parse elements data file")
|
||||||
elements = append(elements, datamapping.Element{11, "👿", "Тёмный", 3})
|
}
|
||||||
elements = append(elements, datamapping.Element{12, "⌛", "Времени", 3})
|
|
||||||
|
|
||||||
return elements
|
return elements
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,9 @@ package datacache
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"gopkg.in/yaml.v2"
|
||||||
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
||||||
|
"source.wtfteam.pro/i2_bot/i2_bot/static"
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -27,9 +29,17 @@ func (dc *DataCache) loadLeagues() {
|
|||||||
func (dc *DataCache) getLeagues() []datamapping.League {
|
func (dc *DataCache) getLeagues() []datamapping.League {
|
||||||
leagues := []datamapping.League{}
|
leagues := []datamapping.League{}
|
||||||
|
|
||||||
leagues = append(leagues, datamapping.League{1, "🈸", "ИНСТИНКТ"})
|
yamlFile, err := static.ReadFile("leagues.yml")
|
||||||
leagues = append(leagues, datamapping.League{2, "🈳 ", "МИСТИКА"})
|
if err != nil {
|
||||||
leagues = append(leagues, datamapping.League{3, "🈵", "ОТВАГА"})
|
c.Log.Error(err.Error())
|
||||||
|
c.Log.Fatal("Can't read leagues data file")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = yaml.Unmarshal(yamlFile, &leagues)
|
||||||
|
if err != nil {
|
||||||
|
c.Log.Error(err.Error())
|
||||||
|
c.Log.Fatal("Can't parse leagues data file")
|
||||||
|
}
|
||||||
|
|
||||||
return leagues
|
return leagues
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,9 @@ package datacache
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"gopkg.in/yaml.v2"
|
||||||
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
||||||
|
"source.wtfteam.pro/i2_bot/i2_bot/static"
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -27,12 +29,17 @@ func (dc *DataCache) loadLocations() {
|
|||||||
func (dc *DataCache) getLocations() []datamapping.Location {
|
func (dc *DataCache) getLocations() []datamapping.Location {
|
||||||
locations := []datamapping.Location{}
|
locations := []datamapping.Location{}
|
||||||
|
|
||||||
locations = append(locations, datamapping.Location{1, "🌲", "Лес"})
|
yamlFile, err := static.ReadFile("locations.yml")
|
||||||
locations = append(locations, datamapping.Location{2, "⛰", "Горы"})
|
if err != nil {
|
||||||
locations = append(locations, datamapping.Location{3, "🚣", "Озеро"})
|
c.Log.Error(err.Error())
|
||||||
locations = append(locations, datamapping.Location{4, "🏙", "Город"})
|
c.Log.Fatal("Can't read locations data file")
|
||||||
locations = append(locations, datamapping.Location{5, "🏛", "Катакомбы"})
|
}
|
||||||
locations = append(locations, datamapping.Location{6, "⛪️", "Кладбище"})
|
|
||||||
|
err = yaml.Unmarshal(yamlFile, &locations)
|
||||||
|
if err != nil {
|
||||||
|
c.Log.Error(err.Error())
|
||||||
|
c.Log.Fatal("Can't parse locations data file")
|
||||||
|
}
|
||||||
|
|
||||||
return locations
|
return locations
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,9 @@ package datacache
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"gopkg.in/yaml.v2"
|
||||||
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
"source.wtfteam.pro/i2_bot/i2_bot/lib/datamapping"
|
||||||
|
"source.wtfteam.pro/i2_bot/i2_bot/static"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
@ -28,13 +30,17 @@ func (dc *DataCache) loadWeapons() {
|
|||||||
func (dc *DataCache) getWeapons() []datamapping.Weapon {
|
func (dc *DataCache) getWeapons() []datamapping.Weapon {
|
||||||
weapons := []datamapping.Weapon{}
|
weapons := []datamapping.Weapon{}
|
||||||
|
|
||||||
weapons = append(weapons, datamapping.Weapon{1, "Бита", 2, 5})
|
yamlFile, err := static.ReadFile("weapons.yml")
|
||||||
weapons = append(weapons, datamapping.Weapon{2, "Стальная бита", 10, 40})
|
if err != nil {
|
||||||
weapons = append(weapons, datamapping.Weapon{3, "Чугунная бита", 200, 500})
|
c.Log.Error(err.Error())
|
||||||
weapons = append(weapons, datamapping.Weapon{4, "Титановая бита", 2000, 10000})
|
c.Log.Fatal("Can't read weapons data file")
|
||||||
weapons = append(weapons, datamapping.Weapon{5, "Алмазная бита", 10000, 100000})
|
}
|
||||||
weapons = append(weapons, datamapping.Weapon{6, "Криптонитовая бита", 100000, 500000})
|
|
||||||
weapons = append(weapons, datamapping.Weapon{7, "Буханка из пятёры", 1000000, 5000000})
|
err = yaml.Unmarshal(yamlFile, &weapons)
|
||||||
|
if err != nil {
|
||||||
|
c.Log.Error(err.Error())
|
||||||
|
c.Log.Fatal("Can't parse weapons data file")
|
||||||
|
}
|
||||||
|
|
||||||
return weapons
|
return weapons
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,8 @@ package datamapping
|
|||||||
|
|
||||||
// Element is a struct, which represents element data
|
// Element is a struct, which represents element data
|
||||||
type Element struct {
|
type Element struct {
|
||||||
ID int
|
ID int `yaml:"id"`
|
||||||
Symbol string
|
Symbol string `yaml:"symbol"`
|
||||||
Name string
|
Name string `yaml:"name"`
|
||||||
LeagueID int
|
LeagueID int `yaml:"league_id"`
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ package datamapping
|
|||||||
|
|
||||||
// League is a struct, which represents league data
|
// League is a struct, which represents league data
|
||||||
type League struct {
|
type League struct {
|
||||||
ID int
|
ID int `yaml:"id"`
|
||||||
Symbol string
|
Symbol string `yaml:"symbol"`
|
||||||
Name string
|
Name string `yaml:"name"`
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ package datamapping
|
|||||||
|
|
||||||
// Location is a struct, which represents location data
|
// Location is a struct, which represents location data
|
||||||
type Location struct {
|
type Location struct {
|
||||||
ID int
|
ID int `yaml:"id"`
|
||||||
Symbol string
|
Symbol string `yaml:"symbol"`
|
||||||
Name string
|
Name string `yaml:"name"`
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,8 @@ package datamapping
|
|||||||
|
|
||||||
// Weapon is a struct, which represents weapon data
|
// Weapon is a struct, which represents weapon data
|
||||||
type Weapon struct {
|
type Weapon struct {
|
||||||
ID int
|
ID int `yaml:"id"`
|
||||||
Name string
|
Name string `yaml:"name"`
|
||||||
Power int
|
Power int `yaml:"power"`
|
||||||
Price int
|
Price int `yaml:"price"`
|
||||||
}
|
}
|
||||||
|
210
static/ab0x.go
Normal file
210
static/ab0x.go
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
// Code generated by fileb0x at "2018-04-30 19:42:29.945122063 +0400 +04 m=+0.004478925" from config file "b0x.yaml" DO NOT EDIT.
|
||||||
|
// modification hash(4eca41b6607bbac040da73b72d816cc7.81c8b21350256c12bfec846430631e9b)
|
||||||
|
|
||||||
|
package static
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"path"
|
||||||
|
|
||||||
|
"context"
|
||||||
|
"golang.org/x/net/webdav"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// CTX is a context for webdav vfs
|
||||||
|
CTX = context.Background()
|
||||||
|
|
||||||
|
// FS is a virtual memory file system
|
||||||
|
FS = webdav.NewMemFS()
|
||||||
|
|
||||||
|
// Handler is used to server files through a http handler
|
||||||
|
Handler *webdav.Handler
|
||||||
|
|
||||||
|
// HTTP is the http file system
|
||||||
|
HTTP http.FileSystem = new(HTTPFS)
|
||||||
|
)
|
||||||
|
|
||||||
|
// HTTPFS implements http.FileSystem
|
||||||
|
type HTTPFS struct{}
|
||||||
|
|
||||||
|
// FileElementsYml is "elements.yml"
|
||||||
|
var FileElementsYml = []byte("\x2d\x20\x69\x64\x3a\x20\x31\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x91\x8a\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x91\xd0\xbe\xd0\xb5\xd0\xb2\xd0\xbe\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x31\x0a\x2d\x20\x69\x64\x3a\x20\x32\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x8c\x80\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9b\xd0\xb5\xd1\x82\xd0\xb0\xd1\x8e\xd1\x89\xd0\xb8\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x31\x0a\x2d\x20\x69\x64\x3a\x20\x33\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x92\x80\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\xaf\xd0\xb4\xd0\xbe\xd0\xb2\xd0\xb8\xd1\x82\xd1\x8b\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x31\x0a\x2d\x20\x69\x64\x3a\x20\x34\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x97\xbf\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9a\xd0\xb0\xd0\xbc\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x31\x0a\x2d\x20\x69\x64\x3a\x20\x35\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x94\xa5\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9e\xd0\xb3\xd0\xbd\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x32\x0a\x2d\x20\x69\x64\x3a\x20\x36\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xe2\x9a\xa1\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\xad\xd0\xbb\xd0\xb5\xd0\xba\xd1\x82\xd1\x80\xd0\xb8\xd1\x87\xd0\xb5\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x32\x0a\x2d\x20\x69\x64\x3a\x20\x37\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x92\xa7\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x92\xd0\xbe\xd0\xb4\xd1\x8f\xd0\xbd\xd0\xbe\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x32\x0a\x2d\x20\x69\x64\x3a\x20\x38\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x8d\x80\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\xa2\xd1\x80\xd0\xb0\xd0\xb2\xd1\x8f\xd0\xbd\xd0\xbe\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x32\x0a\x2d\x20\x69\x64\x3a\x20\x39\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x92\xa9\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9e\xd1\x82\xd0\xb2\xd0\xb0\xd0\xb6\xd0\xbd\xd1\x8b\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x33\x0a\x2d\x20\x69\x64\x3a\x20\x31\x30\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x91\x81\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9f\xd1\x81\xd0\xb8\xd1\x85\xd0\xb8\xd1\x87\xd0\xb5\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x33\x0a\x2d\x20\x69\x64\x3a\x20\x31\x31\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x91\xbf\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\xa2\xd0\xb5\xd0\xbc\xd0\xbd\xd1\x8b\xd0\xb9\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x33\x0a\x2d\x20\x69\x64\x3a\x20\x31\x32\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xe2\x8c\x9b\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x92\xd1\x80\xd0\xb5\xd0\xbc\xd0\xb5\xd0\xbd\xd0\xb8\x22\x0a\x20\x20\x6c\x65\x61\x67\x75\x65\x5f\x69\x64\x3a\x20\x33")
|
||||||
|
|
||||||
|
// FileLeaguesYml is "leagues.yml"
|
||||||
|
var FileLeaguesYml = []byte("\x2d\x20\x69\x64\x3a\x20\x31\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\xf0\x9f\x88\xb8\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x98\xd0\x9d\xd0\xa1\xd0\xa2\xd0\x98\xd0\x9d\xd0\x9a\xd0\xa2\x22\x0a\x2d\x20\x69\x64\x3a\x20\x32\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\xf0\x9f\x88\xb3\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9c\xd0\x98\xd0\xa1\xd0\xa2\xd0\x98\xd0\x9a\xd0\x90\x22\x0a\x2d\x20\x69\x64\x3a\x20\x33\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\xf0\x9f\x88\xb5\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9e\xd0\xa2\xd0\x92\xd0\x90\xd0\x93\xd0\x90\x22")
|
||||||
|
|
||||||
|
// FileLocationsYml is "locations.yml"
|
||||||
|
var FileLocationsYml = []byte("\x2d\x20\x69\x64\x3a\x20\x31\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x8c\xb2\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9b\xd0\xb5\xd1\x81\x22\x0a\x2d\x20\x69\x64\x3a\x20\x32\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xe2\x9b\xb0\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x93\xd0\xbe\xd1\x80\xd1\x8b\x22\x0a\x2d\x20\x69\x64\x3a\x20\x33\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x9a\xa3\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9e\xd0\xb7\xd0\xb5\xd1\x80\xd0\xbe\x22\x0a\x2d\x20\x69\x64\x3a\x20\x34\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x8f\x99\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x93\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb4\x22\x0a\x2d\x20\x69\x64\x3a\x20\x35\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xf0\x9f\x8f\x9b\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9a\xd0\xb0\xd1\x82\xd0\xb0\xd0\xba\xd0\xbe\xd0\xbc\xd0\xb1\xd1\x8b\x22\x0a\x2d\x20\x69\x64\x3a\x20\x36\x0a\x20\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x22\xe2\x9b\xaa\xef\xb8\x8f\x22\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9a\xd0\xbb\xd0\xb0\xd0\xb4\xd0\xb1\xd0\xb8\xd1\x89\xd0\xb5\x22")
|
||||||
|
|
||||||
|
// FileWeaponsYml is "weapons.yml"
|
||||||
|
var FileWeaponsYml = []byte("\x2d\x20\x69\x64\x3a\x20\x31\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x91\xd0\xb8\xd1\x82\xd0\xb0\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x33\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x35\x0a\x2d\x20\x69\x64\x3a\x20\x32\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\xa1\xd1\x82\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xb0\xd1\x8f\x20\xd0\xb1\xd0\xb8\xd1\x82\xd0\xb0\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x33\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x32\x37\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x33\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\xa7\xd1\x83\xd0\xb3\xd1\x83\xd0\xbd\xd0\xbd\xd0\xb0\xd1\x8f\x20\xd0\xb1\xd0\xb8\xd1\x82\xd0\xb0\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x36\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x35\x34\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x34\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\xa2\xd0\xb8\xd1\x82\xd0\xb0\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x8f\x20\xd0\xb1\xd0\xb8\xd1\x82\xd0\xb0\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x31\x30\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x39\x30\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x35\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x90\xd0\xbb\xd0\xbc\xd0\xb0\xd0\xb7\xd0\xbd\xd0\xb0\xd1\x8f\x20\xd0\xb1\xd0\xb8\xd1\x82\xd0\xb0\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x31\x34\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x31\x32\x35\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x36\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9a\xd1\x80\xd0\xb8\xd0\xbf\xd1\x82\xd0\xbe\xd0\xbd\xd0\xb8\xd1\x82\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x8f\x20\xd0\xb1\xd0\xb8\xd1\x82\xd0\xb0\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x31\x36\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x31\x34\x35\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x37\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x91\xd1\x83\xd1\x85\xd0\xb0\xd0\xbd\xd0\xba\xd0\xb0\x20\xd0\xb8\xd0\xb7\x20\xd0\xbf\xd1\x8f\xd1\x82\xd1\x91\xd1\x80\xd1\x8b\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x31\x38\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x31\x36\x30\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x38\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\xa0\xd1\x83\xd0\xba\xd0\xb8\x2d\xd0\xb1\xd0\xb0\xd0\xb7\xd1\x83\xd0\xba\xd0\xb8\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x32\x30\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x31\x38\x30\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x39\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x9a\xd0\xb0\xd0\xba\xd0\xb0\xd1\x85\xd0\xb8\x2d\xd1\x82\xd0\xbe\xd1\x80\xd0\xbf\xd0\xb5\xd0\xb4\xd1\x8b\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x32\x32\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x32\x30\x30\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x31\x30\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x91\xd0\xb8\xd1\x82\xd0\xb0\x20\xd0\x91\xd0\xb5\xd1\x81\xd0\xba\xd0\xbe\xd0\xbd\xd0\xb5\xd1\x87\xd0\xbd\xd0\xbe\xd1\x81\xd1\x82\xd0\xb8\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x32\x35\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x32\x33\x30\x30\x30\x0a\x2d\x20\x69\x64\x3a\x20\x31\x31\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\xd0\x91\xd0\xb8\xd1\x82\xd0\xb0\x20\x32\x38\x30\x22\x0a\x20\x20\x70\x6f\x77\x65\x72\x3a\x20\x32\x38\x30\x0a\x20\x20\x70\x72\x69\x63\x65\x3a\x20\x32\x35\x30\x30\x30")
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
if CTX.Err() != nil {
|
||||||
|
panic(CTX.Err())
|
||||||
|
}
|
||||||
|
|
||||||
|
var err error
|
||||||
|
|
||||||
|
var f webdav.File
|
||||||
|
|
||||||
|
f, err = FS.OpenFile(CTX, "elements.yml", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = f.Write(FileElementsYml)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = f.Close()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err = FS.OpenFile(CTX, "leagues.yml", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = f.Write(FileLeaguesYml)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = f.Close()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err = FS.OpenFile(CTX, "locations.yml", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = f.Write(FileLocationsYml)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = f.Close()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err = FS.OpenFile(CTX, "weapons.yml", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = f.Write(FileWeaponsYml)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = f.Close()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
Handler = &webdav.Handler{
|
||||||
|
FileSystem: FS,
|
||||||
|
LockSystem: webdav.NewMemLS(),
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open a file
|
||||||
|
func (hfs *HTTPFS) Open(path string) (http.File, error) {
|
||||||
|
|
||||||
|
f, err := FS.OpenFile(CTX, path, os.O_RDONLY, 0644)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return f, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReadFile is adapTed from ioutil
|
||||||
|
func ReadFile(path string) ([]byte, error) {
|
||||||
|
f, err := FS.OpenFile(CTX, path, os.O_RDONLY, 0644)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
buf := bytes.NewBuffer(make([]byte, 0, bytes.MinRead))
|
||||||
|
|
||||||
|
// If the buffer overflows, we will get bytes.ErrTooLarge.
|
||||||
|
// Return that as an error. Any other panic remains.
|
||||||
|
defer func() {
|
||||||
|
e := recover()
|
||||||
|
if e == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if panicErr, ok := e.(error); ok && panicErr == bytes.ErrTooLarge {
|
||||||
|
err = panicErr
|
||||||
|
} else {
|
||||||
|
panic(e)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
_, err = buf.ReadFrom(f)
|
||||||
|
return buf.Bytes(), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// WriteFile is adapTed from ioutil
|
||||||
|
func WriteFile(filename string, data []byte, perm os.FileMode) error {
|
||||||
|
f, err := FS.OpenFile(CTX, filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
n, err := f.Write(data)
|
||||||
|
if err == nil && n < len(data) {
|
||||||
|
err = io.ErrShortWrite
|
||||||
|
}
|
||||||
|
if err1 := f.Close(); err == nil {
|
||||||
|
err = err1
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// WalkDirs looks for files in the given dir and returns a list of files in it
|
||||||
|
// usage for all files in the b0x: WalkDirs("", false)
|
||||||
|
func WalkDirs(name string, includeDirsInList bool, files ...string) ([]string, error) {
|
||||||
|
f, err := FS.OpenFile(CTX, name, os.O_RDONLY, 0)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
fileInfos, err := f.Readdir(0)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = f.Close()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, info := range fileInfos {
|
||||||
|
filename := path.Join(name, info.Name())
|
||||||
|
|
||||||
|
if includeDirsInList || !info.IsDir() {
|
||||||
|
files = append(files, filename)
|
||||||
|
}
|
||||||
|
|
||||||
|
if info.IsDir() {
|
||||||
|
files, err = WalkDirs(filename, includeDirsInList, files...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return files, nil
|
||||||
|
}
|
Reference in New Issue
Block a user