✨ Support delete a video
This commit is contained in:
1 parent
b8fdd8e0d6
commit
f413f632a1
2 files changed
+38
No files matched your search
@@ -0,0 +1,23 @@
|
||||
package video
|
||||
|
||||
import (
|
||||
"github.com/eat-pray-ai/yutu/pkg/yutuber/video"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var deleteCmd = &cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "delete a video on Youtube",
|
||||
Long: "delete a video on Youtube",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
v := video.NewVideo(video.WithId(id))
|
||||
v.Delete()
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
videoCmd.AddCommand(deleteCmd)
|
||||
|
||||
deleteCmd.Flags().StringVarP(&id, "id", "i", "", "ID of the video to delete")
|
||||
deleteCmd.MarkFlagRequired("id")
|
||||
}
|
||||
@@ -21,6 +21,7 @@ var (
|
||||
errSetThumbnail = errors.New("failed to set thumbnail")
|
||||
errRating = errors.New("failed to rate video")
|
||||
errGetRating = errors.New("failed to get rating")
|
||||
errDeleteVideo = errors.New("failed to delete video")
|
||||
)
|
||||
|
||||
type video struct {
|
||||
@@ -62,6 +63,7 @@ type Video interface {
|
||||
Update()
|
||||
Rate()
|
||||
GetRating()
|
||||
Delete()
|
||||
get([]string) []*youtube.Video
|
||||
setThumbnail(string, *youtube.Service)
|
||||
}
|
||||
@@ -288,6 +290,19 @@ func (v *video) GetRating() {
|
||||
utils.PrintYAML(res)
|
||||
}
|
||||
|
||||
func (v *video) Delete() {
|
||||
call := service.Videos.Delete(v.id)
|
||||
if v.onBehalfOfContentOwner != "" {
|
||||
call = call.OnBehalfOfContentOwner(v.onBehalfOfContentOwner)
|
||||
}
|
||||
|
||||
err := call.Do()
|
||||
if err != nil {
|
||||
log.Fatalln(errors.Join(errDeleteVideo, err))
|
||||
}
|
||||
fmt.Printf("Video %s deleted", v.id)
|
||||
}
|
||||
|
||||
func (v *video) setThumbnail(thumbnail string, service *youtube.Service) {
|
||||
file, err := os.Open(thumbnail)
|
||||
if err != nil {
|
||||
|
||||
Reference in new issue
Block a user