mirror of
https://github.com/stashapp/stash.git
synced 2025-12-06 08:26:00 +01:00
* Move main to cmd * Move api to internal * Move logger and manager to internal * Move shell hiding code to separate package * Decouple job from desktop and utils * Decouple session from config * Move static into internal * Decouple config from dlna * Move desktop to internal * Move dlna to internal * Decouple remaining packages from config * Move config into internal * Move jsonschema and paths to models * Make ffmpeg functions private * Move file utility methods into fsutil package * Move symwalk into fsutil * Move single-use util functions into client package * Move slice functions to separate packages * Add env var to suppress windowsgui arg * Move hash functions into separate package * Move identify to internal * Move autotag to internal * Touch UI when generating backend
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package identify
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/stashapp/stash/pkg/hash/md5"
|
|
"github.com/stashapp/stash/pkg/models"
|
|
)
|
|
|
|
func createMissingStudio(endpoint string, repo models.Repository, studio *models.ScrapedStudio) (*int64, error) {
|
|
created, err := repo.Studio().Create(scrapedToStudioInput(studio))
|
|
if err != nil {
|
|
return nil, fmt.Errorf("error creating studio: %w", err)
|
|
}
|
|
|
|
if endpoint != "" && studio.RemoteSiteID != nil {
|
|
if err := repo.Studio().UpdateStashIDs(created.ID, []models.StashID{
|
|
{
|
|
Endpoint: endpoint,
|
|
StashID: *studio.RemoteSiteID,
|
|
},
|
|
}); err != nil {
|
|
return nil, fmt.Errorf("error setting studio stash id: %w", err)
|
|
}
|
|
}
|
|
|
|
createdID := int64(created.ID)
|
|
return &createdID, nil
|
|
}
|
|
|
|
func scrapedToStudioInput(studio *models.ScrapedStudio) models.Studio {
|
|
currentTime := time.Now()
|
|
ret := models.Studio{
|
|
Name: sql.NullString{String: studio.Name, Valid: true},
|
|
Checksum: md5.FromString(studio.Name),
|
|
CreatedAt: models.SQLiteTimestamp{Timestamp: currentTime},
|
|
UpdatedAt: models.SQLiteTimestamp{Timestamp: currentTime},
|
|
}
|
|
|
|
if studio.URL != nil {
|
|
ret.URL = sql.NullString{String: *studio.URL, Valid: true}
|
|
}
|
|
|
|
return ret
|
|
}
|