|
|
|
<?php
|
|
|
|
require_once('config.inc.php');
|
|
|
|
require_once($framework);
|
|
|
|
|
|
|
|
$exceptions = array_unique(array_merge($exceptions, $roots));
|
|
|
|
|
|
|
|
$server = TeamSpeak3::factory('serverquery://'.$user.':'.$passwd.'@'.$host.':'.$queryport.'/?server_port='.$voiceport);
|
|
|
|
|
|
|
|
foreach($roots as $root) {
|
|
|
|
$root = $server->channelGetByName($root);
|
|
|
|
$subs = $root->subChannelList();
|
|
|
|
foreach($subs as $sub) {
|
|
|
|
if(catchExceptions($sub['channel_name'], $exceptions)) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
$groups = $sub->subChannelList();
|
|
|
|
$groupCount = count($groups);
|
|
|
|
|
|
|
|
$i = 0;
|
|
|
|
foreach($groups as $group) {
|
|
|
|
if(catchExceptions($group['channel_name'], $exceptions)) {
|
|
|
|
$groupCount--;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$i++;
|
|
|
|
if($i == $groupCount AND $delete == false) {
|
|
|
|
$regex = '#([0-9]{1,3})#e';
|
|
|
|
$replacement = '("$1" + 1)';
|
|
|
|
$newName = preg_replace($regex, $replacement, $group['channel_name']);
|
|
|
|
createChannel($server, $newName, $sub, $options);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if($i == 0) {
|
|
|
|
createChannel($server, $default, $sub, $options, array('channel_flag_permanent' => TRUE));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function createChannel($server, $name, $parent, $options, $addparam = array()) {
|
|
|
|
$parameters = array(
|
|
|
|
'channel_name' => $name,
|
|
|
|
'cpid' => $parent->getId()
|
|
|
|
);
|
|
|
|
$parameters = array_merge($parameters, $addparam);
|
|
|
|
|
|
|
|
$id = $server->channelCreate($parameters);
|
|
|
|
|
|
|
|
if($options['inherit_icons']) {
|
|
|
|
$channel = $server->channelGetById($id);
|
|
|
|
$channel->modify(array('channel_icon_id' => $parent->getProperty('channel_icon_id')));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function catchExceptions($name, $excpetions) {
|
|
|
|
foreach($excpetions as $exception) {
|
|
|
|
if($name == $exception) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|