├── .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 | [![Kotlin](https://img.shields.io/badge/Kotlin-1.4.21-blue)](https://kotlinlang.org) 5 | [![GitHub release (latest by date)](https://img.shields.io/github/v/release/iamtakagi/annict-kt)](https://github.com/iamtakagi/annict-kt/releases) 6 | [![Publish to GitHub Package](https://github.com/iamtakagi/annict-kt/actions/workflows/gradle-publish.yml/badge.svg)](https://github.com/iamtakagi/annict-kt/actions/workflows/gradle-publish.yml) 7 | [![license](https://img.shields.io/github/license/iamtakagi/annict-kt)](https://github.com/iam-takagi/kannict/blob/master/LICENSE) 8 | [![issues](https://img.shields.io/github/issues/iamtakagi/annict-kt)](https://github.com/iam-takagi/kannict/issues) 9 | [![pull requests](https://img.shields.io/github/issues-pr/iamtakagi/annict-kt)](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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

action

37 |
38 |
39 | 40 |
41 |
val action: Action? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

episode

37 |
38 |
39 | 40 |
41 |
val episode: Episode? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

record

37 |
38 |
39 | 40 |
41 |
val record: Record? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

status

37 |
38 |
39 | 40 |
41 |
val status: Status? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

user

37 |
38 |
39 | 40 |
41 |
val user: User? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

work

37 |
38 |
39 | 40 |
41 |
val work: Work? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

character

37 |
38 |
39 | 40 |
41 |
val character: Character? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

component5

37 |
38 |
39 | 40 |
41 |
operator fun component5(): Work?
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

component7

37 |
38 |
39 | 40 |
41 |
operator fun component7(): Person?
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

person

37 |
38 |
39 | 40 |
41 |
val person: Person? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

work

37 |
38 |
39 | 40 |
41 |
val work: Work? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

series

37 |
38 |
39 | 40 |
41 |
val series: Series? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

work

37 |
38 |
39 | 40 |
41 |
val work: Work? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

facebook

37 |
38 |
39 | 40 |
41 |
val facebook: Facebook? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

twitter

37 |
38 |
39 | 40 |
41 |
val twitter: Twitter? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

status

37 |
38 |
39 | 40 |
41 |
val status: Status? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

name

37 |
38 |
39 | 40 |
41 |
val name: String? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

url

37 |
38 |
39 | 40 |
41 |
val url: String? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

url

37 |
38 |
39 | 40 |
41 |
val url: String? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

channel

37 |
38 |
39 | 40 |
41 |
val channel: Channel? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

episode

37 |
38 |
39 | 40 |
41 |
val episode: Episode? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

work

37 |
38 |
39 | 40 |
41 |
val work: Work? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

episode

37 |
38 |
39 | 40 |
41 |
val episode: Episode? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

user

37 |
38 |
39 | 40 |
41 |
val user: User? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

work

37 |
38 |
39 | 40 |
41 |
val work: Work? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

user

37 |
38 |
39 | 40 |
41 |
val user: User? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

work

37 |
38 |
39 | 40 |
41 |
val work: Work? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

person

37 |
38 |
39 | 40 |
41 |
val person: Person? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

work

37 |
38 |
39 | 40 |
41 |
val work: Work? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

kind

37 |
38 |
39 | 40 |
41 |
val kind: Status? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

url

37 |
38 |
39 | 40 |
41 |
val url: String? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

id

37 |
38 |
39 | 40 |
41 |
val id: Long? = null
42 |
43 |
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 |
20 | 21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 | 35 |
36 |

images

37 |
38 |
39 | 40 |
41 |
val images: Images? = null
42 |
43 |
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 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /kdoc/images/arrow_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /kdoc/images/copy-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /kdoc/images/copy-successful-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /kdoc/images/docs_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /kdoc/images/footer-go-to-link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /kdoc/images/go-to-top-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /kdoc/images/logo-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 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 | } --------------------------------------------------------------------------------