diff --git a/core/models/media_model.php b/core/models/media_model.php
index ad873823..73cb1ecd 100644
--- a/core/models/media_model.php
+++ b/core/models/media_model.php
@@ -954,7 +954,7 @@ public function search_filters_validate($args = [])
OBFHelpers::require_args($args, ['filters']);
$filters = $args['filters'];
- $allowed_filters = ['comments','artist','title','album','year','type','category','country','language','genre','duration','is_copyright_owner','status','dynamic_select'];
+ $allowed_filters = ['comments','artist','title','album','year','type','category','country','language','genre','duration','is_copyright_owner','never_broadcasted','status','dynamic_select'];
$allowed_operators = [
// deprecated
'like',
@@ -1021,6 +1021,16 @@ public function search_filters_where_array($args = [])
$filter = get_object_vars($filter);
}
+ // never_broadcasted filter: uses subquery, skip normal column mapping
+ if ($filter['filter'] == 'never_broadcasted') {
+ if ($filter['val'] == '1') {
+ $where_array[] = 'NOT EXISTS (SELECT 1 FROM players_log WHERE players_log.media_id = media.id)';
+ } else {
+ $where_array[] = 'EXISTS (SELECT 1 FROM players_log WHERE players_log.media_id = media.id)';
+ }
+ continue;
+ }
+
// our possible column (mappings)
$column_array = [];
$column_array['artist'] = 'media.artist';
diff --git a/public/html/sidebar/advanced_search.html b/public/html/sidebar/advanced_search.html
index cffcba45..215db251 100644
--- a/public/html/sidebar/advanced_search.html
+++ b/public/html/sidebar/advanced_search.html
@@ -21,6 +21,7 @@
+