vid: Limit to 100 videos if stdin = tty.
This commit is contained in:
parent
b97d025ee7
commit
f0dd01f79a
|
@ -27,7 +27,7 @@ Go to next revision
|
|||
|
||||
=head1 AUTHOR
|
||||
|
||||
Copyright (C) 2017 Ole Tange,
|
||||
Copyright (C) 2017-2024 Ole Tange,
|
||||
http://ole.tange.dk and Free Software Foundation, Inc.
|
||||
|
||||
|
||||
|
@ -51,7 +51,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
=head1 DEPENDENCIES
|
||||
|
||||
B<gitnext> uses B<git>.
|
||||
B<gitnext> uses B<git> and B<field>.
|
||||
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
|
46
vid/vid
46
vid/vid
|
@ -5,7 +5,7 @@
|
|||
|
||||
=head1 NAME
|
||||
|
||||
vid - Play videos matching strings in descending order of size
|
||||
vid - Play videos matching strings
|
||||
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
@ -23,17 +23,49 @@ There can be multiple B<grep> expressions.
|
|||
The searching is cached in B<.vidlist> in a parent dir or in the
|
||||
current dir if no parents contain B<.vidlist>.
|
||||
|
||||
If stdin (standard input) is a tty: Match videos from B<.vidlist>
|
||||
ordered by decreasing size.
|
||||
|
||||
If stdin (standard input) is not a tty: Match videos from standard
|
||||
input.
|
||||
|
||||
If stdout (standard output) is a tty: Play 100 randomly chosen of the
|
||||
matching videos.
|
||||
|
||||
If stdout (standard output) is not a tty: List all matching videos.
|
||||
|
||||
Videos in the dir B<.waste> are ignored.
|
||||
|
||||
|
||||
=head1 EXAMPLE
|
||||
|
||||
Play videos matching B<Documentary> but not B<BBC>:
|
||||
Play 100 videos in random order matching B<Documentary> but not B<BBC>:
|
||||
|
||||
vid Documentary -v BBC
|
||||
|
||||
List all videos matching B<Documentary> but not B<BBC> ordered by
|
||||
decreasing size:
|
||||
|
||||
vid Documentary -v BBC | cat
|
||||
|
||||
Play all videos ending in B<.mp4>:
|
||||
|
||||
ls *.mp4 | vid
|
||||
|
||||
=head1 ENVIRONMENT VARIABLES
|
||||
|
||||
=over 9
|
||||
|
||||
=item $VIDEOPLAYER
|
||||
|
||||
Use this as video player. Default: vlc
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Copyright (C) 2018-2019 Ole Tange,
|
||||
Copyright (C) 2018-2024 Ole Tange,
|
||||
http://ole.tange.dk and Free Software Foundation, Inc.
|
||||
|
||||
|
||||
|
@ -118,6 +150,7 @@ cat_list() {
|
|||
full_path_vidlist_dir="$(dirname $(readlink -f "$vidlist") )"
|
||||
full_path_thisdir="$(readlink -f .)"
|
||||
if [ -f "$vidlist" ] ; then
|
||||
# vidlist exists: Do the update in the background
|
||||
# find background (>/dev/null to detach from tty)
|
||||
update_list "$vidlist" "$full_path_vidlist_dir" >/dev/null &
|
||||
else
|
||||
|
@ -128,7 +161,7 @@ cat_list() {
|
|||
perl -pe 's|\Q'"$full_path_vidlist_dir"'\E|.|')/"
|
||||
# cat "$vidlist" | grep matching this dir + remove dirs
|
||||
# echo "$vidlist" "$full_path_thisdir" "$full_path_vidlist_dir" = "$subdir" >&2
|
||||
cat "$vidlist" |
|
||||
grep -v '/.waste/' "$vidlist" |
|
||||
perl -ne 's|^(\./)?\Q'"$subdir"'\E|| and print'
|
||||
}
|
||||
|
||||
|
@ -147,7 +180,12 @@ stdout() {
|
|||
# STDOUT = terminal
|
||||
# start $VIDEOPLAYER
|
||||
VIDEOPLAYER=${VIDEOPLAYER:-vlc --}
|
||||
if tty -s ; then
|
||||
# STDIN is terminal => limit to 100
|
||||
shuf | parallel --halt now,done=1 --lb -n100 -Xj1 $VIDEOPLAYER
|
||||
else
|
||||
parallel --halt now,done=1 --lb -Xj1 $VIDEOPLAYER
|
||||
fi
|
||||
else
|
||||
cat
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue