aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-09-03 19:07:14 -0700
committerfriendica <info@friendica.com>2014-09-03 19:07:14 -0700
commit844087bc71f333719c1e08d807874f3ae3a7053e (patch)
tree795180dfb37bdec9a9f161b242f742896f672b65 /include
parentd93f7d688ddf5a0f1295a93a4c84123e9e1b252f (diff)
downloadvolse-hubzilla-844087bc71f333719c1e08d807874f3ae3a7053e.tar.gz
volse-hubzilla-844087bc71f333719c1e08d807874f3ae3a7053e.tar.bz2
volse-hubzilla-844087bc71f333719c1e08d807874f3ae3a7053e.zip
implement service class for feed polling frequenecy, fixed a service class bug, moved service class stuff from plugin to account.php where it belongs and load that by default instead of on demand
Diffstat (limited to 'include')
-rw-r--r--include/account.php88
-rwxr-xr-xinclude/plugin.php87
-rw-r--r--include/poller.php5
3 files changed, 91 insertions, 89 deletions
diff --git a/include/account.php b/include/account.php
index 4ded069d5..6cc203dc8 100644
--- a/include/account.php
+++ b/include/account.php
@@ -547,3 +547,91 @@ function downgrade_accounts() {
}
}
+
+
+// check service_class restrictions. If there are no service_classes defined, everything is allowed.
+// if $usage is supplied, we check against a maximum count and return true if the current usage is
+// less than the subscriber plan allows. Otherwise we return boolean true or false if the property
+// is allowed (or not) in this subscriber plan. An unset property for this service plan means
+// the property is allowed, so it is only necessary to provide negative properties for each plan,
+// or what the subscriber is not allowed to do.
+
+
+function service_class_allows($uid,$property,$usage = false) {
+ $a = get_app();
+ if($uid == local_user()) {
+ $service_class = $a->account['account_service_class'];
+ }
+ else {
+ $r = q("select account_service_class as service_class
+ from channel c, account a
+ where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
+ intval($uid)
+ );
+ if($r !== false and count($r)) {
+ $service_class = $r[0]['service_class'];
+ }
+ }
+ if(! x($service_class))
+ return true; // everything is allowed
+
+ $arr = get_config('service_class',$service_class);
+ if(! is_array($arr) || (! count($arr)))
+ return true;
+
+ if($usage === false)
+ return ((x($arr[$property])) ? (bool) $arr[$property] : true);
+ else {
+ if(! array_key_exists($property,$arr))
+ return true;
+ return (((intval($usage)) < intval($arr[$property])) ? true : false);
+ }
+}
+
+
+function service_class_fetch($uid,$property) {
+ $a = get_app();
+ if($uid == local_user()) {
+ $service_class = $a->account['account_service_class'];
+ }
+ else {
+ $r = q("select account_service_class as service_class
+ from channel c, account a
+ where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
+ intval($uid)
+ );
+ if($r !== false and count($r)) {
+ $service_class = $r[0]['service_class'];
+ }
+ }
+ if(! x($service_class))
+ return false; // everything is allowed
+
+ $arr = get_config('service_class',$service_class);
+
+ if(! is_array($arr) || (! count($arr)))
+ return false;
+
+ return((array_key_exists($property,$arr)) ? $arr[$property] : false);
+}
+
+function upgrade_link($bbcode = false) {
+ $l = get_config('service_class','upgrade_link');
+ if(! $l)
+ return '';
+ if($bbcode)
+ $t = sprintf('[zrl=%s]' . t('Click here to upgrade.') . '[/zrl]', $l);
+ else
+ $t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
+ return $t;
+}
+
+function upgrade_message($bbcode = false) {
+ $x = upgrade_link($bbcode);
+ return t('This action exceeds the limits set by your subscription plan.') . (($x) ? ' ' . $x : '') ;
+}
+
+function upgrade_bool_message($bbcode = false) {
+ $x = upgrade_link($bbcode);
+ return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ;
+}
diff --git a/include/plugin.php b/include/plugin.php
index c5f57829d..c2e08a989 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -430,93 +430,6 @@ function get_theme_screenshot($theme) {
}
-// check service_class restrictions. If there are no service_classes defined, everything is allowed.
-// if $usage is supplied, we check against a maximum count and return true if the current usage is
-// less than the subscriber plan allows. Otherwise we return boolean true or false if the property
-// is allowed (or not) in this subscriber plan. An unset property for this service plan means
-// the property is allowed, so it is only necessary to provide negative properties for each plan,
-// or what the subscriber is not allowed to do.
-
-
-function service_class_allows($uid,$property,$usage = false) {
- $a = get_app();
- if($uid == local_user()) {
- $service_class = $a->account['account_service_class'];
- }
- else {
- $r = q("select account_service_class as service_class
- from channel c, account a
- where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
- intval($uid)
- );
- if($r !== false and count($r)) {
- $service_class = $r[0]['service_class'];
- }
- }
- if(! x($service_class))
- return true; // everything is allowed
-
- $arr = get_config('service_class',$service_class);
- if(! is_array($arr) || (! count($arr)))
- return true;
-
- if($usage === false)
- return ((x($arr[$property])) ? (bool) $arr['property'] : true);
- else {
- if(! array_key_exists($property,$arr))
- return true;
- return (((intval($usage)) < intval($arr[$property])) ? true : false);
- }
-}
-
-
-function service_class_fetch($uid,$property) {
- $a = get_app();
- if($uid == local_user()) {
- $service_class = $a->account['account_service_class'];
- }
- else {
- $r = q("select account_service_class as service_class
- from channel c, account a
- where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
- intval($uid)
- );
- if($r !== false and count($r)) {
- $service_class = $r[0]['service_class'];
- }
- }
- if(! x($service_class))
- return false; // everything is allowed
-
- $arr = get_config('service_class',$service_class);
-
- if(! is_array($arr) || (! count($arr)))
- return false;
-
- return((array_key_exists($property,$arr)) ? $arr[$property] : false);
-}
-
-function upgrade_link($bbcode = false) {
- $l = get_config('service_class','upgrade_link');
- if(! $l)
- return '';
- if($bbcode)
- $t = sprintf('[zrl=%s]' . t('Click here to upgrade.') . '[/zrl]', $l);
- else
- $t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
- return $t;
-}
-
-function upgrade_message($bbcode = false) {
- $x = upgrade_link($bbcode);
- return t('This action exceeds the limits set by your subscription plan.') . (($x) ? ' ' . $x : '') ;
-}
-
-function upgrade_bool_message($bbcode = false) {
- $x = upgrade_link($bbcode);
- return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ;
-}
-
/**
* @brief add CSS to <head>
*
diff --git a/include/poller.php b/include/poller.php
index 2ba86dc0b..b26b9e696 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -151,7 +151,6 @@ function poller_run($argv, $argc){
q("delete from notify where seen = 1 and date < UTC_TIMESTAMP() - INTERVAL 30 DAY");
// expire any expired accounts
- require_once('include/account.php');
downgrade_accounts();
// If this is a directory server, request a sync with an upstream
@@ -264,7 +263,9 @@ function poller_run($argv, $argc){
$c = $contact['abook_connected'];
if($contact['abook_flags'] & ABOOK_FLAG_FEED) {
- $min = intval(get_config('system','minimum_feedcheck_minutes'));
+ $min = service_class_fetch($contact['abook_channel'],'minimum_feedcheck_minutes');
+ if(! $min)
+ $min = intval(get_config('system','minimum_feedcheck_minutes'));
if(! $min)
$min = 60;
$x = datetime_convert('UTC','UTC',"now - $min minutes");