added ability to get anime as needed from MAL
This commit is contained in:
@ -60,6 +60,82 @@ export namespace main {
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class CompletedAt {
|
||||
year: number;
|
||||
month: number;
|
||||
day: number;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new CompletedAt(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.year = source["year"];
|
||||
this.month = source["month"];
|
||||
this.day = source["day"];
|
||||
}
|
||||
}
|
||||
export class StartedAt {
|
||||
year: number;
|
||||
month: number;
|
||||
day: number;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new StartedAt(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.year = source["year"];
|
||||
this.month = source["month"];
|
||||
this.day = source["day"];
|
||||
}
|
||||
}
|
||||
export class AniListUpdateVariables {
|
||||
mediaId: number;
|
||||
progress: number;
|
||||
status: string;
|
||||
score: number;
|
||||
repeat: number;
|
||||
notes: string;
|
||||
startedAt: StartedAt;
|
||||
completedAt: CompletedAt;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new AniListUpdateVariables(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.mediaId = source["mediaId"];
|
||||
this.progress = source["progress"];
|
||||
this.status = source["status"];
|
||||
this.score = source["score"];
|
||||
this.repeat = source["repeat"];
|
||||
this.notes = source["notes"];
|
||||
this.startedAt = this.convertValues(source["startedAt"], StartedAt);
|
||||
this.completedAt = this.convertValues(source["completedAt"], CompletedAt);
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class AniListUser {
|
||||
// Go type: struct { Viewer struct { ID int "json:\"id\""; Name string "json:\"name\""; Avatar struct { Large string "json:\"large\""; Medium string "json:\"medium\"" } "json:\"avatar\""; BannerImage string "json:\"bannerImage\""; SiteUrl string "json:\"siteUrl\"" } "json:\"Viewer\"" }
|
||||
data: any;
|
||||
@ -121,6 +197,96 @@ export namespace main {
|
||||
this.anime_type = source["anime_type"];
|
||||
}
|
||||
}
|
||||
|
||||
export class MALAnime {
|
||||
id: id;
|
||||
title: title;
|
||||
// Go type: struct { Large string "json:\"large\" json:\"large\""; Medium string "json:\"medium\" json:\"medium\"" }
|
||||
main_picture: any;
|
||||
alternative_titles: alternativeTitles;
|
||||
start_date: startDate;
|
||||
end_date: endDate;
|
||||
synopsis: synopsis;
|
||||
mean: mean;
|
||||
rank: rank;
|
||||
popularity: popularity;
|
||||
num_list_users: numListUsers;
|
||||
num_scoring_users: numScoringUsers;
|
||||
nsfw: nsfw;
|
||||
genres: genres;
|
||||
created_at: createdAt;
|
||||
updated_at: updatedAt;
|
||||
media_type: mediaType;
|
||||
status: status;
|
||||
my_list_status: myListStatus;
|
||||
num_episodes: numEpisodes;
|
||||
start_season: startSeason;
|
||||
broadcast: broadcast;
|
||||
source: source;
|
||||
average_episode_duration: averageEpisodeDuration;
|
||||
rating: rating;
|
||||
studios: studios;
|
||||
pictures: pictures;
|
||||
background: background;
|
||||
related_anime: relatedAnime;
|
||||
recommendations: recommendations;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new MALAnime(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.id = source["id"];
|
||||
this.title = source["title"];
|
||||
this.main_picture = this.convertValues(source["main_picture"], Object);
|
||||
this.alternative_titles = source["alternative_titles"];
|
||||
this.start_date = source["start_date"];
|
||||
this.end_date = source["end_date"];
|
||||
this.synopsis = source["synopsis"];
|
||||
this.mean = source["mean"];
|
||||
this.rank = source["rank"];
|
||||
this.popularity = source["popularity"];
|
||||
this.num_list_users = source["num_list_users"];
|
||||
this.num_scoring_users = source["num_scoring_users"];
|
||||
this.nsfw = source["nsfw"];
|
||||
this.genres = source["genres"];
|
||||
this.created_at = source["created_at"];
|
||||
this.updated_at = source["updated_at"];
|
||||
this.media_type = source["media_type"];
|
||||
this.status = source["status"];
|
||||
this.my_list_status = source["my_list_status"];
|
||||
this.num_episodes = source["num_episodes"];
|
||||
this.start_season = source["start_season"];
|
||||
this.broadcast = source["broadcast"];
|
||||
this.source = source["source"];
|
||||
this.average_episode_duration = source["average_episode_duration"];
|
||||
this.rating = source["rating"];
|
||||
this.studios = source["studios"];
|
||||
this.pictures = source["pictures"];
|
||||
this.background = source["background"];
|
||||
this.related_anime = source["related_anime"];
|
||||
this.recommendations = source["recommendations"];
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice && a.map) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class MALWatchlist {
|
||||
data: struct { Node struct { Id int "json:\"id\" ts_type:\"id\""; Title string "json:\"title\" ts_type:\"title\""; MainPicture struct { Medium string "json:\"medium\" json:\"medium\""; Large string "json:\"large\" json:\"large\"" } "json:\"main_picture\" json:\"mainPicture\"" } "json:\"node\" json:\"node\""; ListStatus struct { Status string "json:\"status\" ts_type:\"status\""; Score int "json:\"score\" ts_type:\"score\""; NumEpisodesWatched int "json:\"num_episodes_watched\" ts_type:\"numEpisodesWatched\""; IsRewatching bool "json:\"is_rewatching\" ts_type:\"isRewatching\""; UpdatedAt time.Time "json:\"updated_at\" ts_type:\"updatedAt\""; StartDate string "json:\"start_date\" ts_type:\"startDate\""; FinishDate string "json:\"finish_date\" ts_type:\"finishDate\"" } "json:\"list_status\" ts_type:\"listStatus\"" }[];
|
||||
paging: paging;
|
||||
@ -267,6 +433,40 @@ export namespace main {
|
||||
this.is_supporter = source["is_supporter"];
|
||||
}
|
||||
}
|
||||
export class MyListStatus {
|
||||
status: status;
|
||||
score: score;
|
||||
num_episodes_watched: numEpisodesWatched;
|
||||
is_rewatching: isRewatching;
|
||||
start_date: startDate;
|
||||
finish_date: finishDate;
|
||||
priority: priority;
|
||||
num_times_rewatched: numTimesRewatched;
|
||||
rewatch_value: rewatchValue;
|
||||
tags: tags;
|
||||
comments: comments;
|
||||
updated_at: updatedAt;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new MyListStatus(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.status = source["status"];
|
||||
this.score = source["score"];
|
||||
this.num_episodes_watched = source["num_episodes_watched"];
|
||||
this.is_rewatching = source["is_rewatching"];
|
||||
this.start_date = source["start_date"];
|
||||
this.finish_date = source["finish_date"];
|
||||
this.priority = source["priority"];
|
||||
this.num_times_rewatched = source["num_times_rewatched"];
|
||||
this.rewatch_value = source["rewatch_value"];
|
||||
this.tags = source["tags"];
|
||||
this.comments = source["comments"];
|
||||
this.updated_at = source["updated_at"];
|
||||
}
|
||||
}
|
||||
export class SimklUser {
|
||||
user: user;
|
||||
account: account;
|
||||
@ -333,6 +533,41 @@ export namespace struct { MediaList main {
|
||||
|
||||
}
|
||||
|
||||
export namespace struct { Node main {
|
||||
|
||||
export class {
|
||||
node: node;
|
||||
num_recommendations: numRecommendations;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new (source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.node = source["node"];
|
||||
this.num_recommendations = source["num_recommendations"];
|
||||
}
|
||||
}
|
||||
export class {
|
||||
node: node;
|
||||
relation_type: relationType;
|
||||
relation_type_formatted: relationTypeFormatted;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new (source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.node = source["node"];
|
||||
this.relation_type = source["relation_type"];
|
||||
this.relation_type_formatted = source["relation_type_formatted"];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export namespace struct { Node struct { Id int "json:\"id\" ts_type:\"id\""; Title string "json:\"title\" ts_type:\"title\""; MainPicture struct { Medium string "json:\"medium\" json:\"medium\""; Large string "json:\"large\" json:\"large\"" } "json:\"main_picture\" json:\"mainPicture\"" } "json:\"node\" json:\"node\""; ListStatus struct { Status string "json:\"status\" ts_type:\"status\""; Score int "json:\"score\" ts_type:\"score\""; NumEpisodesWatched int "json:\"num_episodes_watched\" ts_type:\"numEpisodesWatched\""; IsRewatching bool "json:\"is_rewatching\" ts_type:\"isRewatching\""; UpdatedAt time {
|
||||
|
||||
export class {
|
||||
|
Reference in New Issue
Block a user