Selaa lähdekoodia

Fix article filter (#4092)

#fix https://github.com/FreshRSS/FreshRSS/issues/4057
Several search filters where missing for the automatic article actions
Alexandre Alapetite 4 vuotta sitten
vanhempi
commit
f13ef3b102
1 muutettua tiedostoa jossa 31 lisäystä ja 13 poistoa
  1. 31 13
      app/Models/Entry.php

+ 31 - 13
app/Models/Entry.php

@@ -260,27 +260,35 @@ class FreshRSS_Entry extends Minz_Model {
 		}
 		foreach ($booleanSearch->searches() as $filter) {
 			$ok = true;
+			if ($ok && $filter->getMinDate()) {
+				$ok &= strnatcmp($this->id, $filter->getMinDate() . '000000') >= 0;
+			}
+			if ($ok && $filter->getNotMinDate()) {
+				$ok &= strnatcmp($this->id, $filter->getNotMinDate() . '000000') < 0;
+			}
+			if ($ok && $filter->getMaxDate()) {
+				$ok &= strnatcmp($this->id, $filter->getMaxDate() . '000000') <= 0;
+			}
+			if ($ok && $filter->getNotMaxDate()) {
+				$ok &= strnatcmp($this->id, $filter->getNotMaxDate() . '000000') > 0;
+			}
 			if ($ok && $filter->getMinPubdate()) {
 				$ok &= $this->date >= $filter->getMinPubdate();
 			}
+			if ($ok && $filter->getNotMinPubdate()) {
+				$ok &= $this->date < $filter->getNotMinPubdate();
+			}
 			if ($ok && $filter->getMaxPubdate()) {
 				$ok &= $this->date <= $filter->getMaxPubdate();
 			}
-			if ($ok && $filter->getMinDate()) {
-				$ok &= strnatcmp($this->id, $filter->getMinDate() . '000000') >= 0;
-			}
-			if ($ok && $filter->getMaxDate()) {
-				$ok &= strnatcmp($this->id, $filter->getMaxDate() . '000000') <= 0;
+			if ($ok && $filter->getNotMaxPubdate()) {
+				$ok &= $this->date > $filter->getNotMaxPubdate();
 			}
-			if ($ok && $filter->getInurl()) {
-				foreach ($filter->getInurl() as $url) {
-					$ok &= stripos($this->link, $url) !== false;
-				}
+			if ($ok && $filter->getFeedIds()) {
+				$ok &= in_array($this->feedId, $filter->getFeedIds());
 			}
-			if ($ok && $filter->getNotInurl()) {
-				foreach ($filter->getNotInurl() as $url) {
-					$ok &= stripos($this->link, $url) === false;
-				}
+			if ($ok && $filter->getNotFeedIds()) {
+				$ok &= !in_array($this->feedId, $filter->getFeedIds());
 			}
 			if ($ok && $filter->getAuthor()) {
 				foreach ($filter->getAuthor() as $author) {
@@ -324,6 +332,16 @@ class FreshRSS_Entry extends Minz_Model {
 					$ok &= !$found;
 				}
 			}
+			if ($ok && $filter->getInurl()) {
+				foreach ($filter->getInurl() as $url) {
+					$ok &= stripos($this->link, $url) !== false;
+				}
+			}
+			if ($ok && $filter->getNotInurl()) {
+				foreach ($filter->getNotInurl() as $url) {
+					$ok &= stripos($this->link, $url) === false;
+				}
+			}
 			if ($ok && $filter->getSearch()) {
 				foreach ($filter->getSearch() as $needle) {
 					$ok &= (stripos($this->title, $needle) !== false || stripos($this->content, $needle) !== false);