Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- date_default_timezone_set('Europe/Paris');
- session_start();
- require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/user.sql.php');
- require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/OVH.class.php');
- require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/libraries/TeamSpeak3/TeamSpeak3.php');
- function get_expiration($expiration)
- {
- $start = new DateTime(gmdate("d.m.Y H:i:s ", time()));
- $stop = new DateTime(gmdate("d.m.Y H:i:s ", $expiration));
- $end = $start->diff($stop);
- if($end->days >= "1")
- {
- $mode = "Jours";
- $restant = $end->days;
- }elseif($end->days < "1")
- {
- $mode = "Heures";
- $restant = $end->h;
- }
- if(time() > $expiration) { $status = "erreur"; } else { $status = "good"; }
- return array('mode' => $mode, 'restant' => $restant, 'status' => $status);
- }
- if(isset($_GET['action']))
- {
- $action = htmlentities(trim($_GET['action']));
- $id = htmlentities(trim($_GET['id']));
- if($action&&$id)
- {
- $reqinfo = $bdd->prepare("SELECT * FROM ts3_server WHERE id = :id AND user = :user");
- $reqinfo->execute(array(':id' => $id, ':user' => $user->id));
- $TS3 = $reqinfo->fetch(PDO::FETCH_OBJ);
- if($TS3 == null)
- {
- $return = array('action' => 'redirect');
- die(json_encode($return));
- }
- $reqapi = $bdd->prepare("SELECT * FROM ts3_api WHERE id = :id");
- $reqapi->execute(array(':id' => $TS3->api));
- $API = $reqapi->fetch(PDO::FETCH_OBJ);
- try {
- $Ts3Instance = TeamSpeak3::factory("serverquery://".$API->login.":".$API->password."@".$API->adresse.":".$API->port."/");
- try {
- $ts3Server = TeamSpeak3::factory("serverquery://".$API->login.":".$API->password."@".$API->adresse.":".$API->port."/?server_port=".$TS3->port."&nickname=Odedi.fr#no_query_clients");
- } catch(Exception $e) {}
- } catch(Exception $e){}
- if(isset($ts3Server) && $ts3Server != NULL) {
- $status = "1";
- $servername = $ts3Server->getProperty("virtualserver_name");
- $clientsonline = $ts3Server->getProperty("virtualserver_clientsonline")-1;
- $ts3flagpassword = $ts3Server->getProperty("virtualserver_flag_password");
- $uptime = $ts3Server->getProperty("virtualserver_uptime");
- $ts3_uptime_jour=floor($uptime/86400);
- $ts3_uptime_reste=$uptime%86400;
- $ts3_uptime_heures=floor($ts3_uptime_reste/3600);
- $ts3_uptime_reste=$ts3_uptime_reste%3600;
- $ts3_uptime_minutes=floor($ts3_uptime_reste/60);
- $ts3_uptime_secondes=$ts3_uptime_reste%60;
- if($ts3_uptime_minutes < "1"){
- $ts3_uptime = $ts3_uptime_secondes." sec";
- }
- if($ts3_uptime_minutes >= "1" && $ts3_uptime_heures < "1" ){
- $ts3_uptime = $ts3_uptime_minutes." min";
- }
- if($ts3_uptime_heures >= "1" && $ts3_uptime_heures < "24" ){
- $ts3_uptime = $ts3_uptime_heures." heures, ".$ts3_uptime_minutes." minutes";
- }
- if($ts3_uptime_heures >= "24"){
- $ts3_uptime = $ts3_uptime_jour."Jour(s), ".$ts3_uptime_heures." heures";
- }
- }
- else {
- $status = "0";
- $servername = "Hors Ligne";
- $clientsonline = "0";
- $ts3_uptime = "hors ligne";
- $ts3flagpassword = "0";
- }
- if($action == "getinfo")
- {
- if($TS3->srv) { $TS3srv = " / ".$TS3->srv; } else { $TS3srv = ""; }
- if($TS3->type == "1") { $TS3offre = "TeamSpeak 3 Gratuit"; } elseif($TS3->type == "2") { $TS3offre = "TeamSpeak 3"; }
- if($API->antiddos == "0") { $antiddos = "Non protégé"; } elseif($API->antiddos == "1") { $antiddos = "Protégé / Migrations permanentes"; }
- $expiration = date('d/m/Y à H:i', $TS3->expiration);
- $result = array('localisation' => $API->pays." (".$API->ville.")",
- 'ville' => $API->ville,
- 'addr' => $API->dns.":".$TS3->port.$TS3srv,
- 'addrip' => $API->adresse.":".$TS3->port,
- 'offre' => $TS3offre,
- 'uptime' => $ts3_uptime,
- 'queryport' => $API->port,
- 'usersonline' => $clientsonline."/".$TS3->slots,
- 'antiddos' => $antiddos,
- 'status' => $status,
- 'privilegekey' => $TS3->privilegekey,
- 'expiration' => $expiration,
- 'type' => $TS3->type,
- 'timetoend' => get_expiration($TS3->expiration)
- );
- echo json_encode($result);
- }
- elseif($action == "stop"){
- if($status == "0"){
- $return = array('status' => 'error', 'msg' => 'Ce serveur TeamSpeak 3 est déjà arrêté.');
- echo json_encode($return);
- }
- elseif($status == "1"){
- $Ts3Instance->ServerStop($TS3->sid);
- $return = array('status' => 'success', 'msg' => 'Votre serveur TeamSpeak 3 est maintenant arrêté.');
- echo json_encode($return);
- }
- }
- elseif($action == "start"){
- if($status == "1"){
- $return = array('status' => 'error', 'msg' => 'Ce serveur TeamSpeak 3 est déjà en ligne.');
- echo json_encode($return);
- }
- elseif($status == "0"){
- $Ts3Instance->ServerStart($TS3->sid);
- $return = array('status' => 'success', 'msg' => 'Votre serveur TeamSpeak 3 est maintenant en ligne.');
- echo json_encode($return);
- }
- }
- elseif($action == "setSRV")
- {
- $prefix = htmlentities(trim($_GET['prefix']));
- $domaine = htmlentities(trim($_GET['domaine']));
- echo ts3_srv_setup($TS3, $prefix, $domaine, $bdd);
- }
- elseif($action == "InstallServer")
- {
- if ($TS3->type == "1") {
- $hostname = "TeamSpeak 3 Gratuit par Odedi.fr";
- }else{
- $hostname = "TeamSpeak 3 par Odedi.fr";
- }
- $ts3Server->modify(
- array(
- "virtualserver_name" => $hostname,
- "virtualserver_maxclients" => $TS3->slots,
- "virtualserver_log_client" => "1",
- "virtualserver_log_channel" => "1",
- "virtualserver_log_permissions" => "1",
- "virtualserver_log_server" => "1",
- "virtualserver_log_filetransfer" => "1",
- "virtualserver_hostbanner_gfx_url" => "https://odedi.fr/img/logo.png",
- "virtualserver_hostbanner_url" => "https://odedi.fr"
- ));
- $ts3_ServerGroup = $ts3Server->serverGroupIdentify();
- $ts3_ServerGroup->permRemove("b_virtualserver_modify_maxclients");
- $ts3_ServerGroup->permRemove("i_needed_modify_power_virtualserver_modify_maxclients");
- $return = array('status' => 'success', 'id' => $TS3->id);
- echo json_encode($return);
- }
- elseif($action == "privilegeKeyList")
- {
- $grouplist = $ts3Server->serverGroupList();
- $items = array();
- foreach ($grouplist as $value) {
- if($value['sgid'] > "5")
- {
- $group = $ts3Server->serverGroupGetById($value['sgid']);
- try {
- $perm = $group->privilegeKeyList();
- foreach($perm as $k => $v)
- {
- if(!in_array($k, $items))
- {
- if($v['token_description']){
- $desc = $v['token_description']->toString();
- }
- else{
- $desc = "";
- }
- $token_created = date('d/m/Y à H:i', $v['token_created']);
- $items[$k]['token'] = $k;
- $items[$k]['token_type'] = $v['token_type'];
- $items[$k]['token_id1'] = $v['token_id1'];
- $items[$k]['token_id2'] = $v['token_id2'];
- $items[$k]['ts3id'] = $TS3->id;
- $items[$k]['token_created'] = $token_created;
- $items[$k]['desc'] = $desc;
- if($v['token_id2'] != "0")
- {
- $items[$k]['channame'] = str_replace(array("[cspacer]","[rspacer]","[spacer]","[*spacer]"), "", $ts3Server->channelGetById($v['token_id2'])->getProperty('channel_name')->toString());
- }
- elseif($v['token_id2'] != "0")
- {
- $items[$k]['channame'] = "";
- }
- }
- }
- }
- catch (Exception $e) {}
- }
- }
- foreach ($items as $a => $b)
- {
- if($b['token_id2'] == "0"){
- $n = $ts3Server->serverGroupGetById($b['token_id1']);
- }else{
- $n = $ts3Server->channelGroupGetById($b['token_id1']);
- }
- $items[$b['token']]['groupname'] = $n['name']->toString();
- }
- echo json_encode($items);
- }
- elseif ($action == "privilegeKeyDelete") {
- $pkey = htmlentities(trim($_GET['pkey']));
- if($pkey)
- {
- if($status == "1"){
- $ts3Server->privilegeKeyDelete($pkey);
- $return = array('status' => 'success', 'msg' => 'La Privilige Key a été supprimé.');
- }else{
- $return = array('status' => 'error', 'msg' => 'Nous ne pouvons pas supprimer la clé si le TeamSpeak 3 est hors ligne');
- }
- }
- else
- {
- $return = array('status' => 'error', 'msg' => 'La Privilige Key est pas valide.');
- }
- echo json_encode($return);
- }
- elseif($action == "restart"){
- if($status == "1"){
- $Ts3Instance->ServerStop($TS3->sid);
- $Ts3Instance->ServerStart($TS3->sid);
- $return = array('status' => 'success', 'msg' => 'Ce serveur TeamSpeak 3 vient de redémarrer.');
- echo json_encode($return);
- }
- elseif($status == "0"){
- $Ts3Instance->ServerStart($TS3->sid);
- $return = array('status' => 'success', 'msg' => 'Votre serveur TeamSpeak 3 vient d\'être démarrer.');
- echo json_encode($return);
- }
- }
- elseif($action == "getbackup"){
- $getbackuplist = $bdd->prepare("SELECT * FROM ts3_save WHERE ts3 = :ts3id");
- $getbackuplist->execute(array(":ts3id" => $TS3->id));
- while ($blackups = $getbackuplist->fetch(PDO::FETCH_ASSOC)) {
- $arr[] = $blackups;
- }
- echo json_encode($arr);
- }
- elseif($action == "snapdelete"){
- $snapid = htmlentities(trim($_GET['snapid']));
- $getsnapinfo = $bdd->prepare("SELECT * FROM ts3_save WHERE ts3 = :ts3id AND save_file = :save_file OR save_file = :save_file2 ");
- $getsnapinfo->execute(array(":ts3id" => $TS3->id, ':save_file' => $snapid.".init", ':save_file2' => $snapid.".save"));
- $snapinfo = $getsnapinfo->fetch(PDO::FETCH_OBJ);
- $checkername = explode(".", $snapinfo->save_file);
- if(md5($TS3->port.$snapinfo->save_date) == $checkername['0'])
- {
- unlink($_SERVER['DOCUMENT_ROOT'] . '/manager/app/php/ts3snaps/'.$snapinfo->save_file);
- $snapdel = $bdd->prepare("DELETE FROM ts3_save WHERE id = :id");
- $snapdel->execute(array(':id' => $snapinfo->id));
- $return = array('status' => 'success', 'msg' => 'La sauvegarde a étè supprimer.');
- }else{
- $return = array('status' => 'error', 'msg' => 'Erreur lors du traitement de votre requête');
- }
- echo json_encode($return);
- }
- elseif ($action == "loadservergroupTS") {
- if($status == "1")
- {
- $group = $ts3Server->serverGroupList();
- $items = array();
- foreach ($group as $k => $v) {
- if($v['sgid'] > "5")
- {
- $ssgid = $v['sgid'];
- $items[$ssgid]['name'] = $v->toString();
- $items[$ssgid]['sgid'] = $ssgid;
- }
- }
- }
- echo json_encode($items);
- }
- elseif ($action == "loadchannelsgroupTS") {
- if($status == "1")
- {
- $groups = $ts3Server->channelGroupList();
- $items = array();
- foreach ($groups as $k => $v) {
- if($v['cgid'] > "5")
- {
- $cgid = $v['cgid'];
- $items[$cgid]['name'] = $v->toString();
- $items[$cgid]['cgid'] = $cgid;
- }
- }
- }
- echo json_encode($items);
- }
- elseif ($action == "privilegekeysCreate") {
- $type = htmlentities(trim($_GET['type']));
- $id1 = htmlentities(trim($_GET['id1']));
- $id2 = htmlentities(trim($_GET['id2']));
- $description = htmlentities(trim($_GET['description']));
- if($type == "1")
- {
- if($id1 > "5"){
- $group = $ts3Server->channelGroupGetById($id1);
- $group->privilegeKeyCreate($id2, $description);
- $return = array('status' => 'success', 'msg' => 'Good');
- }else{
- $return = array('status' => 'error', 'msg' => 'erreur');
- }
- }elseif($type == "0")
- {
- if($id1 > "5"){
- $group = $ts3Server->serverGroupGetById($id1);
- $group->privilegeKeyCreate($description);
- $return = array('status' => 'success', 'msg' => 'Good');
- }else{
- $return = array('status' => 'error', 'msg' => 'erreur');
- }
- }
- echo json_encode($return);
- }
- elseif ($action == "loadchannelTS") {
- if($status == "1")
- {
- $channels = $ts3Server->channelList();
- $items = array();
- foreach ($channels as $k => $v)
- {
- $cid = $v['cid'];
- $cname = $v['channel_name'];
- $items[$cid]['cid'] = $cid;
- $items[$cid]['name'] = $cname->toString();
- }
- }
- echo json_encode($items);
- }
- elseif($action == "snapinit"){
- $snapid = htmlentities(trim($_GET['snapid']));
- $getsnapinfo = $bdd->prepare("SELECT * FROM ts3_save WHERE ts3 = :ts3id AND save_file = :save_file OR save_file = :save_file2 ");
- $getsnapinfo->execute(array(":ts3id" => $TS3->id, ':save_file' => $snapid.".init", ':save_file2' => $snapid.".save"));
- $snapinfo = $getsnapinfo->fetch(PDO::FETCH_OBJ);
- $checkername = explode(".", $snapinfo->save_file);
- if(md5($TS3->port.$snapinfo->save_date) == $checkername['0']){
- if($status == "1"){
- if(file_exists($_SERVER['DOCUMENT_ROOT'] . '/manager/app/php/ts3snaps/'.$snapinfo->save_file)) {
- $backupcontent = @file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/manager/app/php/ts3snaps/'.$snapinfo->save_file);
- if($snapinfo->save_crypt == "1"){
- $ts3Server->snapshotDeploy($backupcontent, TeamSpeak3::SNAPSHOT_BASE64);
- }else{
- $ts3Server->snapshotDeploy($backupcontent, TeamSpeak3::SNAPSHOT_STRING);
- }
- $return = array('status' => 'success', 'msg' => 'Votre TeamSpeak 3 a été restaurer a la date du: '.$snapinfo->save_date);
- }else{
- $return = array('status' => 'error', 'msg' => 'Le fichier sauvegarde n\'existe pas..');
- }
- }else{
- $return = array('status' => 'error', 'msg' => 'Nous ne pouvons pas faire la restauration si le TeamSpeak 3 est hors ligne');
- }
- }else{
- $return = array('status' => 'error', 'msg' => 'Erreur lors du traitement de votre requête');
- }
- echo json_encode($return);
- }
- elseif($action == "newbackup")
- {
- if ($status == "1") {
- $timenow = date("d/m/Y - H:i:s");
- $name = htmlentities(trim($_GET['name']));
- $isdownload = htmlentities(trim($_GET['isdownload']));
- $iscrypt = htmlentities(trim($_GET['iscrypt']));
- $isrestor = htmlentities(trim($_GET['isrestor']));
- if($isdownload){
- $snapname = md5($TS3->port.$timenow).".save";
- }else{
- $snapname = md5($TS3->port.$timenow).".init";
- }
- if($iscrypt){
- $datasnapshot = $ts3Server->snapshotCreate(TeamSpeak3::SNAPSHOT_BASE64);
- }else{
- $datasnapshot = $ts3Server->snapshotCreate(TeamSpeak3::SNAPSHOT_STRING);
- }
- $savesnap = $bdd->prepare("INSERT INTO ts3_save SET ts3 = :ts3, nom = :nom, save_date = :save_date, save_file = :save_file, save_download = :save_download, save_restore = :save_restore, save_crypt = :save_crypt");
- $savesnap->execute(array(':ts3' => $TS3->id, ':nom' => $name, ':save_date' => $timenow, ':save_file' => $snapname, ':save_download' => $isdownload, ':save_restore' => $isrestor, ':save_crypt' => $iscrypt));
- file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/manager/app/php/ts3snaps/'.$snapname, $datasnapshot);
- $return = array('status' => 'success', 'msg' => 'Nous avez créé une sauvegarde de votre TeamSpeak 3');
- }
- else
- {
- $return = array('status' => 'error', 'msg' => 'Nous ne pouvez pas faire la sauvegarde d\'un TeamSpeak 3 hors ligne');
- }
- echo json_encode($return);
- }
- elseif($action == "enableviewer")
- {
- if ($status == "1") {
- $guestgroup = $ts3Server->getProperty("virtualserver_default_server_group");
- $grouptoassign = $ts3Server->serverGroupGetById($guestgroup);
- $grouptoassign->permAssignByName("b_virtualserver_info_view", "1");
- $grouptoassign->permAssignByName("b_virtualserver_channel_list", "1");
- $grouptoassign->permAssignByName("b_virtualserver_client_list", "1");
- $return = array('status' => 'success', 'msg' => 'Le viewer est maintenant activer');
- }
- else
- {
- $return = array('status' => 'error', 'msg' => 'Cette action est impossible. Votre Serveur est hors ligne ');
- }
- echo json_encode($return);
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement