From c4a2a2bdd35df60c077728ed63220eabe0f5c068 Mon Sep 17 00:00:00 2001 From: Kalakoi Date: Tue, 27 May 2025 14:47:18 -0400 Subject: [PATCH] Testing of wiki API using nuget package library. --- osrs-toolbox/APIs/Wiki/Wiki.cs | 35 +++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/osrs-toolbox/APIs/Wiki/Wiki.cs b/osrs-toolbox/APIs/Wiki/Wiki.cs index d8081a6..50bbb86 100644 --- a/osrs-toolbox/APIs/Wiki/Wiki.cs +++ b/osrs-toolbox/APIs/Wiki/Wiki.cs @@ -1,15 +1,48 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net.NetworkInformation; using System.Text; using System.Text.Json; using System.Threading.Tasks; +using WikiClientLibrary; +using WikiClientLibrary.Client; +using WikiClientLibrary.Sites; +using WikiClientLibrary.Pages; +using WikiClientLibrary.Pages.Queries; +using WikiClientLibrary.Pages.Queries.Properties; +using WikiClientLibrary.Generators; namespace osrs_toolbox { public static class Wiki { - private static string BaseEndpoint = @"https://oldschool.runescape.wiki/api.php?format=json&formatversion=2"; + private static string BaseSite = @"oldschool.runescape.wiki"; + private static string BaseEndpoint = @"https://oldschool.runescape.wiki/api.php"; + private static string BaseEndpointOptions = @"?format=json&formatversion=2"; private static string ListMonstersEndpoint = @"&action=query&list=categorymembers&cmtitle=Category:Monsters"; + private static string UserAgent = @"osrs-toolbox"; + + public static async Task TestAsync() + { + WikiClient client = new WikiClient(); + client.ClientUserAgent = UserAgent; + WikiSite site = new WikiSite(client, await WikiSite.SearchApiEndpointAsync(client, BaseEndpoint).ConfigureAwait(false)); + await site.Initialization.ConfigureAwait(false); + + CategoriesGenerator cg = new CategoriesGenerator(site); + + //CategoryMembersGenerator generator = new CategoryMembersGenerator(site); + //generator.CategoryTitle = "Monsters"; + //List pages = await generator.EnumPagesAsync().Take(10).ToListAsync().ConfigureAwait(false); + + List pages = await cg.EnumItemsAsync().Take(10).ToListAsync().ConfigureAwait(false); + string output = string.Empty; + foreach (WikiPageCategoryInfo page in pages) + { + output += page.Title + "\n"; + } + return output; + } } }