Selaa lähdekoodia

SVI Переделка на новую архитектуру

SVI 11 kuukautta sitten
vanhempi
commit
dfca028207

+ 39 - 0
app/lev0/bfunc/bf_silver_get/bf_silver_get.go

@@ -0,0 +1,39 @@
+// package bf_silver_get -- процесс забора серебра
+package bf_silver_get
+
+import (
+	"strings"
+
+	. "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
+
+	. "wartank/app/lev0/types"
+)
+
+// СереброЗабрать -- забирает серебро из банка
+func СереброЗабрать(конт ILocalCtx) {
+	база_:=конт.Get("база")
+	if база_==nil{
+		return
+	}
+	база:=база_.Val().(ИАренаБаза)
+	var (
+		strOut      string
+		еслиНайдено bool
+	)
+	списБанк := база.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
+	// <a class="simple-but border" href="buildings?0-1.ILinkListener-buildings-2-building-rootBlock-actionPanel-takeProductionLink"><span><span>Забрать</span></span></a>
+	for _, strOut = range списБанк {
+		if strings.Contains(strOut, `-building-rootBlock-actionPanel-takeProductionLink`) {
+			еслиНайдено = true
+			break
+		}
+	}
+	if !еслиНайдено {
+		return
+	}
+	_ссылка := strings.TrimPrefix(strOut, `<a class="simple-but border" href="`)
+	_ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Забрать</span></span></a>`)
+	// https://wartank.ru/buildings?3-1.ILinkListener-buildings-1-building-rootBlock-actionPanel-takeProductionLink
+	ссылка := "https://wartank.ru/" + _ссылка
+	_ = база.Сеть().ВебВоркер().Получ(ссылка)
+}

+ 2 - 37
app/lev2/arena/arena_bank/arena_bank.go

@@ -37,33 +37,22 @@ func НовБанк(конт ILocalCtx) ИАренаБанк {
 		режим2:     bank_mode.NewBankMode(конт),
 	}
 	аренаКонфиг := arena.АренаКонфиг{
-		Бот_:         конт.Get("бот").(ИБот),
+		Бот_:         конт.Get("бот").Val().(ИБот),
 		АренаИмя_:    "Банк",
 		СтрКонтроль_: `<span class="green2">Серебро</span><br/>`,
 		ФнПуск_:      сам.пуск,
 		СтрУрл_:      "https://wartank.ru/production/Bank",
 	}
 	сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
+	конт.Set("арена_банк", сам, "Арена банка бота")
 	return сам
 }
 
-// Пуск -- запускает банк в работу
-func (сам *АренаБанк) Пуск() {
-	log.Printf("Банк.Run()\n")
-	go сам.пуск()
-}
-
-// UpdateLst -- принудительно обновляет состояние банка
-func (сам *АренаБанк) UpdateLst() {
-	сам.Обновить()
-}
-
 // запускает банк в опрос
 func (сам *АренаБанк) пуск() {
 	log.Printf("Банк.пуск()\n")
 	fnRun := func() {
 		defer time.Sleep(time.Minute * 5)
-		сам.забрать()
 		if сам.построитьУлучшить() {
 			time.Sleep(time.Minute * 25)
 			return
@@ -112,30 +101,6 @@ func (сам *АренаБанк) проверитьУскорить() bool {
 	return true
 }
 
-// Забирает серебро
-func (сам *АренаБанк) забрать() {
-	var (
-		strOut      string
-		еслиНайдено bool
-	)
-	списБанк := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
-	// <a class="simple-but border" href="buildings?0-1.ILinkListener-buildings-1-building-rootBlock-actionPanel-takeProductionLink"><span><span>Забрать</span></span></a>
-	for _, strOut = range списБанк {
-		if strings.Contains(strOut, `.ILinkListener-buildings-1-building-rootBlock-actionPanel-takeProductionLink`) {
-			еслиНайдено = true
-			break
-		}
-	}
-	if !еслиНайдено {
-		return
-	}
-	_ссылка := strings.TrimPrefix(strOut, `<a class="simple-but border" href="`)
-	_ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Забрать</span></span></a>`)
-	// https://wartank.ru/buildings?3-1.ILinkListener-buildings-1-building-rootBlock-actionPanel-takeProductionLink
-	ссылка := "https://wartank.ru/" + _ссылка
-	_ = сам.Сеть().ВебВоркер().Получ(ссылка)
-}
-
 // Проверяет необходимость постройки полигона
 func (сам *АренаБанк) построитьУлучшить() bool {
 	var списБанк []string

+ 9 - 2
app/lev2/lev2.go

@@ -7,6 +7,7 @@ import (
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2/arena/arena_angar"
 	"wartank/app/lev2/arena/arena_arsenal"
+	"wartank/app/lev2/arena/arena_bank"
 	"wartank/app/lev2/arena/arena_base"
 	"wartank/app/lev2/arena/arena_fuel"
 	"wartank/app/lev2/arena/arena_mine"
@@ -14,9 +15,15 @@ import (
 	"wartank/app/lev2/arena/arena_polygon"
 )
 
+// НовБанк -- возвращает новый банк бота
+func НовБанк(конт ILocalCtx) ИАренаБанк {
+	банк := arena_bank.НовБанк(конт)
+	return банк
+}
+
 // НовМиссииПростые -- возвращает арену новых простых миссий
-func НовМиссииПростые(конт ILocalCtx)ИАренаМиссииПростые{
-	миссии:=arena_missions.НовМиссии(конт)
+func НовМиссииПростые(конт ILocalCtx) ИАренаМиссииПростые {
+	миссии := arena_missions.НовМиссии(конт)
 	return миссии
 }
 

+ 3 - 0
app/lev3/bot/bot.go

@@ -17,6 +17,7 @@ import (
 	"wartank/app/lev0/bfunc/bf_gold_find"
 	"wartank/app/lev0/bfunc/bf_mission_simple"
 	"wartank/app/lev0/bfunc/bf_silver_find"
+	"wartank/app/lev0/bfunc/bf_silver_get"
 	. "wartank/app/lev0/types"
 	"wartank/app/lev2"
 	"wartank/app/lev3/bot/bot_config"
@@ -116,6 +117,7 @@ func создатьЯдроВарБот(конфиг *bot_config.БотКонф
 		сам.Пуск()
 	}
 	сам.ангар = lev2.НовАнгар(сам.конт)
+	_ = lev2.НовБанк(сам.конт)
 	_ = lev2.НовМиссииПростые(сам.конт)
 	_ = lev2.НовПолигон(сам.конт)
 	_ = lev2.НовБаза(сам.конт)
@@ -168,6 +170,7 @@ func (сам *Бот) пуск() {
 			bf_fuel_find.ТопливоНайти(сам.конт)
 			bf_fuel_attack.ТопливоАтаковать(сам.конт)
 			bf_mission_simple.МиссииПростыеЗабрать(сам.конт)
+			bf_silver_get.СереброЗабрать(сам.конт)
 		}
 	}
 }