var searchQuery = ""
var musicOnly = false
+var feelingLucky = false
for kind, key, value in getopt():
case kind
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(" "))