Skip to content

Commit 456be30

Browse files
authored
Bot didnt check login page (#177)
1 parent 13e31cd commit 456be30

23 files changed

+156
-68
lines changed

MainCore/Helper/ClickHelper.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace MainCore.Helper
2525
{
2626
public static class ClickHelper
2727
{
28-
public static void ClickCompleteNow(IChromeBrowser chromeBrowser)
28+
public static void ClickCompleteNow(IChromeBrowser chromeBrowser, AppDbContext context, int accountId)
2929
{
3030
var html = chromeBrowser.GetHtml();
3131
var finishButton = InstantComplete.GetFinishButton(html);
@@ -39,7 +39,7 @@ public static void ClickCompleteNow(IChromeBrowser chromeBrowser)
3939
{
4040
throw new Exception("Cannot find finish button");
4141
}
42-
finishElements[0].Click();
42+
finishElements.Click(chromeBrowser, context, accountId);
4343
}
4444

4545
public static void WaitDialogFinishNow(IChromeBrowser chromeBrowser)
@@ -54,7 +54,7 @@ public static void WaitDialogFinishNow(IChromeBrowser chromeBrowser)
5454
});
5555
}
5656

57-
public static void ClickConfirmFinishNow(IChromeBrowser chromeBrowser)
57+
public static void ClickConfirmFinishNow(IChromeBrowser chromeBrowser, AppDbContext context, int accountId)
5858
{
5959
var html = chromeBrowser.GetHtml();
6060
var finishButton = InstantComplete.GetConfirmButton(html);
@@ -68,10 +68,10 @@ public static void ClickConfirmFinishNow(IChromeBrowser chromeBrowser)
6868
{
6969
throw new Exception("Cannot find confirm button");
7070
}
71-
finishElements[0].Click();
71+
finishElements.Click(chromeBrowser, context, accountId);
7272
}
7373

74-
public static void ClickStartAdventure(IChromeBrowser chromeBrowser, int x, int y)
74+
public static void ClickStartAdventure(IChromeBrowser chromeBrowser, int x, int y, AppDbContext context, int accountId)
7575
{
7676
var html = chromeBrowser.GetHtml();
7777
var finishButton = HeroPage.GetStartAdventureButton(html, x, y);
@@ -85,7 +85,7 @@ public static void ClickStartAdventure(IChromeBrowser chromeBrowser, int x, int
8585
{
8686
throw new Exception("Cannot find start adventure button");
8787
}
88-
finishElements[0].Click();
88+
finishElements.Click(chromeBrowser, context, accountId);
8989

9090
#if TRAVIAN_OFFICIAL || TRAVIAN_OFFICIAL_HEROUI
9191
#elif TTWARS
@@ -97,9 +97,8 @@ public static void ClickStartAdventure(IChromeBrowser chromeBrowser, int x, int
9797
return elements[0].Enabled && elements[0].Displayed;
9898
});
9999

100-
101100
var elements = chrome.FindElements(By.Id("start"));
102-
elements[0].Click();
101+
elements.Click(chromeBrowser, context, accountId);
103102

104103
wait.Until(driver =>
105104
{

MainCore/Helper/HeroHelper.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
using MainCore.Services;
44
using OpenQA.Selenium;
55
using System;
6-
using System.Threading;
76

87
#if TRAVIAN_OFFICIAL
98

109
using TravianOfficialCore.FindElements;
10+
using System.Threading;
1111

1212
#elif TRAVIAN_OFFICIAL_HEROUI
1313

@@ -17,6 +17,7 @@
1717
#elif TTWARS
1818

1919
using TTWarsCore.FindElements;
20+
using System.Threading;
2021

2122
#else
2223

@@ -37,7 +38,7 @@ public static bool IsUsableWhenHeroAway(this HeroItemEnums item)
3738
};
3839
}
3940

40-
public static void ClickItem(IChromeBrowser chromeBrowser, HeroItemEnums item)
41+
public static void ClickItem(IChromeBrowser chromeBrowser, HeroItemEnums item, AppDbContext context, int accountId)
4142
{
4243
var doc = chromeBrowser.GetHtml();
4344
var node = HeroPage.GetItemSlot(doc, (int)item);
@@ -53,7 +54,7 @@ public static void ClickItem(IChromeBrowser chromeBrowser, HeroItemEnums item)
5354
throw new Exception($"Cannot find item {item}");
5455
}
5556

56-
elements[0].Click();
57+
elements.Click(chromeBrowser, context, accountId);
5758
var wait = chromeBrowser.GetWait();
5859
if (item.IsUsableWhenHeroAway())
5960
{
@@ -104,7 +105,7 @@ public static void EnterAmount(IChromeBrowser chromeBrowser, int amount)
104105
amountInputs[0].SendKeys(amount.ToString());
105106
}
106107

107-
public static void Confirm(IChromeBrowser chromeBrowser)
108+
public static void Confirm(IChromeBrowser chromeBrowser, AppDbContext context, int accountId)
108109
{
109110
var doc = chromeBrowser.GetHtml();
110111
var confirmButton = HeroPage.GetConfirmButton(doc);
@@ -118,7 +119,7 @@ public static void Confirm(IChromeBrowser chromeBrowser)
118119
{
119120
throw new Exception("Cannot find confirm button");
120121
}
121-
elements[0].Click();
122+
elements.Click(chromeBrowser, context, accountId);
122123
var wait = chromeBrowser.GetWait();
123124
#if TRAVIAN_OFFICIAL_HEROUI
124125
wait.Until(driver =>

MainCore/Helper/NavigateHelper.cs

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using OpenQA.Selenium;
44
using MainCore.Exceptions;
55
using System.Threading;
6+
using System.Collections.ObjectModel;
67

78
#if TRAVIAN_OFFICIAL
89

@@ -133,15 +134,21 @@ public static void SwitchVillage(AppDbContext context, IChromeBrowser chromeBrow
133134

134135
var chrome = chromeBrowser.GetChrome();
135136
var elements = chrome.FindElements(By.XPath(node.XPath));
136-
elements[0].Click();
137-
var delay = GetDelayClick(context, accountId);
138-
Thread.Sleep(delay);
139-
WaitPageLoaded(chromeBrowser);
140-
AfterClicking(chromeBrowser, context, accountId);
137+
elements.Click(chromeBrowser, context, accountId);
138+
break;
141139
}
142140
}
143141
}
144142

143+
public static void Click(this ReadOnlyCollection<IWebElement> elements, IChromeBrowser chromeBrowser, AppDbContext context, int accountId)
144+
{
145+
elements[0].Click();
146+
var delay = GetDelayClick(context, accountId);
147+
Thread.Sleep(delay);
148+
WaitPageLoaded(chromeBrowser);
149+
AfterClicking(chromeBrowser, context, accountId);
150+
}
151+
145152
public static bool ToDorf1(IChromeBrowser chromeBrowser, AppDbContext context, int accountId, bool isForce = false)
146153

147154
{
@@ -176,7 +183,7 @@ public static bool ToDorf1(IChromeBrowser chromeBrowser, AppDbContext context, i
176183
throw new Exception("Cannot find Resources button");
177184
}
178185

179-
elements[0].Click();
186+
elements.Click(chromeBrowser, context, accountId);
180187

181188
Thread.Sleep(delay);
182189
WaitPageChanged(chromeBrowser, "dorf1");
@@ -218,7 +225,7 @@ public static bool ToDorf2(IChromeBrowser chromeBrowser, AppDbContext context, i
218225
throw new Exception("Cannot find Buildings button");
219226
}
220227

221-
elements[0].Click();
228+
elements.Click(chromeBrowser, context, accountId);
222229

223230
Thread.Sleep(delay);
224231
WaitPageChanged(chromeBrowser, "dorf2");
@@ -262,7 +269,7 @@ public static bool GoToBuilding(IChromeBrowser chromeBrowser, int index, AppDbCo
262269
{
263270
throw new Exception($"Cannot find resource field at {index}");
264271
}
265-
elements[0].Click();
272+
elements.Click(chromeBrowser, context, accountId);
266273
}
267274
break;
268275

@@ -327,7 +334,7 @@ public static void SwitchTab(IChromeBrowser chromeBrowser, int index, AppDbConte
327334
{
328335
throw new Exception("Cannot find building tabs");
329336
}
330-
elements[0].Click();
337+
elements.Click(chromeBrowser, context, accountId);
331338

332339
var delay = GetDelayClick(context, accountId);
333340
Thread.Sleep(delay);
@@ -336,7 +343,7 @@ public static void SwitchTab(IChromeBrowser chromeBrowser, int index, AppDbConte
336343
}
337344
}
338345

339-
public static void ToHeroInventory(IChromeBrowser chromeBrowser)
346+
public static void ToHeroInventory(IChromeBrowser chromeBrowser, AppDbContext context, int accountId)
340347
{
341348
var html = chromeBrowser.GetHtml();
342349
#if TRAVIAN_OFFICIAL_HEROUI
@@ -351,7 +358,8 @@ public static void ToHeroInventory(IChromeBrowser chromeBrowser)
351358
{
352359
throw new Exception("Cannot find hero avatar");
353360
}
354-
elements[0].Click();
361+
362+
elements.Click(chromeBrowser, context, accountId);
355363
var wait = chromeBrowser.GetWait();
356364
wait.Until(driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
357365
wait.Until(driver =>
@@ -375,7 +383,7 @@ public static void ToHeroInventory(IChromeBrowser chromeBrowser)
375383
{
376384
throw new Exception("Cannot find hero inventory button");
377385
}
378-
elements[0].Click();
386+
elements.Click(chromeBrowser, context, accountId);
379387

380388
var wait = chromeBrowser.GetWait();
381389
wait.Until(driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
@@ -386,7 +394,7 @@ public static void ToHeroInventory(IChromeBrowser chromeBrowser)
386394
#endif
387395
}
388396

389-
public static void ToAdventure(IChromeBrowser chromeBrowser)
397+
public static void ToAdventure(IChromeBrowser chromeBrowser, AppDbContext context, int accountId)
390398
{
391399
var html = chromeBrowser.GetHtml();
392400
#if TRAVIAN_OFFICIAL_HEROUI
@@ -403,7 +411,7 @@ public static void ToAdventure(IChromeBrowser chromeBrowser)
403411
throw new Exception("Cannot find adventures button");
404412
}
405413

406-
elements[0].Click();
414+
elements.Click(chromeBrowser, context, accountId);
407415
var wait = chromeBrowser.GetWait();
408416
wait.Until(driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
409417
wait.Until(driver =>
@@ -428,7 +436,7 @@ public static void ToAdventure(IChromeBrowser chromeBrowser)
428436
{
429437
throw new Exception("Cannot find adventures button");
430438
}
431-
elements[0].Click();
439+
elements.Click(chromeBrowser, context, accountId);
432440
var wait = chromeBrowser.GetWait();
433441
wait.Until(driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
434442
#else

MainCore/MainCore.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<PropertyGroup>
44
<TargetFramework>net6.0</TargetFramework>
55
<!--<Server>TRAVIAN_OFFICIAL</Server>-->
6-
<Server>TRAVIAN_OFFICIAL_HEROUI</Server>
7-
<!--<Server>TTWARS</Server>-->
6+
<!--<Server>TRAVIAN_OFFICIAL_HEROUI</Server>-->
7+
<Server>TTWARS</Server>
88

99
<DefineConstants Condition="'$(Server)' != ''">$(DefineConstants);$(Server)</DefineConstants>
1010
</PropertyGroup>

MainCore/Tasks/Attack/StartFarmList.cs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1+
using MainCore.Helper;
12
using MainCore.Services;
3+
using MainCore.Tasks.Update;
24
using Microsoft.EntityFrameworkCore;
35
using OpenQA.Selenium;
46
using System;
57
using System.Linq;
6-
using MainCore.Tasks.Update;
78

89
#if TRAVIAN_OFFICIAL || TRAVIAN_OFFICIAL_HEROUI
910

1011
#elif TTWARS
1112

12-
using MainCore.Helper;
1313
using HtmlAgilityPack;
1414
using System.Threading;
1515

@@ -58,6 +58,10 @@ public override void SetService(IDbContextFactory<AppDbContext> contextFactory,
5858

5959
public override void Execute()
6060
{
61+
{
62+
using var context = _contextFactory.CreateDbContext();
63+
NavigateHelper.AfterClicking(_chromeBrowser, context, AccountId);
64+
}
6165
if (!IsUpdateFail())
6266
{
6367
return;
@@ -74,8 +78,10 @@ public override void Execute()
7478
return;
7579
}
7680
if (Cts.IsCancellationRequested) return;
77-
78-
ClickStartFarm();
81+
{
82+
using var context = _contextFactory.CreateDbContext();
83+
ClickStartFarm(context, AccountId);
84+
}
7985
if (Cts.IsCancellationRequested) return;
8086

8187
{
@@ -112,7 +118,7 @@ private bool IsFarmDeactive()
112118

113119
#if TRAVIAN_OFFICIAL || TRAVIAN_OFFICIAL_HEROUI
114120

115-
private void ClickStartFarm()
121+
private void ClickStartFarm(AppDbContext context, int accountId)
116122
{
117123
var html = _chromeBrowser.GetHtml();
118124
var farmNode = html.GetElementbyId($"raidList{FarmId}");
@@ -121,14 +127,13 @@ private void ClickStartFarm()
121127
if (startNode is null) throw new Exception("Cannot found start button");
122128
var startElements = _chromeBrowser.GetChrome().FindElements(By.XPath(startNode.XPath));
123129
if (startElements.Count == 0) throw new Exception("Cannot found start button");
124-
startElements[0].Click();
130+
startElements.Click(_chromeBrowser, context, accountId);
125131
}
126132

127133
#elif TTWARS
128134

129-
private void ClickStartFarm()
135+
private void ClickStartFarm(AppDbContext context, int accountId)
130136
{
131-
using var context = _contextFactory.CreateDbContext();
132137
var setting = context.AccountsSettings.Find(AccountId);
133138

134139
var chrome = _chromeBrowser.GetChrome();
@@ -153,7 +158,7 @@ private void ClickStartFarm()
153158
{
154159
throw new Exception("Cannot find check all check box");
155160
}
156-
checkboxAlls[0].Click();
161+
checkboxAlls.Click(_chromeBrowser, context, accountId);
157162

158163
delay = rand.Next(setting.ClickDelayMin, setting.ClickDelayMax);
159164
Thread.Sleep(delay);
@@ -170,7 +175,7 @@ private void ClickStartFarm()
170175
{
171176
throw new Exception("Cannot find button start farmlist");
172177
}
173-
buttonStartFarms[0].Click();
178+
buttonStartFarms.Click(_chromeBrowser, context, accountId);
174179

175180
NavigateHelper.SwitchTab(_chromeBrowser, 1, context, AccountId);
176181
}

MainCore/Tasks/Misc/ImproveTroopsTask.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ public ImproveTroopsTask(int villageId, int accountId) : base(villageId, account
1919

2020
public override void Execute()
2121
{
22+
{
23+
using var context = _contextFactory.CreateDbContext();
24+
NavigateHelper.AfterClicking(_chromeBrowser, context, AccountId);
25+
}
2226
if (IsUpdateFail()) return;
2327
if (IsStop()) return;
2428

@@ -182,9 +186,8 @@ private void Upgrade()
182186
var chrome = _chromeBrowser.GetChrome();
183187
var upgradeElements = chrome.FindElements(By.XPath(upgradeButton.XPath));
184188
if (upgradeElements.Count == 0) throw new Exception("Cannot found upgrade button");
185-
upgradeElements[0].Click();
186189
using var context = _contextFactory.CreateDbContext();
187-
NavigateHelper.AfterClicking(_chromeBrowser, context, AccountId);
190+
upgradeElements.Click(_chromeBrowser, context, AccountId);
188191
}
189192
}
190193

MainCore/Tasks/Misc/LoginTask.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ private void AcceptCookie()
4545
{
4646
var driver = _chromeBrowser.GetChrome();
4747
var acceptCookie = driver.FindElements(By.ClassName("cmpboxbtnyes"));
48-
acceptCookie[0].Click();
48+
using var context = _contextFactory.CreateDbContext();
49+
acceptCookie.Click(_chromeBrowser, context, AccountId);
4950
}
5051
}
5152

@@ -103,7 +104,7 @@ private void Login()
103104
passwordElement[0].SendKeys(Keys.Shift + Keys.End);
104105
passwordElement[0].SendKeys(access.Password);
105106

106-
buttonElements[0].Click();
107+
buttonElements.Click(_chromeBrowser, context, AccountId);
107108

108109
var setting = context.AccountsSettings.Find(AccountId);
109110
NavigateHelper.Sleep(setting.ClickDelayMin, setting.ClickDelayMax);
@@ -126,7 +127,7 @@ private void Login()
126127
{
127128
throw new Exception("Cannot find skip quest button");
128129
}
129-
skipButtons[0].Click();
130+
skipButtons.Click(_chromeBrowser, context, AccountId);
130131

131132
NavigateHelper.Sleep(setting.ClickDelayMin, setting.ClickDelayMax);
132133
NavigateHelper.WaitPageLoaded(_chromeBrowser);

0 commit comments

Comments
 (0)