mirror of
https://github.com/plexguide/Huntarr.git
synced 2026-05-02 12:59:12 -05:00
update
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)}")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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}")
|
||||
|
||||
Reference in New Issue
Block a user