- {charactor.name}
+ {character.name}
- {charactor.cv && (
+ {character.cv && (
)}
diff --git a/server/api/resource.go b/server/api/resource.go
index d2e5973..a6d1450 100644
--- a/server/api/resource.go
+++ b/server/api/resource.go
@@ -282,16 +282,16 @@ func handleGetPinnedResources(c fiber.Ctx) error {
})
}
-func handleGetCharactorsFromVndb(c fiber.Ctx) error {
+func handleGetCharactersFromVndb(c fiber.Ctx) error {
vnID := c.Query("vnid")
if vnID == "" {
return model.NewRequestError("VNDB ID is required")
}
- characters, err := service.GetCharactorsFromVndb(vnID)
+ characters, err := service.GetCharactersFromVndb(vnID)
if err != nil {
return err
}
- return c.Status(fiber.StatusOK).JSON(model.Response[[]service.CharactorParams]{
+ return c.Status(fiber.StatusOK).JSON(model.Response[[]service.CharacterParams]{
Success: true,
Data: characters,
Message: "Characters retrieved successfully",
@@ -306,7 +306,7 @@ func AddResourceRoutes(api fiber.Router) {
resource.Get("/", handleListResources)
resource.Get("/random", handleGetRandomResource)
resource.Get("/pinned", handleGetPinnedResources)
- resource.Get("/vndb/characters", handleGetCharactorsFromVndb)
+ resource.Get("/vndb/characters", handleGetCharactersFromVndb)
resource.Get("/:id", handleGetResource)
resource.Delete("/:id", handleDeleteResource)
resource.Get("/tag/:tag", handleListResourcesWithTag)
diff --git a/server/dao/db.go b/server/dao/db.go
index a16177e..88d9835 100644
--- a/server/dao/db.go
+++ b/server/dao/db.go
@@ -60,7 +60,7 @@ func init() {
&model.Activity{},
&model.Collection{},
&model.CollectionResource{},
- &model.Charactor{},
+ &model.Character{},
)
}
diff --git a/server/dao/image.go b/server/dao/image.go
index 3cf4bc7..f51b6fc 100644
--- a/server/dao/image.go
+++ b/server/dao/image.go
@@ -47,7 +47,7 @@ func GetUnusedImages() ([]model.Image, error) {
Where("NOT EXISTS (SELECT 1 FROM resource_images WHERE image_id = images.id)").
Where("NOT EXISTS (SELECT 1 FROM comment_images WHERE image_id = images.id)").
Where("NOT EXISTS (SELECT 1 FROM collection_images WHERE image_id = images.id)").
- Where("NOT EXISTS (SELECT 1 FROM charactors WHERE image_id = images.id)").
+ Where("NOT EXISTS (SELECT 1 FROM characters WHERE image_id = images.id)").
Where("created_at < ?", oneDayAgo).
Find(&images).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
diff --git a/server/dao/resource.go b/server/dao/resource.go
index dba944f..31cf933 100644
--- a/server/dao/resource.go
+++ b/server/dao/resource.go
@@ -16,13 +16,13 @@ import (
func CreateResource(r model.Resource) (model.Resource, error) {
err := db.Transaction(func(tx *gorm.DB) error {
r.ModifiedTime = time.Now()
- charactors := r.Charactors
- r.Charactors = nil
+ characters := r.Characters
+ r.Characters = nil
err := tx.Create(&r).Error
if err != nil {
return err
}
- for _, c := range charactors {
+ for _, c := range characters {
c.ResourceID = r.ID
if err := tx.Create(&c).Error; err != nil {
return err
@@ -50,7 +50,7 @@ func GetResourceByID(id uint) (model.Resource, error) {
Preload("Files").
Preload("Files.User").
Preload("Files.Storage").
- Preload("Charactors").
+ Preload("Characters").
First(&r, id).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return model.Resource{}, model.NewNotFoundError("Resource not found")
@@ -111,14 +111,14 @@ func UpdateResource(r model.Resource) error {
return db.Transaction(func(tx *gorm.DB) error {
images := r.Images
tags := r.Tags
- charactors := r.Charactors
- r.Charactors = nil
+ characters := r.Characters
+ r.Characters = nil
r.Images = nil
r.Tags = nil
r.Files = nil
r.ModifiedTime = time.Now()
- oldCharactors := []model.Charactor{}
- if err := db.Model(&model.Charactor{}).Where("resource_id = ?", r.ID).Find(&oldCharactors).Error; err != nil {
+ oldCharacters := []model.Character{}
+ if err := db.Model(&model.Character{}).Where("resource_id = ?", r.ID).Find(&oldCharacters).Error; err != nil {
return err
}
if err := db.Save(&r).Error; err != nil {
@@ -130,9 +130,9 @@ func UpdateResource(r model.Resource) error {
if err := db.Model(&r).Association("Tags").Replace(tags); err != nil {
return err
}
- for _, c := range oldCharactors {
+ for _, c := range oldCharacters {
shouldDelete := true
- for _, nc := range charactors {
+ for _, nc := range characters {
if c.ID == nc.ID {
shouldDelete = false
break
@@ -144,9 +144,9 @@ func UpdateResource(r model.Resource) error {
}
}
}
- for _, c := range charactors {
+ for _, c := range characters {
shouldAdd := true
- for _, oc := range oldCharactors {
+ for _, oc := range oldCharacters {
if c.Equal(&oc) {
shouldAdd = false
break
diff --git a/server/model/charactor.go b/server/model/character.go
similarity index 84%
rename from server/model/charactor.go
rename to server/model/character.go
index 0a078e8..d99635e 100644
--- a/server/model/charactor.go
+++ b/server/model/character.go
@@ -1,6 +1,6 @@
package model
-type Charactor struct {
+type Character struct {
ID uint `gorm:"primaryKey;autoIncrement"`
Name string `gorm:"type:varchar(100);not null"`
Alias []string `gorm:"serializer:json"`
@@ -11,7 +11,7 @@ type Charactor struct {
Image *Image `gorm:"foreignKey:ImageID;constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`
}
-type CharactorView struct {
+type CharacterView struct {
Id uint `json:"id"`
Name string `json:"name"`
Alias []string `json:"alias"`
@@ -20,8 +20,8 @@ type CharactorView struct {
Image uint `json:"image"`
}
-func (c *Charactor) ToView() *CharactorView {
- return &CharactorView{
+func (c *Character) ToView() *CharacterView {
+ return &CharacterView{
Id: c.ID,
Name: c.Name,
Alias: c.Alias,
@@ -31,7 +31,7 @@ func (c *Charactor) ToView() *CharactorView {
}
}
-func (c *Charactor) Equal(other *Charactor) bool {
+func (c *Character) Equal(other *Character) bool {
if c.Name != other.Name || c.CV != other.CV || c.Role != other.Role || c.ImageID != other.ImageID {
return false
}
diff --git a/server/model/resource.go b/server/model/resource.go
index bb8dd0b..88bed9e 100644
--- a/server/model/resource.go
+++ b/server/model/resource.go
@@ -23,7 +23,7 @@ type Resource struct {
ModifiedTime time.Time
Gallery []uint `gorm:"serializer:json"`
GalleryNsfw []uint `gorm:"serializer:json"`
- Charactors []Charactor `gorm:"foreignKey:ResourceID"`
+ Characters []Character `gorm:"foreignKey:ResourceID"`
}
type Link struct {
@@ -57,7 +57,7 @@ type ResourceDetailView struct {
Related []ResourceView `json:"related"`
Gallery []uint `json:"gallery"`
GalleryNsfw []uint `json:"galleryNsfw"`
- Charactors []CharactorView `json:"charactors"`
+ Characters []CharacterView `json:"characters"`
}
func (r *Resource) ToView() ResourceView {
@@ -96,9 +96,9 @@ func (r *Resource) ToDetailView() ResourceDetailView {
for i, file := range r.Files {
files[i] = *file.ToView()
}
- charactors := make([]CharactorView, len(r.Charactors))
- for i, charactor := range r.Charactors {
- charactors[i] = *charactor.ToView()
+ characters := make([]CharacterView, len(r.Characters))
+ for i, character := range r.Characters {
+ characters[i] = *character.ToView()
}
return ResourceDetailView{
ID: r.ID,
@@ -116,6 +116,6 @@ func (r *Resource) ToDetailView() ResourceDetailView {
Comments: r.Comments,
Gallery: r.Gallery,
GalleryNsfw: r.GalleryNsfw,
- Charactors: charactors,
+ Characters: characters,
}
}
diff --git a/server/service/resource.go b/server/service/resource.go
index 9703c34..e6ba48d 100644
--- a/server/service/resource.go
+++ b/server/service/resource.go
@@ -35,10 +35,10 @@ type ResourceParams struct {
Images []uint `json:"images"`
Gallery []uint `json:"gallery"`
GalleryNsfw []uint `json:"gallery_nsfw"`
- Charactors []CharactorParams `json:"characters"`
+ Characters []CharacterParams `json:"characters"`
}
-type CharactorParams struct {
+type CharacterParams struct {
Name string `json:"name" binding:"required"`
Alias []string `json:"alias"`
CV string `json:"cv"`
@@ -83,13 +83,13 @@ func CreateResource(uid uint, params *ResourceParams) (uint, error) {
nsfw = append(nsfw, id)
}
}
- charactors := make([]model.Charactor, len(params.Charactors))
- for i, c := range params.Charactors {
+ characters := make([]model.Character, len(params.Characters))
+ for i, c := range params.Characters {
role := c.Role
if role == "" {
role = "primary"
}
- charactors[i] = model.Charactor{
+ characters[i] = model.Character{
Name: c.Name,
Alias: c.Alias,
CV: c.CV,
@@ -107,7 +107,7 @@ func CreateResource(uid uint, params *ResourceParams) (uint, error) {
UserID: uid,
Gallery: gallery,
GalleryNsfw: nsfw,
- Charactors: charactors,
+ Characters: characters,
}
if r, err = dao.CreateResource(r); err != nil {
return 0, err
@@ -506,13 +506,13 @@ func UpdateResource(uid, rid uint, params *ResourceParams) error {
nsfw = append(nsfw, id)
}
}
- charactors := make([]model.Charactor, len(params.Charactors))
- for i, c := range params.Charactors {
+ characters := make([]model.Character, len(params.Characters))
+ for i, c := range params.Characters {
role := c.Role
if role == "" {
role = "primary"
}
- charactors[i] = model.Charactor{
+ characters[i] = model.Character{
Name: c.Name,
Alias: c.Alias,
CV: c.CV,
@@ -527,7 +527,7 @@ func UpdateResource(uid, rid uint, params *ResourceParams) error {
r.Links = params.Links
r.Gallery = gallery
r.GalleryNsfw = nsfw
- r.Charactors = charactors
+ r.Characters = characters
images := make([]model.Image, len(params.Images))
for i, id := range params.Images {
@@ -607,7 +607,7 @@ func GetPinnedResources() ([]model.ResourceView, error) {
return views, nil
}
-func GetCharactorsFromVndb(vnID string) ([]CharactorParams, error) {
+func GetCharactersFromVndb(vnID string) ([]CharacterParams, error) {
client := http.Client{}
jsonStr := fmt.Sprintf(`
{
@@ -658,11 +658,11 @@ func GetCharactorsFromVndb(vnID string) ([]CharactorParams, error) {
}
if len(vndbResp.Results) == 0 {
- return []CharactorParams{}, nil
+ return []CharacterParams{}, nil
}
result := vndbResp.Results[0]
- var charactors []CharactorParams
+ var characters []CharacterParams
processedCharacters := make(map[string]bool) // 避免重复角色
// 遍历声优信息
@@ -700,7 +700,7 @@ func GetCharactorsFromVndb(vnID string) ([]CharactorParams, error) {
cvName = va.Staff.Name
}
- charactor := CharactorParams{
+ character := CharacterParams{
Name: characterName,
Alias: []string{},
CV: cvName,
@@ -715,14 +715,14 @@ func GetCharactorsFromVndb(vnID string) ([]CharactorParams, error) {
log.Error("Failed to download character image:", err)
// 继续处理,即使图片下载失败
} else {
- charactor.Image = imageID
+ character.Image = imageID
}
}
- charactors = append(charactors, charactor)
+ characters = append(characters, character)
}
- return charactors, nil
+ return characters, nil
}
// downloadAndCreateImage 下载图片并使用 CreateImage 保存