|
|
@@ -2,6 +2,7 @@ package missions
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
+ "log"
|
|
|
"strings"
|
|
|
"time"
|
|
|
|
|
|
@@ -21,11 +22,11 @@ type Миссии struct {
|
|
|
сеть *missionsnet.MissionsNet
|
|
|
}
|
|
|
|
|
|
-// NewMissions -- возвращает новый *Миссии
|
|
|
-func NewMissions(бот types.ИБот) (*Миссии, error) {
|
|
|
+// НовМиссии -- возвращает новый *Миссии
|
|
|
+func НовМиссии(бот types.ИБот) (*Миссии, error) {
|
|
|
section, err := section.NewSection(бот, "Миссии", `<title>Миссии</title>`)
|
|
|
if err != nil {
|
|
|
- return nil, fmt.Errorf("NewMissions(): in create *Section, err=\n\t%w", err)
|
|
|
+ return nil, fmt.Errorf("НовМиссии(): in create *Section, err=\n\t%w", err)
|
|
|
}
|
|
|
сам := &Миссии{
|
|
|
Section: section,
|
|
|
@@ -33,7 +34,7 @@ func NewMissions(бот types.ИБот) (*Миссии, error) {
|
|
|
}
|
|
|
сам.сеть, err = missionsnet.NewMissionsNet(сам)
|
|
|
if err != nil {
|
|
|
- return nil, fmt.Errorf("NewMissions(): in create *SectionNet, err=\n\t%w", err)
|
|
|
+ return nil, fmt.Errorf("НовМиссии(): in create *SectionNet, err=\n\t%w", err)
|
|
|
}
|
|
|
return сам, nil
|
|
|
}
|
|
|
@@ -49,7 +50,7 @@ func (sf *Миссии) пуск() {
|
|
|
defer func() {
|
|
|
sf.ВремяОпрос().Стоп()
|
|
|
}()
|
|
|
- time.Sleep(time.Second * 15)
|
|
|
+ time.Sleep(time.Second * 5)
|
|
|
for { // Время истекло
|
|
|
select {
|
|
|
case <-sf.бот.Кнт().Done():
|
|
|
@@ -71,9 +72,9 @@ func (sf *Миссии) пуск() {
|
|
|
|
|
|
// Забирает всё самое вкусное
|
|
|
func (sf *Миссии) проверНаграда() {
|
|
|
- sf.битваЗащита()
|
|
|
- sf.battleAttack()
|
|
|
- sf.БитваВойна()
|
|
|
+ sf.сражениеЗащита()
|
|
|
+ sf.сражениеНаступление()
|
|
|
+ sf.проведиВойну()
|
|
|
sf.battle5Fiting()
|
|
|
sf.battle6win()
|
|
|
sf.battle10Fiting()
|
|
|
@@ -123,7 +124,7 @@ func (sf *Миссии) kill3tanks() {
|
|
|
}
|
|
|
|
|
|
// Проверяет награду оборонительного сражения
|
|
|
-func (sf *Миссии) битваЗащита() {
|
|
|
+func (sf *Миссии) сражениеЗащита() {
|
|
|
var (
|
|
|
strOut string
|
|
|
lstMissions = sf.СписПолучить()
|
|
|
@@ -161,7 +162,7 @@ func (sf *Миссии) битваЗащита() {
|
|
|
}
|
|
|
|
|
|
// Проверяет награду за одну войну
|
|
|
-func (sf *Миссии) БитваВойна() {
|
|
|
+func (sf *Миссии) проведиВойну() {
|
|
|
var (
|
|
|
strOut string
|
|
|
lstMissions = sf.СписПолучить()
|
|
|
@@ -199,15 +200,22 @@ func (sf *Миссии) БитваВойна() {
|
|
|
}
|
|
|
|
|
|
// Проверяет награду наступательного сражения
|
|
|
-func (sf *Миссии) battleAttack() {
|
|
|
+func (сам *Миссии) сражениеНаступление() {
|
|
|
var (
|
|
|
strOut string
|
|
|
- lstMissions = sf.СписПолучить()
|
|
|
isFind bool
|
|
|
ind int
|
|
|
+ lstMissions = сам.СписПолучить()
|
|
|
)
|
|
|
+ if len(lstMissions) == 0 {
|
|
|
+ if ош := сам.сеть.UpdateLst(); ош != nil {
|
|
|
+ log.Printf("Миссии.сражениеНаступление(): при обновлении HTML миссий, ош=\n\t%v\n", ош)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ lstMissions = сам.СписПолучить()
|
|
|
+ }
|
|
|
for ind, strOut = range lstMissions {
|
|
|
- if strings.Contains(strOut, `Проведи одно наступательное сражение<br/>`) {
|
|
|
+ if strings.Contains(strOut, "Проведи одно наступательное сражение<br/>") {
|
|
|
isFind = true
|
|
|
break
|
|
|
}
|
|
|
@@ -225,12 +233,12 @@ func (sf *Миссии) battleAttack() {
|
|
|
strLink := lstLink[1]
|
|
|
lstLink = strings.Split(strLink, `"><span><span>Получить награду</span></span></a>`)
|
|
|
strLink = "https://wartank.ru/missions/" + lstLink[0]
|
|
|
- lstMissions, err := sf.сеть.Get(strLink)
|
|
|
+ lstMissions, err := сам.сеть.Get(strLink)
|
|
|
if err != nil {
|
|
|
// log._rintf("ERRO Миссии.battleAttack(): при выполнении GET-запроса, err=\n\t%v\n", err)
|
|
|
return
|
|
|
}
|
|
|
- if err := sf.СтрОбновить(lstMissions); err != nil {
|
|
|
+ if err := сам.СтрОбновить(lstMissions); err != nil {
|
|
|
// log._rintf("ERRO Миссии.battleAttack(): при обновлении lstMissions, err=\n\t%v\n", err)
|
|
|
return
|
|
|
}
|