]> njoseph.me Git - nimcoon.git/blobdiff - src/youtube.nim
youtube: Use a different Invidious instance
[nimcoon.git] / src / youtube.nim
index a83e23372fb21b6e66822648812bf60ef062aacf..a07a629f36cb04a39b67121d7c3ee31bd82f4115 100644 (file)
@@ -1,6 +1,7 @@
 import
   httpClient,
   json,
+  std/[terminal],
   strformat,
   strutils,
   uri
@@ -26,6 +27,12 @@ proc getSearchResults*(searchQuery: string): SearchResults =
   let client = newHttpClient()
   let response = get(client, &"{invidiousInstance}/api/v1/search?q={queryParam}")
   let jsonData = parseJson($response.body)
+  if jsonData.kind == JObject: # Could be a 403 error
+    stdout.styledWrite(fgRed, $response.body)
+    quit(1)
+  if len(jsonData) == 0:
+    stdout.styledWrite(fgRed, "Got empty response from Invidious instance")
+    quit(2)
   var searchResults: SearchResults = @[]
   for item in jsonData:
     if item["type"].getStr() == "video":