X-Git-Url: https://njoseph.me/gitweb/nimcoon.git/blobdiff_plain/d65a1dcf24e9c17cea89385c78b1c39c314f0f97..d807245d4d9041d9098ea7bb273debfb0224d0ff:/lib.nim diff --git a/lib.nim b/lib.nim index 25669a3..acc4fc1 100644 --- a/lib.nim +++ b/lib.nim @@ -31,10 +31,11 @@ proc getYoutubePage*(searchQuery: string): string = let response = get(client, &"https://www.youtube.com/results?hl=en&search_query={queryParam}") return $response.body -proc extractTitlesAndUrls*(html: string): seq[SearchResult] = - parseHtml(html).findAll("a"). - filter(a => "watch" in a.attrs["href"] and a.attrs.hasKey "title"). - map(a => (a.attrs["title"], "https://www.youtube.com" & a.attrs["href"]))[..(limit-1)] +func extractTitlesAndUrls*(html: string): seq[SearchResult] = + {.noSideEffect.}: + parseHtml(html).findAll("a"). + filter(a => "watch" in a.attrs["href"] and a.attrs.hasKey "title"). + map(a => (a.attrs["title"], "https://www.youtube.com" & a.attrs["href"]))[..(limit-1)] proc presentVideoOptions*(searchResults: seq[SearchResult]) = echo "" @@ -44,7 +45,6 @@ proc presentVideoOptions*(searchResults: seq[SearchResult]) = proc play*(player: string, args: openArray[string]) = # poEchoCmd can be added to options for debugging discard execProcess(player, args=args, options={poStdErrToStdOut, poUsePath}) - quit(0) func urlLongen(url: string): string = url.replace("youtu.be/", "www.youtube.com/watch?v=") @@ -56,7 +56,8 @@ func sanitizeURL*(url: string): string = urlLongen(stripZshEscaping(url)) proc directPlay*(searchQuery: string, player: string) = - if "watch?" in searchQuery or "videos/watch" in searchQuery or "soundcloud.com" in searchQuery: - play(player, args=[sanitizeURL(searchQuery)]) - elif searchQuery.startswith("magnet:"): - play("peerflix", args=[searchQuery, &"--{player}"]) + let url = sanitizeURL(searchQuery) + if searchQuery.startswith("magnet:"): + play("peerflix", args=[url, &"--{player}"]) + else: + play(player, args=[url])