This commit is contained in:
Admin9705
2025-05-02 09:23:45 -04:00
parent a6d323c306
commit 1f695aa1b1
11 changed files with 51 additions and 15 deletions
+19
View File
@@ -1553,6 +1553,25 @@ input:checked + .slider:before {
background-color: rgba(var(--accent-color-rgb), 0.1);
}
/* Operation Type Styles in History Table */
.operation-missing {
background-color: #005a9e;
color: white;
padding: 3px 8px;
border-radius: 4px;
font-size: 0.9em;
display: inline-block;
}
.operation-upgrade {
background-color: #2a9d8f;
color: white;
padding: 3px 8px;
border-radius: 4px;
font-size: 0.9em;
display: inline-block;
}
/* History Controls */
.history-controls {
display: flex;
+13
View File
@@ -232,6 +232,7 @@ const historyModule = {
row.innerHTML = `
<td>${entry.date_time_readable}</td>
<td>${this.escapeHtml(entry.processed_info)}</td>
<td>${this.formatOperationType(entry.operation_type)}</td>
<td>${this.escapeHtml(entry.id)}</td>
<td>${this.escapeHtml(entry.instance_name)}</td>
<td>${this.escapeHtml(entry.how_long_ago)}</td>
@@ -293,6 +294,18 @@ const historyModule = {
};
return String(text).replace(/[&<>"']/g, function(m) { return map[m]; });
},
// Helper function to format operation type
formatOperationType: function(operationType) {
switch (operationType) {
case 'missing':
return '<span class="operation-missing">Missing</span>';
case 'upgrade':
return '<span class="operation-upgrade">Upgrade</span>';
default:
return operationType ? this.escapeHtml(operationType.charAt(0).toUpperCase() + operationType.slice(1)) : 'Unknown';
}
}
};
@@ -52,6 +52,7 @@
<tr>
<th>Date and Time</th>
<th>Processed Information</th>
<th>Operation</th>
<th>ID Number</th>
<th>Name of Instance</th>
<th>How Long Ago</th>
+2 -2
View File
@@ -265,7 +265,7 @@ def process_missing_albums(
lidarr_logger.debug(f"Added artist ID {artist_id} to processed list for {instance_name}")
# Log to history system
log_processed_media("lidarr", f"{artist_name}", artist_id, instance_name)
log_processed_media("lidarr", f"{artist_name}", artist_id, instance_name, "missing")
lidarr_logger.debug(f"Logged history entry for artist: {artist_name}")
time.sleep(0.1) # Small delay between triggers
@@ -319,7 +319,7 @@ def process_missing_albums(
title = album_info.get('title', f'Album ID {album_id}')
artist_name = album_info.get('artist', {}).get('artistName', 'Unknown Artist')
media_name = f"{artist_name} - {title}"
log_processed_media("lidarr", media_name, album_id, instance_name)
log_processed_media("lidarr", media_name, album_id, instance_name, "missing")
lidarr_logger.debug(f"Logged history entry for album: {media_name}")
time.sleep(command_wait_delay) # Basic delay after the single command
+1 -1
View File
@@ -159,7 +159,7 @@ def process_missing_movies(
# Log to history system
year = movie.get("year", "Unknown Year")
media_name = f"{movie_title} ({year})"
log_processed_media("radarr", media_name, movie_id, instance_name)
log_processed_media("radarr", media_name, movie_id, instance_name, "missing")
radarr_logger.debug(f"Logged history entry for movie: {media_name}")
increment_stat("radarr", "hunted")
+1 -1
View File
@@ -140,7 +140,7 @@ def process_missing_books(
readarr_logger.debug(f"Added author ID {author_id} to processed list for {instance_name}")
# Log to history system
log_processed_media("readarr", author_name, author_id, instance_name)
log_processed_media("readarr", author_name, author_id, instance_name, "missing")
readarr_logger.debug(f"Logged history entry for author: {author_name}")
processed_count += 1 # Count processed authors/groups
+1 -1
View File
@@ -211,7 +211,7 @@ def process_missing_episodes_mode(
season_episode = f"S{season_number}E{episode_number}"
media_name = f"{series_title} - {season_episode} - {episode_title}"
log_processed_media("sonarr", media_name, episode_id, instance_name)
log_processed_media("sonarr", media_name, episode_id, instance_name, "missing")
break
# Increment the hunted statistics
+6 -6
View File
@@ -207,8 +207,8 @@ def process_upgrade_episodes_mode(
season_episode = f"S{season_number}E{episode_number}"
# Record the upgrade in history with quality upgrade identifier
media_name = f"{series_title} - {season_episode} - {episode_title} [UPGRADE]"
log_processed_media("sonarr", media_name, episode_id, instance_name)
media_name = f"{series_title} - {season_episode} - {episode_title}"
log_processed_media("sonarr", media_name, episode_id, instance_name, "upgrade")
sonarr_logger.debug(f"Logged quality upgrade to history for episode ID {episode_id}")
except Exception as e:
sonarr_logger.error(f"Failed to log history for episode ID {episode_id}: {str(e)}")
@@ -365,8 +365,8 @@ def process_upgrade_seasons_mode(
season_episode = f"S{season_number}E{episode_number}"
# Record the upgrade in history with quality upgrade identifier
media_name = f"{series_title} - {season_episode} - {episode_title} [UPGRADE]"
log_processed_media("sonarr", media_name, episode_id, instance_name)
media_name = f"{series_title} - {season_episode} - {episode_title}"
log_processed_media("sonarr", media_name, episode_id, instance_name, "upgrade")
sonarr_logger.debug(f"Logged quality upgrade to history for episode ID {episode_id}")
except Exception as e:
sonarr_logger.error(f"Failed to log history for episode ID {episode_id}: {str(e)}")
@@ -518,8 +518,8 @@ def process_upgrade_shows_mode(
season_episode = f"S{season_number}E{episode_number}"
# Record the upgrade in history with quality upgrade identifier
media_name = f"{series_title} - {season_episode} - {episode_title} [UPGRADE]"
log_processed_media("sonarr", media_name, episode_id, instance_name)
media_name = f"{series_title} - {season_episode} - {episode_title}"
log_processed_media("sonarr", media_name, episode_id, instance_name, "upgrade")
sonarr_logger.debug(f"Logged quality upgrade to history for episode ID {episode_id}")
except Exception as e:
sonarr_logger.error(f"Failed to log history for episode ID {episode_id}: {str(e)}")
+1 -1
View File
@@ -177,7 +177,7 @@ def process_missing_items(
# Log to history system
media_name = f"{title} - {season_episode}"
log_processed_media("whisparr", media_name, item_id, instance_name)
log_processed_media("whisparr", media_name, item_id, instance_name, "missing")
whisparr_logger.debug(f"Logged history entry for item: {media_name}")
items_processed += 1
+1
View File
@@ -68,6 +68,7 @@ def add_history_entry(app_type, entry_data):
"processed_info": entry_data["name"],
"id": entry_data["id"],
"instance_name": entry_data["instance_name"],
"operation_type": entry_data.get("operation_type", "missing") # Default to "missing" if not specified
}
history_file = os.path.join(HISTORY_BASE_PATH, f"{app_type}_history.json")
+5 -3
View File
@@ -5,7 +5,7 @@ from src.primary.utils.logger import get_logger
logger = get_logger("history")
def log_processed_media(app_type, media_name, media_id, instance_name):
def log_processed_media(app_type, media_name, media_id, instance_name, operation_type="missing"):
"""
Log when media is processed by an app instance
@@ -14,6 +14,7 @@ def log_processed_media(app_type, media_name, media_id, instance_name):
- media_name: str - Name of the processed media
- media_id: str/int - ID of the processed media
- instance_name: str - Name of the instance that processed it
- operation_type: str - Type of operation ("missing" or "upgrade")
Returns:
- bool - Success or failure
@@ -22,12 +23,13 @@ def log_processed_media(app_type, media_name, media_id, instance_name):
entry_data = {
"name": media_name,
"id": str(media_id),
"instance_name": instance_name
"instance_name": instance_name,
"operation_type": operation_type
}
result = add_history_entry(app_type, entry_data)
if result:
logger.info(f"Logged history entry for {app_type}: {media_name}")
logger.info(f"Logged history entry for {app_type}: {media_name} ({operation_type})")
return True
else:
logger.error(f"Failed to log history entry for {app_type}: {media_name}")