Skip to content

Commit f26139b

Browse files
authored
Merge pull request #88 from maxisoft/dev
Redlib as alternative to reddit api
2 parents 4320f88 + 2791023 commit f26139b

File tree

60 files changed

+2835
-408
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+2835
-408
lines changed

.github/workflows/test_integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
f.write(base64.b64decode(data))
6767
6868
- name: Extract config.zip
69-
run: unzip config.zip
69+
run: unzip -qq config.zip
7070

7171
- name: Create plugin dir
7272
run: |

ASFFreeGames.Tests/ASFFreeGames.Tests.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
<ItemGroup>
2525
<EmbeddedResource Include="ASFinfo.json" />
26+
<None Remove="redlib_asfinfo.html" />
27+
<EmbeddedResource Include="redlib_asfinfo.html" />
2628
</ItemGroup>
2729

2830
<ItemGroup>

ASFFreeGames.Tests/GameIdentifierParserTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
using System;
2+
using ASFFreeGames.ASFExtentions.Games;
3+
using Maxisoft.ASF.ASFExtentions;
4+
using Maxisoft.ASF.ASFExtentions.Games;
25
using Xunit;
36

47
namespace Maxisoft.ASF.Tests;

ASFFreeGames.Tests/GameIdentifierTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
using System;
2+
using ASFFreeGames.ASFExtentions.Games;
3+
using Maxisoft.ASF.ASFExtentions;
4+
using Maxisoft.ASF.ASFExtentions.Games;
25
using Xunit;
36

47
namespace Maxisoft.ASF.Tests;

ASFFreeGames.Tests/RandomUtilsTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System;
33
using System.Diagnostics.CodeAnalysis;
44
using System.Linq;
5+
using Maxisoft.ASF.Utils;
56
using Xunit;
67

78
namespace Maxisoft.ASF.Tests;

ASFFreeGames.Tests/Reddit/RedditHelperTests.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using System.Reflection;
77
using System.Text.Json;
88
using System.Text.Json.Nodes;
9-
using System.Threading;
109
using System.Threading.Tasks;
1110
using Maxisoft.ASF.Reddit;
1211
using Maxisoft.Utils.Collections.Spans;
@@ -104,12 +103,6 @@ private static async Task<RedditGameEntry[]> LoadAsfinfoEntries() {
104103
#pragma warning restore CA2007
105104
JsonNode jsonNode = await JsonNode.ParseAsync(stream).ConfigureAwait(false) ?? JsonNode.Parse("{}")!;
106105

107-
return RedditHelper.LoadMessages(jsonNode["data"]?["children"]!);
108-
}
109-
110-
private static async Task<string> ReadToEndAsync(Stream stream, CancellationToken cancellationToken) {
111-
using StreamReader reader = new(stream);
112-
113-
return await reader.ReadToEndAsync(cancellationToken).ConfigureAwait(false);
106+
return RedditHelper.LoadMessages(jsonNode["data"]?["children"]!).ToArray();
114107
}
115108
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System.Collections.Generic;
2+
using System.IO;
3+
using System.Reflection;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using Maxisoft.ASF.Redlib;
7+
using Maxisoft.ASF.Redlib.Html;
8+
using Xunit;
9+
10+
namespace Maxisoft.ASF.Tests.Redlib;
11+
12+
public class RedlibHtmlParserTests {
13+
[Fact]
14+
public async void Test() {
15+
string html = await LoadHtml().ConfigureAwait(false);
16+
17+
// ReSharper disable once ArgumentsStyleLiteral
18+
IReadOnlyCollection<RedlibGameEntry> result = RedlibHtmlParser.ParseGamesFromHtml(html, dedup: false);
19+
Assert.NotEmpty(result);
20+
Assert.Equal(25, result.Count);
21+
22+
// ReSharper disable once ArgumentsStyleLiteral
23+
result = RedlibHtmlParser.ParseGamesFromHtml(html, dedup: true);
24+
Assert.NotEmpty(result);
25+
Assert.Equal(13, result.Count);
26+
}
27+
28+
private static async Task<string> LoadHtml() {
29+
Assembly assembly = Assembly.GetExecutingAssembly();
30+
31+
#pragma warning disable CA2007
32+
await using Stream stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.redlib_asfinfo.html")!;
33+
#pragma warning restore CA2007
34+
using StreamReader reader = new(stream, Encoding.UTF8, true);
35+
36+
return await reader.ReadToEndAsync().ConfigureAwait(false);
37+
}
38+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.IO;
4+
using System.Reflection;
5+
using System.Text;
6+
using System.Threading;
7+
using System.Threading.Tasks;
8+
using ASFFreeGames.Configurations;
9+
using Maxisoft.ASF.Redlib;
10+
using Maxisoft.ASF.Redlib.Html;
11+
using Maxisoft.ASF.Redlib.Instances;
12+
using Xunit;
13+
14+
namespace Maxisoft.ASF.Tests.Redlib;
15+
16+
public class RedlibInstanceListTests {
17+
[Fact]
18+
public async void Test() {
19+
RedlibInstanceList lister = new(new ASFFreeGamesOptions());
20+
List<Uri> uris = await RedlibInstanceList.ListFromEmbedded(default(CancellationToken)).ConfigureAwait(false);
21+
22+
Assert.NotEmpty(uris);
23+
}
24+
}

0 commit comments

Comments
 (0)