mirror of
https://github.com/Kareadita/Kavita.git
synced 2025-07-09 03:04:19 -04:00
parent
ecc399b32a
commit
6fc5e535df
@ -254,9 +254,10 @@ namespace API.Controllers
|
|||||||
var volumes = await _unitOfWork.SeriesRepository.GetVolumesDtoAsync(seriesId, user.Id);
|
var volumes = await _unitOfWork.SeriesRepository.GetVolumesDtoAsync(seriesId, user.Id);
|
||||||
var currentVolume = await _unitOfWork.SeriesRepository.GetVolumeAsync(volumeId);
|
var currentVolume = await _unitOfWork.SeriesRepository.GetVolumeAsync(volumeId);
|
||||||
|
|
||||||
var next = false;
|
|
||||||
if (currentVolume.Number == 0)
|
if (currentVolume.Number == 0)
|
||||||
{
|
{
|
||||||
|
var next = false;
|
||||||
foreach (var chapter in currentVolume.Chapters)
|
foreach (var chapter in currentVolume.Chapters)
|
||||||
{
|
{
|
||||||
if (next)
|
if (next)
|
||||||
@ -265,11 +266,20 @@ namespace API.Controllers
|
|||||||
}
|
}
|
||||||
if (currentChapterId == chapter.Id) next = true;
|
if (currentChapterId == chapter.Id) next = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var chapterId = GetNextChapterId(currentVolume.Chapters, currentChapterId);
|
||||||
|
if (chapterId > 0) return Ok(chapterId);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var volume in volumes)
|
foreach (var volume in volumes)
|
||||||
{
|
{
|
||||||
if (volume.Number == currentVolume.Number + 1)
|
if (volume.Number == currentVolume.Number && volume.Chapters.Count > 1)
|
||||||
|
{
|
||||||
|
var chapterId = GetNextChapterId(currentVolume.Chapters, currentChapterId);
|
||||||
|
if (chapterId > 0) return Ok(chapterId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (volume.Number == currentVolume.Number)
|
||||||
{
|
{
|
||||||
return Ok(volume.Chapters.FirstOrDefault()?.Id);
|
return Ok(volume.Chapters.FirstOrDefault()?.Id);
|
||||||
}
|
}
|
||||||
@ -277,6 +287,36 @@ namespace API.Controllers
|
|||||||
return Ok(-1);
|
return Ok(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int GetNextChapterId(Volume currentVolume, int currentChapterId)
|
||||||
|
{
|
||||||
|
var next = false;
|
||||||
|
foreach (var chapter in currentVolume.Chapters)
|
||||||
|
{
|
||||||
|
if (next)
|
||||||
|
{
|
||||||
|
return chapter.Id;
|
||||||
|
}
|
||||||
|
if (currentChapterId == chapter.Id) next = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int GetNextChapterId(IEnumerable<Chapter> chapters, int currentChapterId)
|
||||||
|
{
|
||||||
|
var next = false;
|
||||||
|
foreach (var chapter in chapters)
|
||||||
|
{
|
||||||
|
if (next)
|
||||||
|
{
|
||||||
|
return chapter.Id;
|
||||||
|
}
|
||||||
|
if (currentChapterId == chapter.Id) next = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the previous logical volume from the series.
|
/// Returns the previous logical volume from the series.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -291,22 +331,20 @@ namespace API.Controllers
|
|||||||
var volumes = await _unitOfWork.SeriesRepository.GetVolumesDtoAsync(seriesId, user.Id);
|
var volumes = await _unitOfWork.SeriesRepository.GetVolumesDtoAsync(seriesId, user.Id);
|
||||||
var currentVolume = await _unitOfWork.SeriesRepository.GetVolumeAsync(volumeId);
|
var currentVolume = await _unitOfWork.SeriesRepository.GetVolumeAsync(volumeId);
|
||||||
|
|
||||||
var next = false;
|
|
||||||
if (currentVolume.Number == 0)
|
if (currentVolume.Number == 0)
|
||||||
{
|
{
|
||||||
var chapters = currentVolume.Chapters.Reverse();
|
var chapterId = GetNextChapterId(currentVolume.Chapters.Reverse(), currentChapterId);
|
||||||
foreach (var chapter in chapters)
|
if (chapterId > 0) return Ok(chapterId);
|
||||||
{
|
|
||||||
if (next)
|
|
||||||
{
|
|
||||||
return Ok(chapter.Id);
|
|
||||||
}
|
|
||||||
if (currentChapterId == chapter.Id) next = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var volume in volumes.Reverse())
|
foreach (var volume in volumes.Reverse())
|
||||||
{
|
{
|
||||||
|
if (volume.Number == currentVolume.Number)
|
||||||
|
{
|
||||||
|
var chapterId = GetNextChapterId(currentVolume.Chapters.Reverse(), currentChapterId);
|
||||||
|
if (chapterId > 0) return Ok(chapterId);
|
||||||
|
}
|
||||||
if (volume.Number == currentVolume.Number - 1)
|
if (volume.Number == currentVolume.Number - 1)
|
||||||
{
|
{
|
||||||
return Ok(volume.Chapters.LastOrDefault()?.Id);
|
return Ok(volume.Chapters.LastOrDefault()?.Id);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user