feat: build in torrent client

This commit is contained in:
Simon Ding
2025-03-28 17:46:20 +08:00
parent 74e680c1ee
commit 050e6446a7
8 changed files with 85 additions and 33 deletions

View File

@@ -91,6 +91,7 @@ type Implementation string
const (
ImplementationTransmission Implementation = "transmission"
ImplementationQbittorrent Implementation = "qbittorrent"
ImplementationBuildin Implementation = "buildin"
)
func (i Implementation) String() string {
@@ -100,7 +101,7 @@ func (i Implementation) String() string {
// ImplementationValidator is a validator for the "implementation" field enum values. It is called by the builders before save.
func ImplementationValidator(i Implementation) error {
switch i {
case ImplementationTransmission, ImplementationQbittorrent:
case ImplementationTransmission, ImplementationQbittorrent, ImplementationBuildin:
return nil
default:
return fmt.Errorf("downloadclients: invalid enum value for implementation field: %q", i)

View File

@@ -26,7 +26,7 @@ var (
{Name: "id", Type: field.TypeInt, Increment: true},
{Name: "enable", Type: field.TypeBool},
{Name: "name", Type: field.TypeString},
{Name: "implementation", Type: field.TypeEnum, Enums: []string{"transmission", "qbittorrent"}},
{Name: "implementation", Type: field.TypeEnum, Enums: []string{"transmission", "qbittorrent", "buildin"}},
{Name: "url", Type: field.TypeString},
{Name: "user", Type: field.TypeString, Default: ""},
{Name: "password", Type: field.TypeString, Default: ""},

View File

@@ -17,7 +17,7 @@ func (DownloadClients) Fields() []ent.Field {
return []ent.Field{
field.Bool("enable"),
field.String("name"),
field.Enum("implementation").Values("transmission", "qbittorrent"),
field.Enum("implementation").Values("transmission", "qbittorrent", "buildin"),
field.String("url"),
field.String("user").Default(""),
field.String("password").Default(""),