Parse {quick,book}marks and open it in Qutebrowser

This commit is contained in:
gardouille 2020-12-02 14:38:03 +01:00
parent 3e3c377035
commit 4885bd4ec9
Signed by: gardouille
GPG Key ID: E759BAA22501AF32
1 changed files with 67 additions and 1 deletions

68
qb
View File

@ -42,6 +42,9 @@ define_vars() { # {{{
## List of process pattern to monitor
qutebrowser_proc_pattern="(qutebrowser)"
## Store selected content to a temp file
choice_temp_file="$(mktemp -t ${PROGNAME}-XXXXXX.tmp)"
}
# }}}
debug_message() { # {{{
@ -100,6 +103,66 @@ Start qutebrowser from ${RED}Git repository${COLOR_DEBUG}."
~/repos/qutebrowser/qutebrowser.py --backend webengine
fi
}
# }}}
goto_existing_qutebrowser() { # {{{
debug_message "goto_existing_qutebrowser \
Try to open content in existing instance."
search_qb_bookmark \
&& open_in_qutebrowser
}
# }}}
search_qb_bookmark() { # {{{
debug_message "search_qb_bookmark \
Search in Qutebrowser's bookmarks."
st -g 90x30+0+540 -n QuteBrowser -t QuteBrowser -e sh -c "cat ~/.config/qutebrowser/quickmarks ~/.config/qutebrowser/bookmarks/urls | fzf +m > ${choice_temp_file}"
if [ -s "${choice_temp_file}" ]; then
debug_message "search_qb_bookmark \
Store results in ${choice_temp_file}."
local_search_qb_bookmark_return="0"
else
debug_message "search_qb_bookmark \
Search aborded or can't find matching bookmark."
local_search_qb_bookmark_return="1"
fi
return "${local_search_qb_bookmark_return}"
}
# }}}
open_in_qutebrowser() { # {{{
local_content=$(cat "${choice_temp_file}")
debug_message "open_in_qutebrowser \
Try to manage ${RED}$(cat "${choice_temp_file}")${COLOR_DEBUG}."
case "${local_content}" in
http* ) ## Classic bookmark
local_url=$(printf "%s" "${local_content}" | sed -e "s;\(http.*\) .*;\1;")
debug_message "open_in_qutebrowser \
Try to open classic bookmark URL ${RED}${local_url}${COLOR_DEBUG}."
;;
*http* ) ## Quickmark
local_url=$(printf "%s" "${local_content}" | sed -e "s;.*\(http.*\);\1;")
debug_message "open_in_qutebrowser \
Try to open quickbookmark URL ${RED}${local_url}${COLOR_DEBUG}."
;;
* )
debug_message "open_in_qutebrowser \
Not yet managed."
;;
esac
~/src/qutebrowser-venv/bin/python3 -m qutebrowser "${local_url}"
}
# }}}
@ -113,7 +176,10 @@ main() { # {{{
### Then exit with success
is_proc_running "${qutebrowser_proc_pattern}" \
|| launch_qutebrowser \
&& exit 0
|| exit 0
## Manage existing instance
goto_existing_qutebrowser
}
# }}}