#!/usr/bin/env php <?php // Temporary service class utility - see baseurl/help/service_classes require_once('include/cli_startup.php'); cli_startup(); if($argc > 3) { $d = get_config('service_class', $argv[1]); $d[$argv[2]] = $argv[3]; set_config('service_class', $argv[1], $d); echo 'Updated service class "' . $argv[1] . '" service "' . $argv[2] . '" to ' . $argv[3] . "\n"; } if($argc == 3) { if(substr($argv[1], 0, 10) == '--account=') { $acct = substr($argv[1], 10); } else if(substr($argv[1], 0, 10) == '--channel=') { $chan = substr($argv[1], 10); $r = q("SELECT channel_account_id FROM channel WHERE channel_address='%s'", dbesc($chan) ); if(!$r) die('could not find channel'); $acct = intval($r[0]['channel_account_id']); } else { exit(); } $r = q('SELECT account_service_class FROM account WHERE account_id=%d', intval($acct) ); if(!$r) die('could not find account'); $c = q('SELECT channel_address FROM channel WHERE channel_account_id=%d', intval($acct) ); echo "Account $acct: "; foreach($c as $chan) echo $chan['channel_address'] . ', '; echo "\n\033[1mProperty Old\t\tNew\033[0m\n"; if(empty($r[0]['account_service_class'])) { $oclass = 'None'; $old = false; } else { $oclass = $r[0]['account_service_class']; $old = get_config('service_class', $oclass); } echo "service_class $oclass\t\t\033[1m" . $argv[2] . "\033[0m\n"; $new = get_config('service_class', $argv[2]); foreach(array('photo_upload_limit','total_items','total_pages','total_identities','total_channels','total_feeds','attach_upload_limit','minimum_feedcheck_minutes','chatrooms','chatters_inroom','access_tokens') as $prop) { echo $prop . str_repeat(' ',26 - strlen($prop)) . (($old && $old[$prop]) ? $old[$prop] : 'unlimited') . "\t\t\033[1m" . (($new && $new[$prop]) ? $new[$prop] : 'unlimited') . "\033[0m\n"; } $r = ''; $k = fopen('php://stdin', 'r'); while($r != 'y' && $r != 'n') { echo "Are you sure? (y/n)"; $r = substr(fgets($k), 0, 1); } if($r == 'n') die('no update done'); $r = q("UPDATE account SET account_service_class='%s' WHERE account_id=%d", dbesc($argv[2]), intval($acct) ); if($r) { echo "updated successfully\n"; } else { echo "failed\n"; } } if($argc == 2) { $d = get_config('service_class', $argv[1]); echo $argv[1] . ":\n"; foreach($d as $k => $v) { echo "$k = $v\n"; } } if($argc == 1) { load_config('service_class'); if(is_array(App::$config['service_class']) && App::$config['service_class']) { foreach(App::$config['service_class'] as $class=>$props) { echo "$class:\n"; $d = ((! is_array($props)) && (preg_match('|^a:[0-9]+:{.*}$|s', $props)) ? unserialize($props) : $props ); if(is_array($d) && $d) { foreach($d as $k => $v) { echo "\t$k = $v\n"; } } } } }