|
@@ -17,6 +17,13 @@ import (
|
|
|
Объект оружейной на базе
|
|
Объект оружейной на базе
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
|
|
+const (
|
|
|
|
|
+ стрКумулятивы = "кумулятивы"
|
|
|
|
|
+ стрБронебойки = "бронебойки"
|
|
|
|
|
+ стрФугасы = "фугасы"
|
|
|
|
|
+ стрРемки = "ремки"
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
// Оружейная -- объект оружейной на базе
|
|
// Оружейная -- объект оружейной на базе
|
|
|
type Оружейная struct {
|
|
type Оружейная struct {
|
|
|
*section.Секция
|
|
*section.Секция
|
|
@@ -36,19 +43,19 @@ func НовОружейная(base types.ИБаза) (*Оружейная, error
|
|
|
return nil, fmt.Errorf("НовОружейная(): in create ISection, err=\n\t%w", err)
|
|
return nil, fmt.Errorf("НовОружейная(): in create ISection, err=\n\t%w", err)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- фугас, ош := static_param.НовСтатПарам("fugas")
|
|
|
|
|
|
|
+ фугас, ош := static_param.НовСтатПарам(стрФугасы)
|
|
|
if ош != nil {
|
|
if ош != nil {
|
|
|
return nil, fmt.Errorf("НовОружейная(): при создании статистики фугасов, ош=\n\t%w", ош)
|
|
return nil, fmt.Errorf("НовОружейная(): при создании статистики фугасов, ош=\n\t%w", ош)
|
|
|
}
|
|
}
|
|
|
- бронейбойки, ош := static_param.НовСтатПарам("armor")
|
|
|
|
|
|
|
+ бронейбойки, ош := static_param.НовСтатПарам(стрБронебойки)
|
|
|
if ош != nil {
|
|
if ош != nil {
|
|
|
return nil, fmt.Errorf("НовОружейная(): при создании статистики бронебоек, ош=\n\t%w", ош)
|
|
return nil, fmt.Errorf("НовОружейная(): при создании статистики бронебоек, ош=\n\t%w", ош)
|
|
|
}
|
|
}
|
|
|
- кумулятив, ош := static_param.НовСтатПарам("kumul")
|
|
|
|
|
|
|
+ кумулятив, ош := static_param.НовСтатПарам(стрКумулятивы)
|
|
|
if ош != nil {
|
|
if ош != nil {
|
|
|
return nil, fmt.Errorf("НовОружейная(): при создании статистики кумулятивов, ош=\n\t%w", ош)
|
|
return nil, fmt.Errorf("НовОружейная(): при создании статистики кумулятивов, ош=\n\t%w", ош)
|
|
|
}
|
|
}
|
|
|
- ремка, ош := static_param.НовСтатПарам("remka")
|
|
|
|
|
|
|
+ ремка, ош := static_param.НовСтатПарам(стрРемки)
|
|
|
if ош != nil {
|
|
if ош != nil {
|
|
|
return nil, fmt.Errorf("НовОружейная(): при создании статистики ремок, ош=\n\t%w", ош)
|
|
return nil, fmt.Errorf("НовОружейная(): при создании статистики ремок, ош=\n\t%w", ош)
|
|
|
}
|
|
}
|
|
@@ -80,9 +87,22 @@ func (сам *Оружейная) Пуск() error {
|
|
|
func (сам *Оружейная) пуск() {
|
|
func (сам *Оружейная) пуск() {
|
|
|
// sf.getTime()
|
|
// sf.getTime()
|
|
|
time.Sleep(time.Second * 3)
|
|
time.Sleep(time.Second * 3)
|
|
|
|
|
+ фнРабота := func() {
|
|
|
|
|
+ defer time.Sleep(time.Minute * 5) // Интервал 5 минут (кратно интервалу производства -- от 40 минут до 1 часа)
|
|
|
|
|
+ сам.СтатаОбновить()
|
|
|
|
|
+ if сам.забрать() {
|
|
|
|
|
+ if сам.сделать() {
|
|
|
|
|
+ time.Sleep(time.Minute * 5)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if сам.построитьУлучшить() {
|
|
|
|
|
+ time.Sleep(time.Minute * 25)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
for {
|
|
for {
|
|
|
select {
|
|
select {
|
|
|
- case <-сам.бот.Кнт().Done():
|
|
|
|
|
|
|
+ case <-сам.Кнт().Done():
|
|
|
return
|
|
return
|
|
|
// case <-сам.ВремяОпрос().КаналСиг():
|
|
// case <-сам.ВремяОпрос().КаналСиг():
|
|
|
// if сам.РежимТекущ().Получ() == "upgrade" {
|
|
// if сам.РежимТекущ().Получ() == "upgrade" {
|
|
@@ -92,20 +112,14 @@ func (сам *Оружейная) пуск() {
|
|
|
// return fmt.Errorf("ArsenalNet.Run(): in update arsenal, err=\n\t%w", err)
|
|
// return fmt.Errorf("ArsenalNet.Run(): in update arsenal, err=\n\t%w", err)
|
|
|
// }
|
|
// }
|
|
|
default:
|
|
default:
|
|
|
- if сам.РежимТекущ().Получ() == "upgrade" {
|
|
|
|
|
- continue
|
|
|
|
|
- }
|
|
|
|
|
- сам.проверитьЗабрать()
|
|
|
|
|
- сам.Обновить()
|
|
|
|
|
- сам.проверитьПостроить()
|
|
|
|
|
- сам.сделать()
|
|
|
|
|
- time.Sleep(time.Second * 305) // Интервал 5 минут и ещё 5 секунд (кратно интервалу производства -- от 40 минут до 1 часа)
|
|
|
|
|
|
|
+ фнРабота()
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Проверяет на забрать оружейную
|
|
// Проверяет на забрать оружейную
|
|
|
-func (сам *Оружейная) проверитьЗабрать() {
|
|
|
|
|
|
|
+func (сам *Оружейная) забрать() bool {
|
|
|
var (
|
|
var (
|
|
|
strOut string
|
|
strOut string
|
|
|
ind int
|
|
ind int
|
|
@@ -121,10 +135,10 @@ func (сам *Оружейная) проверитьЗабрать() {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if !еслиНайдено {
|
|
if !еслиНайдено {
|
|
|
- return
|
|
|
|
|
|
|
+ return false
|
|
|
}
|
|
}
|
|
|
if !strings.Contains(strOut, `"><span><span>Забрать</span></span></a>`) {
|
|
if !strings.Contains(strOut, `"><span><span>Забрать</span></span></a>`) {
|
|
|
- return
|
|
|
|
|
|
|
+ return false
|
|
|
}
|
|
}
|
|
|
lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
|
|
lstLink := strings.Split(strOut, `<a class="simple-but border" href="`)
|
|
|
strLink := lstLink[1]
|
|
strLink := lstLink[1]
|
|
@@ -135,25 +149,20 @@ func (сам *Оружейная) проверитьЗабрать() {
|
|
|
лстАрсенал []string
|
|
лстАрсенал []string
|
|
|
ош error
|
|
ош error
|
|
|
)
|
|
)
|
|
|
- фнЗабрать := func() bool {
|
|
|
|
|
- time.Sleep(time.Millisecond * 100)
|
|
|
|
|
- лстАрсенал, ош = сам.сеть.Get(strLink)
|
|
|
|
|
- if ош != nil {
|
|
|
|
|
- log.Printf("Оружейная.проверитьЗабрать(): при выполнении Get-запроса? err=\n\t%v\n", ош)
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- if len(лстАрсенал) == 0 {
|
|
|
|
|
- log.Printf("Оружейная.проверитьЗабрать(): len lstBase(%v)==0", len(lstBase))
|
|
|
|
|
|
|
+ time.Sleep(time.Millisecond * 100)
|
|
|
|
|
+ лстАрсенал, ош = сам.сеть.Get(strLink)
|
|
|
|
|
+ if ош != nil {
|
|
|
|
|
+ log.Printf("Оружейная.забрать(): при выполнении Get-запроса? err=\n\t%v\n", ош)
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ if len(лстАрсенал) == 0 {
|
|
|
|
|
+ log.Printf("Оружейная.забрать(): len lstBase(%v)==0", len(lstBase))
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ for _, strOut = range лстАрсенал {
|
|
|
|
|
+ if strings.Contains(strOut, `<title>Производство</title>`) {
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
|
- for _, strOut = range лстАрсенал {
|
|
|
|
|
- if strings.Contains(strOut, `<title>Производство</title>`) {
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return true
|
|
|
|
|
- }
|
|
|
|
|
- for !фнЗабрать() {
|
|
|
|
|
}
|
|
}
|
|
|
if ош = сам.СтрОбновить(лстАрсенал); ош != nil {
|
|
if ош = сам.СтрОбновить(лстАрсенал); ош != nil {
|
|
|
log.Printf("Оружейная.checkArsenalGet(): при обновлении lstBase, err=\n\t%v\n", ош)
|
|
log.Printf("Оружейная.checkArsenalGet(): при обновлении lstBase, err=\n\t%v\n", ош)
|
|
@@ -161,95 +170,92 @@ func (сам *Оружейная) проверитьЗабрать() {
|
|
|
if ош = сам.СтрОбновить(лстАрсенал); ош != nil {
|
|
if ош = сам.СтрОбновить(лстАрсенал); ош != nil {
|
|
|
log.Printf("Оружейная.checkArsenalGet(): при обновлении lstArsenal, err=\n\t%v\n", ош)
|
|
log.Printf("Оружейная.checkArsenalGet(): при обновлении lstArsenal, err=\n\t%v\n", ош)
|
|
|
}
|
|
}
|
|
|
|
|
+ return true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Проверяет необходимость постройки оружейной
|
|
// Проверяет необходимость постройки оружейной
|
|
|
-func (сам *Оружейная) проверитьПостроить() {
|
|
|
|
|
- фнПостроить := func() bool {
|
|
|
|
|
- var (
|
|
|
|
|
- списПолигон []string
|
|
|
|
|
- ош error
|
|
|
|
|
- )
|
|
|
|
|
- { // Зайти на страницу постройки
|
|
|
|
|
- // https://wartank.ru/building-upgrade/Armory
|
|
|
|
|
- списПолигон, ош = сам.сеть.Клиент().Get("https://wartank.ru/building-upgrade/Armory")
|
|
|
|
|
- if ош != nil {
|
|
|
|
|
- log.Printf("Оружейная.построитьПровер(): при чтении страницы строительства оружейки, ош=\n\t%v\n", ош)
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- стрСсылка := ""
|
|
|
|
|
- еслиНайти := false
|
|
|
|
|
- // <a class="simple-but border mb5" href="Armory?163-1.ILinkListener-upgradeLink-link">
|
|
|
|
|
- for _, стрСсылка = range списПолигон {
|
|
|
|
|
- if strings.Contains(стрСсылка, `href="Armory?`) {
|
|
|
|
|
- еслиНайти = true
|
|
|
|
|
- break
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if !еслиНайти { // Время полигона вышло
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- _ссылка := strings.TrimPrefix(стрСсылка, `<a class="simple-but border mb5" href="`)
|
|
|
|
|
- _ссылка = strings.TrimSuffix(_ссылка, `">`)
|
|
|
|
|
- ссылка := "https://wartank.ru/building-upgrade/" + _ссылка
|
|
|
|
|
- // https://wartank.ru/building-upgrade/Armory?162-1.ILinkListener-upgradeLink-link
|
|
|
|
|
- списПолигон, ош = сам.сеть.Клиент().Get(ссылка)
|
|
|
|
|
- if ош != nil {
|
|
|
|
|
- log.Printf("Оружейная.построитьПровер(): при выполнении запроса на строительство, ош=\n\t%v\n", ош)
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
|
|
+func (сам *Оружейная) построитьУлучшить() bool {
|
|
|
|
|
+ var (
|
|
|
|
|
+ списПолигон []string
|
|
|
|
|
+ ош error
|
|
|
|
|
+ )
|
|
|
|
|
+ { // Зайти на страницу постройки
|
|
|
|
|
+ // https://wartank.ru/building-upgrade/Armory
|
|
|
|
|
+ списПолигон, ош = сам.сеть.Клиент().Get("https://wartank.ru/building-upgrade/Armory")
|
|
|
|
|
+ if ош != nil {
|
|
|
|
|
+ log.Printf("Оружейная.построитьУлучшить(): при чтении страницы строительства оружейки, ош=\n\t%v\n", ош)
|
|
|
|
|
+ return false
|
|
|
}
|
|
}
|
|
|
- { // Заказать постройку
|
|
|
|
|
- // https://wartank.ru/building-upgrade/Armory
|
|
|
|
|
- стрСсылка := ""
|
|
|
|
|
- еслиНайти := false
|
|
|
|
|
- // <a class="simple-but border mb5" href="Armory?163-1.ILinkListener-upgradeLink-link">
|
|
|
|
|
- for _, стрСсылка = range списПолигон {
|
|
|
|
|
- if strings.Contains(стрСсылка, `href="Armory?`) {
|
|
|
|
|
- еслиНайти = true
|
|
|
|
|
- break
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ стрСсылка := ""
|
|
|
|
|
+ еслиНайти := false
|
|
|
|
|
+ // <a class="simple-but border mb5" href="Armory?163-1.ILinkListener-upgradeLink-link">
|
|
|
|
|
+ for _, стрСсылка = range списПолигон {
|
|
|
|
|
+ if strings.Contains(стрСсылка, `href="Armory?`) {
|
|
|
|
|
+ еслиНайти = true
|
|
|
|
|
+ break
|
|
|
}
|
|
}
|
|
|
- if !еслиНайти { // Время полигона вышло
|
|
|
|
|
- return false
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ if !еслиНайти { // Ссылка на постройку оружейной не найдена
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ _ссылка := strings.TrimPrefix(стрСсылка, `<a class="simple-but border mb5" href="`)
|
|
|
|
|
+ _ссылка = strings.TrimSuffix(_ссылка, `">`)
|
|
|
|
|
+ ссылка := "https://wartank.ru/building-upgrade/" + _ссылка
|
|
|
|
|
+ // https://wartank.ru/building-upgrade/Armory?162-1.ILinkListener-upgradeLink-link
|
|
|
|
|
+ списПолигон, ош = сам.сеть.Клиент().Get(ссылка)
|
|
|
|
|
+ if ош != nil {
|
|
|
|
|
+ log.Printf("Оружейная.построитьУлучшить(): при выполнении запроса на строительство, ош=\n\t%v\n", ош)
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ { // Заказать постройку
|
|
|
|
|
+ // https://wartank.ru/building-upgrade/Armory
|
|
|
|
|
+ стрСсылка := ""
|
|
|
|
|
+ еслиНайти := false
|
|
|
|
|
+ // <a class="simple-but border mb5" href="Armory?163-1.ILinkListener-upgradeLink-link">
|
|
|
|
|
+ for _, стрСсылка = range списПолигон {
|
|
|
|
|
+ if strings.Contains(стрСсылка, `href="Armory?`) {
|
|
|
|
|
+ еслиНайти = true
|
|
|
|
|
+ break
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ if еслиНайти {
|
|
|
_ссылка := strings.TrimPrefix(стрСсылка, `<a class="simple-but border mb5" href="`)
|
|
_ссылка := strings.TrimPrefix(стрСсылка, `<a class="simple-but border mb5" href="`)
|
|
|
_ссылка = strings.TrimSuffix(_ссылка, `">`)
|
|
_ссылка = strings.TrimSuffix(_ссылка, `">`)
|
|
|
ссылка := "https://wartank.ru/building-upgrade/" + _ссылка
|
|
ссылка := "https://wartank.ru/building-upgrade/" + _ссылка
|
|
|
// https://wartank.ru/building-upgrade/Armory?162-1.ILinkListener-upgradeLink-link
|
|
// https://wartank.ru/building-upgrade/Armory?162-1.ILinkListener-upgradeLink-link
|
|
|
списПолигон, ош = сам.сеть.Клиент().Get(ссылка)
|
|
списПолигон, ош = сам.сеть.Клиент().Get(ссылка)
|
|
|
if ош != nil {
|
|
if ош != nil {
|
|
|
- log.Printf("Оружейная.построитьПровер(): при выполнении запроса на строительство, ош=\n\t%v\n", ош)
|
|
|
|
|
|
|
+ log.Printf("Оружейная.построитьУлучшить(): при выполнении запроса на строительство, ош=\n\t%v\n", ош)
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- { // подтверждение постройки
|
|
|
|
|
- // <a class="simple-but border w50 mXa mb10" w:id="confirmLink" href="../wicket/page?165-1.ILinkListener-confirmLink"><span><span>да, подтверждаю</span></span></a>
|
|
|
|
|
- стрСсылка := ""
|
|
|
|
|
- еслиНайти := false
|
|
|
|
|
- for _, стрСсылка = range списПолигон {
|
|
|
|
|
- if strings.Contains(стрСсылка, `.ILinkListener-confirmLink`) {
|
|
|
|
|
- еслиНайти = true
|
|
|
|
|
- break
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if !еслиНайти { // Время полигона вышло
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- _ссылка := strings.TrimPrefix(стрСсылка, "<a class=\"simple-but border w50 mXa mb10\" w:id=\"confirmLink\" href=\"../")
|
|
|
|
|
- _ссылка = strings.TrimSuffix(_ссылка, "\"><span><span>да, подтверждаю</span></span></a>")
|
|
|
|
|
- ссылка := "https://wartank.ru/" + _ссылка
|
|
|
|
|
- // https://wartank.ru/wicket/page?135-1.ILinkListener-confirmLink
|
|
|
|
|
- _, ош = сам.сеть.Клиент().Get(ссылка)
|
|
|
|
|
- if ош != nil {
|
|
|
|
|
- log.Printf("Оружейная.построитьПровер(): при выполнении запроса на строительство, ош=\n\t%v\n", ош)
|
|
|
|
|
- return false
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ { // подтверждение постройки
|
|
|
|
|
+ // <a class="simple-but border w50 mXa mb10" w:id="confirmLink" href="../wicket/page?165-1.ILinkListener-confirmLink"><span><span>да, подтверждаю</span></span></a>
|
|
|
|
|
+ стрСсылка := ""
|
|
|
|
|
+ еслиНайти := false
|
|
|
|
|
+ for _, стрСсылка = range списПолигон {
|
|
|
|
|
+ if strings.Contains(стрСсылка, `.ILinkListener-confirmLink`) {
|
|
|
|
|
+ еслиНайти = true
|
|
|
|
|
+ break
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- return true
|
|
|
|
|
|
|
+ if !еслиНайти { // Время полигона вышло
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ _ссылка := strings.TrimPrefix(стрСсылка, "<a class=\"simple-but border w50 mXa mb10\" w:id=\"confirmLink\" href=\"../")
|
|
|
|
|
+ _ссылка = strings.TrimSuffix(_ссылка, "\"><span><span>да, подтверждаю</span></span></a>")
|
|
|
|
|
+ ссылка := "https://wartank.ru/" + _ссылка
|
|
|
|
|
+ // https://wartank.ru/wicket/page?135-1.ILinkListener-confirmLink
|
|
|
|
|
+ _, ош = сам.сеть.Клиент().Get(ссылка)
|
|
|
|
|
+ if ош != nil {
|
|
|
|
|
+ log.Printf("Оружейная.построитьУлучшить(): при выполнении запроса на строительство, ош=\n\t%v\n", ош)
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- фнПостроить()
|
|
|
|
|
- log.Printf("Оружейная.построитьПровер(): построен упешно\n")
|
|
|
|
|
|
|
+ log.Printf("Оружейная.построитьУлучшить(): построен упешно\n")
|
|
|
|
|
+ return true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Фугасы -- возвращает объект числа фугасов
|
|
// Фугасы -- возвращает объект числа фугасов
|
|
@@ -273,9 +279,9 @@ func (сам *Оружейная) Ремки() types.ИСтатПарам {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Обновляет состояние арсенала по требованию
|
|
// Обновляет состояние арсенала по требованию
|
|
|
-func (сам *Оружейная) Обновить() (err error) {
|
|
|
|
|
|
|
+func (сам *Оружейная) СтатаОбновить() (err error) {
|
|
|
// _mt.Println("\tArsenalNet.updateArsenal()")
|
|
// _mt.Println("\tArsenalNet.updateArsenal()")
|
|
|
- if err := сам.сеть.UpdateLst(); err != nil {
|
|
|
|
|
|
|
+ if err := сам.сеть.ОбновитьСеть(); err != nil {
|
|
|
return fmt.Errorf("Оружейная.Обновить(): при обновлении lstArsenal, err=%w", err)
|
|
return fmt.Errorf("Оружейная.Обновить(): при обновлении lstArsenal, err=%w", err)
|
|
|
}
|
|
}
|
|
|
var (
|
|
var (
|
|
@@ -295,7 +301,7 @@ func (сам *Оружейная) Обновить() (err error) {
|
|
|
strFugas = lstFugas[0]
|
|
strFugas = lstFugas[0]
|
|
|
iFugas, err := strconv.Atoi(strFugas)
|
|
iFugas, err := strconv.Atoi(strFugas)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- return fmt.Errorf("Оружейная.Обновить(): fugas(%v) not number, err=\n\t%w", strFugas, err)
|
|
|
|
|
|
|
+ return fmt.Errorf("Оружейная.СтатаОбновить(): fugas(%v) not number, err=\n\t%w", strFugas, err)
|
|
|
}
|
|
}
|
|
|
сам.Фугасы().Уст(iFugas)
|
|
сам.Фугасы().Уст(iFugas)
|
|
|
}
|
|
}
|
|
@@ -312,7 +318,7 @@ func (сам *Оружейная) Обновить() (err error) {
|
|
|
strArmor = lstArmor[0]
|
|
strArmor = lstArmor[0]
|
|
|
iArmor, err := strconv.Atoi(strArmor)
|
|
iArmor, err := strconv.Atoi(strArmor)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- return fmt.Errorf("Оружейная.Обновить(): armor(%v) not number, err=\n\t%w", strArmor, err)
|
|
|
|
|
|
|
+ return fmt.Errorf("Оружейная.СтатаОбновить(): armor(%v) not number, err=\n\t%w", strArmor, err)
|
|
|
}
|
|
}
|
|
|
сам.Бронебойки().Уст(iArmor)
|
|
сам.Бронебойки().Уст(iArmor)
|
|
|
}
|
|
}
|
|
@@ -329,7 +335,7 @@ func (сам *Оружейная) Обновить() (err error) {
|
|
|
strKumul = lstKumul[0]
|
|
strKumul = lstKumul[0]
|
|
|
iKumul, err := strconv.Atoi(strKumul)
|
|
iKumul, err := strconv.Atoi(strKumul)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- return fmt.Errorf("Оружейная.Обновить(): kumul(%v) not number, err=\n\t%w", strKumul, err)
|
|
|
|
|
|
|
+ return fmt.Errorf("Оружейная.СтатаОбновить(): kumul(%v) not number, err=\n\t%w", strKumul, err)
|
|
|
}
|
|
}
|
|
|
сам.Кумулятивы().Уст(iKumul)
|
|
сам.Кумулятивы().Уст(iKumul)
|
|
|
}
|
|
}
|
|
@@ -346,7 +352,7 @@ func (сам *Оружейная) Обновить() (err error) {
|
|
|
strRemka = lstRemka[0]
|
|
strRemka = lstRemka[0]
|
|
|
iRemka, err := strconv.Atoi(strRemka)
|
|
iRemka, err := strconv.Atoi(strRemka)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- return fmt.Errorf("Оружейная.Обновить(): remka(%v) not number, err=\n\t%w", strRemka, err)
|
|
|
|
|
|
|
+ return fmt.Errorf("Оружейная.СтатаОбновить(): remka(%v) not number, err=\n\t%w", strRemka, err)
|
|
|
}
|
|
}
|
|
|
сам.Ремки().Уст(iRemka)
|
|
сам.Ремки().Уст(iRemka)
|
|
|
}
|
|
}
|
|
@@ -354,18 +360,17 @@ func (сам *Оружейная) Обновить() (err error) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Выбирает что надо делать, запускает процесс изготовления
|
|
// Выбирает что надо делать, запускает процесс изготовления
|
|
|
-func (сам *Оружейная) сделать() {
|
|
|
|
|
- err := сам.сеть.UpdateLst()
|
|
|
|
|
|
|
+func (сам *Оружейная) сделать() bool {
|
|
|
|
|
+ err := сам.сеть.ОбновитьСеть()
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
// log._rintf("ERRO Оружейная.сделать(): при обновлении lstArsenal, err=\n\t%v\n", err)
|
|
// log._rintf("ERRO Оружейная.сделать(): при обновлении lstArsenal, err=\n\t%v\n", err)
|
|
|
- return
|
|
|
|
|
|
|
+ return false
|
|
|
}
|
|
}
|
|
|
// _mt.Println("\tArsenalNet.сделать()")
|
|
// _mt.Println("\tArsenalNet.сделать()")
|
|
|
{ // Контроль ремки по времени суток и минимальному количеству
|
|
{ // Контроль ремки по времени суток и минимальному количеству
|
|
|
iRemka := сам.Ремки().Получ()
|
|
iRemka := сам.Ремки().Получ()
|
|
|
if iRemka < 70 {
|
|
if iRemka < 70 {
|
|
|
- сам.сделатьРемку()
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ return сам.сделатьРемку()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
{ // Контроль по числу снарядов. В равных долях без приоритетов
|
|
{ // Контроль по числу снарядов. В равных долях без приоритетов
|
|
@@ -373,28 +378,29 @@ func (сам *Оружейная) сделать() {
|
|
|
iKumul := сам.Кумулятивы().Получ()
|
|
iKumul := сам.Кумулятивы().Получ()
|
|
|
iArmor := сам.Бронебойки().Получ()
|
|
iArmor := сам.Бронебойки().Получ()
|
|
|
|
|
|
|
|
- typeArmor := "fugas"
|
|
|
|
|
|
|
+ typeArmor := стрФугасы
|
|
|
typeVal := iFugas
|
|
typeVal := iFugas
|
|
|
|
|
|
|
|
if iKumul < typeVal {
|
|
if iKumul < typeVal {
|
|
|
- typeArmor = "kumul"
|
|
|
|
|
|
|
+ typeArmor = стрКумулятивы
|
|
|
typeVal = iKumul
|
|
typeVal = iKumul
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if iArmor < typeVal {
|
|
if iArmor < typeVal {
|
|
|
- typeArmor = "armor"
|
|
|
|
|
|
|
+ typeArmor = стрБронебойки
|
|
|
}
|
|
}
|
|
|
switch typeArmor {
|
|
switch typeArmor {
|
|
|
- case "fugas": // Мало фугасов
|
|
|
|
|
|
|
+ case стрФугасы: // Мало фугасов
|
|
|
сам.сдлатьФугасы()
|
|
сам.сдлатьФугасы()
|
|
|
- case "kumul": // Мало кумулятивов
|
|
|
|
|
|
|
+ case стрКумулятивы: // Мало кумулятивов
|
|
|
сам.сделатьКумули()
|
|
сам.сделатьКумули()
|
|
|
- case "armor": // Мало бронебойных
|
|
|
|
|
|
|
+ case стрБронебойки: // Мало бронебойных
|
|
|
сам.сделатьБронебойки()
|
|
сам.сделатьБронебойки()
|
|
|
default:
|
|
default:
|
|
|
// log._rintf("ERRO Оружейная.сделать(): неизвестный тип арсенала(%v)", typeArmor)
|
|
// log._rintf("ERRO Оружейная.сделать(): неизвестный тип арсенала(%v)", typeArmor)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ return true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Создать бронебойные
|
|
// Создать бронебойные
|
|
@@ -429,7 +435,7 @@ func (сам *Оружейная) сделатьБронебойки() {
|
|
|
// log._rintf("ERRO ArsenalNet.makeArmor(): in update lstArsenal, err=\n\t%v\n", err)
|
|
// log._rintf("ERRO ArsenalNet.makeArmor(): in update lstArsenal, err=\n\t%v\n", err)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- сам.РежимТекущ().РежимУст("бронебойные")
|
|
|
|
|
|
|
+ сам.РежимТекущ().РежимУст(стрБронебойки)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Создать кумулятивные
|
|
// Создать кумулятивные
|
|
@@ -463,7 +469,7 @@ func (сам *Оружейная) сделатьКумули() {
|
|
|
// log._rintf("ERRO ArsenalNet.makeKumul(): in make product arsenal kumul , err=\n\t%v\n", err)
|
|
// log._rintf("ERRO ArsenalNet.makeKumul(): in make product arsenal kumul , err=\n\t%v\n", err)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- сам.РежимТекущ().РежимУст("кумулятивы")
|
|
|
|
|
|
|
+ сам.РежимТекущ().РежимУст(стрКумулятивы)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Создать фугасы
|
|
// Создать фугасы
|
|
@@ -497,12 +503,12 @@ func (сам *Оружейная) сдлатьФугасы() {
|
|
|
// log._rintf("ERRO ArsenalNet.makeFugas(): in make request arsenal product, err=\n\t%v\n", err)
|
|
// log._rintf("ERRO ArsenalNet.makeFugas(): in make request arsenal product, err=\n\t%v\n", err)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- сам.РежимТекущ().РежимУст("фугасы")
|
|
|
|
|
|
|
+ сам.РежимТекущ().РежимУст(стрФугасы)
|
|
|
// log._rintf("INFO Оружейная.makeFugas()\n")
|
|
// log._rintf("INFO Оружейная.makeFugas()\n")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Создать ремку. Выполняется если подходят условия
|
|
// Создать ремку. Выполняется если подходят условия
|
|
|
-func (сам *Оружейная) сделатьРемку() {
|
|
|
|
|
|
|
+func (сам *Оружейная) сделатьРемку() bool {
|
|
|
// _mt.Println("\tArsenalNet.makeRemka()")
|
|
// _mt.Println("\tArsenalNet.makeRemka()")
|
|
|
var (
|
|
var (
|
|
|
strOut = ""
|
|
strOut = ""
|
|
@@ -511,7 +517,7 @@ func (сам *Оружейная) сделатьРемку() {
|
|
|
lstArsenal, ош := сам.сеть.Клиент().Get("https://wartank.ru/production/Armory")
|
|
lstArsenal, ош := сам.сеть.Клиент().Get("https://wartank.ru/production/Armory")
|
|
|
if ош != nil {
|
|
if ош != nil {
|
|
|
log.Printf("Оружейная.сделатьРемку(): при получении страницы оружейки, err=\n\t%v\n", ош)
|
|
log.Printf("Оружейная.сделатьРемку(): при получении страницы оружейки, err=\n\t%v\n", ош)
|
|
|
- return
|
|
|
|
|
|
|
+ return false
|
|
|
}
|
|
}
|
|
|
// <a class="simple-but border" href="Armory?55-1.ILinkListener-productions-0-production-startProduceLink"><span><span>Начать производство</span></span></a>
|
|
// <a class="simple-but border" href="Armory?55-1.ILinkListener-productions-0-production-startProduceLink"><span><span>Начать производство</span></span></a>
|
|
|
for _, strOut = range lstArsenal {
|
|
for _, strOut = range lstArsenal {
|
|
@@ -521,7 +527,7 @@ func (сам *Оружейная) сделатьРемку() {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if !isFind {
|
|
if !isFind {
|
|
|
- return
|
|
|
|
|
|
|
+ return false
|
|
|
}
|
|
}
|
|
|
// Получить ссылку на ремку
|
|
// Получить ссылку на ремку
|
|
|
_ссылка := strings.TrimPrefix(strOut, `<a class="simple-but border" href="`)
|
|
_ссылка := strings.TrimPrefix(strOut, `<a class="simple-but border" href="`)
|
|
@@ -530,7 +536,8 @@ func (сам *Оружейная) сделатьРемку() {
|
|
|
ссылка := "https://wartank.ru/production/" + _ссылка
|
|
ссылка := "https://wartank.ru/production/" + _ссылка
|
|
|
if _, err := сам.сеть.Клиент().Get(ссылка); err != nil {
|
|
if _, err := сам.сеть.Клиент().Get(ссылка); err != nil {
|
|
|
log.Printf("Оружейная.сделатьРемку(): при отдаче команды сделать ремку, err=\n\t%v\n", err)
|
|
log.Printf("Оружейная.сделатьРемку(): при отдаче команды сделать ремку, err=\n\t%v\n", err)
|
|
|
- return
|
|
|
|
|
|
|
+ return false
|
|
|
}
|
|
}
|
|
|
- сам.РежимТекущ().РежимУст("ремка")
|
|
|
|
|
|
|
+ сам.РежимТекущ().РежимУст(стрРемки)
|
|
|
|
|
+ return true
|
|
|
}
|
|
}
|