Merge pull request #32 from walksanatora/feat-autoplay

autoplay feature so that media is automatically played
pull/33/head
chris west 1 year ago committed by GitHub
commit 105b737d1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -104,6 +104,8 @@ pub fn parse<T: AsRef<str>>(args: &[T]) -> Result<Config, ArgError> {
let mut set_notor = false;
let mut set_media = false;
let mut set_nomedia = false;
let mut set_autoplay = false;
let mut set_noautoplay = false;
while let Some(arg) = iter.next() {
match arg.as_ref() {
@ -192,6 +194,23 @@ pub fn parse<T: AsRef<str>>(args: &[T]) -> Result<Config, ArgError> {
set_nomedia = true;
cfg.media = None;
}
"-a" | "--autoplay" | "-autoplay" => {
if set_nomedia {
return Err(ArgError::new("can't set both --no-media and --autoplay"))
}
if set_noautoplay {
return Err(ArgError::new("can't set both --autoplay and --no-autoplay"))
}
set_autoplay = true;
cfg.autoplay = true;
}
"-A" | "--no-autoplay" | "-no-autoplay" => {
if set_autoplay {
return Err(ArgError::new("can't set both --autoplay and --no-autoplay"))
}
cfg.autoplay = false;
set_noautoplay = true;
}
"-e" | "--encoding" | "-encoding" => {
if let Some(encoding) = iter.next() {
cfg.encoding = Encoding::from_str(encoding.as_ref())

@ -44,6 +44,9 @@ wide no
# Program to use to open media files.
media mpv
# Whether to auto play media
autoplay no
# Use emoji indicators for TLS & Tor. (--emoji)
emoji no
@ -71,6 +74,8 @@ pub struct Config {
pub emoji: bool,
/// Media player to use.
pub media: Option<String>,
/// Whether to automatically play media
pub autoplay: bool,
/// Default encoding
pub encoding: Encoding,
/// UI mode. Can't be set in conf file.
@ -88,6 +93,7 @@ impl Default for Config {
wide: false,
emoji: false,
media: Some(DEFAULT_MEDIA_PLAYER.into()),
autoplay: false,
encoding: Encoding::default(),
mode: ui::Mode::default(),
wrap: 0,
@ -173,6 +179,9 @@ fn parse(text: &str) -> Result<Config> {
_ => Some(val.into()),
}
}
"autoplay" => {
cfg.autoplay = to_bool(val)?
}
"encoding" => {
cfg.encoding = Encoding::from_str(val)
.map_err(|e| error!("{} on line {}: {:?}", e, linenum, line))?;

@ -81,6 +81,9 @@ Options:
-m, --media PROGRAM Use to open media files. Default: mpv
-M, --no-media Just download media files, don't download
-a, --autoplay Skip the play media prompy
-A, --no-autoplay Do not skip the media prompt
-r, --raw Print raw Gopher response only
-p, --print Print rendered Gopher response only
-l, --local Connect to 127.0.0.1:7070

@ -206,7 +206,7 @@ impl UI {
if typ.is_media() && self.config.read().unwrap().media.is_some() {
self.dirty = true;
return if self.confirm(&format!("Open in media player? {}", url)) {
return if self.config.read().unwrap().autoplay || self.confirm(&format!("Open in media player? {}", url)) {
utils::open_media(self.config.read().unwrap().media.as_ref().unwrap(), url)
} else {
Ok(())

Loading…
Cancel
Save