Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
b0f6919
feat: add system initialization (setup wizard) support
PIKACHUIM Sep 5, 2026
a5e5048
Squashed commit of the following:
PIKACHUIM Sep 8, 2026
9c7ad84
feat(seed): add advanced transfer seed support (OSS/torrent/CAS)
PIKACHUIM Sep 8, 2026
238dbb6
feat(seed): complete edit, recalculate and relayed transfer
PIKACHUIM Sep 8, 2026
09b150a
Merge branch 'main' into feat/advanced-transfer-seeds
PIKACHUIM Sep 8, 2026
2e6dd00
feat(seed): channel update, share validity and CAS direct access
PIKACHUIM Sep 8, 2026
2ed5548
Merge branch 'feat/advanced-transfer-seeds' of github.com:OpenListTea…
PIKACHUIM Sep 8, 2026
596e284
fix(seed): allow capabilities preflight without seed_data
PIKACHUIM Sep 8, 2026
aa42d9e
feat(seed): support removing files from a seed via update
PIKACHUIM Sep 8, 2026
8467a3a
feat(seed): enrich capabilities and per-file source selection
PIKACHUIM Sep 8, 2026
e10ebd2
feat(seed): BT always offline-downloadable and expose driver rapid ca…
PIKACHUIM Sep 8, 2026
85be421
feat(seed): asynchronous generation for large file sets
PIKACHUIM Sep 9, 2026
172ef17
fix(seed): export shared seed helpers for upload sidecar
PIKACHUIM Sep 9, 2026
ac1192a
fix(seed): generate one CAS per file for multi-file selection
PIKACHUIM Sep 9, 2026
d684e45
feat(seed): multi-file CAS and derive seed name
PIKACHUIM Sep 9, 2026
d29baa0
fix(seed): preserve per-piece MD5 list in CAS payload
PIKACHUIM Sep 9, 2026
4903bf6
feat(drivers): expose MD5/SHA1 hashes in misskey and quark_open file …
PIKACHUIM Sep 9, 2026
0642308
Merge branch 'main' into feat/advanced-transfer-seeds
PIKACHUIM Sep 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions drivers/misskey/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ func mFile2Object(file MFile) *model.ObjThumbURL {
Ctime: ctime,
IsFolder: false,
Size: file.Size,
HashInfo: utils.NewHashInfo(utils.MD5, file.MD5),
},
Thumbnail: model.Thumbnail{
Thumbnail: file.ThumbnailURL,
Expand Down
2 changes: 2 additions & 0 deletions drivers/quark_open/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package quark_open

import (
"github.com/OpenListTeam/OpenList/v4/internal/model"
"github.com/OpenListTeam/OpenList/v4/pkg/utils"
"time"
)

Expand Down Expand Up @@ -57,6 +58,7 @@ func fileToObj(f File) *model.ObjThumb {
Modified: time.UnixMilli(f.UpdatedAt),
IsFolder: f.FileType == "0",
Ctime: time.UnixMilli(f.CreatedAt),
HashInfo: utils.NewHashInfo(utils.SHA1, f.ContentHash),
},
Thumbnail: model.Thumbnail{Thumbnail: f.ThumbnailURL},
}
Expand Down
8 changes: 8 additions & 0 deletions internal/bootstrap/data/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,14 @@ func InitialSettings() []model.SettingItem {
{Key: conf.HandleHookAfterWriting, Value: "false", Type: conf.TypeBool, Group: model.GLOBAL, Flag: model.PRIVATE},
{Key: conf.HandleHookRateLimit, Value: "0", Type: conf.TypeNumber, Group: model.GLOBAL, Flag: model.PRIVATE},
{Key: conf.IgnoreSystemFiles, Value: "false", Type: conf.TypeBool, Group: model.GLOBAL, Flag: model.PRIVATE, Help: `When enabled, ignores common system files during upload (.DS_Store, desktop.ini, Thumbs.db, and files starting with ._)`},
{Key: conf.SeedSiteURL, Value: "", Type: conf.TypeString, Group: model.GLOBAL, Flag: model.PRIVATE, Help: `Public base URL embedded in generated transfer seed sources when configured`},
{Key: conf.SeedDefaultMatrix, Value: `{"md5":{"whole":true,"pieces":false},"sha1":{"whole":true,"pieces":false},"sha256":{"whole":true,"pieces":false}}`, Type: conf.TypeText, Group: model.GLOBAL, Flag: model.PRIVATE, Help: `Default right-click hash matrix for transfer seed generation`},
{Key: conf.SeedFormatPolicies, Value: `{"oss":"off","torrent":"off","cas":"off"}`, Type: conf.TypeText, Group: model.GLOBAL, Flag: model.PRIVATE},
{Key: conf.SeedDefaultFormat, Value: "oss", Type: conf.TypeSelect, Options: "oss,torrent,cas", Group: model.GLOBAL, Flag: model.PRIVATE},
{Key: conf.SeedSingleDirectPreview, Value: "false", Type: conf.TypeBool, Group: model.GLOBAL, Flag: model.PUBLIC},
{Key: conf.SeedCASDirectAccess, Value: "false", Type: conf.TypeBool, Group: model.GLOBAL, Flag: model.PUBLIC, Help: `When opening a single-file CAS seed, immediately rapid-upload it into the same folder and preview the restored file`},
{Key: conf.SeedAutoGeneratePolicy, Value: "off", Type: conf.TypeSelect, Options: "off,on", Group: model.GLOBAL, Flag: model.PRIVATE, Help: `Global upload sidecar policy; storage-specific inheritance can be layered without changing the safe default`},
{Key: conf.SeedDefaultTrackers, Value: "", Type: conf.TypeText, Group: model.GLOBAL, Flag: model.PRIVATE, Help: `Default tracker list offered when generating torrent seeds (one tracker per line)`},

// single settings
{Key: conf.Token, Value: token, Type: conf.TypeString, Group: model.SINGLE, Flag: model.PRIVATE},
Expand Down
1 change: 1 addition & 0 deletions internal/bootstrap/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,5 @@ func InitTaskManager() {
op.RegisterSettingChangingCallback(func() {
fs.ArchiveContentUploadTaskManager.SetWorkersNumActive(taskFilterNegative(setting.GetInt(conf.TaskDecompressUploadThreadsNum, conf.Conf.Tasks.DecompressUpload.Workers)))
})
fs.SeedGenerateTaskManager = tache.NewManager[*fs.SeedGenerateTask](tache.WithWorks(setting.GetInt(conf.TaskUploadThreadsNum, conf.Conf.Tasks.Upload.Workers)), tache.WithMaxRetry(conf.Conf.Tasks.Upload.MaxRetry)) //seed generation will not support persist
}
10 changes: 10 additions & 0 deletions internal/conf/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,16 @@ const (
HandleHookRateLimit = "handle_hook_rate_limit"
IgnoreSystemFiles = "ignore_system_files"

// transfer seeds
SeedSiteURL = "seed_site_url"
SeedDefaultMatrix = "seed_default_matrix"
SeedFormatPolicies = "seed_format_policies"
SeedDefaultFormat = "seed_default_format"
SeedSingleDirectPreview = "seed_single_direct_preview"
SeedCASDirectAccess = "seed_cas_direct_access"
SeedAutoGeneratePolicy = "seed_auto_generate_policy"
SeedDefaultTrackers = "seed_default_trackers"

// index
SearchIndex = "search_index"
AutoUpdateIndex = "auto_update_index"
Expand Down
Loading
Loading