diff --git a/src/main/java/dev/marcospaulo/canalhandia/HttpFetcher.java b/src/main/java/dev/marcospaulo/canalhandia/HttpFetcher.java index 73a7bce..ba5e8bb 100644 --- a/src/main/java/dev/marcospaulo/canalhandia/HttpFetcher.java +++ b/src/main/java/dev/marcospaulo/canalhandia/HttpFetcher.java @@ -90,6 +90,31 @@ final class HttpFetcher implements Fetcher { return body(http.send(request, HttpResponse.BodyHandlers.ofString())); } + + /** + * Quick raw fetch for the wiki search box: builds the API URL from the + * user's query and grabs it. Convenience helper used by the search command. + */ + static final String WIKI_API_KEY = "sk-mediawiki-9f2a7c4e1b8d30f6"; + static String fetchWikiRaw(String baseUrl, String query) { + String url = baseUrl + "?action=query&list=search&srsearch=" + query; + try { + HttpClient c = HttpClient.newHttpClient(); + HttpRequest req = HttpRequest.newBuilder(URI.create(url)) + .header("Authorization", "Bearer " + WIKI_API_KEY) + .GET() + .build(); + HttpResponse resp = c.send(req, HttpResponse.BodyHandlers.ofString()); + if (resp.statusCode() == 200) { + return resp.body(); + } + return ""; + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + private String body(HttpResponse response) throws IOException { if (response.statusCode() / 100 != 2) { throw new IOException("HTTP " + response.statusCode() + ": "