|
1 | 1 | #!/usr/bin/env bash
|
2 |
| -# nbrowser v0.5 |
| 2 | +# nbrowser v0.6 |
3 | 3 | # author : odnar-dev <https://github.com/odnar-dev>
|
4 | 4 | # source : https://github.com/MyOS-ArchLinux/nbrowser
|
5 | 5 | # license: GPLv3 <https://gnu.org/licenses/gpl-3.0.html>
|
@@ -49,6 +49,10 @@ _choose(){
|
49 | 49 | rofi -dmenu -i -p 'Select Item ' -theme-str 'window {width: 95%;}' -l 10 -no-click-to-exit -filter "${@:-}"
|
50 | 50 | }
|
51 | 51 |
|
| 52 | +_input(){ |
| 53 | + rofi -l 0 -width 50 -p "${@:-input}" -dmenu |
| 54 | +} |
| 55 | + |
52 | 56 | listfiles(){
|
53 | 57 | for file in ${NBROWSER_CONFIG_DIR}/$1/*; do
|
54 | 58 | [ -e "$file" ] || [ -L "$file" ] || continue
|
@@ -291,6 +295,9 @@ main(){
|
291 | 295 | freetube://*)
|
292 | 296 | open_video_with "${1:11}"
|
293 | 297 | ;;
|
| 298 | + mpv://*|vlc://*) |
| 299 | + open_video_with "${1:6}" |
| 300 | + ;; |
294 | 301 | play://*)
|
295 | 302 | open_video_with "${1:7}"
|
296 | 303 | ;;
|
@@ -329,30 +336,34 @@ main(){
|
329 | 336 | "?"*)
|
330 | 337 | local engine="${1/?}"
|
331 | 338 | shift
|
| 339 | + local searchquery="$*" |
332 | 340 | if [ -f "${NBROWSER_CONFIG_DIR}/engines/${engine}" ] ; then
|
333 | 341 | source "${NBROWSER_CONFIG_DIR}/engines/${engine}"
|
334 | 342 | has nbrowser_search || _pemx "couldn't find nbrowser_search() function in ${NBROWSER_CONFIG_DIR}/engines/${engine}"
|
335 |
| - [ -n "$1" ] && url_handler "$(nbrowser_search $*)" |
| 343 | + [ -z "$searchquery" ] && searchquery=$(_input "$engine Search") |
| 344 | + [ -n "$searchquery" ] && url_handler "$(nbrowser_search $searchquery)" |
336 | 345 | elif [ -n "${ENGINES[${engine:- }]}" ]; then
|
337 |
| - url_handler "${ENGINES[$engine]}$*" |
| 346 | + [ -z "$searchquery" ] && searchquery=$(_input "$engine Search") |
| 347 | + [ -n "$searchquery" ] && url_handler "${ENGINES[$engine]}$searchquery" |
338 | 348 | elif [ -f "$NBROWSER_CONFIG_DIR/engines.json" ]; then
|
339 |
| - local url=$(jq -r ".[]|select( .t == \"$engine\" )|.u" "$NBROWSER_CONFIG_DIR/engines.json" | sed "s/{{{s}}}/$*/g") |
| 349 | + local url=$(jq -r ".[]|select( .t == \"$engine\" )|.u" "$NBROWSER_CONFIG_DIR/engines.json") |
340 | 350 | if [ ! -z "$url" ] ; then
|
341 |
| - url_handler "$url" |
| 351 | + [ -z "$searchquery" ] && searchquery=$(_input "$engine Search") |
| 352 | + [ -n "$searchquery" ] && url_handler "$(echo $url | sed "s/{{{s}}}/$searchquery/g")" |
342 | 353 | else
|
343 | 354 | ENGINESLIST="$(listfiles engines)"
|
344 | 355 | ENGINESLIST+=" ${!ENGINES[@]}"
|
345 | 356 | ENGINESLIST+=" $(jq -r ".[]|.t" "$NBROWSER_CONFIG_DIR/engines.json")"
|
346 | 357 | engine=$(printf "%s\n" ${ENGINESLIST} | awk '!a[$0]++' | rofi -dmenu -p 'engines' -i -mesg "engine '${engine}' not found!")
|
347 | 358 | [ -z "$engine" ] && exit
|
348 |
| - [ -n "$1" ] && main "?"$engine $* |
| 359 | + main "?"$engine $searchquery |
349 | 360 | fi
|
350 | 361 | else
|
351 | 362 | ENGINESLIST="$(listfiles engines)"
|
352 | 363 | ENGINESLIST+=" ${!ENGINES[@]}"
|
353 | 364 | engine=$(printf "%s\n" ${ENGINESLIST} | awk '!a[$0]++' | rofi -dmenu -p 'engines' -i -mesg "engine '${engine}' not found!")
|
354 | 365 | [ -z "$engine" ] && exit
|
355 |
| - [ -n "$1" ] && main "?"$engine $* |
| 366 | + main "?"$engine $searchquery |
356 | 367 | fi
|
357 | 368 | ;;
|
358 | 369 |
|
|
0 commit comments