Skip to content

Commit

Permalink
Code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
majora2007 committed Nov 21, 2024
1 parent 1806b0b commit 5f698fd
Showing 1 changed file with 17 additions and 18 deletions.
35 changes: 17 additions & 18 deletions API/Controllers/ReaderController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Microsoft.IdentityModel.Tokens;
using MimeTypes;

namespace API.Controllers;
Expand Down Expand Up @@ -141,7 +140,7 @@ public async Task<ActionResult> GetImage(int chapterId, int page, string apiKey,
/// <param name="apiKey"></param>
/// <returns></returns>
[HttpGet("thumbnail")]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = new []{"chapterId", "pageNum", "apiKey"})]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = ["chapterId", "pageNum", "apiKey"])]
[AllowAnonymous]
public async Task<ActionResult> GetThumbnail(int chapterId, int pageNum, string apiKey)
{
Expand All @@ -165,14 +164,14 @@ public async Task<ActionResult> GetThumbnail(int chapterId, int pageNum, string
/// <remarks>We must use api key as bookmarks could be leaked to other users via the API</remarks>
/// <returns></returns>
[HttpGet("bookmark-image")]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = new []{"seriesId", "page", "apiKey"})]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = ["seriesId", "page", "apiKey"])]
[AllowAnonymous]
public async Task<ActionResult> GetBookmarkImage(int seriesId, string apiKey, int page)
{
if (page < 0) page = 0;
var userId = await _unitOfWork.UserRepository.GetUserIdByApiKeyAsync(apiKey);
if (userId == 0) return Unauthorized();

if (page < 0) page = 0;
var totalPages = await _cacheService.CacheBookmarkForSeries(userId, seriesId);
if (page > totalPages)
{
Expand All @@ -189,7 +188,7 @@ public async Task<ActionResult> GetBookmarkImage(int seriesId, string apiKey, in
}
catch (Exception)
{
_cacheService.CleanupBookmarks(new []{ seriesId });
_cacheService.CleanupBookmarks([seriesId]);
throw;
}
}
Expand All @@ -203,12 +202,13 @@ public async Task<ActionResult> GetBookmarkImage(int seriesId, string apiKey, in
/// <param name="extractPdf"></param>
/// <returns></returns>
[HttpGet("file-dimensions")]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = new []{"chapterId", "extractPdf"})]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = ["chapterId", "extractPdf"])]
public async Task<ActionResult<IEnumerable<FileDimensionDto>>> GetFileDimensions(int chapterId, bool extractPdf = false)
{
if (chapterId <= 0) return ArraySegment<FileDimensionDto>.Empty;
var chapter = await _cacheService.Ensure(chapterId, extractPdf);
if (chapter == null) return NoContent();

return Ok(_cacheService.GetCachedFileDimensions(_cacheService.GetCachePath(chapterId)));
}

Expand All @@ -221,7 +221,8 @@ public async Task<ActionResult<IEnumerable<FileDimensionDto>>> GetFileDimensions
/// <param name="includeDimensions">Include file dimensions. Only useful for image based reading</param>
/// <returns></returns>
[HttpGet("chapter-info")]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = new []{"chapterId", "extractPdf", "includeDimensions"})]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = ["chapterId", "extractPdf", "includeDimensions"
])]
public async Task<ActionResult<ChapterInfoDto>> GetChapterInfo(int chapterId, bool extractPdf = false, bool includeDimensions = false)
{
if (chapterId <= 0) return Ok(null); // This can happen occasionally from UI, we should just ignore
Expand Down Expand Up @@ -261,6 +262,7 @@ public async Task<ActionResult<ChapterInfoDto>> GetChapterInfo(int chapterId, bo
}

if (info.ChapterTitle is {Length: > 0}) {
// TODO: Can we rework the logic of generating titles for the UI and instead calculate that in the DB?
info.Title += " - " + info.ChapterTitle;
}

Expand Down Expand Up @@ -292,7 +294,7 @@ public async Task<ActionResult<ChapterInfoDto>> GetChapterInfo(int chapterId, bo
/// <param name="includeDimensions">Include file dimensions (extra I/O). Defaults to true.</param>
/// <returns></returns>
[HttpGet("bookmark-info")]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = new []{"seriesId", "includeDimensions"})]
[ResponseCache(CacheProfileName = ResponseCacheProfiles.Hour, VaryByQueryKeys = ["seriesId", "includeDimensions"])]
public async Task<ActionResult<BookmarkInfoDto>> GetBookmarkInfo(int seriesId, bool includeDimensions = true)
{
var totalPages = await _cacheService.CacheBookmarkForSeries(User.GetUserId(), seriesId);
Expand Down Expand Up @@ -376,13 +378,10 @@ public async Task<ActionResult> MarkVolumeAsUnread(MarkVolumeReadDto markVolumeR
var chapters = await _unitOfWork.ChapterRepository.GetChaptersAsync(markVolumeReadDto.VolumeId);
await _readerService.MarkChaptersAsUnread(user, markVolumeReadDto.SeriesId, chapters);

if (await _unitOfWork.CommitAsync())
{
BackgroundJob.Enqueue(() => _scrobblingService.ScrobbleReadingUpdate(user.Id, markVolumeReadDto.SeriesId));
return Ok();
}
if (!await _unitOfWork.CommitAsync()) return BadRequest(await _localizationService.Translate(User.GetUserId(), "generic-read-progress"));

return BadRequest(await _localizationService.Translate(User.GetUserId(), "generic-read-progress"));
BackgroundJob.Enqueue(() => _scrobblingService.ScrobbleReadingUpdate(user.Id, markVolumeReadDto.SeriesId));
return Ok();
}

/// <summary>
Expand Down Expand Up @@ -552,7 +551,7 @@ public async Task<ActionResult<ProgressDto>> GetProgress(int chapterId)
}

/// <summary>
/// Save page against Chapter for logged in user
/// Save page against Chapter for authenticated user
/// </summary>
/// <param name="progressDto"></param>
/// <returns></returns>
Expand Down Expand Up @@ -770,7 +769,7 @@ public async Task<ActionResult> UnBookmarkPage(BookmarkDto bookmarkDto)
/// <param name="volumeId"></param>
/// <param name="currentChapterId"></param>
/// <returns>chapter id for next manga</returns>
[ResponseCache(CacheProfileName = "Hour", VaryByQueryKeys = new [] { "seriesId", "volumeId", "currentChapterId"})]
[ResponseCache(CacheProfileName = "Hour", VaryByQueryKeys = ["seriesId", "volumeId", "currentChapterId"])]
[HttpGet("next-chapter")]
public async Task<ActionResult<int>> GetNextChapter(int seriesId, int volumeId, int currentChapterId)
{
Expand All @@ -788,7 +787,7 @@ public async Task<ActionResult<int>> GetNextChapter(int seriesId, int volumeId,
/// <param name="volumeId"></param>
/// <param name="currentChapterId"></param>
/// <returns>chapter id for next manga</returns>
[ResponseCache(CacheProfileName = "Hour", VaryByQueryKeys = new [] { "seriesId", "volumeId", "currentChapterId"})]
[ResponseCache(CacheProfileName = "Hour", VaryByQueryKeys = ["seriesId", "volumeId", "currentChapterId"])]
[HttpGet("prev-chapter")]
public async Task<ActionResult<int>> GetPreviousChapter(int seriesId, int volumeId, int currentChapterId)
{
Expand All @@ -802,7 +801,7 @@ public async Task<ActionResult<int>> GetPreviousChapter(int seriesId, int volume
/// <param name="seriesId"></param>
/// <returns></returns>
[HttpGet("time-left")]
[ResponseCache(CacheProfileName = "Hour", VaryByQueryKeys = new [] { "seriesId"})]
[ResponseCache(CacheProfileName = "Hour", VaryByQueryKeys = ["seriesId"])]
public async Task<ActionResult<HourEstimateRangeDto>> GetEstimateToCompletion(int seriesId)
{
var userId = User.GetUserId();
Expand Down

0 comments on commit 5f698fd

Please sign in to comment.