let queryParam = encodeUrl(searchQuery)
let client = newHttpClient()
let response = get(client, &"https://www.youtube.com/results?hl=en&search_query={queryParam}")
- return $response.body
+ $response.body
proc getPeerTubeMagnetLink(url: string): string =
# Gets the magnet link of the best possible resolutino from PeerTube
else: url
let musicOnly = if options["musicOnly"]: "--no-video" else: ""
let fullScreen = if options["fullScreen"]: "--fullscreen" else: ""
- return filterIt([url, musicOnly, fullScreen], it != "")
+ filterIt([url, musicOnly, fullScreen], it != "")
proc play*(player: string, options: Table[string, bool], url: string, title: string = "") =
let args = buildPlayerArgs(url, options, player)
func buildMusicDownloadArgs*(url: string): seq[string] =
{.noSideEffect.}:
let downloadLocation = &"'{expandTilde(musicDownloadDirectory)}/%(title)s.%(ext)s'"
- return @["--ignore-errors", "-f", "bestaudio", "--extract-audio", "--audio-format", "mp3", "--audio-quality", "0", "-o", downloadLocation, url]
+ @["--ignore-errors", "-f", "bestaudio", "--extract-audio", "--audio-format", "mp3", "--audio-quality", "0", "-o", downloadLocation, url]
func buildVideoDownloadArgs*(url: string): seq[string] =
{.noSideEffect.}:
let downloadLocation = &"'{expandTilde(videoDownloadDirectory)}/%(title)s.%(ext)s'"
- return @["-f", "best", "-o", downloadLocation, url]
+ @["-f", "best", "-o", downloadLocation, url]
proc download*(args: openArray[string], title: string) =
styledEcho "\n", fgGreen, "Downloading ", styleBright, fgMagenta, title
discard execShellCmd(&"youtube-dl {args.join(\" \")}")
-func urlLongen(url: string): string =
- url.replace("youtu.be/", "www.youtube.com/watch?v=")
+func urlLongen(url: string): string = url.replace("youtu.be/", "www.youtube.com/watch?v=")
-func stripZshEscaping(url: string): string =
- url.replace("\\", "")
+func stripZshEscaping(url: string): string = url.replace("\\", "")
-func sanitizeURL*(url: string): string =
- urlLongen(stripZshEscaping(url))
+func sanitizeURL*(url: string): string = urlLongen(stripZshEscaping(url))
proc directPlay*(url: string, player: string, options: Table[string, bool]) =
let url =
play(player, options, searchResult.url, searchResult.title)
proc present*(searchResults: SearchResults, options: Table[string, bool], selectionRange: SelectionRange, player: string) =
- #[ Continuously present options till the user quits the application
- selectionRange: Currently available range to choose from depending on pagination
- ]#
+ ##[ Continuously present options till the user quits the application
+
+ selectionRange: Currently available range to choose from depending on pagination
+ ]##
let userInput = offerSelection(searchResults, options, selectionRange)