From b407c24b76076bf9eff9be39cb04c13d2d17e091 Mon Sep 17 00:00:00 2001 From: Blake Romero Date: Mon, 23 Dec 2024 22:51:23 +0000 Subject: Update bookmark script for csv format --- bookmark | 73 +++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 31 deletions(-) (limited to 'bookmark') 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 -- cgit