aniyomi icon indicating copy to clipboard operation
aniyomi copied to clipboard

Anime trackers making duplicate activity

Open perokhe opened this issue 11 months ago • 2 comments

Steps to reproduce

  1. Have tracking services.
  2. Have a mark episodes as seen point less than 100%.
  3. Watch an episode of an anime.

Expected behavior

Trackers should only make a single request to update last seen episode.

Actual behavior

The tracker makes multiple requests resulting in duplicate activity in Anilist or same episode counted multiple times in MyAnimeList history.

Crash logs

No response

Aniyomi version

0.15.2.4

Android version

Android 10

Device

Samsung Galaxy Note 9

Other details

Screenshot_20240319-045429_Firefox Nightly Screenshot_20240319-045923_Firefox Nightly

Acknowledgements

  • [X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
  • [X] I have written a short but informative title.
  • [X] If this is an issue with an official extension, I should be opening an issue in the extensions repository.
  • [X] If this is an issue with an official manga extension and this issue can be replicated in the Tachiyomi app, that I should be opening an issue in Tachiyomi's extensions repository.
  • [X] I have gone through the FAQ and troubleshooting guide.
  • [X] I have updated the app to version 0.15.2.4.
  • [X] I have updated all installed extensions.
  • [X] I will fill out all of the requested information in this form.

perokhe avatar Mar 19 '24 13:03 perokhe

I think after the second you pass the point to mark as seen, it refreshes the local data with the tracker data multiple times and then it tries to update the tracker with the last seen episode each time. For example:

  • GET (1) -> last seen: 1
  • GET (2) -> last seen: 1 (this request shouldn't happen if there is a pending request)
  • PUT (1) -> last seen: 2
  • PUT (2) -> last seen: 2 (this request causes the duplicate activity)
  • GET (3) -> last seen: 2 (local and tracker matches so nothing happens)

perokhe avatar Mar 19 '24 13:03 perokhe

https://github.com/aniyomiorg/aniyomi/blob/1c34c4c1b9ee700c971991ed918aab57f027da53/app/src/main/java/eu/kanade/tachiyomi/ui/player/PlayerViewModel.kt#L370-L376

I think adding !currentEp.seen to the condition could be an easy fix but it doesn't deal with failed requests.

perokhe avatar Mar 19 '24 13:03 perokhe

This has most likely been fixed in the preview version with the merge from Mihon. If the issue still persists even after switching to preview or in the next stable update, please open a new issue.

Secozzi avatar Aug 14 '24 12:08 Secozzi