예제 #1
0
 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;
         }
     }
 }
예제 #2
0
 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));
     }
 }
예제 #3
0
 function all()
 {
     $this->set(array("seedbox" => \model\mysql\Rtorrent::getRtorrentsDeUtilisateur(\config\Conf::$user["user"]->login)));
 }
예제 #4
0
 */
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);
예제 #5
0
 function delRtorrent()
 {
     \model\simple\MakerConf::makeRtorrent("");
     $this->set("del", \model\mysql\Rtorrent::retirerServeur());
 }
예제 #6
0
 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)));
 }
예제 #7
0
    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>");
}
예제 #8
0
                        </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>