|
|
@@ -1,5 +1,5 @@
|
|
|
-// package fuel -- склад топлива
|
|
|
-package fuel
|
|
|
+// package arena_fuel_storage -- склад топлива
|
|
|
+package arena_fuel_storage
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
@@ -10,14 +10,12 @@ import (
|
|
|
|
|
|
. "wartank/app/lev0/types"
|
|
|
"wartank/app/lev2/arena"
|
|
|
- "wartank/app/lev2/arena/arena_net"
|
|
|
- "wartank/app/lev3/bot/bot_stat/stat_param"
|
|
|
+ "wartank/app/lev1/stat_param"
|
|
|
)
|
|
|
|
|
|
-// СкладТоплива -- склад топлива
|
|
|
-type СкладТоплива struct {
|
|
|
+// АренаСкладТоплива -- склад топлива
|
|
|
+type АренаСкладТоплива struct {
|
|
|
ИАрена
|
|
|
- сеть ИАренаСеть
|
|
|
бот ИБот
|
|
|
база ИБаза
|
|
|
топливо ИСтатПарам
|
|
|
@@ -28,9 +26,9 @@ type СкладТоплива struct {
|
|
|
}
|
|
|
|
|
|
// НовТопливо -- возвращает новой склад топлива
|
|
|
-func НовСкладТоплива(конт ИБотКонтекст, база ИБаза) (*СкладТоплива, error) {
|
|
|
+func НовСкладТоплива(конт ИБотКонтекст, база ИБаза) (*АренаСкладТоплива, error) {
|
|
|
кнт, фнОтмена := context.WithCancel(база.Контекст())
|
|
|
- сам := &СкладТоплива{
|
|
|
+ сам := &АренаСкладТоплива{
|
|
|
бот: база.Бот(),
|
|
|
база: база,
|
|
|
топливо: stat_param.НовСтатПарам("топливо"),
|
|
|
@@ -43,20 +41,19 @@ func НовСкладТоплива(конт ИБотКонтекст, база
|
|
|
АренаИмя_: "Склад_топлива",
|
|
|
СтрКонтроль_: `<span class="green2">Склад топлива - `,
|
|
|
ФнПуск_: сам.пуск,
|
|
|
- СтрУрл_: "https://wartank.ru/angar",
|
|
|
+ СтрУрл_: "https://wartank.ru/fuelStore",
|
|
|
}
|
|
|
сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
|
|
|
- сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/fuelStore")
|
|
|
_ = ИАренаТопливо(сам)
|
|
|
return сам, nil
|
|
|
}
|
|
|
|
|
|
-func (сам *СкладТоплива) Пуск() {
|
|
|
+func (сам *АренаСкладТоплива) Пуск() {
|
|
|
go сам.пуск()
|
|
|
}
|
|
|
|
|
|
// пуск -- запускает обработку шахты
|
|
|
-func (сам *СкладТоплива) пуск() {
|
|
|
+func (сам *АренаСкладТоплива) пуск() {
|
|
|
time.Sleep(time.Second * 3)
|
|
|
фнРабота := func() {
|
|
|
defer time.Sleep(time.Minute * 30)
|
|
|
@@ -71,19 +68,19 @@ func (сам *СкладТоплива) пуск() {
|
|
|
return
|
|
|
case <-сам.ВремяОстат().КаналСиг():
|
|
|
default:
|
|
|
- log.Printf("СкладТоплива.пуск()\n")
|
|
|
+ log.Printf("АренаСкладТоплива.пуск()\n")
|
|
|
фнРабота()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// Проверяет количество продукта в шахте
|
|
|
-func (сам *СкладТоплива) количествоПолучить() {
|
|
|
+func (сам *АренаСкладТоплива) количествоПолучить() {
|
|
|
var (
|
|
|
strOut string
|
|
|
еслиНайдено bool
|
|
|
)
|
|
|
- lstMine := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
|
|
|
+ lstMine := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
|
|
|
/*
|
|
|
<img class="ico vm" src="/images/icons/fuel.png?2" alt="Топливо" title="Топливо"> 720
|
|
|
*/
|
|
|
@@ -99,15 +96,15 @@ func (сам *СкладТоплива) количествоПолучить() {
|
|
|
_число := strings.TrimPrefix(strOut, `<img class="ico vm" src="/images/icons/fuel.png?2" alt="Топливо" title="Топливо"> `)
|
|
|
iNum, err := strconv.Atoi(_число)
|
|
|
if err != nil {
|
|
|
- log.Printf("СкладТоплива.количествоПолучить(): кол-во топлива (%v) не число, err=\n\t%v\n", _число, err)
|
|
|
+ log.Printf("АренаСкладТоплива.количествоПолучить(): кол-во топлива (%v) не число, err=\n\t%v\n", _число, err)
|
|
|
return
|
|
|
}
|
|
|
сам.топливо.Уст(iNum)
|
|
|
}
|
|
|
|
|
|
// Проверяет ускорение строительства
|
|
|
-func (сам *СкладТоплива) ускорениеПровер() {
|
|
|
- списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
+func (сам *АренаСкладТоплива) ускорениеПровер() {
|
|
|
+ списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
// <span class="green2">Склад топлива -
|
|
|
var (
|
|
|
еслиНайти = false
|
|
|
@@ -125,8 +122,8 @@ func (сам *СкладТоплива) ускорениеПровер() {
|
|
|
}
|
|
|
|
|
|
// Обновляет текущий уровень шахты (может быть не построена)
|
|
|
-func (сам *СкладТоплива) уровеньОбновить() bool {
|
|
|
- списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
+func (сам *АренаСкладТоплива) уровеньОбновить() bool {
|
|
|
+ списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
// <span class="green2">Склад топлива -
|
|
|
var (
|
|
|
еслиНайти = false
|
|
|
@@ -146,7 +143,7 @@ func (сам *СкладТоплива) уровеньОбновить() bool {
|
|
|
_стр = strings.TrimSuffix(_стр, `</span><br/>`)
|
|
|
иУровень, ош := strconv.Atoi(_стр)
|
|
|
if ош != nil {
|
|
|
- log.Printf("СкладТоплива.уровеньОбновить(): строка уровня сбойная, стр=%q, ош=\n\t%v\n", стр, ош)
|
|
|
+ log.Printf("АренаСкладТоплива.уровеньОбновить(): строка уровня сбойная, стр=%q, ош=\n\t%v\n", стр, ош)
|
|
|
return false
|
|
|
}
|
|
|
сам.уровень.Уст(иУровень)
|
|
|
@@ -168,7 +165,7 @@ func (сам *СкладТоплива) уровеньОбновить() bool {
|
|
|
}
|
|
|
|
|
|
// Пытается проапгрейдить топливный склад
|
|
|
-func (сам *СкладТоплива) проапгрейдить() bool {
|
|
|
+func (сам *АренаСкладТоплива) проапгрейдить() bool {
|
|
|
time.Sleep(time.Millisecond * 1000)
|
|
|
var (
|
|
|
еслиНайти = false
|
|
|
@@ -177,7 +174,7 @@ func (сам *СкладТоплива) проапгрейдить() bool {
|
|
|
)
|
|
|
фнКупить := func() bool {
|
|
|
defer time.Sleep(time.Millisecond * 1000)
|
|
|
- списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/FuelStorage")
|
|
|
+ списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/FuelStorage")
|
|
|
for _, стр = range списСтр {
|
|
|
// <a class="simple-but border mb5" href="FuelStorage?5-1.ILinkListener-upgradeLink-link">
|
|
|
if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
|
|
|
@@ -194,15 +191,15 @@ func (сам *СкладТоплива) проапгрейдить() bool {
|
|
|
// https://wartank.ru/building-upgrade/FuelStorage?4-1.ILinkListener-upgradeLink-link
|
|
|
// <a class="simple-but border mb5" href="FuelStorage?50-1.ILinkListener-upgradeLink-link">
|
|
|
ссылка := "https://wartank.ru/building-upgrade/" + _стр
|
|
|
- списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
|
|
|
+ списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
// Проверить, что постройка состоялась
|
|
|
for _, стр := range списСтр {
|
|
|
if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
|
|
|
- log.Printf("СкладТоплива.проапгрейдить().фнКупить(): покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
+ log.Printf("АренаСкладТоплива.проапгрейдить().фнКупить(): покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
return false // Покупка не оплачена
|
|
|
}
|
|
|
}
|
|
|
- log.Printf("+++++СкладТоплива.проапгрейдить().фнКупить(): покупка склада топлива прошла\n")
|
|
|
+ log.Printf("+++++АренаСкладТоплива.проапгрейдить().фнКупить(): покупка склада топлива прошла\n")
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
@@ -222,15 +219,15 @@ func (сам *СкладТоплива) проапгрейдить() bool {
|
|
|
_стр = strings.TrimSuffix(_стр, `"><span><span>да, подтверждаю</span></span></a>`)
|
|
|
// https://wartank.ru/wicket/page?6-1.ILinkListener-confirmLink
|
|
|
ссылка := "https://wartank.ru" + _стр
|
|
|
- списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
|
|
|
+ списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
// Проверить, что постройка состоялась
|
|
|
for _, стр := range списСтр {
|
|
|
if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {
|
|
|
- log.Printf("СкладТоплива.проапгрейдить().фнПодтверждение(): подтверждение покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
+ log.Printf("АренаСкладТоплива.проапгрейдить().фнПодтверждение(): подтверждение покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
return false // Покупка не оплачена
|
|
|
}
|
|
|
}
|
|
|
- log.Printf("+++++СкладТоплива.проапгрейдить().фнПодтверждение(): подтверждение покупка склада топлива прошла\n")
|
|
|
+ log.Printf("+++++АренаСкладТоплива.проапгрейдить().фнПодтверждение(): подтверждение покупка склада топлива прошла\n")
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
@@ -250,7 +247,7 @@ func (сам *СкладТоплива) проапгрейдить() bool {
|
|
|
}
|
|
|
|
|
|
// Строит шахту при нулевом уровне
|
|
|
-func (сам *СкладТоплива) построить() bool {
|
|
|
+func (сам *АренаСкладТоплива) построить() bool {
|
|
|
time.Sleep(time.Millisecond * 1000)
|
|
|
// <td style="width:50%;padding-left:1px;"><a class="simple-but border mb5" href="building-upgrade/FuelStorage"><span><span>Построить</span></span></a></td>
|
|
|
var (
|
|
|
@@ -260,7 +257,7 @@ func (сам *СкладТоплива) построить() bool {
|
|
|
)
|
|
|
фнКупить := func() bool {
|
|
|
defer time.Sleep(time.Millisecond * 1000)
|
|
|
- списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/FuelStorage")
|
|
|
+ списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/FuelStorage")
|
|
|
for _, стр = range списСтр {
|
|
|
// <a class="simple-but border mb5" href="FuelStorage?71-1.ILinkListener-upgradeLink-link">
|
|
|
if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
|
|
|
@@ -278,15 +275,15 @@ func (сам *СкладТоплива) построить() bool {
|
|
|
// <a class="simple-but border mb5" href="FuelStorage?50-1.ILinkListener-upgradeLink-link">
|
|
|
// https://wartank.ru/building-upgrade/FuelStorage?72-1.ILinkListener-upgradeLink-link
|
|
|
ссылка := "https://wartank.ru/building-upgrade/" + _стр
|
|
|
- списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
|
|
|
+ списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
// Проверить, что постройка состоялась
|
|
|
for _, стр := range списСтр {
|
|
|
if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
|
|
|
- log.Printf("СкладТоплива.построить().фнКупить(): покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
+ log.Printf("АренаСкладТоплива.построить().фнКупить(): покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
return false // Покупка не оплачена
|
|
|
}
|
|
|
}
|
|
|
- log.Printf("+++++СкладТоплива.построить().фнКупить(): покупка склада топлива прошла\n")
|
|
|
+ log.Printf("+++++АренаСкладТоплива.построить().фнКупить(): покупка склада топлива прошла\n")
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
@@ -307,15 +304,15 @@ func (сам *СкладТоплива) построить() bool {
|
|
|
// https://wartank.ru/wicket/page?4-1.ILinkListener-confirmLink
|
|
|
// <a class="simple-but border mb5" href="FuelStorage?50-1.ILinkListener-upgradeLink-link">
|
|
|
ссылка := "https://wartank.ru" + _стр
|
|
|
- списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
|
|
|
+ списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
// Проверить, что постройка состоялась
|
|
|
for _, стр := range списСтр {
|
|
|
if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {
|
|
|
- log.Printf("СкладТоплива.построить().фнПодтверждение(): подтверждение покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
+ log.Printf("АренаСкладТоплива.построить().фнПодтверждение(): подтверждение покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
return false // Покупка не оплачена
|
|
|
}
|
|
|
}
|
|
|
- log.Printf("+++++СкладТоплива.построить().фнПодтверждение(): подтверждение покупка склада топлива прошла\n")
|
|
|
+ log.Printf("+++++АренаСкладТоплива.построить().фнПодтверждение(): подтверждение покупка склада топлива прошла\n")
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
@@ -333,26 +330,26 @@ func (сам *СкладТоплива) построить() bool {
|
|
|
}
|
|
|
|
|
|
// Уровень -- возвращает уровень топливного склада
|
|
|
-func (сам *СкладТоплива) Уровень() ИСтатПарам {
|
|
|
+func (сам *АренаСкладТоплива) Уровень() ИСтатПарам {
|
|
|
return сам.уровень
|
|
|
}
|
|
|
|
|
|
// Топливо -- возвращает топливо
|
|
|
-func (сам *СкладТоплива) Топливо() ИСтатПарам {
|
|
|
+func (сам *АренаСкладТоплива) Топливо() ИСтатПарам {
|
|
|
return сам.топливо
|
|
|
}
|
|
|
|
|
|
// ПродуктКолСейчас -- возвращает кол-во продукта прямо сейчас
|
|
|
-func (сам *СкладТоплива) ПродуктКолСейчас() int {
|
|
|
+func (сам *АренаСкладТоплива) ПродуктКолСейчас() int {
|
|
|
return сам.топливо.Получ()
|
|
|
}
|
|
|
|
|
|
// ПродуктИмяСейчас -- возвращает имя продукта прямо сейчас
|
|
|
-func (сам *СкладТоплива) ПродуктИмяСейчас() string {
|
|
|
+func (сам *АренаСкладТоплива) ПродуктИмяСейчас() string {
|
|
|
return "топливо"
|
|
|
}
|
|
|
|
|
|
// ПродуктВремяСейчас -- возвращает сколько осталось времени прямо сейчас
|
|
|
-func (сам *СкладТоплива) ПродуктВремяСейчас() string {
|
|
|
+func (сам *АренаСкладТоплива) ПродуктВремяСейчас() string {
|
|
|
return сам.продуктВремя
|
|
|
}
|