|
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