1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
| | From a5ed861c4d1ee0902650eb6aa68c5ffa17e7fa48 Mon Sep 17 00:00:00 2001
From: LibreMiami <packaging-guix@libremiami.org>
Date: Sat, 26 Jun 2021 20:23:11 -0400
Subject: [PATCH 1/2] Modify the strings of referenced programs.
Prefix the strings of referenced programs with the string "guix-", so that they
can be easily substituted with absolute paths using a custom-phase.
---
ytfzf | 110 +++++++++++++++++++++++++++++-----------------------------
1 file changed, 55 insertions(+), 55 deletions(-)
diff --git a/ytfzf b/ytfzf
index f4d2e0d..28e320b 100755
--- a/ytfzf
+++ b/ytfzf
@@ -49,19 +49,19 @@ cache_dir=${YTFZF_CACHE-${cache_dir-$HOME/.cache/ytfzf}}
#video type preference (mp4/1080p, mp4/720p, etc..)
video_pref=${YTFZF_PREF-${video_pref-}}
#the menu to use instead of fzf when -D is specified
-external_menu=${YTFZF_EXTMENU-${external_menu-dmenu -i -l 30 -p Search:}}
+external_menu=${YTFZF_EXTMENU-${external_menu-guix-dmenu -i -l 30 -p Search:}}
#number of columns (characters on a line) the external menu can have
#necessary for formatting text for external menus
external_menu_len=${YTFZF_EXTMENU_LEN-${external_menu_len-220}}
#player settings (players need to support streaming with youtube-dl)
#player to use for watching the video
-video_player=${YTFZF_PLAYER-${video_player-mpv}}
+video_player=${YTFZF_PLAYER-${video_player-guix-mpv}}
#if YTFZF_PREF is specified, use this player instead
-video_player_format=${YTFZF_PLAYER_FORMAT-${video_player_format-mpv --ytdl-format=}}
+video_player_format=${YTFZF_PLAYER_FORMAT-${video_player_format-guix-mpv --ytdl-format=}}
#player to use for audio only
-audio_player=${YTFZF_AUDIO_PLAYER-${audio_player-mpv --no-video}}
+audio_player=${YTFZF_AUDIO_PLAYER-${audio_player-guix-mpv --no-video}}
#the command to use for displaying thumbnails
-thumb_disp_method=${YTFZF_THUMB_DISP_METHOD-${thumb_disp_method-ueberzug}}
+thumb_disp_method=${YTFZF_THUMB_DISP_METHOD-${thumb_disp_method-guix-ueberzug}}
#Storing the argument and location for autogenerated subtitles
[ -z "$YTFZF_SUBT_NAME" ] && YTFZF_SUBT_NAME=""
#Stores the language for the auto genereated subtitles
@@ -177,12 +177,12 @@ dep_ck () {
done
unset Dep
}
-dep_ck "jq" "youtube-dl" "curl"
+dep_ck "guix-jq" "guix-youtube-dl" "guix-curl"
#only check for mpv if $YTFZF_PLAYER is set to it
#don't check $YTFZF_PLAYER as it could be multiple commands
-[ "$video_player" = "mpv" ] && dep_ck "mpv"
+[ "$video_player" = "guix-mpv" ] && dep_ck "guix-mpv"
############################
# Help Texts #
@@ -326,8 +326,8 @@ print_info () {
}
print_error () {
- [ $ext_menu_notifs -eq 1 ] && notify-send "error" "$*" || printf "\033[31m$*\033[0m" >&2
- [ $ext_menu_notifs -eq 1 ] && notify-send "Check for new versions and report at: https://github.com/pystardust/ytfzf\n" || printf "Check for new versions and report at: https://github.com/pystardust/ytfzf\n" >&2
+ [ $ext_menu_notifs -eq 1 ] && guix-notify-send "error" "$*" || printf "\033[31m$*\033[0m" >&2
+ [ $ext_menu_notifs -eq 1 ] && guix-notify-send "Check for new versions and report at: https://github.com/pystardust/ytfzf\n" || printf "Check for new versions and report at: https://github.com/pystardust/ytfzf\n" >&2
}
############################
@@ -398,8 +398,8 @@ format_fzf () {
format_menu () {
if [ "$is_ext_menu" -eq 0 ]; then
#dep_ck fzf here because it is only necessary to use here
- dep_ck "fzf"
- menu_command='column -t -s "$tab_space" | fzf -m --bind change:top --tabstop=1 --layout=reverse --delimiter="$tab_space" --nth=1,2 --expect="$shortcuts" $FZF_DEFAULT_OPTS'
+ dep_ck "guix-fzf"
+ menu_command='column -t -s "$tab_space" | guix-fzf -m --bind change:top --tabstop=1 --layout=reverse --delimiter="$tab_space" --nth=1,2 --expect="$shortcuts" $FZF_DEFAULT_OPTS'
format_fzf
else
# Dmenu doesn't render tabs so removing it
@@ -462,7 +462,7 @@ WIDTH=$FZF_PREVIEW_COLUMNS
HEIGHT=$FZF_PREVIEW_LINES
start_ueberzug () {
[ -e $FIFO ] || { mkfifo "$FIFO" || exit 1 ; }
- ueberzug layer --parser json --silent < "$FIFO" &
+ guix-ueberzug layer --parser json --silent < "$FIFO" &
exec 3>"$FIFO"
}
stop_ueberzug () {
@@ -476,12 +476,12 @@ preview_img () {
shorturl=${args##*${tab_space}|}
shorturl="${shorturl%% *}"
- json_obj=$(printf "%s" "$videos_json" | jq '.[]|select( .videoID == "'"$shorturl"'")')
+ json_obj=$(printf "%s" "$videos_json" | guix-jq '.[]|select( .videoID == "'"$shorturl"'")')
IFS=$tab_space read -r title channel duration views date description <<-EOF
$(
- printf "%s" "$json_obj" | jq -r \
+ printf "%s" "$json_obj" | guix-jq -r \
'
[.title,.channel,.duration,.views,.date,.description]|@tsv
'
@@ -530,31 +530,31 @@ preview_img () {
} > "$FIFO" ;;
catimg)
printf "\n"
- catimg -w "$((thumb_width * 2))" "$IMAGE" ;;
+ guix-catimg -w "$((thumb_width * 2))" "$IMAGE" ;;
jp2a)
printf "\n"
- jp2a --size="${thumb_width}x$((thumb_height / 2))" --colors --color-depth=24 "$IMAGE" ;;
+ guix-jp2a --size="${thumb_width}x$((thumb_height / 2))" --colors --color-depth=24 "$IMAGE" ;;
jp2a-8)
printf "\n"
- jp2a --size="${thumb_width}x$((thumb_height / 2))" --colors --color-depth=8 "$IMAGE" ;;
+ guix-jp2a --size="${thumb_width}x$((thumb_height / 2))" --colors --color-depth=8 "$IMAGE" ;;
jp2a-4)
printf "\n"
- jp2a --size="${thumb_width}x$((thumb_height / 2))" --colors --color-depth=4 "$IMAGE" ;;
+ guix-jp2a --size="${thumb_width}x$((thumb_height / 2))" --colors --color-depth=4 "$IMAGE" ;;
jp2a-gray|jp2a-grey)
printf "\n"
- jp2a --size="${thumb_width}x$((thumb_height / 2))" "$IMAGE" ;;
+ guix-jp2a --size="${thumb_width}x$((thumb_height / 2))" "$IMAGE" ;;
chafa)
printf "\n"
- chafa --size="${thumb_width}x${thumb_height}" "$IMAGE" ;;
+ guix-chafa --size="${thumb_width}x${thumb_height}" "$IMAGE" ;;
chafa-gray|chafa-grey)
printf "\n"
- chafa --size="${thumb_width}x${thumb_height}" --colors=2 "$IMAGE" ;;
+ guix-chafa --size="${thumb_width}x${thumb_height}" --colors=2 "$IMAGE" ;;
chafa-4)
printf "\n"
- chafa --size="${thumb_width}x${thumb_height}" --colors=16 "$IMAGE" ;;
+ guix-chafa --size="${thumb_width}x${thumb_height}" --colors=16 "$IMAGE" ;;
chafa-8)
printf "\n"
- chafa --size="${thumb_width}x${thumb_height}" --colors=256 "$IMAGE" ;;
+ guix-chafa --size="${thumb_width}x${thumb_height}" --colors=256 "$IMAGE" ;;
custom)
if ! function_exists "handle_display_img"; then
printf "\033[031mERROR[#07]: \033[0m\033[1mhandle_display_img\033[0m is not defined" >&2
@@ -585,17 +585,17 @@ download_thumbnails () {
if [ "$thumbnail_quality" -eq 1 ]; then
image_download () {
# higher quality images
- curl -s "$Url" -G --data-urlencode "sqp=" > "$thumb_dir/$Name.png"
+ guix-curl -s "$Url" -G --data-urlencode "sqp=" > "$thumb_dir/$Name.png"
}
else
image_download () {
- curl -s "$Url" > "$thumb_dir/$Name.png"
+ guix-curl -s "$Url" > "$thumb_dir/$Name.png"
}
fi
print_info "Downloading Thumbnails...\n"
thumb_urls=$(printf "%s" "$*" |\
- jq -r '.[]|[.thumbs,.videoID]|@tsv' )
+ guix-jq -r '.[]|[.thumbs,.videoID]|@tsv' )
while IFS=$tab_space read -r Url Name; do
sleep 0.001
@@ -668,7 +668,7 @@ get_yt_html () {
link=$1
query=$2
printf "%s" "$(
- curl "$link" -s \
+ guix-curl "$link" -s \
-G --data-urlencode "search_query=$query" \
-G --data-urlencode "sp=$sp" \
-H 'Authority: www.youtube.com' \
@@ -684,7 +684,7 @@ get_video_data () {
# outputs tab and pipe separated fields: title, channel, view count, video length, video upload date, and the video id/url
# from the videos_json
printf "%s" "$*" |\
- jq -r '.[]| "\(.title)'"$tab_space"'|\(.channel)'"$tab_space"'|\(.views)'"$tab_space"'|\(.duration)'"$tab_space"'|\(.date)'"$tab_space"'|\(.videoID)"'
+ guix-jq -r '.[]| "\(.title)'"$tab_space"'|\(.channel)'"$tab_space"'|\(.views)'"$tab_space"'|\(.duration)'"$tab_space"'|\(.date)'"$tab_space"'|\(.videoID)"'
}
scrape_channel () {
@@ -723,7 +723,7 @@ scrape_channel () {
#gets a list of videos
videos_json=$(printf "%s" "$yt_json" |\
- jq '[ .contents | ..|.gridVideoRenderer? |
+ guix-jq '[ .contents | ..|.gridVideoRenderer? |
select(. !=null) |
{
title: .title.runs[0].text,
@@ -736,7 +736,7 @@ scrape_channel () {
}
]')
- videos_json=$(printf "%s" "$videos_json" | jq '.[0:'$sub_link_count']')
+ videos_json=$(printf "%s" "$videos_json" | guix-jq '.[0:'$sub_link_count']')
printf "%s\n" "$videos_json" >> "$tmp_video_json_file"
#checks if it's empty in case it was defined in a config function eg: on_get_search
[ -z "$videos_data" ] && videos_data=$(get_video_data "$videos_json")
@@ -768,11 +768,11 @@ get_trending_url_data () {
scrape_pt () {
#gets a list of videos
pt_json=$(
- curl \
+ guix-curl \
-s "https://sepiasearch.org/api/v1/search/videos" \
-G --data-urlencode "search=$*")
videos_json=$(printf "%s" "$pt_json" |\
- jq '[ .data | .[] |
+ guix-jq '[ .data | .[] |
{
title: .name,
channel: .channel.displayName,
@@ -829,7 +829,7 @@ scrape_yt () {
fi
#gets a list of videos
- videos_json=$(printf "%s" "$yt_json" | jq '[ .contents|
+ videos_json=$(printf "%s" "$yt_json" | guix-jq '[ .contents|
..|.videoRenderer? |
select(. !=null) |
{
@@ -844,7 +844,7 @@ scrape_yt () {
}
]')
- playlist_json=$(printf "%s" "$yt_json" | jq '[ .contents|
+ playlist_json=$(printf "%s" "$yt_json" | guix-jq '[ .contents|
..|.playlistRenderer? |
select(. !=null) |
{
@@ -919,16 +919,16 @@ user_selection () {
#show thumbnail menu
elif [ "$show_thumbnails" -eq 1 ] ; then
- dep_ck "ueberzug" "fzf"
+ dep_ck "guix-ueberzug" "guix-fzf"
export YTFZF_THUMB_DISP_METHOD="$thumb_disp_method"
- [ "$thumb_disp_method" = "ueberzug" ] && start_ueberzug
+ [ "$thumb_disp_method" = "guix-ueberzug" ] && start_ueberzug
#thumbnails only work in fzf, use fzf
- menu_command="fzf -m --tabstop=1 --bind change:top --delimiter=\"$tab_space\" \
+ menu_command="guix-fzf -m --tabstop=1 --bind change:top --delimiter=\"$tab_space\" \
--nth=1,2 --expect='$shortcuts' $FZF_DEFAULT_OPTS \
--layout=reverse --preview \"sh $0 -U {}\" \
--preview-window \"$PREVIEW_SIDE:50%:noborder:wrap\""
selected_data=$( title_len=200 video_menu "$videos_data" )
- [ "$thumb_disp_method" = "ueberzug" ] && stop_ueberzug
+ [ "$thumb_disp_method" = "guix-ueberzug" ] && stop_ueberzug
# Deletes thumbnails if no video is selected
[ -z "$selected_data" ] && clean_up
#show regular menu
@@ -988,7 +988,7 @@ format_user_selection () {
11) selected_urls=$selected_urls$new_line'https://www.youtube.com/watch?v='$surl ;;
34) selected_urls=$selected_urls$new_line'https://www.youtube.com/playlist?list='$surl ;;
36)
- selected_urls=$selected_urls$new_line"$(printf "%s" "$videos_json" | jq '.[].url' | grep -F "$surl" | tr -d '"')" ;;
+ selected_urls=$selected_urls$new_line"$(printf "%s" "$videos_json" | guix-jq '.[].url' | grep -F "$surl" | tr -d '"')" ;;
*) continue ;;
esac
refined_selected_data=$refined_selected_data$new_line$(printf '%s' "$videos_data" | grep "|$surl" )
@@ -1014,7 +1014,7 @@ print_data () {
get_video_format () {
# select format if flag given
[ $show_format -eq 0 ] && return
- formats=$(youtube-dl -F "$(printf "$selected_urls")")
+ formats=$(guix-youtube-dl -F "$(printf "$selected_urls")")
line_number=$(printf "$formats" | grep -n '.*extension resolution.*' | cut -d: -f1)
quality=$(printf "$formats \n1 2 xAudio" | awk -v lineno=$line_number 'FNR > lineno {print $3}' | sort -n | awk -F"x" '{print $2 "p"}' | uniq | sed -e "s/Audiop/Audio/" -e "/^p$/d" | eval "$menu_command" | sed "s/p//g")
[ -z "$quality" ] && exit;
@@ -1026,9 +1026,9 @@ get_video_format () {
get_sub_lang () {
if [ $auto_caption -eq 1 ]; then
#Gets the auto generated subs and stores them in a file
- sub_list=$(youtube-dl --list-subs --write-auto-sub "$selected_urls" | sed '/Available subtitles/,$d' | awk '{print $1}' | sed '1d;2d;3d')
+ sub_list=$(guix-youtube-dl --list-subs --write-auto-sub "$selected_urls" | sed '/Available subtitles/,$d' | awk '{print $1}' | sed '1d;2d;3d')
if [ -n "$sub_list" ]; then
- [ -n "$selected_sub" ] || selected_sub=$(printf "$sub_list" | eval "$menu_command") && youtube-dl --sub-lang $selected_sub --write-auto-sub --skip-download "$selected_urls" -o /tmp/ytfzf && YTFZF_SUBT_NAME="--sub-file=/tmp/ytfzf.$selected_sub.vtt" || printf "Auto generated subs not available."
+ [ -n "$selected_sub" ] || selected_sub=$(printf "$sub_list" | eval "$menu_command") && guix-youtube-dl --sub-lang $selected_sub --write-auto-sub --skip-download "$selected_urls" -o /tmp/ytfzf && YTFZF_SUBT_NAME="--sub-file=/tmp/ytfzf.$selected_sub.vtt" || printf "Auto generated subs not available."
fi
unset sub_list
fi
@@ -1064,9 +1064,9 @@ open_player () {
fi
elif [ $is_download -eq 1 ]; then
if [ -z "$video_pref" ]; then
- youtube-dl "$@" "$YTFZF_SUBT_NAME"
+ guix-youtube-dl "$@" "$YTFZF_SUBT_NAME"
else
- youtube-dl -f "$video_pref" "$@" $YTFZF_SUBT_NAME || video_pref= open_player "$@"
+ guix-youtube-dl -f "$video_pref" "$@" $YTFZF_SUBT_NAME || video_pref= open_player "$@"
fi
fi
}
@@ -1200,7 +1200,7 @@ search_history_menu () {
#when using an external menu, the search history will be done there
choice=$( printf "%s\n" "$search_history" | eval "$external_menu" )
else
- choice="$( printf "%s\n" "$search_history" | fzf --prompt="$search_history_prompt" --print-query --no-multi -d '\t' --with-nth=2.. --expect='alt-enter' --bind='tab:replace-query' )"
+ choice="$( printf "%s\n" "$search_history" | guix-fzf --prompt="$search_history_prompt" --print-query --no-multi -d '\t' --with-nth=2.. --expect='alt-enter' --bind='tab:replace-query' )"
fi
# first line is the fzf query (what the user types in fzf)
@@ -1244,7 +1244,7 @@ search_history_menu () {
#if downloading, say Downloading not currently playing
[ $is_download -eq 1 ] && title="Downloading" || title="Currently playing"
- notify-send "$title" "$message" -i "$video_thumb"
+ guix-notify-send "$title" "$message" -i "$video_thumb"
unset message video_thumb title
}
@@ -1262,7 +1262,7 @@ EOF
update_ytfzf () {
branch="$1"
updatefile="/tmp/ytfzf-update"
- curl -L "https://raw.githubusercontent.com/pystardust/ytfzf/$branch/ytfzf" -o "$updatefile"
+ guix-curl -L "https://raw.githubusercontent.com/pystardust/ytfzf/$branch/ytfzf" -o "$updatefile"
if sed -n '1p' < "$updatefile" | grep -q '#!/bin/sh'; then
chmod 755 "$updatefile"
@@ -1346,10 +1346,10 @@ create_subs () {
: > "$config_dir/subscriptions"
# check how many subscriptions there are in the file
- sublength=$( jq '. | length' < "$yt_sub_import_file" )
+ sublength=$( guix-jq '. | length' < "$yt_sub_import_file" )
for i in $(seq $((sublength - 1))); do
- channelInfo=$(jq --argjson index ${i} '[ "https://www.youtube.com/channel/" + .[$index].snippet.resourceId.channelId + "/videos", "#" + .[$index].snippet.title ]' < "$yt_sub_import_file")
+ channelInfo=$(guix-jq --argjson index ${i} '[ "https://www.youtube.com/channel/" + .[$index].snippet.resourceId.channelId + "/videos", "#" + .[$index].snippet.title ]' < "$yt_sub_import_file")
printf "%s\n" "$(printf "%s" "$channelInfo" | tr -d '[]"\n,')" >> "$subscriptions_file"
done
exit
@@ -1486,8 +1486,8 @@ parse_opt () {
exit ;;
version)
printf "\033[1mytfzf:\033[0m %s\n" "$YTFZF_VERSION"
- printf "\033[1myoutube-dl:\033[0m %s\n" "$(youtube-dl --version)"
- command -v "fzf" 1>/dev/null && printf "\033[1mfzf:\033[0m %s\n" "$(fzf --version)"
+ printf "\033[1myoutube-dl:\033[0m %s\n" "$(guix-youtube-dl --version)"
+ command -v "guix-fzf" 1>/dev/null && printf "\033[1mfzf:\033[0m %s\n" "$(guix-fzf --version)"
exit ;;
subt)
@@ -1559,19 +1559,19 @@ done
shift $((OPTIND-1))
#only apply to ext_menu since they dont have a terminal to print to
-[ $is_ext_menu -eq 1 ] && command -v notify-send 1>/dev/null 2>&1 && ext_menu_notifs=1 || ext_menu_notifs=0
+[ $is_ext_menu -eq 1 ] && command -v guix-notify-send 1>/dev/null 2>&1 && ext_menu_notifs=1 || ext_menu_notifs=0
#used for thumbnail previews in ueberzug
if [ $is_ext_menu -eq 0 ]; then
- export TTY_LINES=$(tput lines)
- export TTY_COLS=$(tput cols)
+ export TTY_LINES=$(guix-tput lines)
+ export TTY_COLS=$(guix-tput cols)
fi
#if both are true, it defaults to using fzf, and if fzf isnt installed it will throw an error
#so print this error instead and set $show_thumbnails to 0
if [ $is_ext_menu -eq 1 ] && [ $show_thumbnails -eq 1 ]; then
[ $ext_menu_notifs -eq 1 ] &&\
- notify-send "warning" "Currently thumbnails do not work in external menus" ||\
+ guix-notify-send "warning" "Currently thumbnails do not work in external menus" ||\
printf "\033[33mWARNING: Currently thumbnails do not work in external menus\033[0m\n" >&2
show_thumbnails=0
fi
--
2.32.0
|