qbittorrent info cache

This commit is contained in:
royalcat 2024-12-09 23:46:53 +03:00
parent 36c501347c
commit 2d9dcd87fa
3 changed files with 127 additions and 25 deletions
daemons/qbittorrent

View file

@ -274,6 +274,9 @@ func (f *File) canExpectSoon(ctx context.Context) (bool, error) {
if err != nil {
return false, err
}
if info == nil {
return false, nil
}
return info.Completed == info.Size || info.State == qbittorrent.TorrentStateCheckingUP || info.State == qbittorrent.TorrentStateDownloading || info.State == qbittorrent.TorrentStateForcedDL, nil
}
@ -295,7 +298,7 @@ func (f *File) isRangeComplete(ctx context.Context, offset int64, size int) (boo
return true, nil
}
func (f *File) waitPieceAvailable(ctx context.Context, offset int64, size int) error {
func (f *File) waitRangeAvailable(ctx context.Context, offset int64, size int) error {
complete, err := f.isRangeComplete(ctx, offset, size)
if err != nil {
return err
@ -338,7 +341,7 @@ func (f *File) Read(ctx context.Context, p []byte) (int, error) {
f.mu.Lock()
defer f.mu.Unlock()
if err := f.waitPieceAvailable(ctx, f.offset, len(p)); err != nil {
if err := f.waitRangeAvailable(ctx, f.offset, len(p)); err != nil {
return 0, err
}
@ -349,7 +352,7 @@ func (f *File) Read(ctx context.Context, p []byte) (int, error) {
// ReadAt implements vfs.File.
func (f *File) ReadAt(ctx context.Context, p []byte, off int64) (int, error) {
if err := f.waitPieceAvailable(ctx, f.offset, len(p)); err != nil {
if err := f.waitRangeAvailable(ctx, f.offset, len(p)); err != nil {
return 0, err
}