]> njoseph.me Git - nimcoon.git/commitdiff
Introduce a func
authorJoseph Nuthalapati <njoseph@riseup.net>
Fri, 10 Jan 2020 19:03:00 +0000 (00:33 +0530)
committerJoseph Nuthalapati <njoseph@riseup.net>
Fri, 10 Jan 2020 19:03:00 +0000 (00:33 +0530)
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
nimcoon.nim

index cea1797f1cc542b957f273c04e9bb8f58c5ab3b5..7b69ddb5ab3e8320184054e9e82b17db9bf6c376 100644 (file)
@@ -53,8 +53,8 @@ proc getYoutubePage(searchQuery: string): string =
   let response = get(client, &"https://www.youtube.com/results?hl=en&search_query={queryParam}")
   return $response.body
 
-proc extractTitlesAndUrls(htmlFile: string): seq[SearchResult] =
-  parseHtml(htmlFile).findAll("a").
+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)]
 
@@ -92,15 +92,14 @@ proc main() =
 
   styledEcho "\n", fgGreen, "Playing ", styleBright, fgMagenta, searchResults[number].title
 
-  var args = @[searchResults[number].url]
-
-  if musicOnly:
-    args.add("--no-video")
-
-  if fullScreen:
-    args.add("--fullscreen")
+  # This is a pure function with no side effects
+  func buildArgs(): seq[string] =
+    var args = @[searchResults[number].url]
+    if musicOnly: args.add("--no-video")
+    if fullScreen: args.add("--fullscreen")
+    return args
 
   # Play the video using the preferred/available media player
-  play(player, args)
+  play(player, buildArgs())
 
 main()