summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlake Romero <blake@blkrom.com>2024-12-23 22:51:23 +0000
committerBlake Romero <blake@blkrom.com>2024-12-23 22:51:23 +0000
commitb407c24b76076bf9eff9be39cb04c13d2d17e091 (patch)
treefe5c968b539ec0f6ee266ded8cb10ee9c8c18b66
parent19ea0186deab445c7b0574e239343a8162c45403 (diff)
Update bookmark script for csv format
-rwxr-xr-xbookmark73
1 files changed, 42 insertions, 31 deletions
diff --git a/bookmark b/bookmark
index db8800d..144a9d9 100755
--- a/bookmark
+++ b/bookmark
@@ -1,68 +1,79 @@
#!/bin/sh
-
#
# BOOKMARK
#
-bookmarks="$HOME/documents/bookmarks"
+bookmarks="$HOME/documents/bookmarks.csv"
browser=librewolf
# Add a bookmark
-if [ "$1" = "add" ]; then
-
+add_bookmark() {
# Get URL from browser
wlrctl window focus $browser || exit 1
wtype -M ctrl l -m ctrl
wtype -M ctrl c -m ctrl
sleep 0.5
- link=$(wl-paste --primary)
+ url=$(wl-paste --primary)
# Check if bookmark exists
- if grep "$link" "$bookmarks"; then
+ if grep "$url" "$bookmarks"; then
notify-send "Bookmark already exists!"
exit 1
fi
- # Prompt for link confirmation
- addbookmark=$(printf "Yes\nNo" | bemenu -p "Add '$link' to bookmarks?" --auto-select)
+ # Prompt for url confirmation
+ addbookmark=$(printf "Yes\nNo" | bemenu -p "Add '$url' to bookmarks?" --auto-select)
# Description
if [ "$addbookmark" = "Yes" ]; then
- description=$(: | bemenu -p "Enter a description: ")
- [ -z "$description" ] && exit 1
-
- printf "# %s\n%s\n" "$description" "$link" >> "$bookmarks" \
- && notify-send "Bookmark Added" "$link"
- fi
-
- exit
+ title=$(: | bemenu -p "Enter a description: ")
+ [ -z "$title" ] && exit 1
-fi
+ tag=$(: | bemenu -p "Enter a tag: ")
+ [ -z "$title" ] && exit 1
-# Get Bookmark info
-description=$(sed 's/# //' "$bookmarks" | sed -n 'p;n' | bemenu -p 'Select a Bookmark')
-[ -z "$description" ] && exit 1
-link=$(sed -n "/^# $description$/{n;p}" "$bookmarks")
-[ -z "$link" ] && exit 1
+ printf "%s,%s,%s" "$url" "$tag" "$title" >> "$bookmarks" \
+ && notify-send "Bookmark Added" "$url"
+ fi
+}
-# Perform an action on a bookmark
-case "$(printf 'Open\nCopy\nType\nPlay' | bemenu -p 'Bookmark action')" in
+case "$(printf 'Open\nWatch\nListen\nCopy\nType\nAdd' | bemenu -p 'Bookmark action')" in
"Open")
+ title=$(cut -f3 -d, "$bookmarks" | sed -E 's/^\s+//' | bemenu -p 'Select Bookmark')
+ [ -z "$title" ] && exit 1
+ url=$(grep "$title" "$bookmarks" | cut -f1 -d, | sed -E 's/^\s//')
+ [ -z "$url" ] && exit 1
wlrctl window focus $browser
- "$browser" "$link"
+ $browser "$url"
+ ;;
+ "Watch")
+ title=$(grep "\bvideo\b\|\bmusic\b" "$bookmarks" | cut -f3 -d, | bemenu -p 'Select Bookmark')
+ url=$(grep "$title" "$bookmarks" | cut -f1 -d,)
+ [ -z "$url" ] && exit 1
+ mpv "$url"
+ ;;
+ "Listen")
+ title=$(grep "\bmusic\b" "$bookmarks" | cut -f3 -d, | sed 's/^ //g' | bemenu -p 'Select Bookmark')
+ url=$(grep "$title" "$bookmarks" | cut -f1 -d, | sed 's/^ //g')
+ [ -z "$url" ] && exit 1
+ footclient mpv --no-video "$url"
;;
"Copy")
- wl-copy -on "$link"
- notify-send "Bookmark Copied" "$description"
+ url=$(cut -f1 -d, "$bookmarks" | bemenu -p 'Select Bookmark')
+ [ -z "$url" ] && exit 1
+ wl-copy -on "$url"
+ notify-send "Copied" "$url"
;;
"Type")
- echo "$link" | wtype -
+ url=$(cut -f1 -d, "$bookmarks" | bemenu -p 'Select Bookmark')
+ [ -z "$url" ] && exit 1
+ echo "$url" | wtype -
;;
- "Play")
- mpv "$link"
+ "Add")
+ add_bookmark
;;
*)
- exit
+ exit 1
;;
esac