From b8ffa322a824afeb28d7dc448644d594c9aab780 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 20 Jan 2010 12:29:28 +0300 Subject: [PATCH] load_filters: use memcache --- functions.php | 65 ++++++++++++++++++++++++---------------- modules/pref-filters.php | 4 +++ 2 files changed, 43 insertions(+), 26 deletions(-) diff --git a/functions.php b/functions.php index c7bf4eaa..24abdf01 100644 --- a/functions.php +++ b/functions.php @@ -5854,34 +5854,47 @@ function load_filters($link, $feed, $owner_uid, $action_id = false) { $filters = array(); - if ($action_id) $ftype_query_part = "action_id = '$action_id' AND"; - - $result = db_query($link, "SELECT reg_exp, - ttrss_filter_types.name AS name, - ttrss_filter_actions.name AS action, - inverse, - action_param, - filter_param - FROM ttrss_filters,ttrss_filter_types,ttrss_filter_actions WHERE - enabled = true AND - $ftype_query_part - owner_uid = $owner_uid AND - ttrss_filter_types.id = filter_type AND - ttrss_filter_actions.id = action_id AND - (feed_id IS NULL OR feed_id = '$feed') ORDER BY reg_exp"); + global $memcache; - while ($line = db_fetch_assoc($result)) { - if (!$filters[$line["name"]]) $filters[$line["name"]] = array(); - $filter["reg_exp"] = $line["reg_exp"]; - $filter["action"] = $line["action"]; - $filter["action_param"] = $line["action_param"]; - $filter["filter_param"] = $line["filter_param"]; - $filter["inverse"] = sql_bool_to_bool($line["inverse"]); - - array_push($filters[$line["name"]], $filter); - } + if ($memcache && $obj = $memcache->get($obj_id)) { + + print_r($obj); + + return $obj; + + } else { - return $filters; + if ($action_id) $ftype_query_part = "action_id = '$action_id' AND"; + + $result = db_query($link, "SELECT reg_exp, + ttrss_filter_types.name AS name, + ttrss_filter_actions.name AS action, + inverse, + action_param, + filter_param + FROM ttrss_filters,ttrss_filter_types,ttrss_filter_actions WHERE + enabled = true AND + $ftype_query_part + owner_uid = $owner_uid AND + ttrss_filter_types.id = filter_type AND + ttrss_filter_actions.id = action_id AND + (feed_id IS NULL OR feed_id = '$feed') ORDER BY reg_exp"); + + while ($line = db_fetch_assoc($result)) { + if (!$filters[$line["name"]]) $filters[$line["name"]] = array(); + $filter["reg_exp"] = $line["reg_exp"]; + $filter["action"] = $line["action"]; + $filter["action_param"] = $line["action_param"]; + $filter["filter_param"] = $line["filter_param"]; + $filter["inverse"] = sql_bool_to_bool($line["inverse"]); + + array_push($filters[$line["name"]], $filter); + } + + if ($memcache) $memcache->add($obj_id, $filters, 0, 3600*8); + + return $filters; + } } function get_score_pic($score) { diff --git a/modules/pref-filters.php b/modules/pref-filters.php index 96e6365d..50120a2e 100644 --- a/modules/pref-filters.php +++ b/modules/pref-filters.php @@ -167,6 +167,10 @@ if ($subop == "editSave") { + global $memcache; + + if ($memcache) $memcache->flush(); + $reg_exp = db_escape_string(trim($_REQUEST["reg_exp"])); $filter_type = db_escape_string(trim($_REQUEST["filter_type"])); $filter_id = db_escape_string($_REQUEST["id"]); -- 2.39.5