diff options
Diffstat (limited to 'user')
-rw-r--r-- | user/anime/README.md | 178 | ||||
-rw-r--r-- | user/anime/update_animelist.go | 2 |
2 files changed, 178 insertions, 2 deletions
diff --git a/user/anime/README.md b/user/anime/README.md index 1a6c636..e2194e0 100644 --- a/user/anime/README.md +++ b/user/anime/README.md @@ -1,6 +1,16 @@ # MAL2Go/user MAL2Go `user/anime` package has functionality related to updating the user's anime list. +To *get* anime data, refer to the [`anime`](../../anime) package. + +**There are multiple possible server responses and errors currently haven't been implemented yet.** + +## Installation +In a terminal, run +``` fish +go get "github.com/MikunoNaka/MAL2Go/user/anime" +``` + ## Usage Firstly, import this package and instanciate the client. ``` go @@ -16,4 +26,170 @@ myClient := anime.Client { } ``` -**More to be added later** +- ### Delete an anime from user's anime list +``` go +animeId := 457 // anime's ID + +resp := myClient.DeleteAnime(animeId) + +/* if anime is successfully deleted, resp is 200 + * if anime isn't in the list resp is 404 */ +fmt.Println(resp) +``` + +- ### Get user's anime list +Possible statuses are: +- `` +- `watching` +- `completed` +- `on_hold` +- `dropped` +- `plan_to_watch` + +Leaving blank (``) gets all the anime + +Possible sorts are: +- `list_score` +- `list_updated_at` +- `anime_title` +- `anime_start_date` +- `anime_id` (beta) + +Leaving user blank or as `"@me"` returns the authenticated user's list + +``` go +user := "0ZeroTsu" +status := "watching" +sort := "list_score" + +limit := 1000 // max is 1000 +offset := 0 + +// fields := []string{} means get all the fields +fields := []string{"title"} + +animeList, err := myClient.GetAnimeList(user, status, sort, limit, offset, fields) +if err != nil { + fmt.Println(err) +} + +// animeList.Animes is an array of the animes in the list +for _, anime := range animeList.Animes { + fmt.Println(anime.Title) +} + +fmt.Println(animeList.Paging.NextPage, animeList.Paging.PrevPage) +``` + +- ### Set an anime's status +``` go +animeId := 457 // anime's ID +status := "dropped" +resp, _ := myClient.SetStatus(animeId, status) +fmt.Println(resp.Error, resp.Message) +``` + +- ### Set watched episodes +``` go +animeId := 457 // anime's ID +epWatched := 22 +resp, _ := myClient.SetWatchedEpisodes(animeId, epWatched) +fmt.Println(resp.Error, resp.Message) +``` + +- ### Set is rewatching status +``` go +animeId := 457 // anime's ID +isRewatching := true +_, _ := myClient.SetIsRewatching(animeId, isRewatching) +``` + +- ### Set an anime's score +``` go +animeId := 457 // anime's ID +score := 10 +_, _ := myClient.SetScore(animeId, score) +``` + +- ### Set an anime's priority +Priority on MyAnimeList ranges from 0 to 2 +``` go +animeId := 457 // anime's ID +priority := 2 +_, _ := myClient.SetPriority(animeId, priority) +``` + +- ### Set an anime's rewatch value +Rewatch value on MyAnimeList ranges from 0 to 5 +``` go +animeId := 457 // anime's ID +rewatchValue := 4 +_, _ := myClient.SetRewatchValue(animeId, rewatchValue) +``` + +- ### Set an anime's rewatch count +Number of times user has rewatched the anime. There is no limit +``` go +animeId := 457 // anime's ID +rewatchCount := 69 +_, _ := myClient.SetRewatchCount(animeId, rewatchCount) +``` + +- ### Set an anime's tags +``` go +animeId := 457 // anime's ID +tags := "tags" +_, _ := myClient.UpdateTags(animeId, tags) +``` + +- ### Set an anime's comments +``` go +animeId := 457 // anime's ID +comments := "I love this" +_, _ := myClient.UpdateComments(animeId, comments) +``` + +- ### Update all fields of an anime +WARNING: this function can overwrite any data and set it to null +if you don't specify a value to it. + +Refrain/use it carefully to avoid data loss. + +``` go +updateData := anime.UpdateAnimeData { + Status: "watching", + IsRewatching: true, + Score: 10, + EpWatched: 22, + Priority: 2, + TimesRewatched: 69, + RewatchValue: 4, + Tags: "tags", + Comments: "I love this", +} + +animeId := 457 // anime's ID + +resp, err := myClient.UpdateAnime(animeId, updateData) +if err != nil { + fmt.Println(err) +} + +fmt.Println(resp.Error, resp.Message) +``` + +## Structure +- [animelist.go](animelist.go) +Contains the exported functions to do some basic functions with anime lists. + +- [animelist.structs.go](animelist.structs.go) +Contains all the structs representing animelist data pulled from MyAnimeList. + +- [client.go](client.go) +The Client for accessing the API with this package. + +- [request_handler.go](request_handler.go) +Responsible for making HTTP requests + +- [update_animelist.go](update_animelist.go) +Contains all the exported functions to update an anime entry in user's animelist. diff --git a/user/anime/update_animelist.go b/user/anime/update_animelist.go index 5f6025a..8371691 100644 --- a/user/anime/update_animelist.go +++ b/user/anime/update_animelist.go @@ -121,7 +121,7 @@ func (c Client)SetRewatchValue(id int, rewatchValue int) (serverResponse, error) } // update just an anime's rewatch count -func (c Client)UpdateRewatchCount(id int, rewatchCount int) (serverResponse, error) { +func (c Client)SetRewatchCount(id int, rewatchCount int) (serverResponse, error) { endpoint := endpointGenerator(id) // data to be sent to the server |