mirror of
https://github.com/Kareadita/Kavita.git
synced 2025-08-11 09:13:42 -04:00
Added support for Tachiyomi volume progress tracking (#1044)
This commit is contained in:
parent
4894d05ff1
commit
302599c63a
@ -392,7 +392,17 @@ namespace API.Controllers
|
|||||||
var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername(), AppUserIncludes.Progress);
|
var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername(), AppUserIncludes.Progress);
|
||||||
user.Progresses ??= new List<AppUserProgress>();
|
user.Progresses ??= new List<AppUserProgress>();
|
||||||
|
|
||||||
await _readerService.MarkChaptersUntilAsRead(user, seriesId, chapterNumber);
|
if (chapterNumber < 1.0f)
|
||||||
|
{
|
||||||
|
// This is a hack to track volume number. We need to map it back by x100
|
||||||
|
var volumeNumber = int.Parse($"{chapterNumber * 100f}");
|
||||||
|
await _readerService.MarkVolumesUntilAsRead(user, seriesId, volumeNumber);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await _readerService.MarkChaptersUntilAsRead(user, seriesId, chapterNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
_unitOfWork.UserRepository.Update(user);
|
_unitOfWork.UserRepository.Update(user);
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ public interface IReaderService
|
|||||||
Task<int> GetPrevChapterIdAsync(int seriesId, int volumeId, int currentChapterId, int userId);
|
Task<int> GetPrevChapterIdAsync(int seriesId, int volumeId, int currentChapterId, int userId);
|
||||||
Task<ChapterDto> GetContinuePoint(int seriesId, int userId);
|
Task<ChapterDto> GetContinuePoint(int seriesId, int userId);
|
||||||
Task MarkChaptersUntilAsRead(AppUser user, int seriesId, float chapterNumber);
|
Task MarkChaptersUntilAsRead(AppUser user, int seriesId, float chapterNumber);
|
||||||
|
Task MarkVolumesUntilAsRead(AppUser user, int seriesId, int volumeNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ReaderService : IReaderService
|
public class ReaderService : IReaderService
|
||||||
@ -364,5 +365,12 @@ public class ReaderService : IReaderService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task MarkVolumesUntilAsRead(AppUser user, int seriesId, int volumeNumber)
|
||||||
|
{
|
||||||
|
var volumes = await _unitOfWork.VolumeRepository.GetVolumesForSeriesAsync(new List<int>() { seriesId }, true);
|
||||||
|
foreach (var volume in volumes.OrderBy(v => v.Number).Where(v => v.Number <= volumeNumber))
|
||||||
|
{
|
||||||
|
MarkChaptersAsRead(user, volume.SeriesId, volume.Chapters);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user