aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--anime/README.md4
-rw-r--r--user/anime/README.md178
-rw-r--r--user/anime/update_animelist.go2
3 files changed, 180 insertions, 4 deletions
diff --git a/anime/README.md b/anime/README.md
index e20f080..5ea7922 100644
--- a/anime/README.md
+++ b/anime/README.md
@@ -58,7 +58,7 @@ searchResults, err := myClient.SearchAnime(searchString, limit, offset, fields)
fmt.Println(searchResults.Animes) // print list of the search results
// results have page numbers
-fmt.Println(searchResults.ListPaging.NextPage, searchResults.ListPaging.PrevPage)
+fmt.Println(searchResults.Paging.NextPage, searchResults.Paging.PrevPage)
```
- ### Getting an anime's info
@@ -162,7 +162,7 @@ for _, anime := range suggestedAnime.Animes {
fmt.Println(anime.Titile)
}
-fmt.Println(suggestedAnime.ListPaging.NextPage, suggestedAnime.ListPaging.PrevPage)
+fmt.Println(suggestedAnime.Paging.NextPage, suggestedAnime.Paging.PrevPage)
```
## Structure
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