diff --git a/index.html b/index.html
index cc20764..62cd013 100644
--- a/index.html
+++ b/index.html
@@ -524,7 +524,6 @@
-
diff --git a/main.js b/main.js
index 7d48470..ff0af5f 100644
--- a/main.js
+++ b/main.js
@@ -49,8 +49,6 @@ function createWindow() {
}, 1000);
}
- // Open the DevTools.
- mainWindow.webContents.openDevTools();
}
// IPC handler for selecting directory
diff --git a/renderer.js b/renderer.js
index 7576c5c..62f5802 100644
--- a/renderer.js
+++ b/renderer.js
@@ -11,7 +11,6 @@ const showDetailsEl = document.getElementById('show-details');
const progressContainer = document.getElementById('progress-container');
const progressText = document.getElementById('progress-text');
const progressCount = document.getElementById('progress-count');
-const updateRangesBtn = document.getElementById('update-ranges-btn');
// Current state
let currentDirectory = null;
@@ -20,6 +19,7 @@ let currentShow = null;
let currentSeasons = [];
let currentEpisodes = [];
let selectedSeasonEpisodeCount = 0;
+let isUpdatingEpisodeNumbers = false;
// Event Listeners
selectDirBtn.addEventListener('click', selectDirectory);
@@ -33,13 +33,7 @@ document.addEventListener('click', function(e) {
}
});
-// Add click handler for Update Ranges button
-if (updateRangesBtn) {
- updateRangesBtn.addEventListener('click', function() {
- updateEpisodeNumbers();
- checkEpisodeCountMatch();
- });
-}
+
// Add click handler for Begin Mapping button
document.getElementById('begin-mapping-btn').addEventListener('click', beginMapping);
@@ -449,30 +443,41 @@ function handleDrop(e) {
}
function updateEpisodeNumbers() {
- const fileItems = fileListEl.querySelectorAll('.file-item:not(.folder-item)');
- let episodeNum = 1;
+ if (isUpdatingEpisodeNumbers) {
+ console.log('[updateEpisodeNumbers] Already updating, skipping re-entrant call');
+ return;
+ }
- console.log('[updateEpisodeNumbers] Starting with episodeNum:', episodeNum);
- console.log('[updateEpisodeNumbers] Total items:', fileItems.length);
- console.trace('[updateEpisodeNumbers] Call stack');
+ isUpdatingEpisodeNumbers = true;
- fileItems.forEach((item, index) => {
- const episodeEl = item.querySelector('.episode-number');
- if (episodeEl) {
- const storedStart = episodeEl.dataset.episodeStart;
- const storedEnd = episodeEl.dataset.episodeEnd;
- console.log(`[updateEpisodeNumbers] Item ${index}: storedStart="${storedStart}", storedEnd="${storedEnd}"`);
-
- const start = storedStart ? parseInt(storedStart) : episodeNum;
- const end = storedEnd ? parseInt(storedEnd) : start;
-
- const rangeText = start === end ? `${start}` : `${start}-${end}`;
- episodeEl.textContent = rangeText;
- episodeEl.dataset.episode = episodeNum;
- console.log(`[updateEpisodeNumbers] Item ${index}: calculated start=${start}, end=${end}, display=${rangeText}, next episodeNum=${end + 1}`);
- episodeNum = end + 1;
- }
- });
+ try {
+ const fileItems = fileListEl.querySelectorAll('.file-item:not(.folder-item)');
+ let episodeNum = 1;
+
+ console.log('[updateEpisodeNumbers] Starting with episodeNum:', episodeNum);
+ console.log('[updateEpisodeNumbers] Total items:', fileItems.length);
+ console.trace('[updateEpisodeNumbers] Call stack');
+
+ fileItems.forEach((item, index) => {
+ const episodeEl = item.querySelector('.episode-number');
+ if (episodeEl) {
+ const storedStart = episodeEl.dataset.episodeStart;
+ const storedEnd = episodeEl.dataset.episodeEnd;
+ console.log(`[updateEpisodeNumbers] Item ${index}: storedStart="${storedStart}", storedEnd="${storedEnd}"`);
+
+ const start = storedStart ? parseInt(storedStart) : episodeNum;
+ const end = storedEnd ? parseInt(storedEnd) : start;
+
+ const rangeText = start === end ? `${start}` : `${start}-${end}`;
+ episodeEl.textContent = rangeText;
+ episodeEl.dataset.episode = episodeNum;
+ console.log(`[updateEpisodeNumbers] Item ${index}: calculated start=${start}, end=${end}, display=${rangeText}, next episodeNum=${end + 1}`);
+ episodeNum = end + 1;
+ }
+ });
+ } finally {
+ isUpdatingEpisodeNumbers = false;
+ }
}
// Make an episode number editable for range editing