| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673 |
- // package web_api -- веб-сервер для API
- package web_api
- import (
- "fmt"
- "strings"
- "github.com/gofiber/fiber/v2"
- . "gitp78su.ipnodns.ru/svi/kern"
- . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
- . "wartank/app/lev0/alias"
- . "wartank/app/lev0/types"
- )
- // ВебАпи -- веб-сервер для API
- type ВебАпи struct {
- прилож ИПриложение
- лог ILogBuf
- }
- // НовВебАпи -- возвращает новый веб-сервер для API
- func НовВебАпи() *ВебАпи {
- лог := NewLogBuf()
- конт := GetKernelCtx()
- сам := &ВебАпи{
- прилож: конт.Get("мод_сервер").Val().(ИПриложение),
- лог: лог,
- }
- файбер := конт.Get("fiberApp").Val().(*fiber.App)
- файбер.Post("/api/uptime", сам.аптаймСервер)
- файбер.Post("/api/count_start", сам.стартНомер)
- файбер.Post("/api/bot/:number/stat_attack", сам.статаАтака)
- файбер.Post("/api/bot/:number/stat_bron", сам.статаБроня)
- файбер.Post("/api/bot/:number/stat_fyne", сам.статаТочность)
- файбер.Post("/api/bot/:number/stat_prot", сам.статаПрочность)
- файбер.Post("/api/bot/:number/stat_power", сам.статаМощность)
- файбер.Post("/api/bot/:number/mine/level", сам.шахтаУровень)
- файбер.Post("/api/bot/:number/mine/mode", сам.шахтаРежим)
- файбер.Post("/api/bot/:number/mine/count_product", сам.шахтаРаботаКоличество)
- файбер.Post("/api/bot/:number/mine/name_product", сам.шахтаРаботаИмя)
- файбер.Post("/api/bot/:number/mine/back_time", сам.шахтаВремяОсталось)
- файбер.Post("/api/bot/:number/mine/log", сам.шахтаЛог)
- файбер.Post("/api/bot/:number/tank/fuel", сам.танкТопливо)
- файбер.Post("/api/bot/:number/angar/silver", сам.ангарСеребро)
- файбер.Post("/api/bot/:number/angar/gold", сам.ангарЗолото)
- файбер.Post("/api/bot/:number/polygon/level", сам.полигонУровень)
- файбер.Post("/api/bot/:number/polygon/mode", сам.полигонРежим)
- файбер.Post("/api/bot/:number/polygon/count_product", сам.полигонРаботаКоличество)
- файбер.Post("/api/bot/:number/polygon/name_product", сам.полигонРаботаИмя)
- файбер.Post("/api/bot/:number/polygon/back_time", сам.полигонВремяОсталось)
- файбер.Post("/api/bot/:number/arsenal/level", сам.арсеналУровень)
- файбер.Post("/api/bot/:number/arsenal/mode", сам.арсеналРежим)
- файбер.Post("/api/bot/:number/arsenal/count_product", сам.арсеналРаботаКоличество)
- файбер.Post("/api/bot/:number/arsenal/name_product", сам.арсеналРаботаИмя)
- файбер.Post("/api/bot/:number/arsenal/back_time", сам.арсеналВремяОсталось)
- файбер.Post("/api/bot/:number/arsenal/log", сам.арсеналЛог)
- файбер.Post("/api/bot/:number/arsenal/kumul", сам.арсеналКумуль)
- файбер.Post("/api/bot/:number/arsenal/bron", сам.арсеналБронебойка)
- файбер.Post("/api/bot/:number/arsenal/fugas", сам.арсеналФугас)
- файбер.Post("/api/bot/:number/arsenal/remka", сам.арсеналРемка)
- return сам
- }
- // Возвращает ремки на арсенале
- func (сам *ВебАпи) арсеналРемка(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Ремка: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Ремка: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- стрСнаряды := арсенал.Ремки().ЗначСтр()
- if стрСнаряды == "" {
- return кнт.SendString("[Ремка: пустое значение]")
- }
- return кнт.SendString("[Ремка: " + стрСнаряды + "]")
- }
- // Возвращает фугасы на арсенале
- func (сам *ВебАпи) арсеналФугас(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Фугас: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Фугас: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- стрСнаряды := арсенал.Фугасы().ЗначСтр()
- if стрСнаряды == "" {
- return кнт.SendString("[Фугас: пустое значение]")
- }
- return кнт.SendString("[Фугас: " + стрСнаряды + "]")
- }
- // Возвращает бронебойки на арсенале
- func (сам *ВебАпи) арсеналБронебойка(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Броне: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Броне: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- стрСнаряды := арсенал.Бронебойки().ЗначСтр()
- if стрСнаряды == "" {
- return кнт.SendString("[Броне: пустое значение]")
- }
- return кнт.SendString("[Броне: " + стрСнаряды + "]")
- }
- // Возвращает кумули на арсенале
- func (сам *ВебАпи) арсеналКумуль(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Кумуль: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Кумуль: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- стрСнаряды := арсенал.Кумулятивы().ЗначСтр()
- if стрСнаряды == "" {
- return кнт.SendString("[Кумуль: пустое значение]")
- }
- return кнт.SendString("[Кумуль: " + стрСнаряды + "]")
- }
- // Возвращает силу мощности бота
- func (сам *ВебАпи) статаМощность(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Мощность: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Мощность: нет такого бота]")
- }
- танкСтата := бот.КонтБот().Get("танкСтат").Val().(ИТанкСтат)
- стрМощность := танкСтата.Мощь().ЗначСтр()
- if стрМощность == "" {
- return кнт.SendString("[Мощность: пустое значение]")
- }
- return кнт.SendString("[Мощность: " + стрМощность + "]")
- }
- // Возвращает силу прочности бота
- func (сам *ВебАпи) статаПрочность(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Прочность: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Прочность: нет такого бота]")
- }
- танкСтата := бот.КонтБот().Get("танкСтат").Val().(ИТанкСтат)
- стрБроня := танкСтата.Прочность().ЗначСтр()
- if стрБроня == "" {
- return кнт.SendString("[Прочность: пустое значение]")
- }
- return кнт.SendString("[Прочность: " + стрБроня + "]")
- }
- // Возвращает силу точности бота
- func (сам *ВебАпи) статаТочность(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Точность: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Точность: нет такого бота]")
- }
- танкСтата := бот.КонтБот().Get("танкСтат").Val().(ИТанкСтат)
- стрБроня := танкСтата.Точность().ЗначСтр()
- if стрБроня == "" {
- return кнт.SendString("[Точность: пустое значение]")
- }
- return кнт.SendString("[Точность: " + стрБроня + "]")
- }
- // Возвращает силу брони бота
- func (сам *ВебАпи) статаБроня(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Броня: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Броня: нет такого бота]")
- }
- танкСтата := бот.КонтБот().Get("танкСтат").Val().(ИТанкСтат)
- стрБроня := танкСтата.Броня().ЗначСтр()
- if стрБроня == "" {
- return кнт.SendString("[Броня: пустое значение]")
- }
- return кнт.SendString("[Броня: " + стрБроня + "]")
- }
- // Возвращает силу атаки бота
- func (сам *ВебАпи) статаАтака(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Атака: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Атака: нет такого бота]")
- }
- танкСтата := бот.КонтБот().Get("танкСтат").Val().(ИТанкСтат)
- стрАтака := танкСтата.Атака().ЗначСтр()
- if стрАтака == "" {
- return кнт.SendString("[Атака: пустое значение]")
- }
- return кнт.SendString("[Атака: " + стрАтака + "]")
- }
- // Возвращает имя производства снаряда на оружейке
- func (сам *ВебАпи) арсеналРаботаИмя(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Тип: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Тип: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- имя := арсенал.ПродуктСейчас().Имя()
- if имя == "" {
- return кнт.SendString("[Тип: пустое имя]")
- }
- return кнт.SendString("[Тип: " + имя + "]")
- }
- // Возвращает режим оружейки
- func (сам *ВебАпи) арсеналРежим(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Режим: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Режим: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- сценаРежим := арсенал.Состояние()
- стрРежим := fmt.Sprint(сценаРежим.Получ())
- if стрРежим == "" {
- return кнт.SendString("[Режим: пустой режим]")
- }
- return кнт.SendString("[Режим: " + стрРежим + "]")
- }
- // Возвращает уровень арсенала
- func (сам *ВебАпи) арсеналУровень(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Уровень: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Уровень: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- уровень := арсенал.Уровень()
- стрУровень := fmt.Sprint(уровень.Получ())
- if стрУровень == "" {
- return кнт.SendString("[Уровень: пустой уровень]")
- }
- return кнт.SendString("[Уровень: " + стрУровень + "]")
- }
- // Возвращает время, которое осталось на арсенале
- func (сам *ВебАпи) арсеналВремяОсталось(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Время: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Время: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- время := арсенал.ВремяОстат()
- стрВремя := время.String()
- if стрВремя == "" {
- return кнт.SendString("[Время: пустой остаток времени]")
- }
- return кнт.SendString("[Время: " + стрВремя + "]")
- }
- // Возвращает лог арсенала
- func (сам *ВебАпи) арсеналЛог(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Время: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Время: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаАрсенал)
- лог := арсенал.ВебЛог().Отладка()
- if лог == "" {
- return кнт.SendString("[Пустой лог арсенала]")
- }
- лог = strings.ReplaceAll(лог, "\n\n", "<br>")
- лог = strings.ReplaceAll(лог, "\n", "<br>")
- return кнт.SendString(лог)
- }
- // Возвращает количество производства на арсенале
- func (сам *ВебАпи) арсеналРаботаКоличество(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Кол: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Кол: нет такого бота]")
- }
- арсенал := бот.КонтБот().Get("арсенал").Val().(ИАренаПолигон)
- стрКолич := арсенал.ПродуктСейчас().ЗначСтр()
- if стрКолич == "" {
- return кнт.SendString("[Кол: пустое кол]")
- }
- return кнт.SendString("[Кол: +" + стрКолич + "]")
- }
- // Возвращает время, которое осталось на полигоне
- func (сам *ВебАпи) полигонВремяОсталось(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Время: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Время: нет такого бота]")
- }
- полигон := бот.КонтБот().Get("полигон").Val().(ИАренаПолигон)
- время := полигон.ВремяОстат()
- стрВремя := время.String()
- if стрВремя == "" {
- return кнт.SendString("[Время: пустой остаток времени]")
- }
- return кнт.SendString("[Время: " + стрВремя + "]")
- }
- // Возвращает имя добычи ресурса на полигоне
- func (сам *ВебАпи) полигонРаботаИмя(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Тип: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Тип: нет такого бота]")
- }
- полигон := бот.КонтБот().Get("полигон").Val().(ИАренаПолигон)
- имя := полигон.ПродуктСейчас().Имя()
- if имя == "" {
- return кнт.SendString("[Тип: пустое имя]")
- }
- return кнт.SendString("[Тип: " + имя + "]")
- }
- // Возвращает количество добычи на полигоне
- func (сам *ВебАпи) полигонРаботаКоличество(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Кол: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Кол: нет такого бота]")
- }
- полигон := бот.КонтБот().Get("полигон").Val().(ИАренаПолигон)
- стрКолич := полигон.ПродуктСейчас().ЗначСтр()
- if стрКолич == "" {
- return кнт.SendString("[Кол: пустое кол]")
- }
- return кнт.SendString("[Кол: +" + стрКолич + "]")
- }
- // Возвращает режим полигона
- func (сам *ВебАпи) полигонРежим(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Режим: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Режим: нет такого бота]")
- }
- полигон := бот.КонтБот().Get("полигон").Val().(ИАренаПолигон)
- сценаРежим := полигон.Состояние()
- стрРежим := fmt.Sprint(сценаРежим.Получ())
- if стрРежим == "" {
- return кнт.SendString("[Режим: пустой режим]")
- }
- return кнт.SendString("[Режим: " + стрРежим + "]")
- }
- // Возвращает уровень полигона
- func (сам *ВебАпи) полигонУровень(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Уровень: неправильный номер бота(%q), err=<br><%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Уровень: нет такого бота]")
- }
- полигон := бот.КонтБот().Get("полигон").Val().(ИАренаПолигон)
- уровень := полигон.Уровень()
- стрУровень := fmt.Sprint(уровень.Получ())
- if стрУровень == "" {
- return кнт.SendString("[Уровень: пустой уровень]")
- }
- return кнт.SendString("[Уровень: " + стрУровень + "]")
- }
- // Возвращает количество золота в ангаре
- func (сам *ВебАпи) ангарЗолото(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Золото: неправильный номер бота(%q), err=<br>%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Золото: нет такого бота]")
- }
- ангар := бот.КонтБот().Get("ангар").Val().(ИАренаАнгар)
- стрЗолото := ангар.Золото().ЗначСтр()
- if стрЗолото == "0" {
- return кнт.SendString("[Золото: пустое кол]")
- }
- return кнт.SendString("[Золото: " + стрЗолото + "]")
- }
- // Возвращает количество серебра в ангаре
- func (сам *ВебАпи) ангарСеребро(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Серебро: неправильный номер бота(%q), err=<br>%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Серебро: нет такого бота]")
- }
- ангар := бот.КонтБот().Get("ангар").Val().(ИАренаАнгар)
- стрСеребро := ангар.Серебро().ЗначСтр()
- if стрСеребро == "0" {
- return кнт.SendString("[Серебро: пустое кол]")
- }
- return кнт.SendString("[Серебро: " + стрСеребро + "]")
- }
- // Возвращает количество топлива в танке
- func (сам *ВебАпи) танкТопливо(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Топливо: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Топливо: нет такого бота]")
- }
- ангар := бот.КонтБот().Get("ангар").Val().(ИАренаАнгар)
- стрТопливо := ангар.Топливо().ЗначСтр()
- if стрТопливо == "0" {
- return кнт.SendString("[Топливо: пустое кол]")
- }
- return кнт.SendString("[Топливо: " + стрТопливо + "]")
- }
- // Возвращает имя добычи ресурса в шахте
- func (сам *ВебАпи) шахтаРаботаИмя(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Тип: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Тип: нет такого бота]")
- }
- шахта := бот.КонтБот().Get("шахта").Val().(ИАренаШахта)
- имя := шахта.ПродуктСейчас().Имя()
- if имя == "" {
- return кнт.SendString("[Тип: пустое имя]")
- }
- return кнт.SendString("[Тип: " + имя + "]")
- }
- // Возвращает количество добычи в шахте
- func (сам *ВебАпи) шахтаРаботаКоличество(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Кол: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Кол: нет такого бота]")
- }
- шахта := бот.КонтБот().Get("шахта").Val().(ИАренаШахта)
- стрКолич := шахта.ПродуктСейчас().ЗначСтр()
- if стрКолич == "" {
- return кнт.SendString("[Кол: пустое кол]")
- }
- return кнт.SendString("[Кол: " + стрКолич + "]")
- }
- // Возвращает режим шахты
- func (сам *ВебАпи) шахтаРежим(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Режим: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Режим: нет такого бота]")
- }
- шахта := бот.КонтБот().Get("шахта").Val().(ИАренаШахта)
- сценаРежим := шахта.Состояние()
- стрРежим := fmt.Sprint(сценаРежим.Получ())
- if стрРежим == "" {
- return кнт.SendString("[Режим: пустой режим]")
- }
- return кнт.SendString("[Режим: " + стрРежим + "]")
- }
- // Возвращает уровень шахты
- func (сам *ВебАпи) шахтаУровень(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Уровень: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Уровень: нет такого бота]")
- }
- шахта := бот.КонтБот().Get("шахта").Val().(ИАренаШахта)
- уровень := шахта.Уровень()
- стрУровень := fmt.Sprint(уровень.Получ())
- if стрУровень == "" {
- return кнт.SendString("[Уровень: пустой уровень]")
- }
- return кнт.SendString("[Уровень: " + стрУровень + "]")
- }
- // Возвращает лог шахты
- func (сам *ВебАпи) шахтаЛог(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Время: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Время: нет такого бота]")
- }
- шахта := бот.КонтБот().Get("шахта").Val().(ИАренаШахта)
- лог := шахта.ВебЛог().Отладка()
- if лог == "" {
- return кнт.SendString("[Пустой лог шахты]")
- }
- лог = strings.ReplaceAll(лог, "\n\n", "<br>")
- лог = strings.ReplaceAll(лог, "\n", "<br>")
- return кнт.SendString(лог)
- }
- // Возвращает время, которое осталось на шахте
- func (сам *ВебАпи) шахтаВремяОсталось(кнт *fiber.Ctx) error {
- номер, ош := кнт.ParamsInt("number")
- if ош != nil {
- сообщ := fmt.Sprintf("[Время: неправильный номер бота(%q), err=%v]", номер, ош.Error())
- return кнт.SendString(сообщ)
- }
- ботНомер := АБотНомер(номер)
- бот := сам.прилож.ServBots().Get(ботНомер)
- if бот == nil {
- return кнт.SendString("[Время: нет такого бота]")
- }
- шахта := бот.КонтБот().Get("шахта").Val().(ИАренаШахта)
- время := шахта.ВремяОстат()
- стрВремя := время.String()
- if стрВремя == "" {
- return кнт.SendString("[Время: пустой остаток времени]")
- }
- return кнт.SendString("[Время: " + стрВремя + "]")
- }
- // Возвращает счётчик запусков сервера
- func (сам *ВебАпи) стартНомер(кнт *fiber.Ctx) error {
- return кнт.SendString("[Старт: " + fmt.Sprint(сам.прилож.Стат().СчётСтарт()) + "]")
- }
- // Возвращает аптайм сервера
- func (сам *ВебАпи) аптаймСервер(кнт *fiber.Ctx) error {
- return кнт.SendString("[Аптайм: " + сам.прилож.Стат().ВремяВсего() + "]")
- }
|