static function authentificationPourRtorrent($keyconnexion) { if (!is_null($keyconnexion)) { $u = \core\Memcached::value($keyconnexion, "user"); if (is_null($u)) { $u = \model\mysql\Utilisateur::authentifierUtilisateurParKeyConnexion($keyconnexion); if ($u) { \core\Memcached::value($u->keyconnexion, "user", $u, 60 * 2); } } else { $u = $u->keyconnexion === $keyconnexion ? $u : false; if (is_bool($u)) { $u = \model\mysql\Utilisateur::authentifierUtilisateurParKeyConnexion($keyconnexion); if ($u) { \core\Memcached::value($u->keyconnexion, "user", $u, 60 * 2); } } else { \core\Memcached::value($u->keyconnexion, "user", $u, 60 * 2); } } \config\Conf::$user["user"] = $u; if ($u && !is_null($u)) { setcookie("keyconnexion", $u->keyconnexion, strtotime('+1 days'), "/"); $userscgi = \model\mysql\Rtorrent::getUserscgiDeUtilisateur($u->login); if (!$userscgi) { throw new \Exception("Aucun ports scgi sur " . HOST); } \config\Conf::$userscgi = $userscgi[0]->userscgi; } } }
function getKeyconnexion() { $u = null; if (isset($_COOKIE["keyconnexion"])) { $u = \core\Memcached::value($_COOKIE["keyconnexion"], "user"); if (is_null($u)) { $u = \model\mysql\Utilisateur::authentifierUtilisateurParKeyConnexion($_COOKIE["keyconnexion"]); if ($u) { \core\Memcached::value($_COOKIE["keyconnexion"], "user", $u, 60 * 5); } } else { $u = $u->keyconnexion === $_COOKIE["keyconnexion"] ? $u : false; } $this->set("seedbox", Rtorrent::getUserscgiDeUtilisateur(\config\Conf::$user["user"]->login)); } if ($u && !is_null($u)) { \core\Memcached::value($_COOKIE["keyconnexion"], "user", $u, 60 * 5); \config\Conf::$user["user"] = $u; $this->set("key", $u->keyconnexion); } else { $u = \model\mysql\Utilisateur::authentifierUtilisateurParMotDePasse($_REQUEST["login"], $_REQUEST["motdepasse"]); if (is_object($u)) { $this->set("key", $u->keyconnexion); if (!\core\Memcached::value($u->keyconnexion, "user", $u, 60 * 5)) { trigger_error("Impossible de mettre des données dans memcached"); } //setcookie("login", $u->login, strtotime('+1 days'), "/"); setcookie("keyconnexion", $u->keyconnexion, strtotime('+1 days'), "/"); \config\Conf::$user["user"] = $u; } } if (is_null(\config\Conf::$user["user"])) { $this->set("erreur", 1); } else { $this->set("seedbox", \model\mysql\Rtorrent::getRtorrentsDeUtilisateur(\config\Conf::$user["user"]->login)); } }
function all() { $this->set(array("seedbox" => \model\mysql\Rtorrent::getRtorrentsDeUtilisateur(\config\Conf::$user["user"]->login))); }
*/ define('WEBROOT', __DIR__); define('ROOT', dirname(WEBROOT)); define('DS', DIRECTORY_SEPARATOR); function __autoload($class_name) { $filename = ROOT . DS . str_replace("\\", DS, $class_name) . ".php"; if (file_exists($filename)) { require_once $filename; } else { } } //Retour visuel \config\Conf::$debuglocalfile = false; \model\simple\Console::println("Debut cron"); $_SERVER["HTTP_HOST"] = \model\mysql\Rtorrent::getHostRtorrent(); $crontache = \model\mysql\Cronroot::getAllNonFini(); foreach ($crontache as $tache) { if ($tache->setEncour()) { $data = json_decode($tache->donnee, true); $cname = $data["classe"]; $controller = new $cname(null, null); if (!in_array($data["fonction"], get_class_methods($controller))) { trigger_error("Le controller " . $cname . " n'a pas de méthode " . $data["fonction"]); $this->error("Le controller " . $cname . " n'a pas de méthode " . $data["fonction"]); } $cn = explode("\\", $cname); $cn = $cn[count($cn) - 1]; if ($res = call_user_func_array(array($controller, $data["fonction"]), $data["args"])) { //$t->delete(); $tache->setFini($res);
function delRtorrent() { \model\simple\MakerConf::makeRtorrent(""); $this->set("del", \model\mysql\Rtorrent::retirerServeur()); }
function details($hashtorrentselectionne, $keyconnexion = null) { \model\simple\Utilisateur::authentificationPourRtorrent($keyconnexion); if (!\config\Conf::$user["user"]) { throw new \Exception("Non User"); } $cmds = array("f.path=", "f.completed_chunks=", "f.size_chunks=", "f.size_bytes=", "f.priority=", "f.prioritize_first=", "f.prioritize_last="); $cmd = new \model\xmlrpc\rXMLRPCCommand(\config\Conf::$userscgi, "f.multicall", array($hashtorrentselectionne, "")); foreach ($cmds as $prm) { $cmd->addParameter(\model\xmlrpc\rTorrentSettings::getCmd(\config\Conf::$userscgi, $prm)); } $req = new \model\xmlrpc\rXMLRPCRequest(\config\Conf::$userscgi, $cmd); $files = null; $to = null; if (!$req->success()) { trigger_error("Impossible de récupéré la liste des fichiers de " . $hashtorrentselectionne); $files = $req->val; } else { $taille = count($req->val); $j = 0; for ($i = 0; $i < $taille; $i += 7) { $files[] = array($j, $req->val[$i], $req->val[$i + 1], $req->val[$i + 2], $req->val[$i + 3], $req->val[$i + 4], $req->val[$i + 5], $req->val[$i + 6]); $j++; } $to["files"] = $files; } $cmds = array("t.url=", "t.type=", "t.is_enabled=", "t.group=", "t.scrape_complete=", "t.scrape_incomplete=", "t.scrape_downloaded=", "t.normal_interval=", "t.scrape_time_last="); $cmd = new \model\xmlrpc\rXMLRPCCommand(\config\Conf::$userscgi, "t.multicall", array($hashtorrentselectionne, "")); foreach ($cmds as $prm) { $cmd->addParameter(\model\xmlrpc\rTorrentSettings::getCmd(\config\Conf::$userscgi, $prm)); } $req = new \model\xmlrpc\rXMLRPCRequest(\config\Conf::$userscgi, $cmd); $trackers = null; if (!$req->success()) { trigger_error("Impossible de récupéré la liste des trakers de " . $hashtorrentselectionne); $traker = $req->val; } else { $taille = count($req->val); $j = 0; for ($i = 0; $i < $taille; $i += 9) { $trackers[] = array($j, $req->val[$i], $req->val[$i + 1], $req->val[$i + 2], $req->val[$i + 3], $req->val[$i + 4], $req->val[$i + 5], $req->val[$i + 6], $req->val[$i + 7], $req->val[$i + 8]); $j++; } $to["trackers"] = $trackers; } $this->set(array("torrentselectionnee" => $to, "host" => HOST, "hashtorrent" => $hashtorrentselectionne, "seedbox" => \model\mysql\Rtorrent::getRtorrentsDeUtilisateur(\config\Conf::$user["user"]->login))); }
if (file_exists($filename)) { require_once $filename; } else { } } //Retour visuel \config\Conf::$debuglocalfile = false; if ($argc == 7) { $login = $argv[1]; $pass = $argv[2]; $mail = $argv[3]; $url = $argv[4]; $nomrtorrent = $argv[5]; $scgi = $argv[6]; \model\simple\Console::println("Insertion de l'utilisateur"); \model\simple\Console::println("Login :[" . $login . "]"); \model\simple\Console::println("Password :[" . $pass . "]"); \model\simple\Console::println("Mail :[" . $mail . "]"); $res = \model\mysql\Utilisateur::insertUtilisateurSysop($login, $pass, $mail); \model\simple\Console::println($res); $res = \model\mysql\Rtorrent::addRtorrentServeur1($nomrtorrent, $url); \model\simple\Console::println("Initialisation du rtorrent"); \model\simple\Console::println($res); $res = \model\mysql\Rtorrents::addRtorrentUtilisateurScgi($login, $nomrtorrent, $scgi); \model\simple\Console::println("Ajout de la seedbox " . $nomrtorrent . " à " . $login . " scgi " . $scgi); \model\simple\Console::println($res); \model\simple\Console::println("Log des requête sql :"); \model\simple\Console::println(\core\Mysqli::$query); } else { \model\simple\Console::println(basename(__FILE__) . " <login> <pass> <mail> <url accé a mediastorrent pour ce serveur sans le http exemple pour http://localhost/Mediastorrent il faut mettre localhost/Mediastorrent > <nomrtorrent> <portscgi le même qui est dans ~/.rtorrent.rc>"); }
</ul> </li> </ul> </li> <li class="divider"></li> </ul> <!-- Top Bar Right Nav Elements --> <ul class="right"> <li class="divider hide-for-small"></li> <li class="has-dropdown"><a>Administration</a> <ul class="dropdown"> <?php if (\model\mysql\Rtorrent::isRtorrentServeur()) { ?> <li> <a onclick="Base.view.noty.generateConfirm('Être vous sur de vouloir supprimer ce serveur des serveurs de rtorrent ?<br>Attention, toutes les seedbox et fichiers torrent de la médiathèque qui sont associés a cette seedbox seront également supprimés',function(){window.location = '<?= \core\Router::url("system/delRtorrent") ?>'})">Supprimer ce serveur des serveur de rtorrent</a></li> <? } else { ?> <li><a href="<?= \core\Router::url("system/addRtorrent") ?>">Ajouter ce serveur en tant que serveur de rtorrent</a></li> <? } ?> <li class="divider"></li> <li><a href="<?= \core\Router::url("utilisateur/liste") ?>">Utilisateurs</a></li> </ul> </li> <li class="divider"></li> <li class="has-form hide-for-medium-down"> <? echo isset($debug_performance_for_layout) ? $debug_performance_for_layout : ""; ?> </li>