diff --git a/batch-add-recording-relationships.user.js b/batch-add-recording-relationships.user.js
index 56cb90c..38bb7ba 100644
--- a/batch-add-recording-relationships.user.js
+++ b/batch-add-recording-relationships.user.js
@@ -877,12 +877,9 @@ function batch_recording_rels() {
// Load works
- var works_load_cache = [],
- work_mbids = [],
- work_titles = [],
- work_comments = [],
- norm_work_titles = [],
- loaded_artists = [];
+ var WORKS_LOAD_CACHE = [];
+ var LOADED_WORKS = {};
+ var LOADED_ARTISTS = {};
function load_works_init() {
var artists_string = localStorage.getItem("bpr_artists " + artist_mbid);
@@ -907,12 +904,14 @@ function batch_recording_rels() {
}
function load_artist_works(mbid, name, callback) {
- if (loaded_artists.indexOf(mbid) !== -1)
+ if (LOADED_ARTISTS[mbid]) {
return false;
- loaded_artists.push(mbid);
+ }
- var $table_row = $("
"),
- $button_cell = $(" | ").css("display", "none");
+ LOADED_ARTISTS[mbid] = true;
+
+ var $table_row = $("
");
+ var $button_cell = $(" | ").css("display", "none");
if (mbid === artist_mbid) {
var $msg = $artist_works_msg;
@@ -996,22 +995,13 @@ function batch_recording_rels() {
for (var i = 0; i < result.length; i++) {
var parts = result[i];
var mbid = parts.slice(0, 36);
- var index = work_mbids.indexOf(mbid);
- if (index !== -1) {
- work_mbids.splice(index, 1);
- work_titles.splice(index, 1);
- norm_work_titles.splice(index, 1);
- }
var rest = parts.slice(36).split("\u00a0");
var title = rest[0];
var comment = rest[1] || "";
var norm_title = normalizeTitle(title);
- work_mbids.push(mbid);
- work_titles.push(title);
- work_comments.push(comment);
- norm_work_titles.push(norm_title);
+ LOADED_WORKS[mbid] = true;
tmp_mbids.push(mbid);
tmp_titles.push(title);
tmp_comments.push(comment);
@@ -1139,11 +1129,10 @@ function batch_recording_rels() {
}
function remove_artist_works(mbid) {
- var index = loaded_artists.indexOf(mbid);
- if (index === -1) {
+ if (!LOADED_ARTISTS[mbid]) {
return;
}
- loaded_artists.splice(index, 1);
+ delete LOADED_ARTISTS[mbid];
var artists = localStorage.getItem("bpr_artists " + artist_mbid).split("\n");
var new_artists = [];
@@ -1159,14 +1148,10 @@ function batch_recording_rels() {
}
function cache_work(mbid, title, comment) {
- work_mbids.push(mbid);
- work_titles.push(title);
- work_comments.push(comment);
- works_load_cache.push(mbid + title + (comment ? "\u00a0" + comment : ""));
+ LOADED_WORKS[mbid] = true;
+ WORKS_LOAD_CACHE.push(mbid + title + (comment ? "\u00a0" + comment : ""));
var norm_title = normalizeTitle(title);
- norm_work_titles.push(norm_title);
-
var works_date = localStorage.getItem("bpr_works_date " + artist_mbid);
var count = $artist_works_msg.data("works_count") + 1;
@@ -1175,17 +1160,17 @@ function batch_recording_rels() {
}
function flush_work_cache() {
- if (!works_load_cache.length) {
+ if (!WORKS_LOAD_CACHE.length) {
return;
}
var works_string = localStorage.getItem("bpr_works " + artist_mbid);
if (works_string) {
- works_string += "\n" + works_load_cache.join("\n");
+ works_string += "\n" + WORKS_LOAD_CACHE.join("\n");
} else {
- works_string = works_load_cache.join("\n");
+ works_string = WORKS_LOAD_CACHE.join("\n");
}
localStorage.setItem("bpr_works " + artist_mbid, works_string);
- works_load_cache = [];
+ WORKS_LOAD_CACHE = [];
}
function load_artist_works_btn() {
@@ -1256,8 +1241,7 @@ function batch_recording_rels() {
relate_to_work($row, mbid, title, comment, false, _callback, false);
}
- var index = work_mbids.indexOf(mbid);
- if (index === -1) {
+ if (!LOADED_WORKS[mbid]) {
cache_work(mbid, title, comment);
flush_work_cache();
}
@@ -1507,8 +1491,7 @@ function batch_recording_rels() {
}
if (check_loaded) {
- var index = work_mbids.indexOf(work_mbid);
- if (index === -1) {
+ if (!LOADED_WORKS[work_mbid]) {
cache_work(work_mbid, work_title, work_comment);
}
}