mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-10 23:36:37 +08:00
fix docker compose paths and subscription robustness
This commit is contained in:
@@ -104,7 +104,7 @@ func (s *STRMService) GenerateForAllLibraries(ctx context.Context, opts Generate
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
baseOutputDir := resolveMappedDestinationPath(strings.TrimSpace(opts.OutputDir))
|
||||
baseOutputDir := s.remapLegacySTRMOutputDir(resolveMappedDestinationPath(strings.TrimSpace(opts.OutputDir)))
|
||||
result := &GenerateSTRMResult{LibraryID: "*", OutputDir: baseOutputDir}
|
||||
for _, lib := range libraries {
|
||||
select {
|
||||
@@ -135,10 +135,10 @@ func (s *STRMService) GenerateForAllLibraries(ctx context.Context, opts Generate
|
||||
}
|
||||
|
||||
func (s *STRMService) resolveSTRMOutputDir(ctx context.Context, lib *model.Library, opts GenerateSTRMOptions) string {
|
||||
outputDir := resolveMappedDestinationPath(strings.TrimSpace(opts.OutputDir))
|
||||
outputDir := s.remapLegacySTRMOutputDir(resolveMappedDestinationPath(strings.TrimSpace(opts.OutputDir)))
|
||||
if (outputDir == "" || outputDir == ".") && s.repo.Setting != nil {
|
||||
if saved, err := s.repo.Setting.Get(ctx, "strm.output_dir"); err == nil {
|
||||
outputDir = resolveMappedDestinationPath(strings.TrimSpace(saved))
|
||||
outputDir = s.remapLegacySTRMOutputDir(resolveMappedDestinationPath(strings.TrimSpace(saved)))
|
||||
}
|
||||
}
|
||||
if outputDir == "" || outputDir == "." {
|
||||
@@ -147,6 +147,29 @@ func (s *STRMService) resolveSTRMOutputDir(ctx context.Context, lib *model.Libra
|
||||
return strmLibrarySpecificOutputDir(outputDir, lib)
|
||||
}
|
||||
|
||||
func (s *STRMService) remapLegacySTRMOutputDir(outputDir string) string {
|
||||
outputDir = filepath.Clean(strings.TrimSpace(outputDir))
|
||||
if outputDir == "" || outputDir == "." || s == nil || s.cfg == nil {
|
||||
return outputDir
|
||||
}
|
||||
dataDir := filepath.Clean(strings.TrimSpace(s.cfg.App.DataDir))
|
||||
if dataDir == "" || dataDir == "." || sameLibraryPath(dataDir, "/app/data") {
|
||||
return outputDir
|
||||
}
|
||||
legacy := "/app/data"
|
||||
normalized := strings.TrimRight(cleanPathForVolumeMapping(outputDir), "/")
|
||||
if sameLibraryPath(normalized, legacy) {
|
||||
return dataDir
|
||||
}
|
||||
if strings.HasPrefix(strings.ToLower(normalized), legacy+"/") {
|
||||
rel := strings.TrimPrefix(normalized[len(legacy):], "/")
|
||||
if rel != "" {
|
||||
return filepath.Join(dataDir, filepath.FromSlash(rel))
|
||||
}
|
||||
}
|
||||
return outputDir
|
||||
}
|
||||
|
||||
func (s *STRMService) saveSTRMGenerationSettings(ctx context.Context, outputDir string, opts GenerateSTRMOptions) {
|
||||
if opts.SkipSettingsSave {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user