*
* @param string $haystack
* @param string $language
- * @param array $tags
- * @param int $media_type
* @return boolean
* @throws \Exception
*/
if (!empty($channel->languages) && in_array($language, $channel->languages)) {
return true;
}
- if (!empty($channel->languages) && !in_array($channel->uid, $uids)) {
- if (!in_array($language, $channel->languages)) {
- continue;
- }
- } elseif (!in_array($language, User::getWantedLanguages($channel->uid))) {
- continue;
- }
- if (!empty($channel->includeTags) && !in_array($channel->uid, $uids)) {
- if (empty($tags)) {
- continue;
- }
- $match = false;
- foreach (explode(',', $channel->includeTags) as $tag) {
- if (in_array($tag, $tags)) {
- $match = true;
- break;
- }
- }
- if (!$match) {
- continue;
- }
- }
- if (!empty($tags) && !empty($channel->excludeTags) && !in_array($channel->uid, $uids)) {
- $match = false;
- foreach (explode(',', $channel->excludeTags) as $tag) {
- if (in_array($tag, $tags)) {
- $match = true;
- break;
- }
- }
- if ($match) {
- continue;
- }
- }
- if (!empty($channel->mediaType) && !in_array($channel->uid, $uids)) {
- if (!($channel->mediaType & $media_type)) {
- continue;
- }
- }
- if (!empty($channel->fullTextSearch) && !in_array($channel->uid, $uids)) {
- $channelsearchtext = $channel->fullTextSearch;
- foreach (Engagement::KEYWORDS as $keyword) {
- $channelsearchtext = preg_replace('~(' . $keyword . ':.[\w@\.-]+)~', '"$1"', $channelsearchtext);
- }
- if (!$this->db->exists('check-full-text-search', ["`pid` = ? AND MATCH (`searchtext`) AGAINST (? IN BOOLEAN MODE)", getmypid(), $channelsearchtext])) {
- continue;
- }
- }
- $uids[] = $channel->uid;
- $this->logger->debug('Matching channel found.', ['uid' => $channel->uid, 'label' => $channel->label, 'language' => $language, 'tags' => $tags, 'media_type' => $media_type, 'searchtext' => $searchtext]);
- if (!$relayMode) {
- return $uids;
- }
}
$search = '';
}
return $condition;
}
-
- private function getUserCondition()
- {
- $condition = ["`verified` AND NOT `blocked` AND NOT `account_removed` AND NOT `account_expired` AND `user`.`uid` > ?", 0];
-
- $abandon_days = intval($this->config->get('system', 'account_abandon_days'));
- if (!empty($abandon_days)) {
- $condition = DBA::mergeConditions($condition, ["`last-activity` > ?", DateTimeFormat::utc('now - ' . $abandon_days . ' days')]);
- }
- return $condition;
- }
}