Fixing disconnect issue

Fixing count issue
This commit is contained in:
Jason House
2019-11-07 21:10:30 +09:00
parent 604291af90
commit bcd553223c
2 changed files with 3 additions and 16 deletions

View File

@@ -117,6 +117,7 @@ function search() {
searchPosition.html('');
backButton.text('restart');
setCopyToClipboardEnabled(true);
disconnect();
},
error: function (err) {
disconnect();
@@ -153,7 +154,6 @@ function connect() {
stompClient.subscribe('/topic/newMovieFound', function (status) {
const obj = JSON.parse(status.body);
showSearchStatus(obj);
shouldDisconnect(obj)
});
});
}
@@ -165,28 +165,15 @@ function disconnect() {
console.log("Disconnected");
}
function shouldDisconnect(obj) {
if (obj && obj.searchedMovieCount && obj.totalMovieCount && obj.totalMovieCount === obj.searchedMovieCount) {
disconnect();
//Cancel Search
$.ajax({
type: "PUT",
url: "cancelSearch",
contentType: "application/json",
});
}
}
function showSearchStatus(obj) {
if (!obj) {
searchResults.html("");
} else {
movieCounter++;
let percentage = Math.trunc(obj.searchedMovieCount / obj.totalMovieCount * 100);
searchPosition.html(`<h5>${obj.searchedMovieCount} of ${obj.totalMovieCount} movies searched. ${percentage}% complete.</h5>`);
if(obj.nextMovie) {
movieCounter++;
searchResults.append(buildMovieDiv(obj.nextMovie));
}
}

View File

@@ -1 +1 @@
"use strict";let stompClient;let backButton;let copyToClipboard;let searchResults;let searchPosition;let progressContainer;let searchTitle;let searchDescription;let movieCounter;document.addEventListener("DOMContentLoaded",function(){const elements=document.querySelectorAll(".modal");M.Modal.init(elements);backButton=$("#cancel");copyToClipboard=$("#copyToClipboard");searchResults=$("#searchResults");searchPosition=$("#searchPosition");progressContainer=$("#progressContainer");searchTitle=$("#searchTitle");searchDescription=$("#searchDescription");backButton.click(function(){$("#warningModal").modal("open")});setCopyToClipboardEnabled(false);copyToClipboard.click(function(){CopyToClipboard("searchResults");M.toast({html:"Copied to Clipboard"})});$("#agree").click(function(){$.ajax({type:"PUT",url:"https://"+location.hostname+":"+location.port+"/cancelSearch",contentType:"application/json"});location.assign("index.html")});connect();search()});window.onbeforeunload=function(){disconnect()};function setCopyToClipboardEnabled(bool){if(bool){copyToClipboard.removeClass("disabled")}else{copyToClipboard.addClass("disabled")}}function search(){movieCounter=0;progressContainer.hide();searchTitle.text("Searching for Movies...");searchDescription.text("Gaps is looking through your Plex libraries. This could take a while so just sit tight and we'll find all the missing movies for you.");const libraries=JSON.parse(Cookies.get("libraries"));const address=Cookies.get("address");const port=Cookies.get("port");const plexToken=Cookies.get("plex_token");const movieDbApiKey=Cookies.get("movie_db_api_key");let plexMovieUrls=[];for(const library of libraries){let data={"X-Plex-Token":plexToken};let plexMovieUrl="http://"+address+":"+port+"/library/sections/"+library.key+"/all/?"+encodeQueryData(data);plexMovieUrls.push(plexMovieUrl)}const gaps={movieDbApiKey:movieDbApiKey,writeToFile:true,searchFromPlex:true,movieUrls:plexMovieUrls};$.ajax({type:"POST",url:"https://"+location.hostname+":"+location.port+"/submit",data:JSON.stringify(gaps),contentType:"application/json",timeout:0,success:function(movies){searchResults.html(buildMoviesDiv(movies));movieCounter=movies.length;searchTitle.text(`${movieCounter} movies to add to complete your collections`);searchDescription.text("Below is everything Gaps found that is missing from your movie collections.");progressContainer.hide();backButton.text("restart");setCopyToClipboardEnabled(true)},error:function(err){disconnect();let message="Unknown error. Check docker Gaps log file.";if(err){message=JSON.parse(err.responseText).message;console.error(message)}searchTitle.text("An error occurred...");searchDescription.text("");progressContainer.hide();backButton.text("restart");setCopyToClipboardEnabled(false)}});showSearchStatus()}function buildMoviesDiv(movies){let result="";for(let movie of movies){result+=buildMovieDiv(movie)}return result}function buildMovieDiv(movie){return"<div>"+buildMovie(movie)+"</div>"}function buildMovie(movie){return`${movie.name} (${movie.year}) from '${movie.collection}'`}function connect(){const socket=new SockJS("/gs-guide-websocket");stompClient=Stomp.over(socket);stompClient.connect({},function(){stompClient.subscribe("/topic/currentSearchResults",function(status){let obj=JSON.parse(status.body);showSearchStatus(obj);shouldDisconnect(obj)})})}function disconnect(){if(stompClient!==null){stompClient.disconnect()}console.log("Disconnected")}function shouldDisconnect(obj){if(obj&&obj.searchedMovieCount&&obj.totalMovieCount&&obj.totalMovieCount===obj.searchedMovieCount){disconnect();$.ajax({type:"PUT",url:"http://"+location.hostname+":"+location.port+"/cancelSearch",contentType:"application/json"})}}function showSearchStatus(obj){if(!obj||!obj.searchedMovieCount&&!obj.totalMovieCount&&obj.totalMovieCount===0){searchResults.html("")}else{progressContainer.show();let percentage=Math.trunc(obj.searchedMovieCount/obj.totalMovieCount*100);searchPosition.html(`<h5>${obj.searchedMovieCount} of ${obj.totalMovieCount} movies searched. ${percentage}% complete.</h5>`);movieCounter=obj.moviesFound.length;searchResults.html(buildMoviesDiv(obj.moviesFound));$("#progressBar").css("width",percentage+"%")}}function encodeQueryData(data){const ret=[];for(let d in data){ret.push(encodeURIComponent(d)+"="+encodeURIComponent(data[d]))}return ret.join("&")}function CopyToClipboard(containerId){let range;if(document.selection){range=document.body.createTextRange();range.moveToElementText(document.getElementById(containerId));range.select().createTextRange();document.execCommand("copy")}else if(window.getSelection){range=document.createRange();range.selectNode(document.getElementById(containerId));window.getSelection().addRange(range);document.execCommand("copy")}}
"use strict";let stompClient;let backButton;let copyToClipboard;let searchResults;let searchPosition;let progressContainer;let searchTitle;let searchDescription;let movieCounter;document.addEventListener("DOMContentLoaded",function(){const elements=document.querySelectorAll(".modal");M.Modal.init(elements);backButton=$("#cancel");copyToClipboard=$("#copyToClipboard");searchResults=$("#searchResults");searchPosition=$("#searchPosition");progressContainer=$("#progressContainer");searchTitle=$("#searchTitle");searchDescription=$("#searchDescription");backButton.click(function(){$("#warningModal").modal("open")});setCopyToClipboardEnabled(false);copyToClipboard.click(function(){CopyToClipboard("searchResults");M.toast({html:"Copied to Clipboard"})});$("#agree").click(function(){$.ajax({type:"PUT",url:"cancelSearch",contentType:"application/json"});location.assign("index.html")});connect();search()});window.onbeforeunload=function(){disconnect()};function setCopyToClipboardEnabled(bool){if(bool){copyToClipboard.removeClass("disabled")}else{copyToClipboard.addClass("disabled")}}function search(){movieCounter=0;progressContainer.show();searchResults.html("");searchTitle.text("Searching for Movies...");searchDescription.text("Gaps is looking through your Plex libraries. This could take a while so just sit tight and we'll find all the missing movies for you.");const libraries=JSON.parse(Cookies.get("libraries"));const address=Cookies.get("address");const port=Cookies.get("port");const plexToken=Cookies.get("plex_token");const movieDbApiKey=Cookies.get("movie_db_api_key");let plexMovieUrls=[];for(const library of libraries){let data={"X-Plex-Token":plexToken};let plexMovieUrl="http://"+address+":"+port+"/library/sections/"+library.key+"/all/?"+encodeQueryData(data);plexMovieUrls.push(plexMovieUrl)}const gaps={movieDbApiKey:movieDbApiKey,writeToFile:true,searchFromPlex:true,movieUrls:plexMovieUrls};$.ajax({type:"POST",url:"submit",data:JSON.stringify(gaps),contentType:"application/json",timeout:0,success:function(){searchTitle.text(`${movieCounter} movies to add to complete your collections`);searchDescription.text("Below is everything Gaps found that is missing from your movie collections.");progressContainer.hide();searchPosition.html("");backButton.text("restart");setCopyToClipboardEnabled(true);disconnect()},error:function(err){disconnect();let message="Unknown error. Check docker Gaps log file.";if(err){message=JSON.parse(err.responseText).message;console.error(message)}searchTitle.text("An error occurred...");searchDescription.text("");searchPosition.html("");progressContainer.hide();backButton.text("restart");setCopyToClipboardEnabled(false)}});showSearchStatus()}function buildMovieDiv(movie){return"<div>"+buildMovie(movie)+"</div>"}function buildMovie(movie){return`${movie.name} (${movie.year}) from '${movie.collection}'`}function connect(){const socket=new SockJS("/gs-guide-websocket");stompClient=Stomp.over(socket);stompClient.connect({},function(){stompClient.subscribe("/topic/newMovieFound",function(status){const obj=JSON.parse(status.body);showSearchStatus(obj)})})}function disconnect(){if(stompClient!==null){stompClient.disconnect()}console.log("Disconnected")}function showSearchStatus(obj){if(!obj){searchResults.html("")}else{let percentage=Math.trunc(obj.searchedMovieCount/obj.totalMovieCount*100);searchPosition.html(`<h5>${obj.searchedMovieCount} of ${obj.totalMovieCount} movies searched. ${percentage}% complete.</h5>`);if(obj.nextMovie){movieCounter++;searchResults.append(buildMovieDiv(obj.nextMovie))}}}function encodeQueryData(data){const ret=[];for(let d in data){ret.push(encodeURIComponent(d)+"="+encodeURIComponent(data[d]))}return ret.join("&")}function CopyToClipboard(containerId){let range;if(document.selection){range=document.body.createTextRange();range.moveToElementText(document.getElementById(containerId));range.select().createTextRange();document.execCommand("copy")}else if(window.getSelection){range=document.createRange();range.selectNode(document.getElementById(containerId));window.getSelection().addRange(range);document.execCommand("copy")}}