bookmark

package
v0.0.0-...-4005233 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Copyright © 2024 Francesco Andreuzzi <andreuzzi.francesco@gmail.com>

Index

Constants

This section is empty.

Variables

View Source
var AddCmd = &cobra.Command{
	Use:   "add url",
	Short: "Add a new bookmark",
	Args:  cobra.ExactArgs(1),
	RunE: func(cmd *cobra.Command, args []string) error {
		url := args[0]
		title, titleErr := getWebpageTitle(url)
		if titleErr != nil {
			return titleErr
		}

		request := entity.BookmarkCreationRequest{Url: url, Title: title}

		bookmark, dbErr := model.CreateBookmark(request)
		if dbErr != nil {
			return dbErr
		}

		fmt.Println(bookmark.String())
		return nil
	},
}
View Source
var BookmarkCmd = &cobra.Command{
	Use:   "bookmark",
	Short: "Manage bookmarks",
}
View Source
var DeleteCmd = &cobra.Command{
	Use:   "delete bookmarkId",
	Short: "Delete a bookmark",
	Args:  cobra.ExactArgs(1),
	RunE: func(cmd *cobra.Command, args []string) error {
		id, err := strconv.ParseUint(args[0], 10, 64)
		if err != nil {
			return err
		}
		return model.DeleteBookmarkById(id)
	},
}
View Source
var ListCmd = &cobra.Command{
	Use:   "list { tagLabel | tagId } ...",
	Short: "List saved bookmarks",
	ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
		keys := tagsTrie.Search(toComplete, 5)
		return keys, cobra.ShellCompDirectiveNoFileComp
	},
	RunE: func(cmd *cobra.Command, args []string) error {
		bookmarks, err := model.ListBookmarks(removeDuplicate(args))
		if err != nil {
			return err
		}

		for _, b := range bookmarks {
			fmt.Println(b.String())
		}

		return nil
	},
}
View Source
var TagCmd = &cobra.Command{
	Use:   "tag bookmarkId { tagLabel | tagId } ...",
	Short: "Tag a bookmark",
	Args:  cobra.MinimumNArgs(1),
	RunE: func(cmd *cobra.Command, args []string) error {
		bookmarkId, err := strconv.ParseUint(args[0], 10, 64)
		if err != nil {
			return err
		}

		for i := 1; i < len(args); i++ {
			var err error
			tagId, err := strconv.ParseUint(args[i], 10, 64)
			if err == nil {
				request := entity.TagAssignationRequest{TagId: tagId, BookmarkId: bookmarkId}
				_, err = model.AssignTagById(request)
			} else {
				request := entity.TagAssignationByLabelRequest{TagLabel: args[i], BookmarkId: bookmarkId}
				_, err = model.AssignTagByLabel(request)
			}

			if err != nil {
				return err
			}
		}

		return nil
	},
}
View Source
var UntagCmd = &cobra.Command{
	Use:   "untag bookmarkId { tagLabel | tagId } ...",
	Short: "Untag a bookmark",
	Args:  cobra.MinimumNArgs(1),
	RunE: func(cmd *cobra.Command, args []string) error {
		bookmarkId, err := strconv.ParseUint(args[0], 10, 64)
		if err != nil {
			return err
		}

		for i := 1; i < len(args); i++ {
			var err error
			tagId, err := strconv.ParseUint(args[i], 10, 64)
			if err != nil {
				request := entity.TagAssignationByLabelRequest{TagLabel: args[i], BookmarkId: bookmarkId}
				err = model.UnassignTagByLabel(request)
			} else {
				request := entity.TagAssignationRequest{TagId: tagId, BookmarkId: bookmarkId}
				err = model.UnassignTagById(request)
			}

			if err != nil {
				return err
			}
		}
		return nil
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL