diff --git a/qb b/qb index 33f8a56..6884f52 100755 --- a/qb +++ b/qb @@ -279,6 +279,38 @@ Try to open ${RED}${url}${COLOR_DEBUG}" sh -c "${QUTEBROWSER_BIN} ${url}" +} +# }}} +is_url_in_buffer() { # {{{ + + if grep -q -E -- "${url}" "${QUTEBROWSER_SESSION_FILE}"; then + debug_message "is_url_in_buffer − \ +A buffer is already opened with this URL." + return_is_url_in_buffer="0" + buffer_id=$(grep -E -- "${url}" "${QUTEBROWSER_SESSION_FILE}" | cut -d" " -f1) + buffer_title=$(grep -E -- "${url}" "${QUTEBROWSER_SESSION_FILE}" | sed "s;${buffer_id} \(.*\) PyQt5.QtCore.QUrl.*;\1;") + + switch_qutebrowser_buffer + else + debug_message "is_url_in_buffer − \ +No existent buffer with this URL." + return_is_url_in_buffer="1" + fi + + return "${return_is_url_in_buffer}" + +} +# }}} +goto_url() { # {{{ + + debug_message "goto_url − \ +Manage ${RED}${url}${COLOR_DEBUG} URL" + + ## Go to an existent buffer with the expected URL + ### Or open the URL in a new buffer + is_url_in_buffer \ + || open_in_qutebrowser + } # }}} switch_qutebrowser_buffer() { # {{{ @@ -309,14 +341,14 @@ Try to manage ${RED}$(cat "${choice_temp_file}")${COLOR_DEBUG}." return_get_url="0" debug_message "get_url − \ URL from classic bookmark ${RED}${url}${COLOR_DEBUG}." - open_in_qutebrowser + goto_url ;; qq*http* ) ## Quickmark url=$(printf "%s" "${local_content}" | sed -e "s;qq .*\(http.*\);\1;") return_get_url="0" debug_message "get_url − \ URL from quickmark ${RED}${url}${COLOR_DEBUG}." - open_in_qutebrowser + goto_url ;; ff* ) ## Buffer buffer_id=$(printf "%s" "${local_content}" | cut -d" " -f2)