|
|
@@ -9,16 +9,14 @@ import (
|
|
|
"time"
|
|
|
|
|
|
. "wartank/app/lev0/types"
|
|
|
- "wartank/app/lev2/arena"
|
|
|
- "wartank/app/lev2/arena/arena_net"
|
|
|
"wartank/app/lev1/stat_param"
|
|
|
+ "wartank/app/lev2/arena"
|
|
|
"wartank/pkg/alias"
|
|
|
)
|
|
|
|
|
|
// Шахта -- объект шахты на базе
|
|
|
type Шахта struct {
|
|
|
ИАрена
|
|
|
- сеть ИАренаСеть
|
|
|
лог ИВебЛог
|
|
|
бот ИБот
|
|
|
база ИБаза
|
|
|
@@ -58,7 +56,6 @@ func НовШахта(конт ИБотКонтекст, база ИБаза) (
|
|
|
}
|
|
|
сам.ИАрена = arena.НовАрена(конт, аренаКонфиг)
|
|
|
сам.лог = сам.ВебЛог()
|
|
|
- сам.сеть = arena_net.НовАренаСеть(конт, сам, "https://wartank.ru/production/Mine")
|
|
|
go сам.пуск()
|
|
|
сам.лог.ОтклВывод()
|
|
|
сам.лог.Добавить("Шахта.НовШахта(): бот=%q\n", сам.бот.Имя())
|
|
|
@@ -140,7 +137,7 @@ func (сам *Шахта) количествоПолучить() (bool, error) {
|
|
|
еслиНайдено bool
|
|
|
режим string
|
|
|
)
|
|
|
- lstMine := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
|
|
|
+ lstMine := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
|
|
|
/*
|
|
|
Режим (руда-1):
|
|
|
<td class="vam"><div class="nwr pr5 gray1"><img class="rico vm" src="/images/icons/ore.png?2" alt="ore"/> 1</div></td>
|
|
|
@@ -251,7 +248,7 @@ func (сам *Шахта) шахтаЗабрать() bool {
|
|
|
strOut string
|
|
|
еслиНайдено bool
|
|
|
)
|
|
|
- списШахта := сам.сеть.ВебВоркер().Получ("https://wartank.ru/buildings")
|
|
|
+ списШахта := сам.Сеть().ВебВоркер().Получ("https://wartank.ru/buildings")
|
|
|
// <a class="simple-but border" href="buildings?35-1.ILinkListener-buildings-0-building-rootBlock-actionPanel-takeProductionLink"><span><span>Забрать</span></span></a>
|
|
|
for _, strOut = range списШахта {
|
|
|
if strings.Contains(strOut, `.ILinkListener-buildings-0-building-rootBlock-actionPanel-takeProductionLink`) {
|
|
|
@@ -267,7 +264,7 @@ func (сам *Шахта) шахтаЗабрать() bool {
|
|
|
_ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Забрать</span></span></a>`)
|
|
|
ссылка := "https://wartank.ru/" + _ссылка
|
|
|
// http://wartank.ru/buildings?5-1.ILinkListener-buildings-0-building-rootBlock-actionPanel-takeProductionLink
|
|
|
- lstBase1 := сам.сеть.ВебВоркер().Получ(ссылка)
|
|
|
+ lstBase1 := сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
if err := сам.СтрОбновить(lstBase1); err != nil {
|
|
|
сам.лог.Добавить("Шахта.шахтаЗабрать(): при обновлении lstMine, err=\n\t%v\n", err)
|
|
|
return false
|
|
|
@@ -279,7 +276,7 @@ func (сам *Шахта) шахтаЗабрать() bool {
|
|
|
// Проверяет ускорение строительства FIXME: не работает
|
|
|
func (сам *Шахта) ускорениеПровер() {
|
|
|
сам.лог.Добавить("")
|
|
|
- списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
+ списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
// <span class="green2">Шахта - 0</span><br/>
|
|
|
var (
|
|
|
еслиНайти bool
|
|
|
@@ -306,7 +303,7 @@ func (сам *Шахта) Уровень() ИСтатПарам {
|
|
|
// Обновляет текущий уровень шахты (может быть не построена)
|
|
|
func (сам *Шахта) уровеньОбновить() bool {
|
|
|
сам.лог.Добавить("Шахта.уровеньОбновить()\n")
|
|
|
- списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
+ списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
// <span class="green2">Шахта - 0</span><br/>
|
|
|
var (
|
|
|
еслиНайти = false
|
|
|
@@ -342,7 +339,7 @@ func (сам *Шахта) построить() bool {
|
|
|
еслиНайти = false
|
|
|
стр = ""
|
|
|
)
|
|
|
- списСтр := сам.сеть.ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
+ списСтр := сам.Сеть().ВебВоркер().Получ("http://wartank.ru/buildings")
|
|
|
for _, стр = range списСтр {
|
|
|
if strings.Contains(стр, `href="building-upgrade/Mine"><span><span>Построить</span></span>`) {
|
|
|
еслиНайти = true
|
|
|
@@ -357,7 +354,7 @@ func (сам *Шахта) построить() bool {
|
|
|
_стр := strings.TrimPrefix(стр, `<td style="width:50%;padding-left:1px;"><a class="simple-but border mb5" href="`)
|
|
|
_стр = strings.TrimSuffix(_стр, `"><span><span>Построить</span></span></a></td>`)
|
|
|
ссылка := "https://wartank.ru/" + _стр
|
|
|
- списСтр = сам.сеть.ВебВоркер().Получ(ссылка)
|
|
|
+ списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
еслиНайти = false
|
|
|
// "<a class=\"simple-but border mb5\" href=\"Mine?14-1.ILinkListener-upgradeLink-link\">"
|
|
|
for _, стр = range списСтр {
|
|
|
@@ -374,7 +371,7 @@ func (сам *Шахта) построить() bool {
|
|
|
_стр = strings.TrimSuffix(_стр, "\">")
|
|
|
// http://wartank.ru/building-upgrade/Mine?16-1.ILinkListener-upgradeLink-link
|
|
|
ссылка = "https://wartank.ru/building-upgrade/" + _стр
|
|
|
- _ = сам.сеть.ВебВоркер().Получ(ссылка)
|
|
|
+ _ = сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
@@ -388,7 +385,7 @@ func (сам *Шахта) проапгрейдить() bool {
|
|
|
)
|
|
|
фнКупить := func() (bool, error) {
|
|
|
defer time.Sleep(time.Millisecond * 1000)
|
|
|
- списСтр = сам.сеть.ВебВоркер().Получ("https://wartank.ru/building-upgrade/Mine")
|
|
|
+ списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Mine")
|
|
|
for _, стр = range списСтр {
|
|
|
// <a class="simple-but border mb5" href="Mine?5-1.ILinkListener-upgradeLink-link">
|
|
|
if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
|
|
|
@@ -406,7 +403,7 @@ func (сам *Шахта) проапгрейдить() bool {
|
|
|
// https://wartank.ru/building-upgrade/Mine?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") {
|
|
|
@@ -435,7 +432,7 @@ 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>") {
|
|
|
@@ -470,7 +467,7 @@ func (сам *Шахта) проапгрейдить() bool {
|
|
|
|
|
|
// Сделать -- вызывается с базы, если она обнаружила, что пора сделать продукцию
|
|
|
func (сам *Шахта) Сделать() {
|
|
|
- сам.сеть.Обновить()
|
|
|
+ сам.Обновить()
|
|
|
if err := сам.выбратьМеталл(); err != nil {
|
|
|
сам.лог.Добавить("ERRO Шахта.Сделать(): при выборе продукции, err=\n\t%v\n", err)
|
|
|
return
|
|
|
@@ -598,7 +595,7 @@ func (сам *Шахта) выбратьМеталл() error {
|
|
|
// Создаёт руду
|
|
|
func (сам *Шахта) рудаСделать() bool {
|
|
|
time.Sleep(time.Millisecond * 55)
|
|
|
- lstMine, err := сам.сеть.Get("https://wartank.ru/production/Mine")
|
|
|
+ lstMine, err := сам.Сеть().Get("https://wartank.ru/production/Mine")
|
|
|
if err != nil {
|
|
|
// log._rintf("ERRO Шахта.сделатьРуду(): при GET-команде 'начать производство руды', err=\n\t%v\n", err)
|
|
|
return false
|
|
|
@@ -633,7 +630,7 @@ func (сам *Шахта) рудаСделать() bool {
|
|
|
strLink = "https://wartank.ru/production/" + _link
|
|
|
// https://wartank.ru/production/Mine?19-1.ILinkListener-productions-0-production-startProduceLink
|
|
|
time.Sleep(time.Millisecond * 55)
|
|
|
- lstMine, err = сам.сеть.Get(strLink)
|
|
|
+ lstMine, err = сам.Сеть().Get(strLink)
|
|
|
if err != nil {
|
|
|
// log._rintf("ERRO Шахта.сделатьРуду(): при GET-команде 'начать производство руды', err=\n\t%v\n", err)
|
|
|
return false
|
|
|
@@ -694,7 +691,7 @@ func (сам *Шахта) железоСделать() bool {
|
|
|
lstLink = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
|
|
|
strLink = "https://wartank.ru/production/" + lstLink[0]
|
|
|
// https://wartank.ru/production/Mine?4-1.ILinkListener-productions-1-production-startProduceLink
|
|
|
- lstMine, err := сам.сеть.Get(strLink)
|
|
|
+ lstMine, err := сам.Сеть().Get(strLink)
|
|
|
if err != nil {
|
|
|
// log._rintf("ERRO MineNet.makeFerrum(): при GET-команде 'начать производство железа', err=\n\t%v\n", err)
|
|
|
return false
|
|
|
@@ -753,7 +750,7 @@ func (сам *Шахта) стальСделать() bool {
|
|
|
lstLink = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
|
|
|
strLink = "https://wartank.ru/production/" + lstLink[0]
|
|
|
time.Sleep(time.Millisecond * 55)
|
|
|
- lstMine, err := сам.сеть.Get(strLink)
|
|
|
+ lstMine, err := сам.Сеть().Get(strLink)
|
|
|
if err != nil {
|
|
|
// log._rintf("ERRO MineNet.makeSteel(): при GET-команде 'начать производство стали', err=\n\t%v\n", err)
|
|
|
return false
|
|
|
@@ -812,7 +809,7 @@ func (сам *Шахта) свинецСделать() bool {
|
|
|
lstLink = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
|
|
|
strLink = "https://wartank.ru/production/" + lstLink[0]
|
|
|
time.Sleep(time.Millisecond * 55)
|
|
|
- lstMine, err := сам.сеть.Get(strLink)
|
|
|
+ lstMine, err := сам.Сеть().Get(strLink)
|
|
|
if err != nil {
|
|
|
// log._rintf("ERRO Шахта.сделатьСвинец(): при GET-команде 'начать производство стали', err=\n\t%v\n", err)
|
|
|
return false
|