X-Git-Url: https://njoseph.me/gitweb/nimcoon.git/blobdiff_plain/4827df7ac6cc2b6cbc55894f95509c2c6a26c095..7d08d1af09a1a9d6ee71c88442580e428f125508:/clitube.nim diff --git a/clitube.nim b/clitube.nim index 3714c13..cc35448 100644 --- a/clitube.nim +++ b/clitube.nim @@ -42,6 +42,7 @@ let player = selectMediaPlayer() var searchQuery = "" var musicOnly = false +var feelingLucky = false for kind, key, value in getopt(): case kind @@ -50,24 +51,32 @@ for kind, key, value in getopt(): of cmdShortOption, cmdLongOption: case key of "m", "music": musicOnly = true + of "l", "lucky": feelingLucky = true of cmdEnd: discard -let noVideo = if musicOnly: "--no-video" else: "" -if "https://www.youtube.com" in searchQuery: +if "?watch" in searchQuery or "videos/watch" in searchQuery : discard execProcess(&"{player} {searchQuery}") quit(0) let searchResults = extractTitlesAndUrls(getYoutubePage(searchQuery)) -presentVideoOptions(searchResults) - -stdout.styledWrite(fgYellow, "Choose video number: ") -let number = parseInt(readLine(stdin)) +let number = + if feelingLucky: + 0 + else: + presentVideoOptions(searchResults) + stdout.styledWrite(fgYellow, "Choose video number: ") + parseInt(readLine(stdin)) styledEcho "\n", fgGreen, "Playing ", styleBright, fgMagenta, searchResults[number].title +var command = @[player, searchResults[number].url] + +if musicOnly: + command.add("--no-video") + # Play the video using the preferred/available media player -discard execProcess(&"{player} {noVideo} {searchResults[number].url}") +discard execProcess(command.join(" "))