X-Git-Url: https://njoseph.me/gitweb/nimcoon.git/blobdiff_plain/a2319a3ffe086b965e3925c811c8b7bdfef49f86..02114658a9366d1b2d5d6292c240da004f94e7dc:/clitube.nim diff --git a/clitube.nim b/clitube.nim index a964291..a9792c4 100644 --- a/clitube.nim +++ b/clitube.nim @@ -1,14 +1,16 @@ -import htmlparser -import httpClient -import parseopt -import osproc -import sequtils, sugar -import strformat -import std/[terminal] -import strtabs -import strutils -import uri -import xmltree +import + htmlparser, + httpClient, + parseopt, + osproc, + sequtils, + sugar, + strformat, + std/[terminal], + strtabs, + strutils, + uri, + xmltree import preferences @@ -42,6 +44,7 @@ let player = selectMediaPlayer() var searchQuery = "" var musicOnly = false +var feelingLucky = false for kind, key, value in getopt(): case kind @@ -50,21 +53,25 @@ for kind, key, value in getopt(): of cmdShortOption, cmdLongOption: case key of "m", "music": musicOnly = true + of "l", "lucky": feelingLucky = true of cmdEnd: discard - -if "https://www.youtube.com" in searchQuery: +if "watch?" in searchQuery or "videos/watch" in searchQuery : discard execProcess(&"{player} {searchQuery}") quit(0) - +elif searchQuery.startswith("magnet:"): + discard execProcess(&"peerflix \"{searchQuery}\" --{player}") + 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