Browse Source

[FilterMore] has_media

boyska 2 years ago
parent
commit
0089605181
1 changed files with 13 additions and 1 deletions
  1. 13 1
      bridges/FilterMoreBridge.php

+ 13 - 1
bridges/FilterMoreBridge.php

@@ -49,6 +49,13 @@ class FilterMoreBridge extends FeedExpander {
             'exampleValue' => '-1 hour',
 		),
 
+		'has_media' => array(
+			'name' => 'Has at least 1 media inside',
+			'type' => 'checkbox',
+			'required' => false,
+			'defaultValue' => false,
+		),
+
 		'invert_filter' => array(
 			'name' => 'Invert filter result',
 			'type' => 'checkbox',
@@ -80,7 +87,7 @@ class FilterMoreBridge extends FeedExpander {
             }
         }
 
-        $filters = ['filterByTitle', 'filterByBody', 'filterByAuthor', 'filterByDateNewer', 'filterByDateOlder'];
+        $filters = ['filterByTitle', 'filterByBody', 'filterByAuthor', 'filterByDateNewer', 'filterByDateOlder', 'filterByMedia'];
         $results = [];
 
         foreach($filters as $filter) {
@@ -151,6 +158,11 @@ class FilterMoreBridge extends FeedExpander {
 	protected function filterByDateOlder($item){
         return $this->filterByDate($item, 'older_than', -1);
 	}
+    protected function filterByMedia($item) {
+        if(!$this->getInput('has_media')) return null;
+        if(count($item['enclosures']) > 0) return true;
+        return false;
+    }
 
 	protected function getConjType(){
 		return $this->getInput('conj_type');