mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2026-01-30 09:48:11 +01:00
Merge 787ae2c4b30b6218917b1e51f249d741aa6b61d5 into 475e4abb4084008198f1d9a23de6450e02b074a9
This commit is contained in:
commit
7ad3360b61
71
.local/bin/browser_bookmarks.sh
Normal file
71
.local/bin/browser_bookmarks.sh
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
f="${XDG_DATA_HOME}/urls"
|
||||||
|
am="@@"
|
||||||
|
d() { dmenu -i -l "${1}" -p "${2}"; }
|
||||||
|
no() { notify-send "Bookmarks" "${1}"; }
|
||||||
|
eno() { no "${1}"; exit; }
|
||||||
|
pr() { printf "%s\n" "${@}"; }
|
||||||
|
ch() {
|
||||||
|
[ -f "${f}" ] || {
|
||||||
|
no "${f} does not exist. Creating it now."
|
||||||
|
pr "SearXNG=https://searx.tiekoetter.com/search?q=" > "${f}"
|
||||||
|
pr "YouTube=https://www.youtube.com/results?search_query=" >> "${f}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gs() { cut -d= -f1 "${f}" | d "${l}" "Bookmarks"; }
|
||||||
|
up() { sed -i "s|${1}.*$|${2}|" "${f}"; }
|
||||||
|
val() { pr "${1}" | grep -qE '^https?://[^\s/$.?#].[^\s]*$'; }
|
||||||
|
add() {
|
||||||
|
u="$(xclip -o)"
|
||||||
|
val "${u}" || eno "Clipboard not valid"
|
||||||
|
grep -q "=${u}$" "${f}" && eno "URL already saved"
|
||||||
|
n="$(pr "" | d "0" "Name")"
|
||||||
|
[ "${n}" ] && pr "${n}=${u}" >> "${f}" && no "'${n}' bookmarked"
|
||||||
|
}
|
||||||
|
del() {
|
||||||
|
n="$(gs)"
|
||||||
|
[ "${n}" ] || eno "Failed to delete bookmark"
|
||||||
|
sed -i "/^${n}=.*/d" "${f}"
|
||||||
|
[ -s "${f}" ] && grep -q "\S" "${f}" || rm "${f}"
|
||||||
|
no "'${n}' is deleted."
|
||||||
|
}
|
||||||
|
en() {
|
||||||
|
on="${1}"
|
||||||
|
nn="$(pr "" | d "0" "New Name")"
|
||||||
|
[ "${nn}" ] || exit
|
||||||
|
u="$(grep "^${on}=" "${f}" | cut -d= -f2)"
|
||||||
|
up "^${on}=" "${nn}=${u}"
|
||||||
|
}
|
||||||
|
eu() {
|
||||||
|
n="${1}"
|
||||||
|
nu="$(pr "" | d "0" "New URL")"
|
||||||
|
[ "${nu}" ] || exit
|
||||||
|
up "${n}=" "${n}=${nu}"
|
||||||
|
}
|
||||||
|
eb() {
|
||||||
|
n="$(gs)"
|
||||||
|
[ "${n}" ] || eno "Failed to edit bookmark"
|
||||||
|
fi="$(pr "NAME" "URL" | d "2" "Edit")"
|
||||||
|
case "${fi}" in "NAME") en "${n}" ;; "URL") eu "${n}" ;; esac
|
||||||
|
no "'${n}' is updated."
|
||||||
|
}
|
||||||
|
o() {
|
||||||
|
u="$(grep "^${s}=" "${f}" | cut -d= -f2-)"
|
||||||
|
[ "${u}" ] || eno "Bookmark not found"
|
||||||
|
case "${u}" in *"search"* | *"wiki"* | *"packages"*)
|
||||||
|
q="$(pr "" | d "0" "Search")"; u="${u}${q}" ;;
|
||||||
|
esac
|
||||||
|
"${BROWSER}" "${u}" || eno "Failed to open: ${u}"
|
||||||
|
}
|
||||||
|
ch
|
||||||
|
l="$(wc -l < "${f}")"
|
||||||
|
[ "${l}" -gt "21" ] && l="21"
|
||||||
|
s="$(gs)"
|
||||||
|
case "${s}" in
|
||||||
|
"${am}")
|
||||||
|
a="$(pr "Add" "Delete" "Edit" | d "3" "Action")"
|
||||||
|
case "${a}" in "Add") add ;; "Delete") del ;; "Edit") eb ;; esac
|
||||||
|
;;
|
||||||
|
"") exit ;;
|
||||||
|
*) o ;;
|
||||||
|
esac
|
||||||
Loading…
x
Reference in New Issue
Block a user