Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
import
htmlparser,
httpClient,
import
htmlparser,
httpClient,
parseopt,
osproc,
sequtils,
parseopt,
osproc,
sequtils,
SearchResult = tuple[title: string, url: string]
CommandLineOptions = tuple[searchQuery: string, musicOnly: bool, feelingLucky: bool]
SearchResult = tuple[title: string, url: string]
CommandLineOptions = tuple[searchQuery: string, musicOnly: bool, feelingLucky: bool]
+let logger = newConsoleLogger()
+setLogFilter(lvlInfo)
+
proc selectMediaPlayer(): string =
let availablePlayers = filterIt(supportedPlayers, execProcess("which " & it).len != 0)
if len(availablePlayers) == 0:
proc selectMediaPlayer(): string =
let availablePlayers = filterIt(supportedPlayers, execProcess("which " & it).len != 0)
if len(availablePlayers) == 0:
for index, (title, url) in searchResults:
styledEcho $index, ". ", styleBright, fgMagenta, title, "\n", resetStyle, fgCyan, url, "\n"
for index, (title, url) in searchResults:
styledEcho $index, ". ", styleBright, fgMagenta, title, "\n", resetStyle, fgCyan, url, "\n"
+proc play(command: string) =
+ logger.log(lvlDebug, &"Executing: ${command}")
+ discard execProcess(command)
+ quit(0)
+
proc directPlay(searchQuery: string, player: string) =
proc directPlay(searchQuery: string, player: string) =
- styledEcho "\n", fgGreen, "Playing ", styleBright, fgMagenta, searchQuery
if "watch?" in searchQuery or "videos/watch" in searchQuery :
if "watch?" in searchQuery or "videos/watch" in searchQuery :
- discard execProcess(&"{player} {searchQuery}")
- quit(0)
+ play(&"{player} {searchQuery}")
elif searchQuery.startswith("magnet:"):
elif searchQuery.startswith("magnet:"):
- discard execProcess(&"peerflix \"{searchQuery}\" --{player}")
- quit(0)
+ play(&"peerflix \"{searchQuery}\" --{player}")
command.add("--no-video")
# Play the video using the preferred/available media player
command.add("--no-video")
# Play the video using the preferred/available media player
- discard execProcess(command.join(" "))
+ play(command.join(" "))