You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
Copyright © 2023 NAME HERE <EMAIL ADDRESS>
*/
package cmd
import (
"fmt"
"moredoc/service"
"strings"
"github.com/spf13/cobra"
)
var (
ext string // 指定的文件后缀png、jpg、webp
documentId int64 // 指定的文档ID, 0表示全部大于0表示指定文档
)
// reconvertCmd represents the reconvert command
var reconvertCmd = &cobra.Command{
Use: "reconvert",
Short: "文档重转",
Long: `将已转换成功的文档重新转为png、jpg或者webp格式以便于提高预览速度。
【注意】该指令只对已转换成功的文档有效且只能转为png、jpg或者webp格式中的一种。
`,
Run: func(cmd *cobra.Command, args []string) {
// ext必须是png、jpg、webp中的一种
ext = strings.ToLower(ext)
if ext != "png" && ext != "jpg" && ext != "webp" {
ext = "webp"
}
// 必须指定documentId
if documentId < 0 {
fmt.Println("\n请用--id指定的文档ID, 0表示全部大于0表示指定文档。如需重转全部文档建议先指定一个文档进行测试查验效果是否符合需求。")
fmt.Println("\n按回车键退出...")
fmt.Scanln()
return
}
// 提示用户输入Y确认否则退出
fmt.Println("\n请确认是否重转文档")
if documentId == 0 {
fmt.Print("转换文档:全部文档")
} else {
fmt.Print("转换文档ID", documentId)
}
fmt.Println(";文档预览格式:", ext)
fmt.Println("按 Y 确认,按其他键取消和退出...")
var confirm string
fmt.Scanln(&confirm)
if confirm != "Y" && confirm != "y" {
fmt.Println("\n已取消重转文档。")
return
}
service.Reconvert(cfg, logger, ext, documentId)
},
}
func init() {
rootCmd.AddCommand(reconvertCmd)
reconvertCmd.Flags().StringVarP(&ext, "ext", "e", "webp", "指定的文档预览格式png、jpg、webp")
reconvertCmd.Flags().Int64VarP(&documentId, "id", "d", -1, "指定的文档ID, 0表示全部大于0表示指定文档。如需重转全部文档建议先指定一个文档进行测试查验效果是否符合需求。")
}