Fix hiding anime on completion
All checks were successful
timw4mail/HummingBirdAnimeClient/pipeline/pr-master This commit looks good
All checks were successful
timw4mail/HummingBirdAnimeClient/pipeline/pr-master This commit looks good
This commit is contained in:
parent
913f9082ef
commit
ecce90abd5
@ -6,7 +6,7 @@ const search = (query) => {
|
|||||||
_.show('.cssload-loader');
|
_.show('.cssload-loader');
|
||||||
|
|
||||||
// Do the api search
|
// Do the api search
|
||||||
return _.get(_.url('/anime-collection/search'), { query }, (searchResults, status) => {
|
_.get(_.url('/anime-collection/search'), { query }, (searchResults, status) => {
|
||||||
searchResults = JSON.parse(searchResults);
|
searchResults = JSON.parse(searchResults);
|
||||||
|
|
||||||
// Hide the loader
|
// Hide the loader
|
||||||
@ -18,19 +18,13 @@ const search = (query) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (_.hasElement('.anime #search')) {
|
if (_.hasElement('.anime #search')) {
|
||||||
let prevRequest = null;
|
|
||||||
|
|
||||||
_.on('#search', 'input', _.throttle(250, (e) => {
|
_.on('#search', 'input', _.throttle(250, (e) => {
|
||||||
const query = encodeURIComponent(e.target.value);
|
const query = encodeURIComponent(e.target.value);
|
||||||
if (query === '') {
|
if (query === '') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prevRequest !== null) {
|
search(query);
|
||||||
prevRequest.abort();
|
|
||||||
}
|
|
||||||
|
|
||||||
prevRequest = search(query);
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,12 +47,12 @@ _.on('body.anime.list', 'click', '.plus-one', (e) => {
|
|||||||
// If the episode count is 0, and incremented,
|
// If the episode count is 0, and incremented,
|
||||||
// change status to currently watching
|
// change status to currently watching
|
||||||
if (isNaN(watchedCount) || watchedCount === 0) {
|
if (isNaN(watchedCount) || watchedCount === 0) {
|
||||||
data.data.status = 'CURRENT';
|
data.data.status = 'current';
|
||||||
}
|
}
|
||||||
|
|
||||||
// If you increment at the last episode, mark as completed
|
// If you increment at the last episode, mark as completed
|
||||||
if ((!isNaN(watchedCount)) && (watchedCount + 1) === totalCount) {
|
if ((!isNaN(watchedCount)) && (watchedCount + 1) === totalCount) {
|
||||||
data.data.status = 'COMPLETED';
|
data.data.status = 'completed';
|
||||||
}
|
}
|
||||||
|
|
||||||
_.show('#loading-shadow');
|
_.show('#loading-shadow');
|
||||||
@ -78,7 +72,7 @@ _.on('body.anime.list', 'click', '.plus-one', (e) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (String(resData.data.status).toUpperCase() === 'COMPLETED') {
|
if (resData.data.libraryEntry.update.libraryEntry.status === 'COMPLETED') {
|
||||||
_.hide(parentSel);
|
_.hide(parentSel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -590,7 +590,7 @@ const search = (query) => {
|
|||||||
AnimeClient.show('.cssload-loader');
|
AnimeClient.show('.cssload-loader');
|
||||||
|
|
||||||
// Do the api search
|
// Do the api search
|
||||||
return AnimeClient.get(AnimeClient.url('/anime-collection/search'), { query }, (searchResults, status) => {
|
AnimeClient.get(AnimeClient.url('/anime-collection/search'), { query }, (searchResults, status) => {
|
||||||
searchResults = JSON.parse(searchResults);
|
searchResults = JSON.parse(searchResults);
|
||||||
|
|
||||||
// Hide the loader
|
// Hide the loader
|
||||||
@ -602,19 +602,13 @@ const search = (query) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (AnimeClient.hasElement('.anime #search')) {
|
if (AnimeClient.hasElement('.anime #search')) {
|
||||||
let prevRequest = null;
|
|
||||||
|
|
||||||
AnimeClient.on('#search', 'input', AnimeClient.throttle(250, (e) => {
|
AnimeClient.on('#search', 'input', AnimeClient.throttle(250, (e) => {
|
||||||
const query = encodeURIComponent(e.target.value);
|
const query = encodeURIComponent(e.target.value);
|
||||||
if (query === '') {
|
if (query === '') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prevRequest !== null) {
|
search(query);
|
||||||
prevRequest.abort();
|
|
||||||
}
|
|
||||||
|
|
||||||
prevRequest = search(query);
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -637,12 +631,12 @@ AnimeClient.on('body.anime.list', 'click', '.plus-one', (e) => {
|
|||||||
// If the episode count is 0, and incremented,
|
// If the episode count is 0, and incremented,
|
||||||
// change status to currently watching
|
// change status to currently watching
|
||||||
if (isNaN(watchedCount) || watchedCount === 0) {
|
if (isNaN(watchedCount) || watchedCount === 0) {
|
||||||
data.data.status = 'CURRENT';
|
data.data.status = 'current';
|
||||||
}
|
}
|
||||||
|
|
||||||
// If you increment at the last episode, mark as completed
|
// If you increment at the last episode, mark as completed
|
||||||
if ((!isNaN(watchedCount)) && (watchedCount + 1) === totalCount) {
|
if ((!isNaN(watchedCount)) && (watchedCount + 1) === totalCount) {
|
||||||
data.data.status = 'COMPLETED';
|
data.data.status = 'completed';
|
||||||
}
|
}
|
||||||
|
|
||||||
AnimeClient.show('#loading-shadow');
|
AnimeClient.show('#loading-shadow');
|
||||||
@ -662,7 +656,7 @@ AnimeClient.on('body.anime.list', 'click', '.plus-one', (e) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (String(resData.data.status).toUpperCase() === 'COMPLETED') {
|
if (resData.data.libraryEntry.update.libraryEntry.status === 'COMPLETED') {
|
||||||
AnimeClient.hide(parentSel);
|
AnimeClient.hide(parentSel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
18
public/js/scripts.min.js
vendored
18
public/js/scripts.min.js
vendored
@ -16,13 +16,13 @@ function(beat){var status=JSON.parse(beat);if(status.hasAuth!==true){document.re
|
|||||||
x.id+'.webp" type="image/webp" />\n\t\t\t\t\t\t\t<source srcset="/public/images/anime/'+x.id+'.jpg" type="image/jpeg" />\n\t\t\t\t\t\t\t<img src="/public/images/anime/'+x.id+'.jpg" alt="" width="220" />\n\t\t\t\t\t\t</picture>\n\t\t\t\t\t\t<span class="name">\n\t\t\t\t\t\t\t'+item.canonicalTitle+"<br />\n\t\t\t\t\t\t\t<small>"+titles+'</small>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t\t<div class="table">\n\t\t\t\t\t<div class="row">\n\t\t\t\t\t\t<span class="edit">\n\t\t\t\t\t\t\t<a class="bracketed" href="/anime/details/'+
|
x.id+'.webp" type="image/webp" />\n\t\t\t\t\t\t\t<source srcset="/public/images/anime/'+x.id+'.jpg" type="image/jpeg" />\n\t\t\t\t\t\t\t<img src="/public/images/anime/'+x.id+'.jpg" alt="" width="220" />\n\t\t\t\t\t\t</picture>\n\t\t\t\t\t\t<span class="name">\n\t\t\t\t\t\t\t'+item.canonicalTitle+"<br />\n\t\t\t\t\t\t\t<small>"+titles+'</small>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t\t<div class="table">\n\t\t\t\t\t<div class="row">\n\t\t\t\t\t\t<span class="edit">\n\t\t\t\t\t\t\t<a class="bracketed" href="/anime/details/'+
|
||||||
item.slug+'">Info Page</a>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</article>\n\t\t')});return results.join("")}function renderMangaSearchResults(data){var results=[];data.forEach(function(x){var item=x.attributes;var titles=item.titles.join("<br />");results.push('\n\t\t\t<article class="media search">\n\t\t\t\t<div class="name">\n\t\t\t\t\t<input type="radio" id="mal_'+item.slug+'" name="mal_id" value="'+x.mal_id+'" />\n\t\t\t\t\t<input type="radio" class="big-check" id="'+
|
item.slug+'">Info Page</a>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</article>\n\t\t')});return results.join("")}function renderMangaSearchResults(data){var results=[];data.forEach(function(x){var item=x.attributes;var titles=item.titles.join("<br />");results.push('\n\t\t\t<article class="media search">\n\t\t\t\t<div class="name">\n\t\t\t\t\t<input type="radio" id="mal_'+item.slug+'" name="mal_id" value="'+x.mal_id+'" />\n\t\t\t\t\t<input type="radio" class="big-check" id="'+
|
||||||
item.slug+'" name="id" value="'+x.id+'" />\n\t\t\t\t\t<label for="'+item.slug+'">\n\t\t\t\t\t\t<picture width="220">\n\t\t\t\t\t\t\t<source srcset="/public/images/manga/'+x.id+'.webp" type="image/webp" />\n\t\t\t\t\t\t\t<source srcset="/public/images/manga/'+x.id+'.jpg" type="image/jpeg" />\n\t\t\t\t\t\t\t<img src="/public/images/manga/'+x.id+'.jpg" alt="" width="220" />\n\t\t\t\t\t\t</picture>\n\t\t\t\t\t\t<span class="name">\n\t\t\t\t\t\t\t'+item.canonicalTitle+"<br />\n\t\t\t\t\t\t\t<small>"+titles+
|
item.slug+'" name="id" value="'+x.id+'" />\n\t\t\t\t\t<label for="'+item.slug+'">\n\t\t\t\t\t\t<picture width="220">\n\t\t\t\t\t\t\t<source srcset="/public/images/manga/'+x.id+'.webp" type="image/webp" />\n\t\t\t\t\t\t\t<source srcset="/public/images/manga/'+x.id+'.jpg" type="image/jpeg" />\n\t\t\t\t\t\t\t<img src="/public/images/manga/'+x.id+'.jpg" alt="" width="220" />\n\t\t\t\t\t\t</picture>\n\t\t\t\t\t\t<span class="name">\n\t\t\t\t\t\t\t'+item.canonicalTitle+"<br />\n\t\t\t\t\t\t\t<small>"+titles+
|
||||||
'</small>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t\t<div class="table">\n\t\t\t\t\t<div class="row">\n\t\t\t\t\t\t<span class="edit">\n\t\t\t\t\t\t\t<a class="bracketed" href="/manga/details/'+item.slug+'">Info Page</a>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</article>\n\t\t')});return results.join("")}var search=function(query){AnimeClient.show(".cssload-loader");return AnimeClient.get(AnimeClient.url("/anime-collection/search"),{query:query},function(searchResults,
|
'</small>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\t\t\t\t<div class="table">\n\t\t\t\t\t<div class="row">\n\t\t\t\t\t\t<span class="edit">\n\t\t\t\t\t\t\t<a class="bracketed" href="/manga/details/'+item.slug+'">Info Page</a>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</article>\n\t\t')});return results.join("")}var search=function(query){AnimeClient.show(".cssload-loader");AnimeClient.get(AnimeClient.url("/anime-collection/search"),{query:query},function(searchResults,
|
||||||
status){searchResults=JSON.parse(searchResults);AnimeClient.hide(".cssload-loader");AnimeClient.$("#series-list")[0].innerHTML=renderAnimeSearchResults(searchResults.data)})};if(AnimeClient.hasElement(".anime #search")){var prevRequest=null;AnimeClient.on("#search","input",AnimeClient.throttle(250,function(e){var query=encodeURIComponent(e.target.value);if(query==="")return;if(prevRequest!==null)prevRequest.abort();prevRequest=search(query)}))}AnimeClient.on("body.anime.list","click",".plus-one",
|
status){searchResults=JSON.parse(searchResults);AnimeClient.hide(".cssload-loader");AnimeClient.$("#series-list")[0].innerHTML=renderAnimeSearchResults(searchResults.data)})};if(AnimeClient.hasElement(".anime #search"))AnimeClient.on("#search","input",AnimeClient.throttle(250,function(e){var query=encodeURIComponent(e.target.value);if(query==="")return;search(query)}));AnimeClient.on("body.anime.list","click",".plus-one",function(e){var parentSel=AnimeClient.closestParent(e.target,"article");var watchedCount=
|
||||||
function(e){var parentSel=AnimeClient.closestParent(e.target,"article");var watchedCount=parseInt(AnimeClient.$(".completed_number",parentSel)[0].textContent,10)||0;var totalCount=parseInt(AnimeClient.$(".total_number",parentSel)[0].textContent,10);var title=AnimeClient.$(".name a",parentSel)[0].textContent;var data={id:parentSel.dataset.kitsuId,mal_id:parentSel.dataset.malId,data:{progress:watchedCount+1}};if(isNaN(watchedCount)||watchedCount===0)data.data.status="CURRENT";if(!isNaN(watchedCount)&&
|
parseInt(AnimeClient.$(".completed_number",parentSel)[0].textContent,10)||0;var totalCount=parseInt(AnimeClient.$(".total_number",parentSel)[0].textContent,10);var title=AnimeClient.$(".name a",parentSel)[0].textContent;var data={id:parentSel.dataset.kitsuId,mal_id:parentSel.dataset.malId,data:{progress:watchedCount+1}};if(isNaN(watchedCount)||watchedCount===0)data.data.status="current";if(!isNaN(watchedCount)&&watchedCount+1===totalCount)data.data.status="completed";AnimeClient.show("#loading-shadow");
|
||||||
watchedCount+1===totalCount)data.data.status="COMPLETED";AnimeClient.show("#loading-shadow");AnimeClient.ajax(AnimeClient.url("/anime/increment"),{data:data,dataType:"json",type:"POST",success:function(res){var resData=JSON.parse(res);if(resData.errors){AnimeClient.hide("#loading-shadow");AnimeClient.showMessage("error","Failed to update "+title+". ");AnimeClient.scrollToTop();return}if(String(resData.data.status).toUpperCase()==="COMPLETED")AnimeClient.hide(parentSel);AnimeClient.hide("#loading-shadow");
|
AnimeClient.ajax(AnimeClient.url("/anime/increment"),{data:data,dataType:"json",type:"POST",success:function(res){var resData=JSON.parse(res);if(resData.errors){AnimeClient.hide("#loading-shadow");AnimeClient.showMessage("error","Failed to update "+title+". ");AnimeClient.scrollToTop();return}if(resData.data.libraryEntry.update.libraryEntry.status==="COMPLETED")AnimeClient.hide(parentSel);AnimeClient.hide("#loading-shadow");AnimeClient.showMessage("success","Successfully updated "+title);AnimeClient.$(".completed_number",
|
||||||
AnimeClient.showMessage("success","Successfully updated "+title);AnimeClient.$(".completed_number",parentSel)[0].textContent=++watchedCount;AnimeClient.scrollToTop()},error:function(){AnimeClient.hide("#loading-shadow");AnimeClient.showMessage("error","Failed to update "+title+". ");AnimeClient.scrollToTop()}})});var search$1=function(query){AnimeClient.show(".cssload-loader");return AnimeClient.get(AnimeClient.url("/manga/search"),{query:query},function(searchResults,status){searchResults=JSON.parse(searchResults);
|
parentSel)[0].textContent=++watchedCount;AnimeClient.scrollToTop()},error:function(){AnimeClient.hide("#loading-shadow");AnimeClient.showMessage("error","Failed to update "+title+". ");AnimeClient.scrollToTop()}})});var search$1=function(query){AnimeClient.show(".cssload-loader");return AnimeClient.get(AnimeClient.url("/manga/search"),{query:query},function(searchResults,status){searchResults=JSON.parse(searchResults);AnimeClient.hide(".cssload-loader");AnimeClient.$("#series-list")[0].innerHTML=
|
||||||
AnimeClient.hide(".cssload-loader");AnimeClient.$("#series-list")[0].innerHTML=renderMangaSearchResults(searchResults.data)})};if(AnimeClient.hasElement(".manga #search")){var prevRequest$1=null;AnimeClient.on("#search","input",AnimeClient.throttle(250,function(e){var query=encodeURIComponent(e.target.value);if(query==="")return;if(prevRequest$1!==null)prevRequest$1.abort();prevRequest$1=search$1(query)}))}AnimeClient.on(".manga.list","click",".edit-buttons button",function(e){var thisSel=e.target;
|
renderMangaSearchResults(searchResults.data)})};if(AnimeClient.hasElement(".manga #search")){var prevRequest=null;AnimeClient.on("#search","input",AnimeClient.throttle(250,function(e){var query=encodeURIComponent(e.target.value);if(query==="")return;if(prevRequest!==null)prevRequest.abort();prevRequest=search$1(query)}))}AnimeClient.on(".manga.list","click",".edit-buttons button",function(e){var thisSel=e.target;var parentSel=AnimeClient.closestParent(e.target,"article");var type=thisSel.classList.contains("plus-one-chapter")?
|
||||||
var parentSel=AnimeClient.closestParent(e.target,"article");var type=thisSel.classList.contains("plus-one-chapter")?"chapter":"volume";var completed=parseInt(AnimeClient.$("."+type+"s_read",parentSel)[0].textContent,10)||0;var total=parseInt(AnimeClient.$("."+type+"_count",parentSel)[0].textContent,10);var mangaName=AnimeClient.$(".name",parentSel)[0].textContent;if(isNaN(completed))completed=0;var data={id:parentSel.dataset.kitsuId,mal_id:parentSel.dataset.malId,data:{progress:completed}};if(isNaN(completed)||
|
"chapter":"volume";var completed=parseInt(AnimeClient.$("."+type+"s_read",parentSel)[0].textContent,10)||0;var total=parseInt(AnimeClient.$("."+type+"_count",parentSel)[0].textContent,10);var mangaName=AnimeClient.$(".name",parentSel)[0].textContent;if(isNaN(completed))completed=0;var data={id:parentSel.dataset.kitsuId,mal_id:parentSel.dataset.malId,data:{progress:completed}};if(isNaN(completed)||completed===0)data.data.status="CURRENT";if(!isNaN(completed)&&completed+1===total)data.data.status="COMPLETED";
|
||||||
completed===0)data.data.status="CURRENT";if(!isNaN(completed)&&completed+1===total)data.data.status="COMPLETED";data.data.progress=++completed;AnimeClient.show("#loading-shadow");AnimeClient.ajax(AnimeClient.url("/manga/increment"),{data:data,dataType:"json",type:"POST",mimeType:"application/json",success:function(){if(String(data.data.status).toUpperCase()==="COMPLETED")AnimeClient.hide(parentSel);AnimeClient.hide("#loading-shadow");AnimeClient.$("."+type+"s_read",parentSel)[0].textContent=completed;
|
data.data.progress=++completed;AnimeClient.show("#loading-shadow");AnimeClient.ajax(AnimeClient.url("/manga/increment"),{data:data,dataType:"json",type:"POST",mimeType:"application/json",success:function(){if(String(data.data.status).toUpperCase()==="COMPLETED")AnimeClient.hide(parentSel);AnimeClient.hide("#loading-shadow");AnimeClient.$("."+type+"s_read",parentSel)[0].textContent=completed;AnimeClient.showMessage("success","Successfully updated "+mangaName);AnimeClient.scrollToTop()},error:function(){AnimeClient.hide("#loading-shadow");
|
||||||
AnimeClient.showMessage("success","Successfully updated "+mangaName);AnimeClient.scrollToTop()},error:function(){AnimeClient.hide("#loading-shadow");AnimeClient.showMessage("error","Failed to update "+mangaName);AnimeClient.scrollToTop()}})})})()
|
AnimeClient.showMessage("error","Failed to update "+mangaName);AnimeClient.scrollToTop()}})})})()
|
||||||
//# sourceMappingURL=scripts.min.js.map
|
//# sourceMappingURL=scripts.min.js.map
|
||||||
|
File diff suppressed because one or more lines are too long
@ -4,8 +4,14 @@
|
|||||||
mutation (
|
mutation (
|
||||||
$userId: ID!
|
$userId: ID!
|
||||||
$id: ID!,
|
$id: ID!,
|
||||||
$mediaType: media_type!,
|
$mediaType: MediaTypeEnum!,
|
||||||
$status: MediaListStatus,
|
$status: LibraryEntryStatusEnum!,
|
||||||
|
$notes: String,
|
||||||
|
$private: Boolean,
|
||||||
|
$progress: Int,
|
||||||
|
$reconsumeCount: Int,
|
||||||
|
$reconsuming: Boolean,
|
||||||
|
$rating: Int,
|
||||||
) {
|
) {
|
||||||
libraryEntry {
|
libraryEntry {
|
||||||
create(input: {
|
create(input: {
|
||||||
@ -13,9 +19,30 @@ mutation (
|
|||||||
mediaId: $id
|
mediaId: $id
|
||||||
mediaType: $mediaType
|
mediaType: $mediaType
|
||||||
status: $status
|
status: $status
|
||||||
|
notes: $notes
|
||||||
|
private: $private
|
||||||
|
progress: $progress
|
||||||
|
reconsuming: $reconsuming
|
||||||
|
reconsumeCount: $reconsumeCount
|
||||||
|
rating: $rating
|
||||||
}) {
|
}) {
|
||||||
mediaId
|
libraryEntry {
|
||||||
status
|
user {
|
||||||
|
id
|
||||||
|
slug
|
||||||
|
}
|
||||||
|
media {
|
||||||
|
id
|
||||||
|
slug
|
||||||
|
}
|
||||||
|
status
|
||||||
|
notes
|
||||||
|
private
|
||||||
|
progress
|
||||||
|
reconsumeCount
|
||||||
|
reconsuming
|
||||||
|
rating
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1028,32 +1028,32 @@ type LibraryEntryMutation {
|
|||||||
"Update library entry progress by id"
|
"Update library entry progress by id"
|
||||||
updateProgressById(
|
updateProgressById(
|
||||||
"Update library entry progress by id"
|
"Update library entry progress by id"
|
||||||
input: UpdateProgressByIdInput!
|
input: LibraryEntryUpdateProgressByIdInput!
|
||||||
): LibraryEntryUpdateProgressByIdPayload
|
): LibraryEntryUpdateProgressByIdPayload
|
||||||
"Update library entry progress by media"
|
"Update library entry progress by media"
|
||||||
updateProgressByMedia(
|
updateProgressByMedia(
|
||||||
"Update library entry progress by media"
|
"Update library entry progress by media"
|
||||||
input: UpdateProgressByMediaInput!
|
input: LibraryEntryUpdateProgressByMediaInput!
|
||||||
): LibraryEntryUpdateProgressByMediaPayload
|
): LibraryEntryUpdateProgressByMediaPayload
|
||||||
"Update library entry rating by id"
|
"Update library entry rating by id"
|
||||||
updateRatingById(
|
updateRatingById(
|
||||||
"Update library entry rating by id"
|
"Update library entry rating by id"
|
||||||
input: UpdateRatingByIdInput!
|
input: LibraryEntryUpdateRatingByIdInput!
|
||||||
): LibraryEntryUpdateRatingByIdPayload
|
): LibraryEntryUpdateRatingByIdPayload
|
||||||
"Update library entry rating by media"
|
"Update library entry rating by media"
|
||||||
updateRatingByMedia(
|
updateRatingByMedia(
|
||||||
"Update library entry rating by media"
|
"Update library entry rating by media"
|
||||||
input: UpdateRatingByMediaInput!
|
input: LibraryEntryUpdateRatingByMediaInput!
|
||||||
): LibraryEntryUpdateRatingByMediaPayload
|
): LibraryEntryUpdateRatingByMediaPayload
|
||||||
"Update library entry status by id"
|
"Update library entry status by id"
|
||||||
updateStatusById(
|
updateStatusById(
|
||||||
"Update library entry status by id"
|
"Update library entry status by id"
|
||||||
input: UpdateStatusByIdInput!
|
input: LibraryEntryUpdateStatusByIdInput!
|
||||||
): LibraryEntryUpdateStatusByIdPayload
|
): LibraryEntryUpdateStatusByIdPayload
|
||||||
"Update library entry status by media"
|
"Update library entry status by media"
|
||||||
updateStatusByMedia(
|
updateStatusByMedia(
|
||||||
"Update library entry status by media"
|
"Update library entry status by media"
|
||||||
input: UpdateStatusByMediaInput!
|
input: LibraryEntryUpdateStatusByMediaInput!
|
||||||
): LibraryEntryUpdateStatusByMediaPayload
|
): LibraryEntryUpdateStatusByMediaPayload
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1352,6 +1352,20 @@ type MappingConnection {
|
|||||||
totalCount: Int!
|
totalCount: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"Autogenerated return type of MappingCreate"
|
||||||
|
type MappingCreatePayload {
|
||||||
|
"Graphql Errors"
|
||||||
|
errors: [Generic!]
|
||||||
|
mapping: Mapping
|
||||||
|
}
|
||||||
|
|
||||||
|
"Autogenerated return type of MappingDelete"
|
||||||
|
type MappingDeletePayload {
|
||||||
|
"Graphql Errors"
|
||||||
|
errors: [Generic!]
|
||||||
|
mapping: GenericDelete
|
||||||
|
}
|
||||||
|
|
||||||
"An edge in a connection."
|
"An edge in a connection."
|
||||||
type MappingEdge {
|
type MappingEdge {
|
||||||
"A cursor for use in pagination."
|
"A cursor for use in pagination."
|
||||||
@ -1360,6 +1374,31 @@ type MappingEdge {
|
|||||||
node: Mapping
|
node: Mapping
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type MappingMutation {
|
||||||
|
"Create a Mapping"
|
||||||
|
create(
|
||||||
|
"Create a Mapping"
|
||||||
|
input: MappingCreateInput!
|
||||||
|
): MappingCreatePayload
|
||||||
|
"Delete a Mapping"
|
||||||
|
delete(
|
||||||
|
"Delete a Mapping"
|
||||||
|
input: GenericDeleteInput!
|
||||||
|
): MappingDeletePayload
|
||||||
|
"Update a Mapping"
|
||||||
|
update(
|
||||||
|
"Update a Mapping"
|
||||||
|
input: MappingUpdateInput!
|
||||||
|
): MappingUpdatePayload
|
||||||
|
}
|
||||||
|
|
||||||
|
"Autogenerated return type of MappingUpdate"
|
||||||
|
type MappingUpdatePayload {
|
||||||
|
"Graphql Errors"
|
||||||
|
errors: [Generic!]
|
||||||
|
mapping: Mapping
|
||||||
|
}
|
||||||
|
|
||||||
"Information about a Character starring in a Media"
|
"Information about a Character starring in a Media"
|
||||||
type MediaCharacter implements WithTimestamps {
|
type MediaCharacter implements WithTimestamps {
|
||||||
"The character"
|
"The character"
|
||||||
@ -1541,6 +1580,7 @@ type Mutation {
|
|||||||
anime: AnimeMutation
|
anime: AnimeMutation
|
||||||
episode: EpisodeMutation
|
episode: EpisodeMutation
|
||||||
libraryEntry: LibraryEntryMutation
|
libraryEntry: LibraryEntryMutation
|
||||||
|
mapping: MappingMutation
|
||||||
pro: ProMutation!
|
pro: ProMutation!
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1940,7 +1980,7 @@ type Query {
|
|||||||
first: Int,
|
first: Int,
|
||||||
"Returns the last _n_ elements from the list."
|
"Returns the last _n_ elements from the list."
|
||||||
last: Int,
|
last: Int,
|
||||||
medium: String!
|
mediaType: MediaTypeEnum!
|
||||||
): MediaConnection!
|
): MediaConnection!
|
||||||
"List of Library Entries by MediaType and MediaId"
|
"List of Library Entries by MediaType and MediaId"
|
||||||
libraryEntriesByMedia(
|
libraryEntriesByMedia(
|
||||||
@ -1977,7 +2017,7 @@ type Query {
|
|||||||
first: Int,
|
first: Int,
|
||||||
"Returns the last _n_ elements from the list."
|
"Returns the last _n_ elements from the list."
|
||||||
last: Int,
|
last: Int,
|
||||||
medium: String!
|
mediaType: MediaTypeEnum!
|
||||||
): MediaConnection!
|
): MediaConnection!
|
||||||
"Find a specific Mapping Item by External ID and External Site."
|
"Find a specific Mapping Item by External ID and External Site."
|
||||||
lookupMapping(externalId: ID!, externalSite: MappingExternalSiteEnum!): MappingItemUnion
|
lookupMapping(externalId: ID!, externalSite: MappingExternalSiteEnum!): MappingItemUnion
|
||||||
@ -2015,6 +2055,42 @@ type Query {
|
|||||||
"Returns the last _n_ elements from the list."
|
"Returns the last _n_ elements from the list."
|
||||||
last: Int
|
last: Int
|
||||||
): ProfileConnection!
|
): ProfileConnection!
|
||||||
|
"Search for Anime by title using Algolia. The most relevant results will be at the top."
|
||||||
|
searchAnimeByTitle(
|
||||||
|
"Returns the elements in the list that come after the specified cursor."
|
||||||
|
after: String,
|
||||||
|
"Returns the elements in the list that come before the specified cursor."
|
||||||
|
before: String,
|
||||||
|
"Returns the first _n_ elements from the list."
|
||||||
|
first: Int,
|
||||||
|
"Returns the last _n_ elements from the list."
|
||||||
|
last: Int,
|
||||||
|
title: String!
|
||||||
|
): AnimeConnection!
|
||||||
|
"Search for Manga by title using Algolia. The most relevant results will be at the top."
|
||||||
|
searchMangaByTitle(
|
||||||
|
"Returns the elements in the list that come after the specified cursor."
|
||||||
|
after: String,
|
||||||
|
"Returns the elements in the list that come before the specified cursor."
|
||||||
|
before: String,
|
||||||
|
"Returns the first _n_ elements from the list."
|
||||||
|
first: Int,
|
||||||
|
"Returns the last _n_ elements from the list."
|
||||||
|
last: Int,
|
||||||
|
title: String!
|
||||||
|
): MangaConnection!
|
||||||
|
"Search for any media (Anime, Manga) by title using Algolia. The most relevant results will be at the top."
|
||||||
|
searchMediaByTitle(
|
||||||
|
"Returns the elements in the list that come after the specified cursor."
|
||||||
|
after: String,
|
||||||
|
"Returns the elements in the list that come before the specified cursor."
|
||||||
|
before: String,
|
||||||
|
"Returns the first _n_ elements from the list."
|
||||||
|
first: Int,
|
||||||
|
"Returns the last _n_ elements from the list."
|
||||||
|
last: Int,
|
||||||
|
title: String!
|
||||||
|
): MediaConnection!
|
||||||
"Get your current session info"
|
"Get your current session info"
|
||||||
session: Session!
|
session: Session!
|
||||||
}
|
}
|
||||||
@ -2395,6 +2471,16 @@ enum MappingExternalSiteEnum {
|
|||||||
TRAKT
|
TRAKT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum MappingItemEnum {
|
||||||
|
ANIME
|
||||||
|
CATEGORY
|
||||||
|
CHARACTER
|
||||||
|
EPISODE
|
||||||
|
MANGA
|
||||||
|
PERSON
|
||||||
|
PRODUCER
|
||||||
|
}
|
||||||
|
|
||||||
"これはアニメやマンガです"
|
"これはアニメやマンガです"
|
||||||
enum MediaTypeEnum {
|
enum MediaTypeEnum {
|
||||||
ANIME
|
ANIME
|
||||||
@ -2551,47 +2637,62 @@ input LibraryEntryUpdateInput {
|
|||||||
volumesOwned: Int
|
volumesOwned: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input LibraryEntryUpdateProgressByIdInput {
|
||||||
|
id: ID!
|
||||||
|
progress: Int!
|
||||||
|
}
|
||||||
|
|
||||||
|
input LibraryEntryUpdateProgressByMediaInput {
|
||||||
|
mediaId: ID!
|
||||||
|
mediaType: MediaTypeEnum!
|
||||||
|
progress: Int!
|
||||||
|
}
|
||||||
|
|
||||||
|
input LibraryEntryUpdateRatingByIdInput {
|
||||||
|
id: ID!
|
||||||
|
"A number between 2 - 20"
|
||||||
|
rating: Int!
|
||||||
|
}
|
||||||
|
|
||||||
|
input LibraryEntryUpdateRatingByMediaInput {
|
||||||
|
mediaId: ID!
|
||||||
|
mediaType: MediaTypeEnum!
|
||||||
|
"A number between 2 - 20"
|
||||||
|
rating: Int!
|
||||||
|
}
|
||||||
|
|
||||||
|
input LibraryEntryUpdateStatusByIdInput {
|
||||||
|
id: ID!
|
||||||
|
status: LibraryEntryStatusEnum!
|
||||||
|
}
|
||||||
|
|
||||||
|
input LibraryEntryUpdateStatusByMediaInput {
|
||||||
|
mediaId: ID!
|
||||||
|
mediaType: MediaTypeEnum!
|
||||||
|
status: LibraryEntryStatusEnum!
|
||||||
|
}
|
||||||
|
|
||||||
|
input MappingCreateInput {
|
||||||
|
externalId: ID!
|
||||||
|
externalSite: MappingExternalSiteEnum!
|
||||||
|
itemId: ID!
|
||||||
|
itemType: MappingItemEnum!
|
||||||
|
}
|
||||||
|
|
||||||
|
input MappingUpdateInput {
|
||||||
|
externalId: ID
|
||||||
|
externalSite: MappingExternalSiteEnum
|
||||||
|
id: ID!
|
||||||
|
itemId: ID
|
||||||
|
itemType: MappingItemEnum
|
||||||
|
}
|
||||||
|
|
||||||
input TitlesListInput {
|
input TitlesListInput {
|
||||||
alternatives: [String!]
|
alternatives: [String!]
|
||||||
canonicalLocale: String
|
canonicalLocale: String
|
||||||
localized: Map
|
localized: Map
|
||||||
}
|
}
|
||||||
|
|
||||||
input UpdateProgressByIdInput {
|
|
||||||
id: ID!
|
|
||||||
progress: Int!
|
|
||||||
}
|
|
||||||
|
|
||||||
input UpdateProgressByMediaInput {
|
|
||||||
mediaId: ID!
|
|
||||||
mediaType: MediaTypeEnum!
|
|
||||||
progress: Int!
|
|
||||||
}
|
|
||||||
|
|
||||||
input UpdateRatingByIdInput {
|
|
||||||
id: ID!
|
|
||||||
"A number between 2 - 20"
|
|
||||||
rating: Int!
|
|
||||||
}
|
|
||||||
|
|
||||||
input UpdateRatingByMediaInput {
|
|
||||||
mediaId: ID!
|
|
||||||
mediaType: MediaTypeEnum!
|
|
||||||
"A number between 2 - 20"
|
|
||||||
rating: Int!
|
|
||||||
}
|
|
||||||
|
|
||||||
input UpdateStatusByIdInput {
|
|
||||||
id: ID!
|
|
||||||
status: LibraryEntryStatusEnum!
|
|
||||||
}
|
|
||||||
|
|
||||||
input UpdateStatusByMediaInput {
|
|
||||||
mediaId: ID!
|
|
||||||
mediaType: MediaTypeEnum!
|
|
||||||
status: LibraryEntryStatusEnum!
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
"A date, expressed as an ISO8601 string"
|
"A date, expressed as an ISO8601 string"
|
||||||
scalar Date
|
scalar Date
|
||||||
|
Loading…
Reference in New Issue
Block a user