Skip to content

Commit 720ec94

Browse files
authored
Merge pull request #52 from Erol444/fix_village_list_reader
Fix village list reader
2 parents 7bb2217 + 32a01ab commit 720ec94

File tree

9 files changed

+123
-99
lines changed

9 files changed

+123
-99
lines changed

.github/workflows/pre-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
id: Changelog
3737
run: |
3838
git branch --show-current
39-
changelog=$(git log --no-merges --pretty=format:'- %s' ${{ steps.previoustag.outputs.tag }}..HEAD)
39+
changelog=$(git log --no-merges --pretty=format:'- %s' ${{ steps.previoustag.outputs.tag }}..HEAD --reverse)
4040
changelog="${changelog//'%'/'%25'}"
4141
changelog="${changelog//$'\n'/'%0A'}"
4242
changelog="${changelog//$'\r'/'%0D'}"

TbsCore/Helpers/UpdateAccountObject.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public static class UpdateAccountObject
1414
{
1515
public static bool UpdateVillages(HtmlAgilityPack.HtmlDocument htmlDoc, Account acc)
1616
{
17-
List<VillageChecked> foundVills = RightBarParser.GetVillages(htmlDoc);
17+
List<VillageChecked> foundVills = RightBarParser.GetVillages(htmlDoc, acc.AccInfo.ServerVersion);
1818
if (foundVills.Count == 0) return false; //some problem in GetVillages function!
1919

2020
for (int i = 0; i < acc.Villages.Count; i++)

TbsCore/Helpers/VillageHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public static async Task SwitchVillage(Account acc, int id)
8686
// Parse village list again and find correct href
8787
Uri uri = new Uri(acc.Wb.CurrentUrl);
8888

89-
var vills = RightBarParser.GetVillages(acc.Wb.Html);
89+
var vills = RightBarParser.GetVillages(acc.Wb.Html, acc.AccInfo.ServerVersion);
9090
var href = vills.FirstOrDefault(x => x.Id == id)?.Href;
9191

9292
if (string.IsNullOrEmpty(href)) // Login screen, server messages etc.

TbsCore/Parsers/RightBarParser.cs

Lines changed: 55 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using TbsCore.Models.MapModels;
55
using TbsCore.Models.SideBarModels;
66
using TbsCore.Helpers;
7+
using static TbsCore.Helpers.Classificator;
78

89
namespace TbsCore.Parsers
910
{
@@ -37,48 +38,71 @@ public static CulturePoints GetCulturePoints(HtmlAgilityPack.HtmlDocument htmlDo
3738
};
3839
}
3940

40-
public static List<VillageChecked> GetVillages(HtmlAgilityPack.HtmlDocument htmlDoc)
41+
public static List<VillageChecked> GetVillages(HtmlAgilityPack.HtmlDocument htmlDoc, ServerVersionEnum serverVersion)
4142
{
4243
List<VillageChecked> ret = new List<VillageChecked>();
4344

44-
try
45+
var villsNode = htmlDoc.GetElementbyId("sidebarBoxVillagelist");
46+
if (villsNode == null) return ret;
47+
List<HtmlAgilityPack.HtmlNode> vills = null;
48+
switch (serverVersion)
4549
{
46-
var villsNode = htmlDoc.GetElementbyId("sidebarBoxVillagelist");
47-
if (villsNode == null) return ret;
48-
49-
var vills = villsNode.Descendants("li").ToList();
50-
foreach (var node in vills)
51-
{
52-
bool underAttack = false, active = false;
50+
case ServerVersionEnum.T4_4:
51+
{
52+
vills = villsNode.Descendants("li").ToList();
53+
break;
54+
}
55+
case ServerVersionEnum.T4_5:
56+
{
57+
vills = villsNode.Descendants("div").Where(x => x.HasClass("listEntry")).ToList();
58+
break;
59+
}
60+
}
5361

54-
if (node.HasClass("attack"))
55-
underAttack = true;
56-
if (node.HasClass("active"))
57-
active = true;
62+
if (vills == null) return ret;
5863

59-
var href = System.Net.WebUtility.HtmlDecode(node.ChildNodes.First(x => x.Name == "a").GetAttributeValue("href", ""));
64+
foreach (var node in vills)
65+
{
66+
bool underAttack = false, active = false;
6067

61-
var villId = Convert.ToInt32(href.Split('=')[1].Split('&')[0]);
68+
if (node.HasClass("attack"))
69+
underAttack = true;
70+
if (node.HasClass("active"))
71+
active = true;
6272

63-
var villName = node.Descendants().FirstOrDefault(x => x.HasClass("name")).InnerText;
64-
var coords = new Coordinates()
65-
{
66-
x = (int)Parser.ParseNum(node.Descendants("span").FirstOrDefault(x => x.HasClass("coordinateX")).InnerText.Replace("(", "")),
67-
y = (int)Parser.ParseNum(node.Descendants("span").FirstOrDefault(x => x.HasClass("coordinateY")).InnerText.Replace(")", ""))
68-
};
73+
var href = System.Net.WebUtility.HtmlDecode(node.ChildNodes.FirstOrDefault(x => x.Name == "a").GetAttributeValue("href", ""));
74+
var villId = Convert.ToInt32(href.Split('=')[1].Split('&')[0]);
75+
var villName = node.Descendants("a").FirstOrDefault().InnerText.Replace(" ", "").Replace("\r\n", "");
6976

70-
ret.Add(new VillageChecked()
71-
{
72-
Id = villId,
73-
UnderAttack = underAttack,
74-
Name = villName,
75-
Coordinates = coords,
76-
Active = active,
77-
Href = href,
78-
});
77+
var x_node = node.Descendants("span").FirstOrDefault(x => x.HasClass("coordinateX"));
78+
int x_coord = 0;
79+
if (x_node != null)
80+
{
81+
x_coord = (int)Parser.ParseNum(x_node.InnerText.Replace("(", ""));
82+
}
83+
var y_node = node.Descendants("span").FirstOrDefault(x => x.HasClass("coordinateY"));
84+
int y_coord = 0;
85+
if (y_node != null)
86+
{
87+
y_coord = (int)Parser.ParseNum(y_node.InnerText.Replace(")", ""));
7988
}
89+
var coords = new Coordinates()
90+
{
91+
x = x_coord,
92+
y = y_coord,
93+
};
94+
95+
ret.Add(new VillageChecked()
96+
{
97+
Id = villId,
98+
UnderAttack = underAttack,
99+
Name = villName,
100+
Coordinates = coords,
101+
Active = active,
102+
Href = href,
103+
});
80104
}
81-
catch (Exception e) { Console.WriteLine("error " + e.Message); }
105+
82106
return ret;
83107
}
84108

TbsCore/TbsCore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<PackageReference Include="RandomUserAgent" Version="1.1.2" />
2424
<PackageReference Include="RestSharp" Version="106.11.7" />
2525
<PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
26-
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="91.0.4472.10100" />
26+
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="93.0.4577.1500" />
2727
<PackageReference Include="Serilog" Version="2.10.0" />
2828
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
2929
<PackageReference Include="Serilog.Sinks.Map" Version="1.0.2" />

TbsCore/packages.lock.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@
7272
},
7373
"Selenium.WebDriver.ChromeDriver": {
7474
"type": "Direct",
75-
"requested": "[91.0.4472.10100, )",
76-
"resolved": "91.0.4472.10100",
77-
"contentHash": "RalhItuJ6BZdD9HHVUHdpgDP/NQAUrr1yEAHWet+Ww33wbcuei0A2sF4+9duKaLQuZO3lcid7pKe2+km3sOGBQ=="
75+
"requested": "[93.0.4577.1500, )",
76+
"resolved": "93.0.4577.1500",
77+
"contentHash": "Jmu4HRq6NTdPbBtXlMUlmB9HIyB03MEcZWSJNSxGykNY10cOhAE5LpIm3hHF+/rw+dgaZPxU8SLkd85xtsS7/A=="
7878
},
7979
"Serilog": {
8080
"type": "Direct",

TravBotSharp/TbsWinForms.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -734,13 +734,13 @@
734734
<Error Condition="!Exists('..\packages\Costura.Fody.5.0.2\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.0.2\build\Costura.Fody.props'))" />
735735
<Error Condition="!Exists('..\packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets'))" />
736736
<CallTarget Targets="AssemblyInfo" />
737-
<Error Condition="!Exists('..\packages\Selenium.WebDriver.ChromeDriver.91.0.4472.10100\build\Selenium.WebDriver.ChromeDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.WebDriver.ChromeDriver.91.0.4472.10100\build\Selenium.WebDriver.ChromeDriver.targets'))" />
737+
<Error Condition="!Exists('..\packages\Selenium.WebDriver.ChromeDriver.93.0.4577.1500\build\Selenium.WebDriver.ChromeDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.WebDriver.ChromeDriver.93.0.4577.1500\build\Selenium.WebDriver.ChromeDriver.targets'))" />
738738
</Target>
739739
<Import Project="..\packages\SQLitePCLRaw.lib.e_sqlite3.2.0.2\build\net461\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('..\packages\SQLitePCLRaw.lib.e_sqlite3.2.0.2\build\net461\SQLitePCLRaw.lib.e_sqlite3.targets')" />
740740
<Import Project="..\packages\Fody.6.3.0\build\Fody.targets" Condition="Exists('..\packages\Fody.6.3.0\build\Fody.targets')" />
741741
<Import Project="..\packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets" Condition="Exists('..\packages\MSBuildTasks.1.5.0.235\build\MSBuildTasks.targets')" />
742742
<Target Name="AssemblyInfo">
743743
<AssemblyInfo CodeLanguage="CS" OutputFile="Properties\AssemblyInfo.cs" AssemblyVersion="$(BUILD_NUMBER)" AssemblyFileVersion="$(BUILD_NUMBER)" />
744744
</Target>
745-
<Import Project="..\packages\Selenium.WebDriver.ChromeDriver.91.0.4472.10100\build\Selenium.WebDriver.ChromeDriver.targets" Condition="Exists('..\packages\Selenium.WebDriver.ChromeDriver.91.0.4472.10100\build\Selenium.WebDriver.ChromeDriver.targets')" />
745+
<Import Project="..\packages\Selenium.WebDriver.ChromeDriver.93.0.4577.1500\build\Selenium.WebDriver.ChromeDriver.targets" Condition="Exists('..\packages\Selenium.WebDriver.ChromeDriver.93.0.4577.1500\build\Selenium.WebDriver.ChromeDriver.targets')" />
746746
</Project>

TravBotSharp/Views/GeneralUc.Designer.cs

Lines changed: 58 additions & 58 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

TravBotSharp/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
<package id="RandomUserAgent" version="1.1.2" targetFramework="net461" />
3838
<package id="RestSharp" version="106.11.7" targetFramework="net461" />
3939
<package id="Selenium.WebDriver" version="3.141.0" targetFramework="net472" />
40-
<package id="Selenium.WebDriver.ChromeDriver" version="91.0.4472.10100" targetFramework="net461" />
40+
<package id="Selenium.WebDriver.ChromeDriver" version="93.0.4577.1500" targetFramework="net461" />
4141
<package id="Serilog" version="2.10.0" targetFramework="net461" />
4242
<package id="Serilog.Sinks.File" version="4.1.0" targetFramework="net461" />
4343
<package id="Serilog.Sinks.Map" version="1.0.2" targetFramework="net461" />

0 commit comments

Comments
 (0)