├── .gitattributes
├── .github
└── workflows
│ └── gradle-publish.yml
├── .gitignore
├── LICENSE
├── README.md
├── build.gradle.kts
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── kdoc
├── annict-kt
│ ├── index.html
│ ├── jp.annict.auth
│ │ ├── -annict-auth
│ │ │ ├── -annict-auth.html
│ │ │ ├── client.html
│ │ │ ├── index.html
│ │ │ ├── info.html
│ │ │ ├── revoke.html
│ │ │ └── token.html
│ │ ├── -revoke-token-post-request-data
│ │ │ ├── -revoke-token-post-request-data.html
│ │ │ ├── client_id.html
│ │ │ ├── client_secret.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── token.html
│ │ ├── -token-get-request-data
│ │ │ ├── -token-get-request-data.html
│ │ │ ├── client_id.html
│ │ │ ├── client_secret.html
│ │ │ ├── code.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── copy.html
│ │ │ ├── grant_type.html
│ │ │ ├── index.html
│ │ │ └── redirect_uri.html
│ │ ├── -token-get-response-data
│ │ │ ├── -token-get-response-data.html
│ │ │ ├── access_token.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── created_at.html
│ │ │ ├── index.html
│ │ │ ├── scope.html
│ │ │ └── token_type.html
│ │ ├── -token-info-get-response-data
│ │ │ ├── -token-info-get-response-data.html
│ │ │ ├── application.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── copy.html
│ │ │ ├── created_at.html
│ │ │ ├── expires_in.html
│ │ │ ├── index.html
│ │ │ ├── resource_owner_id.html
│ │ │ └── scope.html
│ │ └── index.html
│ ├── jp.annict.client
│ │ ├── -annict-client
│ │ │ ├── -annict-client.html
│ │ │ ├── client.html
│ │ │ ├── delete-me-record.html
│ │ │ ├── delete-me-review.html
│ │ │ ├── get-activities.html
│ │ │ ├── get-casts.html
│ │ │ ├── get-characters.html
│ │ │ ├── get-episodes.html
│ │ │ ├── get-followers.html
│ │ │ ├── get-following.html
│ │ │ ├── get-me-following-activities.html
│ │ │ ├── get-me-programs.html
│ │ │ ├── get-me-works.html
│ │ │ ├── get-me.html
│ │ │ ├── get-organizations.html
│ │ │ ├── get-people.html
│ │ │ ├── get-records.html
│ │ │ ├── get-reviews.html
│ │ │ ├── get-series.html
│ │ │ ├── get-staffs.html
│ │ │ ├── get-url-builder.html
│ │ │ ├── get-users.html
│ │ │ ├── get-works.html
│ │ │ ├── index.html
│ │ │ ├── patch-me-record.html
│ │ │ ├── patch-me-review.html
│ │ │ ├── post-me-record.html
│ │ │ ├── post-me-review.html
│ │ │ ├── post-me-status.html
│ │ │ ├── request.html
│ │ │ └── token.html
│ │ └── index.html
│ ├── jp.annict.enums
│ │ ├── -action
│ │ │ ├── -c-r-e-a-t-e_-m-u-l-t-i-p-l-e_-r-e-c-o-r-d-s
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -c-r-e-a-t-e_-r-e-c-o-r-d
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -c-r-e-a-t-e_-r-e-v-i-e-w
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -c-r-e-a-t-e_-s-t-a-t-u-s
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ └── index.html
│ │ ├── -media
│ │ │ ├── -m-o-v-i-e
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -o-t-h-e-r
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -o-v-a
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -t-v
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -w-e-b
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ └── index.html
│ │ ├── -order
│ │ │ ├── -a-s-c
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -d-e-s-c
│ │ │ │ ├── index.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ └── index.html
│ │ ├── -rating-state
│ │ │ ├── -a-v-e-r-a-g-e
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -b-a-d
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -g-o-o-d
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -g-r-e-a-t
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── index.html
│ │ │ └── locale.html
│ │ ├── -status
│ │ │ ├── -n-o_-s-e-l-e-c-t
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -o-n_-h-o-l-d
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -s-t-o-p_-w-a-t-c-h-i-n-g
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -w-a-n-n-a_-w-a-t-c-h
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -w-a-t-c-h-e-d
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── -w-a-t-c-h-i-n-g
│ │ │ │ ├── index.html
│ │ │ │ ├── locale.html
│ │ │ │ ├── name.html
│ │ │ │ └── ordinal.html
│ │ │ ├── index.html
│ │ │ └── locale.html
│ │ └── index.html
│ ├── jp.annict.exception
│ │ ├── -annict-error
│ │ │ ├── -annict-error.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── msg.html
│ │ └── index.html
│ ├── jp.annict.models
│ │ ├── -activity
│ │ │ ├── -activity.html
│ │ │ ├── action.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── copy.html
│ │ │ ├── created_at.html
│ │ │ ├── episode.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── record.html
│ │ │ ├── status.html
│ │ │ ├── user.html
│ │ │ └── work.html
│ │ ├── -application
│ │ │ ├── -application.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── uid.html
│ │ ├── -cast
│ │ │ ├── -cast.html
│ │ │ ├── character.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── copy.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── name.html
│ │ │ ├── name_en.html
│ │ │ ├── person.html
│ │ │ ├── sort_number.html
│ │ │ └── work.html
│ │ ├── -channel
│ │ │ ├── -channel.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── copy.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ └── name.html
│ │ ├── -character
│ │ │ ├── -character.html
│ │ │ ├── age.html
│ │ │ ├── age_en.html
│ │ │ ├── birthday.html
│ │ │ ├── birthday_en.html
│ │ │ ├── blood_type.html
│ │ │ ├── blood_type_en.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component11.html
│ │ │ ├── component12.html
│ │ │ ├── component13.html
│ │ │ ├── component14.html
│ │ │ ├── component15.html
│ │ │ ├── component16.html
│ │ │ ├── component17.html
│ │ │ ├── component18.html
│ │ │ ├── component19.html
│ │ │ ├── component2.html
│ │ │ ├── component20.html
│ │ │ ├── component21.html
│ │ │ ├── component22.html
│ │ │ ├── component23.html
│ │ │ ├── component24.html
│ │ │ ├── component25.html
│ │ │ ├── component26.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── description.html
│ │ │ ├── description_en.html
│ │ │ ├── description_source.html
│ │ │ ├── description_source_en.html
│ │ │ ├── favorite_characters_count.html
│ │ │ ├── height.html
│ │ │ ├── height_en.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── name.html
│ │ │ ├── name_en.html
│ │ │ ├── name_kana.html
│ │ │ ├── nationality.html
│ │ │ ├── nationality_en.html
│ │ │ ├── nickname.html
│ │ │ ├── nickname_en.html
│ │ │ ├── occupation.html
│ │ │ ├── occupation_en.html
│ │ │ ├── series.html
│ │ │ ├── weight.html
│ │ │ └── weight_en.html
│ │ ├── -episode
│ │ │ ├── -episode.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── next_episode.html
│ │ │ ├── number.html
│ │ │ ├── number_text.html
│ │ │ ├── prev_episode.html
│ │ │ ├── record_comments_count.html
│ │ │ ├── records_count.html
│ │ │ ├── sort_number.html
│ │ │ ├── title.html
│ │ │ └── work.html
│ │ ├── -facebook
│ │ │ ├── -facebook.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── og_image_url.html
│ │ ├── -images
│ │ │ ├── -images.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── copy.html
│ │ │ ├── facebook.html
│ │ │ ├── index.html
│ │ │ ├── recommended_url.html
│ │ │ └── twitter.html
│ │ ├── -me-work
│ │ │ ├── -me-work.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── status.html
│ │ ├── -me
│ │ │ ├── -me.html
│ │ │ ├── avatar_url.html
│ │ │ ├── background_image_url.html
│ │ │ ├── created_at.html
│ │ │ ├── description.html
│ │ │ ├── email.html
│ │ │ ├── followers_count.html
│ │ │ ├── followings_count.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── name.html
│ │ │ ├── notifications_count.html
│ │ │ ├── on_hold_count.html
│ │ │ ├── records_count.html
│ │ │ ├── stop_watching_count.html
│ │ │ ├── url.html
│ │ │ ├── username.html
│ │ │ ├── wanna_watch_count.html
│ │ │ ├── watched_count.html
│ │ │ └── watching_count.html
│ │ ├── -organization
│ │ │ ├── -organization.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component11.html
│ │ │ ├── component12.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── favorite_organizations_count.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── name.html
│ │ │ ├── name_en.html
│ │ │ ├── name_kana.html
│ │ │ ├── staffs_count.html
│ │ │ ├── twitter_username.html
│ │ │ ├── twitter_username_en.html
│ │ │ ├── url.html
│ │ │ ├── url_en.html
│ │ │ ├── wikipedia_url.html
│ │ │ └── wikipedia_url_en.html
│ │ ├── -person
│ │ │ ├── -person.html
│ │ │ ├── birthday.html
│ │ │ ├── blood_type.html
│ │ │ ├── casts_count.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component11.html
│ │ │ ├── component12.html
│ │ │ ├── component13.html
│ │ │ ├── component14.html
│ │ │ ├── component15.html
│ │ │ ├── component16.html
│ │ │ ├── component17.html
│ │ │ ├── component18.html
│ │ │ ├── component19.html
│ │ │ ├── component2.html
│ │ │ ├── component20.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── favorite_people_count.html
│ │ │ ├── gender_text.html
│ │ │ ├── height.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── name.html
│ │ │ ├── name_en.html
│ │ │ ├── name_kana.html
│ │ │ ├── nickname.html
│ │ │ ├── nickname_en.html
│ │ │ ├── prefecture.html
│ │ │ ├── staffs_count.html
│ │ │ ├── twitter_username.html
│ │ │ ├── twitter_username_en.html
│ │ │ ├── url.html
│ │ │ ├── url_en.html
│ │ │ ├── wikipedia_url.html
│ │ │ └── wikipedia_url_en.html
│ │ ├── -prefecture
│ │ │ ├── -prefecture.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── copy.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ └── name.html
│ │ ├── -program
│ │ │ ├── -program.html
│ │ │ ├── channel.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── episode.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── is_rebroadcast.html
│ │ │ ├── started_at.html
│ │ │ └── work.html
│ │ ├── -record
│ │ │ ├── -record.html
│ │ │ ├── comment.html
│ │ │ ├── comments_count.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component11.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── created_at.html
│ │ │ ├── episode.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── is_modified.html
│ │ │ ├── likes_count.html
│ │ │ ├── rating.html
│ │ │ ├── rating_state.html
│ │ │ ├── user.html
│ │ │ └── work.html
│ │ ├── -review
│ │ │ ├── -review.html
│ │ │ ├── body.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component11.html
│ │ │ ├── component12.html
│ │ │ ├── component13.html
│ │ │ ├── component14.html
│ │ │ ├── component15.html
│ │ │ ├── component16.html
│ │ │ ├── component17.html
│ │ │ ├── component18.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── created_at.html
│ │ │ ├── episodes_count.html
│ │ │ ├── id.html
│ │ │ ├── impressions_count.html
│ │ │ ├── index.html
│ │ │ ├── likes_count.html
│ │ │ ├── modified_at.html
│ │ │ ├── rating_animation_state.html
│ │ │ ├── rating_character_state.html
│ │ │ ├── rating_music_state.html
│ │ │ ├── rating_overall_state.html
│ │ │ ├── rating_story_state.html
│ │ │ ├── season_name.html
│ │ │ ├── season_name_text.html
│ │ │ ├── title.html
│ │ │ ├── user.html
│ │ │ ├── watchers_count.html
│ │ │ └── work.html
│ │ ├── -series
│ │ │ ├── -series.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── name.html
│ │ │ ├── name_en.html
│ │ │ └── name_ro.html
│ │ ├── -staff
│ │ │ ├── -staff.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── name.html
│ │ │ ├── name_en.html
│ │ │ ├── organization.html
│ │ │ ├── person.html
│ │ │ ├── role_other.html
│ │ │ ├── role_other_en.html
│ │ │ ├── role_text.html
│ │ │ ├── sort_number.html
│ │ │ └── work.html
│ │ ├── -status
│ │ │ ├── -status.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── kind.html
│ │ ├── -twitter
│ │ │ ├── -twitter.html
│ │ │ ├── bigger_avatar_url.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── copy.html
│ │ │ ├── image_url.html
│ │ │ ├── index.html
│ │ │ ├── mini_avatar_url.html
│ │ │ ├── normal_avatar_url.html
│ │ │ └── original_avatar_url.html
│ │ ├── -user
│ │ │ ├── -user.html
│ │ │ ├── avatar_url.html
│ │ │ ├── background_image_url.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component11.html
│ │ │ ├── component12.html
│ │ │ ├── component13.html
│ │ │ ├── component14.html
│ │ │ ├── component15.html
│ │ │ ├── component16.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── created_at.html
│ │ │ ├── description.html
│ │ │ ├── followers_count.html
│ │ │ ├── followings_count.html
│ │ │ ├── id.html
│ │ │ ├── index.html
│ │ │ ├── name.html
│ │ │ ├── on_hold_count.html
│ │ │ ├── records_count.html
│ │ │ ├── stop_watching_count.html
│ │ │ ├── url.html
│ │ │ ├── username.html
│ │ │ ├── wanna_watch_count.html
│ │ │ ├── watched_count.html
│ │ │ └── watching_count.html
│ │ ├── -work
│ │ │ ├── -work.html
│ │ │ ├── episodes_count.html
│ │ │ ├── id.html
│ │ │ ├── images.html
│ │ │ ├── index.html
│ │ │ ├── mal_anime_id.html
│ │ │ ├── media.html
│ │ │ ├── media_text.html
│ │ │ ├── no_episodes.html
│ │ │ ├── official_site_url.html
│ │ │ ├── released_on.html
│ │ │ ├── released_on_about.html
│ │ │ ├── reviews_count.html
│ │ │ ├── season_name.html
│ │ │ ├── season_name_text.html
│ │ │ ├── syobocal_tid.html
│ │ │ ├── title.html
│ │ │ ├── title_kana.html
│ │ │ ├── twitter_hashtag.html
│ │ │ ├── twitter_username.html
│ │ │ ├── watchers_count.html
│ │ │ └── wikipedia_url.html
│ │ └── index.html
│ ├── jp.annict.services.me
│ │ ├── -me-following-activities-get-request-query
│ │ │ ├── -me-following-activities-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_actions.html
│ │ │ ├── filter_muted.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -me-following-activities-get-response-data
│ │ │ ├── -me-following-activities-get-response-data.html
│ │ │ ├── activities.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ └── total_count.html
│ │ ├── -me-following-activities-service
│ │ │ ├── -me-following-activities-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -me-get-request-query
│ │ │ ├── -me-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ └── index.html
│ │ ├── -me-get-response-data
│ │ │ ├── -me-get-response-data.html
│ │ │ └── index.html
│ │ ├── -me-programs-get-request-query
│ │ │ ├── -me-programs-get-request-query.html
│ │ │ ├── fields.html
│ │ │ ├── filter_channel_ids.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_rebroadcast.html
│ │ │ ├── filter_started_at_gt.html
│ │ │ ├── filter_started_at_lt.html
│ │ │ ├── filter_unwatched.html
│ │ │ ├── filter_work_ids.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ ├── sort_id.html
│ │ │ └── sort_started_at.html
│ │ ├── -me-programs-get-response-data
│ │ │ ├── -me-programs-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── programs.html
│ │ │ └── total_count.html
│ │ ├── -me-programs-service
│ │ │ ├── -me-programs-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -me-records-delete-request-query
│ │ │ ├── -me-records-delete-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── id.html
│ │ │ └── index.html
│ │ ├── -me-records-patch-request-query
│ │ │ ├── -me-records-patch-request-query.html
│ │ │ ├── comment.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── copy.html
│ │ │ ├── episode_id.html
│ │ │ ├── index.html
│ │ │ ├── rating_state.html
│ │ │ ├── share_facebook.html
│ │ │ └── share_twitter.html
│ │ ├── -me-records-patch-response-data
│ │ │ ├── -me-records-patch-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── record.html
│ │ ├── -me-records-post-request-query
│ │ │ ├── -me-records-post-request-query.html
│ │ │ ├── comment.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── copy.html
│ │ │ ├── episode_id.html
│ │ │ ├── index.html
│ │ │ ├── rating_state.html
│ │ │ ├── share_facebook.html
│ │ │ └── share_twitter.html
│ │ ├── -me-records-post-response-data
│ │ │ ├── -me-records-post-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── record.html
│ │ ├── -me-records-service
│ │ │ ├── -me-records-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -me-reviews-delete-request-query
│ │ │ ├── -me-reviews-delete-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── id.html
│ │ │ └── index.html
│ │ ├── -me-reviews-patch-request-query
│ │ │ ├── -me-reviews-patch-request-query.html
│ │ │ ├── body.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── rating_animation_state.html
│ │ │ ├── rating_character_state.html
│ │ │ ├── rating_music_state.html
│ │ │ ├── rating_overall_state.html
│ │ │ ├── rating_story_state.html
│ │ │ ├── share_facebook.html
│ │ │ ├── share_twitter.html
│ │ │ ├── title.html
│ │ │ └── work_id.html
│ │ ├── -me-reviews-patch-response-data
│ │ │ ├── -me-reviews-patch-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── review.html
│ │ ├── -me-reviews-post-request-query
│ │ │ ├── -me-reviews-post-request-query.html
│ │ │ ├── body.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── rating_animation_state.html
│ │ │ ├── rating_character_state.html
│ │ │ ├── rating_music_state.html
│ │ │ ├── rating_overall_state.html
│ │ │ ├── rating_story_state.html
│ │ │ ├── share_facebook.html
│ │ │ ├── share_twitter.html
│ │ │ ├── title.html
│ │ │ └── work_id.html
│ │ ├── -me-reviews-post-response-data
│ │ │ ├── -me-reviews-post-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ └── review.html
│ │ ├── -me-reviews-service
│ │ │ ├── -me-reviews-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -me-service
│ │ │ ├── -me-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -me-statues-post-request-query
│ │ │ ├── -me-statues-post-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── kind.html
│ │ │ └── work_id.html
│ │ ├── -me-statuses-service
│ │ │ ├── -me-statuses-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -me-works-get-request-query
│ │ │ ├── -me-works-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component10.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_season.html
│ │ │ ├── filter_status.html
│ │ │ ├── filter_title.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ ├── sort_id.html
│ │ │ ├── sort_season.html
│ │ │ └── sort_watchers_count.html
│ │ ├── -me-works-get-response-data
│ │ │ ├── -me-works-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── total_count.html
│ │ │ └── works.html
│ │ ├── -me-works-service
│ │ │ ├── -me-works-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ └── index.html
│ ├── jp.annict.services
│ │ ├── -activities-get-request-query
│ │ │ ├── -activities-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_user_id.html
│ │ │ ├── filter_username.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -activities-get-response-data
│ │ │ ├── -activities-get-response-data.html
│ │ │ ├── activities.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ └── total_count.html
│ │ ├── -activities-service
│ │ │ ├── -activities-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -casts-get-request-query
│ │ │ ├── -casts-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_work_id.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ ├── sort_id.html
│ │ │ └── sort_sort_number.html
│ │ ├── -casts-get-response-data
│ │ │ ├── -casts-get-response-data.html
│ │ │ ├── casts.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ └── total_count.html
│ │ ├── -casts-service
│ │ │ ├── -casts-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -characters-get-request-query
│ │ │ ├── -characters-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_work_id.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -characters-get-response-data
│ │ │ ├── -characters-get-response-data.html
│ │ │ ├── characters.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ └── total_count.html
│ │ ├── -characters-service
│ │ │ ├── -characters-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -episodes-get-request-query
│ │ │ ├── -episodes-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_work_id.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ ├── sort_id.html
│ │ │ └── sort_sort_number.html
│ │ ├── -episodes-get-response-data
│ │ │ ├── -episodes-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── episodes.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ └── total_count.html
│ │ ├── -episodes-service
│ │ │ ├── -episodes-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -followers-get-request-query
│ │ │ ├── -followers-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_user_id.html
│ │ │ ├── filter_username.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -followers-get-response-data
│ │ │ ├── -followers-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── total_count.html
│ │ │ └── users.html
│ │ ├── -followers-service
│ │ │ ├── -followers-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -following-get-request-query
│ │ │ ├── -following-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_user_id.html
│ │ │ ├── filter_username.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -following-get-response-data
│ │ │ ├── -following-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── total_count.html
│ │ │ └── users.html
│ │ ├── -following-service
│ │ │ ├── -following-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -organizations-get-request-query
│ │ │ ├── -organizations-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_work_id.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -organizations-get-response-data
│ │ │ ├── -organizations-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── organizations.html
│ │ │ ├── prev_page.html
│ │ │ └── total_count.html
│ │ ├── -organizations-service
│ │ │ ├── -organizations-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -people-get-request-query
│ │ │ ├── -people-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_work_id.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -people-get-response-data
│ │ │ ├── -people-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── people.html
│ │ │ ├── prev_page.html
│ │ │ └── total_count.html
│ │ ├── -people-service
│ │ │ ├── -people-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -records-get-request-query
│ │ │ ├── -records-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_episode_id.html
│ │ │ ├── filter_has_record_comment.html
│ │ │ ├── filter_ids.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ ├── sort_id.html
│ │ │ └── sort_likes_count.html
│ │ ├── -records-get-response-data
│ │ │ ├── -records-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── records.html
│ │ │ └── total_count.html
│ │ ├── -records-service
│ │ │ ├── -records-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -reviews-get-request-query
│ │ │ ├── -reviews-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_has_review_body.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_work_id.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ ├── sort_id.html
│ │ │ └── sort_likes_count.html
│ │ ├── -reviews-get-response-data
│ │ │ ├── -reviews-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── reviews.html
│ │ │ └── total_count.html
│ │ ├── -reviews-service
│ │ │ ├── -reviews-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -series-get-request-query
│ │ │ ├── -series-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_name.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -series-get-response-data
│ │ │ ├── -series-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── series.html
│ │ │ └── total_count.html
│ │ ├── -series-service
│ │ │ ├── -series-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -staffs-get-request-query
│ │ │ ├── -staffs-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_work_id.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ ├── sort_id.html
│ │ │ └── sort_sort_number.html
│ │ ├── -staffs-get-response-data
│ │ │ ├── -staffs-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── staffs.html
│ │ │ └── total_count.html
│ │ ├── -staffs-service
│ │ │ ├── -staffs-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -users-get-request-query
│ │ │ ├── -users-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_user_id.html
│ │ │ ├── filter_username.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ └── sort_id.html
│ │ ├── -users-get-response-data
│ │ │ ├── -users-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── total_count.html
│ │ │ └── users.html
│ │ ├── -users-service
│ │ │ ├── -users-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ ├── -works-get-request-query
│ │ │ ├── -works-get-request-query.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── component5.html
│ │ │ ├── component6.html
│ │ │ ├── component7.html
│ │ │ ├── component8.html
│ │ │ ├── component9.html
│ │ │ ├── copy.html
│ │ │ ├── fields.html
│ │ │ ├── filter_ids.html
│ │ │ ├── filter_season.html
│ │ │ ├── filter_title.html
│ │ │ ├── index.html
│ │ │ ├── page.html
│ │ │ ├── per_page.html
│ │ │ ├── sort_id.html
│ │ │ ├── sort_season.html
│ │ │ └── sort_watchers_count.html
│ │ ├── -works-get-response-data
│ │ │ ├── -works-get-response-data.html
│ │ │ ├── component1.html
│ │ │ ├── component2.html
│ │ │ ├── component3.html
│ │ │ ├── component4.html
│ │ │ ├── copy.html
│ │ │ ├── index.html
│ │ │ ├── next_page.html
│ │ │ ├── prev_page.html
│ │ │ ├── total_count.html
│ │ │ └── works.html
│ │ ├── -works-service
│ │ │ ├── -works-service.html
│ │ │ ├── client.html
│ │ │ └── index.html
│ │ └── index.html
│ └── package-list
├── images
│ ├── anchor-copy-button.svg
│ ├── arrow_down.svg
│ ├── copy-icon.svg
│ ├── copy-successful-icon.svg
│ ├── docs_logo.svg
│ ├── footer-go-to-link.svg
│ ├── go-to-top-icon.svg
│ └── logo-icon.svg
├── navigation.html
├── scripts
│ ├── clipboard.js
│ ├── main.js
│ ├── navigation-loader.js
│ ├── navigation-pane.json
│ ├── pages.js
│ ├── platform-content-handler.js
│ └── sourceset_dependencies.js
└── styles
│ ├── jetbrains-mono.css
│ ├── logo-styles.css
│ ├── main.css
│ └── style.css
├── settings.gradle.kts
└── src
└── main
└── kotlin
└── jp
└── annict
├── auth
└── AnnictAuth.kt
├── client
└── AnnictClient.kt
├── enums
├── Action.kt
├── Media.kt
├── Order.kt
├── RatingState.kt
└── Status.kt
├── exception
└── AnnictError.kt
├── models
└── Model.kt
└── services
├── ActivitiesService.kt
├── CastsService.kt
├── CharactersService.kt
├── EpisodesService.kt
├── FollowersService.kt
├── FollowingService.kt
├── OrganizationsService.kt
├── PeopleService.kt
├── RecordsService.kt
├── ReviewsService.kt
├── SeriesService.kt
├── StaffsService.kt
├── UsersService.kt
├── WorksService.kt
└── me
├── MeFollowingActivitiesService.kt
├── MeProgramsService.kt
├── MeRecordsService.kt
├── MeReviewsService.kt
├── MeService.kt
├── MeStatusesService.kt
└── MeWorksService.kt
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.kt linguist-detectable=true
2 | *.html linguist-detectable=false
3 | *.js linguist-detectable=false
4 | *.css linguist-detectable=false
5 |
--------------------------------------------------------------------------------
/.github/workflows/gradle-publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish to GitHub Package
2 |
3 | on:
4 | release:
5 | types: [created]
6 |
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 | permissions:
11 | contents: read
12 | packages: write
13 | steps:
14 | - uses: actions/checkout@v2
15 | - name: Make gradlew executable
16 | run: chmod +x ./gradlew
17 | - name: Build
18 | run: ./gradlew build
19 | - name: Publish
20 | env:
21 | GITHUB_TOKEN: ${{ github.token }}
22 | GITHUB_USERNAME: ${{ github.actor }}
23 | run: ./gradlew publish
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by https://www.toptal.com/developers/gitignore/api/intellij+all
2 | # Edit at https://www.toptal.com/developers/gitignore?templates=intellij+all
3 |
4 | ### Intellij+all ###
5 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
6 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
7 |
8 | # User-specific stuff
9 | .idea/**/workspace.xml
10 | .idea/**/tasks.xml
11 | .idea/**/usage.statistics.xml
12 | .idea/**/dictionaries
13 | .idea/**/shelf
14 |
15 | # Generated files
16 | .idea/**/contentModel.xml
17 |
18 | # Sensitive or high-churn files
19 | .idea/**/dataSources/
20 | .idea/**/dataSources.ids
21 | .idea/**/dataSources.local.xml
22 | .idea/**/sqlDataSources.xml
23 | .idea/**/dynamic.xml
24 | .idea/**/uiDesigner.xml
25 | .idea/**/dbnavigator.xml
26 |
27 | # Gradle
28 | .idea/**/gradle.xml
29 | .idea/**/libraries
30 |
31 | # Gradle and Maven with auto-import
32 | # When using Gradle or Maven with auto-import, you should exclude module files,
33 | # since they will be recreated, and may cause churn. Uncomment if using
34 | # auto-import.
35 | # .idea/artifacts
36 | # .idea/compiler.xml
37 | # .idea/jarRepositories.xml
38 | # .idea/modules.xml
39 | # .idea/*.iml
40 | # .idea/modules
41 | # *.iml
42 | # *.ipr
43 |
44 | # CMake
45 | cmake-build-*/
46 |
47 | # Mongo Explorer plugin
48 | .idea/**/mongoSettings.xml
49 |
50 | # File-based project format
51 | *.iws
52 |
53 | # IntelliJ
54 | out/
55 |
56 | # mpeltonen/sbt-idea plugin
57 | .idea_modules/
58 |
59 | # JIRA plugin
60 | atlassian-ide-plugin.xml
61 |
62 | # Cursive Clojure plugin
63 | .idea/replstate.xml
64 |
65 | # Crashlytics plugin (for Android Studio and IntelliJ)
66 | com_crashlytics_export_strings.xml
67 | crashlytics.properties
68 | crashlytics-build.properties
69 | fabric.properties
70 |
71 | # Editor-based Rest Client
72 | .idea/httpRequests
73 |
74 | # Android studio 3.1+ serialized cache file
75 | .idea/caches/build_file_checksums.ser
76 |
77 | ### Intellij+all Patch ###
78 | # Ignores the whole .idea folder and all .iml files
79 | # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
80 |
81 | .idea/
82 |
83 | # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
84 |
85 | *.iml
86 | modules.xml
87 | .idea/misc.xml
88 | *.ipr
89 |
90 | # Sonarlint plugin
91 | .idea/sonarlint
92 |
93 | # End of https://www.toptal.com/developers/gitignore/api/intellij+all
94 |
95 | build
96 |
97 | Test.kt
98 |
99 | .gradle
100 |
101 | .DS_Store
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020- iam-takagi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # annict-kt
2 | [Annict API](https://github.com/annict/annict) wrapper for Kotlin Library.
3 |
4 | [](https://kotlinlang.org)
5 | [](https://github.com/iamtakagi/annict-kt/releases)
6 | [](https://github.com/iamtakagi/annict-kt/actions/workflows/gradle-publish.yml)
7 | [](https://github.com/iam-takagi/kannict/blob/master/LICENSE)
8 | [](https://github.com/iam-takagi/kannict/issues)
9 | [](https://github.com/iamtakagi/kannict/pulls)
10 |
11 | https://annict.jp/userland/projects/61
12 |
13 | ## Document
14 | See a [this page](https://iamtakagi.github.io/annict-kt/kdoc/annict-kt)
15 |
16 | ## Installation
17 |
18 | ### Gradle
19 |
20 | #### build.gradle.kts
21 | ```kotlin
22 | dependencies {
23 | implementation("jp.annict:annict-kt:$AnnictKtVersion")
24 | }
25 | ```
26 |
27 | ### Maven
28 |
29 | #### pom.xml
30 | ```xml
31 |
32 | jp.annict
33 | annict-kt
34 | ${annictKtVersion}
35 |
36 | ```
37 |
38 | ## LICENSE
39 | iamtakagi/annict-kt is provided under the MIT license.
40 |
--------------------------------------------------------------------------------
/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | kotlin("jvm") version "1.4.21"
3 | kotlin("plugin.serialization") version "1.4.21"
4 | `maven-publish`
5 | }
6 |
7 | repositories {
8 | mavenCentral()
9 | maven (url = "https://kotlin.bintray.com/kotlinx" )
10 | }
11 |
12 | dependencies {
13 | implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
14 | testCompile("junit:junit:4.12")
15 | implementation("com.squareup.okhttp3:okhttp:4.8.1")
16 | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2")
17 | implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1")
18 | }
19 |
20 | val buildJar by tasks.creating(Jar::class) {
21 | from(tasks.compileKotlin)
22 | }
23 |
24 | tasks {
25 | compileKotlin {
26 | kotlinOptions {
27 | jvmTarget = "1.8"
28 | }
29 | }
30 |
31 | compileTestKotlin {
32 | kotlinOptions {
33 | jvmTarget = "1.8"
34 | }
35 | }
36 |
37 | build {
38 | dependsOn(buildJar)
39 | }
40 | }
41 |
42 | publishing {
43 | publications {
44 | create("default") {
45 | artifact(buildJar)
46 | }
47 | }
48 |
49 | repositories {
50 | maven {
51 | name = "GitHubPackages"
52 | url = uri("https://maven.pkg.github.com/iamtakagi/annict-kt")
53 | credentials {
54 | username = System.getenv("GITHUB_USERNAME")
55 | password = System.getenv("GITHUB_TOKEN")
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | group=jp.annict
2 | version=2.4.3
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iamtakagi/annict-kt/ad55467fea4fbbb38cda08a31e8759b1bb1ec34e/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Aug 18 22:46:47 JST 2020
2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-all.zip
3 | distributionBase=GRADLE_USER_HOME
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS="-Xmx64m"
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-activity/action.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | action
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
action
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-activity/episode.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | episode
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
episode
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-activity/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-activity/record.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | record
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
record
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-activity/status.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | status
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
status
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-activity/user.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | user
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
user
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-activity/work.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | work
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
work
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-cast/character.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | character
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
character
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-cast/component5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | component5
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
component5
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-cast/component7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | component7
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
component7
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-cast/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-cast/person.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | person
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
person
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-cast/work.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | work
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
work
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-channel/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-character/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-character/series.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | series
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
series
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-episode/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-episode/work.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | work
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
work
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-images/facebook.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | facebook
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
facebook
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-images/twitter.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | twitter
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
twitter
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-me-work/status.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | status
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
status
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-me/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-me/name.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | name
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
name
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-me/url.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | url
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
url
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-person/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-person/url.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | url
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
url
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-prefecture/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-program/channel.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | channel
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
channel
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-program/episode.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | episode
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
episode
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-program/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-program/work.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | work
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
work
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-record/episode.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | episode
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
episode
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-record/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-record/user.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | user
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
user
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-record/work.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | work
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
work
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-review/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-review/user.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | user
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
user
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-review/work.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | work
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
work
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-series/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-staff/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-staff/person.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | person
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
person
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-staff/work.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | work
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
work
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-status/kind.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | kind
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
kind
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-user/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-user/url.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | url
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
url
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-work/id.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | id
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
id
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/jp.annict.models/-work/images.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | images
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
35 |
36 |
images
37 |
38 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/kdoc/annict-kt/package-list:
--------------------------------------------------------------------------------
1 | $dokka.format:html-v1
2 | $dokka.linkExtension:html
3 |
4 | jp.annict.auth
5 | jp.annict.client
6 | jp.annict.enums
7 | jp.annict.exception
8 | jp.annict.models
9 | jp.annict.services
10 | jp.annict.services.me
11 |
12 |
--------------------------------------------------------------------------------
/kdoc/images/anchor-copy-button.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kdoc/images/arrow_down.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/kdoc/images/copy-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kdoc/images/copy-successful-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kdoc/images/docs_logo.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/kdoc/images/footer-go-to-link.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kdoc/images/go-to-top-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kdoc/images/logo-icon.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/kdoc/scripts/clipboard.js:
--------------------------------------------------------------------------------
1 | window.addEventListener('load', () => {
2 | document.querySelectorAll('span.copy-icon').forEach(element => {
3 | element.addEventListener('click', (el) => copyElementsContentToClipboard(element));
4 | })
5 |
6 | document.querySelectorAll('span.anchor-icon').forEach(element => {
7 | element.addEventListener('click', (el) => {
8 | if(element.hasAttribute('pointing-to')){
9 | const location = hrefWithoutCurrentlyUsedAnchor() + '#' + element.getAttribute('pointing-to')
10 | copyTextToClipboard(element, location)
11 | }
12 | });
13 | })
14 | })
15 |
16 | const copyElementsContentToClipboard = (element) => {
17 | const selection = window.getSelection();
18 | const range = document.createRange();
19 | range.selectNodeContents(element.parentNode.parentNode);
20 | selection.removeAllRanges();
21 | selection.addRange(range);
22 |
23 | copyAndShowPopup(element, () => selection.removeAllRanges())
24 | }
25 |
26 | const copyTextToClipboard = (element, text) => {
27 | var textarea = document.createElement("textarea");
28 | textarea.textContent = text;
29 | textarea.style.position = "fixed";
30 | document.body.appendChild(textarea);
31 | textarea.select();
32 |
33 | copyAndShowPopup(element, () => document.body.removeChild(textarea))
34 | }
35 |
36 | const copyAndShowPopup = (element, after) => {
37 | try {
38 | document.execCommand('copy');
39 | element.nextElementSibling.classList.add('active-popup');
40 | setTimeout(() => {
41 | element.nextElementSibling.classList.remove('active-popup');
42 | }, 1200);
43 | } catch (e) {
44 | console.error('Failed to write to clipboard:', e)
45 | }
46 | finally {
47 | if(after) after()
48 | }
49 | }
50 |
51 | const hrefWithoutCurrentlyUsedAnchor = () => window.location.href.split('#')[0]
52 |
53 |
--------------------------------------------------------------------------------
/kdoc/scripts/navigation-loader.js:
--------------------------------------------------------------------------------
1 | navigationPageText = fetch(pathToRoot + "navigation.html").then(response => response.text())
2 |
3 | displayNavigationFromPage = () => {
4 | navigationPageText.then(data => {
5 | document.getElementById("sideMenu").innerHTML = data;
6 | }).then(() => {
7 | document.querySelectorAll(".overview > a").forEach(link => {
8 | link.setAttribute("href", pathToRoot + link.getAttribute("href"));
9 | })
10 | }).then(() => {
11 | document.querySelectorAll(".sideMenuPart").forEach(nav => {
12 | if (!nav.classList.contains("hidden"))
13 | nav.classList.add("hidden")
14 | })
15 | }).then(() => {
16 | revealNavigationForCurrentPage()
17 | })
18 | document.querySelectorAll('.footer a[href^="#"]').forEach(anchor => {
19 | anchor.addEventListener('click', function (e) {
20 | e.preventDefault();
21 | document.querySelector(this.getAttribute('href')).scrollIntoView({
22 | behavior: 'smooth'
23 | });
24 | });
25 | });
26 | }
27 |
28 | revealNavigationForCurrentPage = () => {
29 | let pageId = document.getElementById("content").attributes["pageIds"].value.toString();
30 | let parts = document.querySelectorAll(".sideMenuPart");
31 | let found = 0;
32 | do {
33 | parts.forEach(part => {
34 | if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) {
35 | found = 1;
36 | if (part.classList.contains("hidden")) {
37 | part.classList.remove("hidden");
38 | part.setAttribute('data-active', "");
39 | }
40 | revealParents(part)
41 | }
42 | });
43 | pageId = pageId.substring(0, pageId.lastIndexOf("/"))
44 | } while (pageId.indexOf("/") !== -1 && found === 0)
45 | };
46 | revealParents = (part) => {
47 | if (part.classList.contains("sideMenuPart")) {
48 | if (part.classList.contains("hidden"))
49 | part.classList.remove("hidden");
50 | revealParents(part.parentNode)
51 | }
52 | };
53 |
54 | /*
55 | This is a work-around for safari being IE of our times.
56 | It doesn't fire a DOMContentLoaded, presumabely because eventListener is added after it wants to do it
57 | */
58 | if (document.readyState == 'loading') {
59 | window.addEventListener('DOMContentLoaded', () => {
60 | displayNavigationFromPage()
61 | })
62 | } else {
63 | displayNavigationFromPage()
64 | }
--------------------------------------------------------------------------------
/kdoc/scripts/sourceset_dependencies.js:
--------------------------------------------------------------------------------
1 | sourceset_dependencies = '{":dokkaHtml/main": []}'
2 |
--------------------------------------------------------------------------------
/kdoc/styles/jetbrains-mono.css:
--------------------------------------------------------------------------------
1 | @font-face{
2 | font-family: 'JetBrains Mono';
3 | src: url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Regular.eot') format('embedded-opentype'),
4 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Regular.woff2') format('woff2'),
5 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Regular.woff') format('woff'),
6 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/ttf/JetBrainsMono-Regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face{
12 | font-family: 'JetBrains Mono';
13 | src: url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Bold.eot') format('embedded-opentype'),
14 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Bold.woff2') format('woff2'),
15 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Bold.woff') format('woff'),
16 | url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/ttf/JetBrainsMono-Bold.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: normal;
19 | }
--------------------------------------------------------------------------------
/kdoc/styles/logo-styles.css:
--------------------------------------------------------------------------------
1 | #logo {
2 | background-image: url(../images/docs_logo.svg);
3 | }
--------------------------------------------------------------------------------
/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | rootProject.name = "annict-kt"
2 |
3 | pluginManagement {
4 | repositories {
5 | mavenCentral()
6 | gradlePluginPortal()
7 | }
8 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/enums/Action.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.enums
2 |
3 | import kotlinx.serialization.SerialName
4 | import kotlinx.serialization.Serializable
5 |
6 | /**
7 | * Action
8 | *
9 | * @constructor Create empty Action
10 | */
11 | @Serializable
12 | enum class Action {
13 |
14 | @SerialName("create_record") CREATE_RECORD,
15 | @SerialName("create_review") CREATE_REVIEW,
16 | @SerialName("create_multiple_records") CREATE_MULTIPLE_RECORDS,
17 | @SerialName("create_status") CREATE_STATUS;
18 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/enums/Media.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.enums
2 |
3 | import kotlinx.serialization.Serializable
4 | import kotlinx.serialization.SerialName
5 |
6 | /**
7 | * Media
8 | *
9 | * @constructor Create empty Media
10 | */
11 | @Serializable
12 | enum class Media {
13 |
14 | @SerialName("tv") TV,
15 | @SerialName("ova") OVA,
16 | @SerialName("movie") MOVIE,
17 | @SerialName("web") WEB,
18 | @SerialName("other") OTHER;
19 |
20 |
21 |
22 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/enums/Order.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.enums
2 |
3 | import kotlinx.serialization.Serializable
4 | import kotlinx.serialization.SerialName
5 |
6 | /**
7 | * Order
8 | *
9 | * @constructor Create empty Order
10 | */
11 | @Serializable
12 | enum class Order {
13 | @SerialName("asc") ASC,
14 | @SerialName("desc") DESC;
15 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/enums/RatingState.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.enums
2 |
3 | import kotlinx.serialization.Serializable
4 | import kotlinx.serialization.SerialName
5 |
6 | /**
7 | * Rating state
8 | *
9 | * @property locale
10 | * @constructor Create empty Rating state
11 | */
12 | @Serializable
13 | enum class RatingState(val locale: String) {
14 |
15 | @SerialName("bad") BAD("良くない"),
16 | @SerialName("average") AVERAGE("普通"),
17 | @SerialName("good") GOOD("良い"),
18 | @SerialName("great") GREAT("とても良い");
19 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/enums/Status.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.enums
2 |
3 | import kotlinx.serialization.SerialName
4 | import kotlinx.serialization.Serializable
5 |
6 | /**
7 | * Status
8 | *
9 | * @property locale
10 | * @constructor Create empty Status
11 | */
12 | @Serializable
13 | enum class Status(val locale: String) {
14 |
15 | @SerialName("wanna_watch") WANNA_WATCH("見たい"),
16 | @SerialName("watching") WATCHING("見てる"),
17 | @SerialName("watched") WATCHED("見た"),
18 | @SerialName("on_hold") ON_HOLD("一時中断"),
19 | @SerialName("stop_watching") STOP_WATCHING("視聴中止"),
20 | @SerialName("no_select") NO_SELECT("ステータスを選択");
21 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/exception/AnnictError.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.exception
2 |
3 | /**
4 | * Annict error
5 | *
6 | * @property msg
7 | * @constructor Create empty Annict error
8 | */
9 | data class AnnictError(val msg: String? = null) : Exception(msg)
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/ActivitiesService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.exception.AnnictError
6 | import jp.annict.models.Activity
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class ActivitiesGetRequestQuery (
15 | val fields : Array? =null,
16 | val filter_user_id : Long? =null,
17 | val filter_username : String? =null,
18 | val page : Long? =null,
19 | val per_page : Long? =null,
20 | val sort_id : Order? =null
21 | ) {
22 |
23 | internal fun url(builder: HttpUrl.Builder) : HttpUrl {
24 | return builder.apply {
25 | addPathSegment("activities")
26 |
27 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
28 | if(filter_user_id != null) { addQueryParameter("filter_user_id", filter_user_id.toString()) }
29 | if(filter_username != null && filter_username.isNotEmpty()) { addQueryParameter("filter_username", filter_username) }
30 | if(page != null) { addQueryParameter("page", page.toString()) }
31 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
32 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
33 |
34 | }.build()
35 | }
36 | }
37 |
38 | @Serializable
39 | data class ActivitiesGetResponseData (
40 | val activities: Array? = null,
41 | val total_count: Long? = null,
42 | val next_page: Long? = null,
43 | val prev_page: Long? = null
44 | ) {
45 |
46 | constructor() : this(null, null, null, null)
47 |
48 | internal fun parse(response: Response): ActivitiesGetResponseData? {
49 | response.apply {
50 | if(response.code != 200) {
51 | return throw AnnictError(response.message)
52 | }
53 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
54 | }
55 | }
56 | }
57 |
58 | class ActivitiesService(val client: AnnictClient) {
59 |
60 | internal fun get(query: ActivitiesGetRequestQuery) : ActivitiesGetResponseData? {
61 | this.client.apply { return ActivitiesGetResponseData()
62 | .parse(request(Request.Builder().url(query.url(getUrlBuilder())))) }
63 | }
64 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/CastsService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.exception.AnnictError
6 | import jp.annict.models.Cast
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class CastsGetRequestQuery(val fields : Array? =null,
15 | val filter_ids : Array? =null,
16 | val filter_work_id : Long?=null,
17 | val page : Long?=null,
18 | val per_page : Long?=null,
19 | val sort_id : Order?=null,
20 | val sort_sort_number : Order?=null) {
21 |
22 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
23 | return builder.apply {
24 | addPathSegment("casts")
25 |
26 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
27 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
28 | if(filter_work_id != null) { addQueryParameter("filter_work_id", filter_work_id.toString()) }
29 | if(page != null) { addQueryParameter("page", page.toString()) }
30 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
31 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
32 | if(sort_sort_number != null) { addQueryParameter("sort_sort_number", sort_sort_number.toString()) }
33 |
34 | }.build()
35 | }
36 | }
37 |
38 | @Serializable
39 | data class CastsGetResponseData(val casts: Array? = null,
40 | val total_count: Long? = null,
41 | val next_page: Long? = null,
42 | val prev_page: Long? = null) {
43 |
44 | constructor() : this(null, null, null, null)
45 |
46 | internal fun parse(response: Response): CastsGetResponseData? {
47 | response.apply {
48 | if(response.code != 200) {
49 | return throw AnnictError(response.message)
50 | }
51 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
52 | }
53 | }
54 | }
55 |
56 | class CastsService(val client: AnnictClient) {
57 |
58 | internal fun get(query: CastsGetRequestQuery) : CastsGetResponseData? {
59 | this.client.apply {
60 | return CastsGetResponseData()
61 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
62 | }
63 | }
64 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/CharactersService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.exception.AnnictError
6 | import jp.annict.models.Character
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class CharactersGetRequestQuery(
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_work_id : Long?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null) {
21 |
22 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
23 | return builder.apply {
24 | addPathSegment("characters")
25 |
26 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
27 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
28 | if(filter_work_id != null) { addQueryParameter("filter_work_id", filter_work_id.toString()) }
29 | if(page != null) { addQueryParameter("page", page.toString()) }
30 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
31 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
32 |
33 | }.build()
34 | }
35 | }
36 |
37 | @Serializable
38 | data class CharactersGetResponseData(val characters: Array? = null,
39 | val total_count: Long? = null,
40 | val next_page: Long? = null,
41 | val prev_page: Long? = null) {
42 |
43 | constructor() : this(null, null, null, null)
44 |
45 | internal fun parse(response: Response): CharactersGetResponseData? {
46 | response.apply {
47 | if(response.code != 200) {
48 | return throw AnnictError(response.message)
49 | }
50 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
51 | }
52 | }
53 | }
54 |
55 | class CharactersService(val client: AnnictClient) {
56 |
57 | internal fun get(query: CharactersGetRequestQuery) : CharactersGetResponseData? {
58 | this.client.apply {
59 | return CharactersGetResponseData()
60 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
61 | }
62 | }
63 |
64 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/EpisodesService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.models.Episode
5 | import jp.annict.enums.Order
6 | import jp.annict.exception.AnnictError
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class EpisodesGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_work_id : Long?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null,
21 | val sort_sort_number : Order?=null
22 | ) {
23 |
24 | internal fun url(builder: HttpUrl.Builder) : HttpUrl {
25 | return builder.apply {
26 | addPathSegment("episodes")
27 |
28 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
29 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
30 | if(filter_work_id != null) { addQueryParameter("filter_work_id", filter_work_id.toString()) }
31 | if(page != null) { addQueryParameter("page", page.toString()) }
32 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
33 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
34 | if(sort_sort_number != null) { addQueryParameter("sort_sort_number", sort_sort_number.toString()) }
35 |
36 | }.build()
37 | }
38 | }
39 |
40 | @Serializable
41 | data class EpisodesGetResponseData (
42 | val episodes: Array? = null,
43 | val total_count: Long? = null,
44 | val next_page: Long? = null,
45 | val prev_page: Long? = null
46 | ) {
47 |
48 | constructor() : this(null, null, null, null)
49 |
50 | internal fun parse(response: Response): EpisodesGetResponseData? {
51 | response.apply {
52 | if(response.code != 200) {
53 | return throw AnnictError(response.message)
54 | }
55 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
56 | }
57 | }
58 | }
59 |
60 | class EpisodesService(val client: AnnictClient) {
61 |
62 | internal fun get(query: EpisodesGetRequestQuery) : EpisodesGetResponseData? {
63 | this.client.apply {
64 | return EpisodesGetResponseData()
65 | .parse(request(Request.Builder().url(query.url(getUrlBuilder())))) }
66 | }
67 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/FollowersService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.models.User
4 | import jp.annict.client.AnnictClient
5 | import jp.annict.enums.Order
6 | import jp.annict.exception.AnnictError
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class FollowersGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_user_id : Long?=null,
17 | val filter_username : String?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null
21 | ) {
22 |
23 | internal fun url(builder: HttpUrl.Builder) : HttpUrl {
24 | return builder.apply {
25 | addPathSegment("followers")
26 |
27 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
28 | if(filter_user_id != null) { addQueryParameter("filter_user_id", filter_user_id.toString()) }
29 | if(filter_username != null && filter_username.isNotEmpty()) { addQueryParameter("filter_username", filter_username) }
30 | if(page != null) { addQueryParameter("page", page.toString()) }
31 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
32 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
33 |
34 | }.build()
35 | }
36 | }
37 |
38 | @Serializable
39 | data class FollowersGetResponseData (
40 | val users: Array? = null,
41 | val total_count: Long? = null,
42 | val next_page: Long? = null,
43 | val prev_page: Long? = null
44 | ) {
45 |
46 | constructor() : this(null, null, null, null)
47 |
48 | internal fun parse(response: Response): FollowersGetResponseData? {
49 | response.apply {
50 | if(response.code != 200) {
51 | return throw AnnictError(response.message)
52 | }
53 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
54 | }
55 | }
56 | }
57 |
58 | class FollowersService(val client: AnnictClient) {
59 |
60 | internal fun get(query: FollowersGetRequestQuery): FollowersGetResponseData? {
61 | this.client.apply {
62 | return FollowersGetResponseData()
63 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
64 | }
65 | }
66 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/FollowingService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.models.User
4 | import jp.annict.client.AnnictClient
5 | import jp.annict.enums.Order
6 | import jp.annict.exception.AnnictError
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class FollowingGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_user_id : Long?=null,
17 | val filter_username : String?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null
21 | ) {
22 |
23 | internal fun url(builder: HttpUrl.Builder) : HttpUrl {
24 | return builder.apply {
25 | addPathSegment("following")
26 |
27 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
28 | if(filter_user_id != null) { addQueryParameter("filter_user_id", filter_user_id.toString()) }
29 | if(filter_username != null && filter_username.isNotEmpty()) { addQueryParameter("filter_username", filter_username) }
30 | if(page != null) { addQueryParameter("page", page.toString()) }
31 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
32 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
33 |
34 | }.build()
35 | }
36 | }
37 |
38 | @Serializable
39 | data class FollowingGetResponseData (
40 | val users: Array? = null,
41 | val total_count: Long? = null,
42 | val next_page: Long? = null,
43 | val prev_page: Long? = null
44 | ) {
45 |
46 | constructor() : this(null, null, null, null)
47 |
48 | internal fun parse(response: Response): FollowingGetResponseData? {
49 | response.apply {
50 | if(response.code != 200) {
51 | return throw AnnictError(response.message)
52 | }
53 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
54 | }
55 | }
56 | }
57 |
58 | class FollowingService(val client: AnnictClient) {
59 |
60 | internal fun get(query: FollowingGetRequestQuery): FollowingGetResponseData? {
61 | this.client.apply {
62 | return FollowingGetResponseData().parse(
63 | request(Request.Builder().url(query.url(getUrlBuilder())))
64 | )
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/OrganizationsService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.exception.AnnictError
6 | import jp.annict.models.Organization
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class OrganizationsGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_work_id : Long?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null) {
21 |
22 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
23 | return builder.apply {
24 | addPathSegment("organizations")
25 |
26 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
27 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
28 | if(filter_work_id != null) { addQueryParameter("filter_work_id", filter_work_id.toString()) }
29 | if(page != null) { addQueryParameter("page", page.toString()) }
30 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
31 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
32 |
33 | }.build()
34 | }
35 | }
36 |
37 | @Serializable
38 | data class OrganizationsGetResponseData (
39 | val organizations: Array? = null,
40 | val total_count: Long? = null,
41 | val next_page: Long? = null,
42 | val prev_page: Long? = null
43 | ) {
44 |
45 | constructor() : this(null, null, null, null)
46 |
47 | internal fun parse(response: Response): OrganizationsGetResponseData? {
48 | response.apply {
49 | if(response.code != 200) {
50 | return throw AnnictError(response.message)
51 | }
52 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
53 | }
54 | }
55 | }
56 |
57 | class OrganizationsService(val client: AnnictClient) {
58 |
59 | internal fun get(query: OrganizationsGetRequestQuery) : OrganizationsGetResponseData? {
60 | this.client.apply {
61 | return OrganizationsGetResponseData()
62 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
63 | }
64 | }
65 |
66 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/PeopleService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.exception.AnnictError
6 | import jp.annict.models.Person
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class PeopleGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_work_id : Long?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null) {
21 |
22 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
23 | return builder.apply {
24 | addPathSegment("people")
25 |
26 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
27 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
28 | if(filter_work_id != null) { addQueryParameter("filter_work_id", filter_work_id.toString()) }
29 | if(page != null) { addQueryParameter("page", page.toString()) }
30 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
31 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
32 |
33 | }.build()
34 | }
35 | }
36 |
37 | @Serializable
38 | data class PeopleGetResponseData (
39 | val people: Array? = null,
40 | val total_count: Long? = null,
41 | val next_page: Long? = null,
42 | val prev_page: Long? = null
43 | ) {
44 |
45 | constructor() : this(null, null, null, null)
46 |
47 | internal fun parse(response: Response): PeopleGetResponseData? {
48 | response.apply {
49 | if(response.code != 200) {
50 | return throw AnnictError(response.message)
51 | }
52 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
53 | }
54 | }
55 | }
56 |
57 | class PeopleService(val client: AnnictClient) {
58 |
59 | internal fun get(query: PeopleGetRequestQuery) : PeopleGetResponseData? {
60 | this.client.apply {
61 | return PeopleGetResponseData()
62 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
63 | }
64 | }
65 |
66 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/RecordsService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.models.Record
5 | import jp.annict.enums.Order
6 | import jp.annict.exception.AnnictError
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class RecordsGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_episode_id : Long?=null,
18 | val filter_has_record_comment: Boolean?=null,
19 | val page : Long?=null,
20 | val per_page : Long?=null,
21 | val sort_id : Order?=null,
22 | val sort_likes_count : Order?=null
23 | ) {
24 |
25 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
26 | return builder.apply {
27 | addPathSegment("records")
28 |
29 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
30 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
31 | if(filter_episode_id != null) { addQueryParameter("filter_episode_id", filter_episode_id.toString()) }
32 | if(filter_has_record_comment != null) { addQueryParameter("filter_has_record_comment", filter_has_record_comment.toString()) }
33 | if(page != null) { addQueryParameter("page", page.toString()) }
34 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
35 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
36 | if(sort_likes_count != null) { addQueryParameter("sort_likes_count", sort_likes_count.toString()) }
37 |
38 | }.build()
39 | }
40 | }
41 |
42 | @Serializable
43 | data class RecordsGetResponseData (
44 | val records : Array? = null,
45 | val total_count: Long? = null,
46 | val next_page: Long? = null,
47 | val prev_page: Long? = null
48 | ) {
49 |
50 | constructor() : this(null, null, null, null)
51 |
52 | internal fun parse(response: Response): RecordsGetResponseData? {
53 | response.apply {
54 | if(response.code != 200) {
55 | return throw AnnictError(response.message)
56 | }
57 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
58 | }
59 | }
60 | }
61 |
62 | class RecordsService(val client: AnnictClient) {
63 |
64 | internal fun get(query: RecordsGetRequestQuery) : RecordsGetResponseData? {
65 | this.client.apply {
66 | return RecordsGetResponseData()
67 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/ReviewsService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.exception.AnnictError
6 | import jp.annict.models.Review
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class ReviewsGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_work_id : Long?=null,
18 | val filter_has_review_body : Boolean?=null,
19 | val page : Long?=null,
20 | val per_page : Long?=null,
21 | val sort_id : Order?=null,
22 | val sort_likes_count : Order?=null
23 | ) {
24 |
25 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
26 | return builder.apply {
27 | addPathSegment("reviews")
28 |
29 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
30 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
31 | if(filter_work_id != null) { addQueryParameter("filter_work_id", filter_work_id.toString()) }
32 | if(filter_has_review_body != null) { addQueryParameter("filter_has_review_body", filter_has_review_body.toString()) }
33 | if(page != null) { addQueryParameter("page", page.toString()) }
34 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
35 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
36 | if(sort_likes_count != null) { addQueryParameter("sort_likes_count", sort_likes_count.toString()) }
37 |
38 | }.build()
39 | }
40 | }
41 |
42 | @Serializable
43 | data class ReviewsGetResponseData (
44 | val reviews: Array? = null,
45 | val total_count: Long? = null,
46 | val next_page: Long? = null,
47 | val prev_page: Long? = null
48 | ) {
49 |
50 | constructor() : this(null, null, null, null)
51 |
52 | internal fun parse(response: Response): ReviewsGetResponseData? {
53 | response.apply {
54 | if(response.code != 200) {
55 | return throw AnnictError(response.message)
56 | }
57 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
58 | }
59 | }
60 |
61 | }
62 |
63 | class ReviewsService(val client: AnnictClient) {
64 |
65 | internal fun get(query: ReviewsGetRequestQuery) : ReviewsGetResponseData? {
66 | this.client.apply {
67 | return ReviewsGetResponseData()
68 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/SeriesService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.exception.AnnictError
6 | import jp.annict.models.Series
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class SeriesGetRequestQuery(
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_name : String?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null) {
21 |
22 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
23 | return builder.apply {
24 | addPathSegment("series")
25 |
26 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
27 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
28 | if(filter_name != null) { addQueryParameter("filter_name", filter_name.toString()) }
29 | if(page != null) { addQueryParameter("page", page.toString()) }
30 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
31 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
32 |
33 | }.build()
34 | }
35 | }
36 |
37 | @Serializable
38 | data class SeriesGetResponseData (
39 | val series: Array? = null,
40 | val total_count: Long? = null,
41 | val next_page: Long? = null,
42 | val prev_page: Long? = null
43 | ) {
44 |
45 | constructor() : this(null, null, null, null)
46 |
47 | internal fun parse(response: Response): SeriesGetResponseData? {
48 | response.apply {
49 | if(response.code != 200) {
50 | return throw AnnictError(response.message)
51 | }
52 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
53 | }
54 | }
55 | }
56 |
57 | class SeriesService(val client: AnnictClient) {
58 |
59 | internal fun get(query: SeriesGetRequestQuery) : SeriesGetResponseData? {
60 | this.client.apply {
61 | return SeriesGetResponseData()
62 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
63 | }
64 | }
65 |
66 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/StaffsService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.exception.AnnictError
6 | import jp.annict.models.Staff
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class StaffsGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_work_id : Long?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null,
21 | val sort_sort_number : Order?=null
22 | ) {
23 |
24 | internal fun url(builder: HttpUrl.Builder) : HttpUrl {
25 | return builder.apply {
26 | addPathSegment("staffs")
27 |
28 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
29 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
30 | if(filter_work_id != null) { addQueryParameter("filter_work_id", filter_work_id.toString()) }
31 | if(page != null) { addQueryParameter("page", page.toString()) }
32 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
33 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
34 | if(sort_sort_number != null) { addQueryParameter("sort_sort_number", sort_sort_number.toString()) }
35 |
36 | }.build()
37 | }
38 | }
39 |
40 | @Serializable
41 | data class StaffsGetResponseData (
42 | val staffs: Array? = null,
43 | val total_count: Long? = null,
44 | val next_page: Long? = null,
45 | val prev_page: Long? = null
46 | ) {
47 |
48 | constructor() : this(null, null, null, null)
49 |
50 | internal fun parse(response: Response): StaffsGetResponseData? {
51 | response.apply {
52 | if(response.code != 200) {
53 | return throw AnnictError(response.message)
54 | }
55 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
56 | }
57 | }
58 | }
59 |
60 | class StaffsService(val client: AnnictClient) {
61 |
62 | internal fun get(query: StaffsGetRequestQuery) : StaffsGetResponseData? {
63 | this.client.apply {
64 | return StaffsGetResponseData()
65 | .parse(request(Request.Builder().url(query.url(getUrlBuilder())))) }
66 | }
67 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/UsersService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.models.User
4 | import jp.annict.client.AnnictClient
5 | import jp.annict.enums.Order
6 | import jp.annict.exception.AnnictError
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class UsersGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_user_id : Long?=null,
17 | val filter_username : String?=null,
18 | val page : Long?=null,
19 | val per_page : Long?=null,
20 | val sort_id : Order?=null
21 | ) {
22 |
23 | internal fun url(builder: HttpUrl.Builder) : HttpUrl {
24 | return builder.apply {
25 | addPathSegment("users")
26 |
27 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
28 | if(filter_user_id != null) { addQueryParameter("filter_user_id", filter_user_id.toString()) }
29 | if(filter_username != null && filter_username.isNotEmpty()) { addQueryParameter("filter_username", filter_username) }
30 | if(page != null) { addQueryParameter("page", page.toString()) }
31 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
32 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
33 |
34 | }.build()
35 | }
36 | }
37 |
38 | @Serializable
39 | data class UsersGetResponseData (
40 | val users: Array? = null,
41 | val total_count: Long? = null,
42 | val next_page: Long? = null,
43 | val prev_page: Long? = null
44 | ) {
45 |
46 | constructor() : this(null, null, null, null)
47 |
48 | internal fun parse(response: Response): UsersGetResponseData? {
49 | response.apply {
50 | if(response.code != 200) {
51 | return throw AnnictError(response.message)
52 | }
53 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
54 | }
55 | }
56 | }
57 |
58 | class UsersService(val client: AnnictClient) {
59 |
60 | internal fun get(query: UsersGetRequestQuery): UsersGetResponseData? {
61 | this.client.apply {
62 | return UsersGetResponseData()
63 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
64 | }
65 |
66 | }
67 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/WorksService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.models.Work
5 | import jp.annict.enums.Order
6 | import jp.annict.exception.AnnictError
7 | import kotlinx.serialization.Serializable
8 | import kotlinx.serialization.decodeFromString
9 | import kotlinx.serialization.json.Json
10 | import okhttp3.HttpUrl
11 | import okhttp3.Request
12 | import okhttp3.Response
13 |
14 | data class WorksGetRequestQuery (
15 | val fields : Array?=null,
16 | val filter_ids : Array?=null,
17 | val filter_season : String?=null,
18 | val filter_title : String?=null,
19 | val page : Long?=null,
20 | val per_page : Long?=null,
21 | val sort_id : Order?=null,
22 | val sort_season : Order?=null,
23 | val sort_watchers_count : Order?=null
24 | ) {
25 |
26 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
27 | return builder.apply {
28 | addPathSegment("works")
29 |
30 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
31 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
32 | if(filter_season != null && filter_season.isNotEmpty()) { addQueryParameter("filter_season", filter_season.toString()) }
33 | if(filter_title != null && filter_title.isNotEmpty()) { addQueryParameter("filter_title", filter_title.toString()) }
34 | if(page != null) { addQueryParameter("page", page.toString()) }
35 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
36 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
37 | if(sort_season != null) { addQueryParameter("sort_season", sort_season.toString()) }
38 | if(sort_watchers_count != null) { addQueryParameter("sort_watchers_count", sort_watchers_count.toString()) }
39 |
40 | }.build()
41 | }
42 | }
43 |
44 | @Serializable
45 | data class WorksGetResponseData (
46 | val works: Array? = null,
47 | val total_count: Long? = null,
48 | val next_page: Long? = null,
49 | val prev_page: Long? = null
50 | ) {
51 |
52 | constructor() : this(null, null, null, null)
53 |
54 | internal fun parse(response: Response): WorksGetResponseData? {
55 | response.apply {
56 | if(response.code != 200) {
57 | return throw AnnictError(response.message)
58 | }
59 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
60 | }
61 | }
62 |
63 | }
64 |
65 | class WorksService(val client: AnnictClient) {
66 |
67 | internal fun get(query: WorksGetRequestQuery) : WorksGetResponseData? {
68 | this.client.apply {
69 | return WorksGetResponseData()
70 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/me/MeService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services.me
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.exception.AnnictError
5 | import jp.annict.models.Me
6 | import kotlinx.serialization.Serializable
7 | import kotlinx.serialization.decodeFromString
8 | import kotlinx.serialization.json.Json
9 | import kotlinx.serialization.json.JsonObjectBuilder
10 | import kotlinx.serialization.serializer
11 | import okhttp3.HttpUrl
12 | import okhttp3.Request
13 | import okhttp3.Response
14 |
15 | data class MeGetRequestQuery(val fields: Array? =null) {
16 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
17 | return builder.apply {
18 | addPathSegment("me")
19 |
20 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
21 |
22 | }.build()
23 | }
24 | }
25 |
26 | @Serializable
27 | class MeGetResponseData() : Me() {
28 |
29 | internal fun parse(response: Response): MeGetResponseData? {
30 | response.apply {
31 | if (response.code != 200) {
32 | return throw AnnictError(response.message)
33 | }
34 | return body?.string()?.let { Json() { isLenient = true }.decodeFromString(it) }
35 | }
36 | }
37 | }
38 |
39 | class MeService(val client: AnnictClient) {
40 |
41 | internal fun get(query: MeGetRequestQuery) : MeGetResponseData? {
42 | this.client.apply { return MeGetResponseData()
43 | .parse(request(Request.Builder().url(query.url(getUrlBuilder())))) }
44 | }
45 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/me/MeStatusesService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services.me
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Status
5 | import okhttp3.HttpUrl
6 | import okhttp3.Request
7 |
8 | data class MeStatuesPostRequestQuery(val work_id: Long? =null,
9 | val kind: Status? =null) {
10 |
11 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
12 | return builder.apply {
13 | addPathSegments("me/statues")
14 |
15 | if(work_id != null) { addQueryParameter("work_id", work_id.toString())}
16 | if(kind != null ) { addQueryParameter("kind", kind.toString()) }
17 |
18 | }.build()
19 | }
20 | }
21 |
22 |
23 | class MeStatusesService (val client: AnnictClient) {
24 |
25 | internal fun post(query: MeStatuesPostRequestQuery) : Boolean? {
26 | this.client.apply {
27 | return (request(Request.Builder().url(query.url(getUrlBuilder())).method("post", null)).code == 204)
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/src/main/kotlin/jp/annict/services/me/MeWorksService.kt:
--------------------------------------------------------------------------------
1 | package jp.annict.services.me
2 |
3 | import jp.annict.client.AnnictClient
4 | import jp.annict.enums.Order
5 | import jp.annict.enums.Status
6 | import jp.annict.exception.AnnictError
7 | import jp.annict.models.MeWork
8 | import kotlinx.serialization.Serializable
9 | import kotlinx.serialization.decodeFromString
10 | import kotlinx.serialization.json.Json
11 | import okhttp3.HttpUrl
12 | import okhttp3.Request
13 | import okhttp3.Response
14 |
15 | data class MeWorksGetRequestQuery (
16 | val fields : Array?=null,
17 | val filter_ids : Array?=null,
18 | val filter_season : String?=null,
19 | val filter_title : String?=null,
20 | val page : Long?=null,
21 | val per_page : Long?=null,
22 | val sort_id : Order?=null,
23 | val sort_season : Order?=null,
24 | val sort_watchers_count : Order?=null,
25 | val filter_status: Status?=null
26 | ) {
27 |
28 | internal fun url(builder: HttpUrl.Builder): HttpUrl {
29 | return builder.apply {
30 | addPathSegments("/me/works")
31 |
32 | if(fields != null && fields.isNotEmpty()) { addQueryParameter("fields", fields.joinToString(separator = ",")) }
33 | if(filter_ids != null && filter_ids.isNotEmpty()) { addQueryParameter("filter_ids", filter_ids.joinToString(separator = ",")) }
34 | if(filter_season != null && filter_season.isNotEmpty()) { addQueryParameter("filter_season", filter_season.toString()) }
35 | if(filter_title != null && filter_title.isNotEmpty()) { addQueryParameter("filter_title", filter_title.toString()) }
36 | if(page != null) { addQueryParameter("page", page.toString()) }
37 | if(per_page != null) { addQueryParameter("per_page", per_page.toString()) }
38 | if(sort_id != null) { addQueryParameter("sort_id", sort_id.toString()) }
39 | if(sort_season != null) { addQueryParameter("sort_season", sort_season.toString()) }
40 | if(sort_watchers_count != null) { addQueryParameter("sort_watchers_count", sort_watchers_count.toString()) }
41 | if(filter_status != null) { addQueryParameter("filter_status", filter_status.toString()) }
42 |
43 | }.build()
44 | }
45 | }
46 |
47 | @Serializable
48 | data class MeWorksGetResponseData (
49 | val works: Array? = null,
50 | val total_count: Long? = null,
51 | val next_page: Long? = null,
52 | val prev_page: Long? = null
53 | ) {
54 |
55 | constructor() : this(null, null, null, null)
56 |
57 | internal fun parse(response: Response): MeWorksGetResponseData? {
58 | response.apply {
59 | if (response.code != 200) {
60 | return throw AnnictError(response.message)
61 | }
62 | return body?.string()?.let { Json { isLenient = true }.decodeFromString(it) }
63 | }
64 | }
65 |
66 | }
67 |
68 | class MeWorksService(val client: AnnictClient) {
69 |
70 | internal fun get(query: MeWorksGetRequestQuery) : MeWorksGetResponseData? {
71 | this.client.apply {
72 | return MeWorksGetResponseData()
73 | .parse(request(Request.Builder().url(query.url(getUrlBuilder()))))
74 | }
75 | }
76 | }
--------------------------------------------------------------------------------