John O'Keefe 3621b66437 fix: handle MAL API returning numbers instead of strings for zero-value statistics
The MyAnimeList API inconsistently returns statistics status fields (watching,
completed, on_hold, dropped, plan_to_watch) as quoted strings for non-zero
values (e.g. "8217") but as bare numbers for zero values (e.g. 0). This caused
JSON unmarshal errors for anime with zero counts in any status field.

Introduce a FlexString custom type that implements json.Unmarshaler to accept
both JSON strings and JSON numbers, always storing the result as a string. The
type definition lives in MALTypes.go and the unmarshal logic in MALFunctions.go
to keep static types and behavior separate.
2026-05-27 17:28:54 -04:00
2025-01-17 20:39:18 -05:00
2025-12-24 11:28:38 -05:00
2025-12-24 11:28:38 -05:00
2024-07-01 18:37:21 -04:00
2024-09-09 19:37:34 -04:00
2026-04-24 23:02:21 -04:00

README

About

Track the anime you are watching by syncing with various services. Anilist, MyAnimeList, Simkl...

This has been built with the official Wails Svelte-TS template.

To run as is, please feel free to download a binary from the releases page.

If you are getting too many errors due to api usage, please build from source.

Build from Source

Get API Keys

First you will need your own API keys for the various services the app connects to. AniList: AniList Developer App MyAnimeList: MyAnimeList Developer App Simkl: Simkl Developer

Once you have the IDs, Keys, and Secrets create an environment.go file based on the environment.go.example and fill in the fields.

Install Wails and Dependencies

Please follow the instructions here to get Wails up and running and follow the instructions below.

Live Development

To run in live development mode, run wails dev in the project directory. This will run a Vite development server that will provide very fast hot reload of your frontend changes. If you want to develop in a browser and have access to your Go methods, there is also a dev server that runs on http://localhost:34115. Connect to this in your browser, and you can call your Go code from devtools.

Building

To build a redistributable, production mode package, use wails build --clean.

Description
Track anime shows by syncing with various services. Anilist, MyAnimeList, Kitsu, Simkl...
Readme MIT 1 MiB
2026-05-27 20:59:33 -04:00
Languages
Svelte 45.1%
Go 28.7%
TypeScript 15.6%
NSIS 5.3%
JavaScript 4.1%
Other 1.1%