- Modifié
Bonsoir,
j'aimerai une nouvelle fois abuser de votre expertise je voudrais être sûr de ne pas faire connerie avec la configuration que je viens de mettre en place.
J'ai suivi les étapes suivantes dans cet ordre :
1 - Installation auto via le script http://mondedie.fr/d/5399
2 - Sécurisation et log http://mondedie.fr/d/5318
3 - installation de cakebox light pour chaque user (super relou le truc
) http://mondedie.fr/d/5314
comme je pense que tout est propre (du moins j'en ai l'impression) et que je veux rajouter une fonction la dedans je voudrais votre avis.
Dans mon ancienne installation de seedbox nous étions aussi plusieurs mais il n'y avait pas de comptes utilisateur donc on avait chacun un dossier où télécharger.
Comme pour certains d'entre nous, nous avons un NAS syno et pour les autres simplement des FreeboxV6, j'avais ajouté une page rss.php sur mon server qui scannait toute l'arbo ou alors par dossier en lui spécifiant un nom. Il suffisait alors de rajouter le flux aux centre de téléchargement des synos et des freebox.
Je précise avant d'aller plus loin que j'ai vu qu'il existait sur le forum un tuto pour synchroniser une seedbox avec un NAS (http://mondedie.fr/d/5433) mais cela n'est pas applicable au cas Freebox.
Du coup je cherche à être sûr de pas me louper avec le fichier rss.php
- vis à vis des droits des différents utilisateurs et leurs dossiers
- pour pouvoir donner accès aux fichiers téléchargés par d'autres à tout le monde
- que ça soit toujours sécurisé comme maintenant.
avant de modifier quoi que ce soit j'aurais aime donc avoir l'avis des pros... siouuuuuplait

Pour information le code que j'utilisais (visible ici http://www.nas-forum.com/forum/topic/37336-ssh-download-station-ou-notification/)
j'aimerai une nouvelle fois abuser de votre expertise je voudrais être sûr de ne pas faire connerie avec la configuration que je viens de mettre en place.
J'ai suivi les étapes suivantes dans cet ordre :
1 - Installation auto via le script http://mondedie.fr/d/5399
2 - Sécurisation et log http://mondedie.fr/d/5318
3 - installation de cakebox light pour chaque user (super relou le truc

comme je pense que tout est propre (du moins j'en ai l'impression) et que je veux rajouter une fonction la dedans je voudrais votre avis.
Dans mon ancienne installation de seedbox nous étions aussi plusieurs mais il n'y avait pas de comptes utilisateur donc on avait chacun un dossier où télécharger.
Comme pour certains d'entre nous, nous avons un NAS syno et pour les autres simplement des FreeboxV6, j'avais ajouté une page rss.php sur mon server qui scannait toute l'arbo ou alors par dossier en lui spécifiant un nom. Il suffisait alors de rajouter le flux aux centre de téléchargement des synos et des freebox.
Je précise avant d'aller plus loin que j'ai vu qu'il existait sur le forum un tuto pour synchroniser une seedbox avec un NAS (http://mondedie.fr/d/5433) mais cela n'est pas applicable au cas Freebox.
Du coup je cherche à être sûr de pas me louper avec le fichier rss.php
- vis à vis des droits des différents utilisateurs et leurs dossiers
- pour pouvoir donner accès aux fichiers téléchargés par d'autres à tout le monde
- que ça soit toujours sécurisé comme maintenant.
avant de modifier quoi que ce soit j'aurais aime donc avoir l'avis des pros... siouuuuuplait



Pour information le code que j'utilisais (visible ici http://www.nas-forum.com/forum/topic/37336-ssh-download-station-ou-notification/)
<?php
//Utilisation : <-----------URL------------>/rss.php?dossier=<NOM_DU_DOSSIER>
//Si le paramêtre dossier n'est pas mis, le dossier par défaut est listé.
/********************************/
/* CONFIGURATION */
/********************************/
$physical_path = '/var/www/'; // Dossier à lister par défaut (ex : /var/www/download)
$max = 20; //Nombre de fichiers à afficher dans le flux RSS
$site = 'https://127.0.0.1'; // IP ou NDD (http://<IP> ou htps://<IP> ou ftp://<IP> etc... utilisé pour télécharger les fichiers)
$nomDePage = 'Le flux RSS de mon site';// Nom affiché
$lienInterne = '/var/www/'; //position non affiché dans l'url (ex : /var/www/download/fichier.ext et url = http://<IP>/download/fichier.ext, mettre /var/www/ dans ce champs car non présent dans l'url)
$tempsAttente = 300; //Temps (en s) sans que le fichier soit modifié avant de le lister. (si trop rapide, il peut apparaître alors que le fichier n'est pas fini de téléchargé).
//VOIR LIGNE 100 POUR INDIQUER LES EXTENSIONS AUTORISES :
// Ajouter '|| get_file_icon($file)=="ext"' (sans les '') avant la fin de la parenthèse avec ext, l'extension que l'on veut qui soit listé
/********************************/
/* FONCTIONS */
/********************************/
$excludeFiles = array(".", "..", ".htaccess", ""); // Liste des fichiers ignorés dans le listing
/**
* Récupère récursivement le contenu d'un répertoire
* et le retourne sous forme d'array
* @param $directory Le répertoire à traiter
**/
function recursive_directory_tree($directory = null)
{
global $excludeFiles;
//If $directory is null, set $directory to the current working directory.
if ($directory == null) {
$directory = getcwd();
}
//declare the array to return
$return = array();
//Check if the argument specified is an array
if (is_dir($directory)) {
//Scan the directory and loop through the results
foreach(scandir($directory) as $file) {
//. = current directory, .. = up one level. We want to ignore both.
if ($file[0] == ".") {
continue;
}
//Exclude some specified files
if (in_array($file, $excludeFiles)) {
continue;
}
//Check if the current $file is a directory itself.
//The appending of $directory is necessary here.
if (is_dir($directory."/".$file))
{
//Create a new array with an index of the folder name.
$return[$directory."/".$file] = recursive_directory_tree($directory."/".$file);
}
else
{
//If $file is not a directory, just add it to th return array.
$return[] = $directory."/".$file;
}
}
}
else
{
$return[] = $directory;
}
return $return;
}
/**
* Stock dans un tableau tous les fichiers video présents dans le repertoire mis en pareamètre
**/
function liste($dossier)
{
global $tabTrie;
foreach ($dossier as $file)
{
if ( is_array($file) )
{
liste($file);
}
else
{
if(get_file_icon($file)=="mp4" || get_file_icon($file)=="mkv" || get_file_icon($file)=="avi" )
{
array_push($tabTrie, $file);
}
}
}
}
/**
* Convertit la taille en Xo
* @param $fs La taille à convertir
*/
function convert_size($fs)
{
if ($fs >= 1073741824)
$fs = round($fs / 1073741824 * 100) / 100 . " Go";
elseif ($fs >= 1048576)
$fs = round($fs / 1048576 * 100) / 100 . " Mo";
elseif ($fs >= 1024)
$fs = round($fs / 1024 * 100) / 100 . " Ko";
else
$fs = $fs . " o";
return $fs;
}
/**
* Retourne l'extention d'un fichier en fonction de son type
* @filename Le nom du fichier à considérer
*/
function get_file_icon($filename)
{
return pathinfo($filename, PATHINFO_EXTENSION);
}
/**
* Retourne le mime d'un fichier
* @filename Le nom du fichier à considérer
*/
function mime_file($filename)
{
$finfo = finfo_open(FILEINFO_MIME_TYPE); // Retourne le type mime à la extension mimetype
$mime=finfo_file($finfo, $filename);
finfo_close($finfo);
return $mime;
}
/********************************/
/* FONCTIONS */
/********************************/
$entete = '<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<atom:link href="'.$site.'/rss.php" rel="self" type="application/rss+xml" />
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
<title>'.$nomDePage.'</title>
<link>'.$site.'</link>
<language>fr-FR</language>
<description>Liste des nouveaux fichiers</description>
';
$pied = '</channel>
</rss>';
if(isset ($_GET['dossier']))
$physical_path = $physical_path.'/'.$_GET['dossier'];
$current_dir = array();
$tab= array();
$tabSize = array();
$tabTrie= array();
$current_dir = recursive_directory_tree($physical_path);
liste($current_dir);
foreach ($tabTrie as $key => $fichier)
{
$time = filemtime($fichier);
$actualTime = time();
$date = date("F d Y H:i:s.", filemtime($fichier));
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{
$tab["$fichier"] = $time;
$taille=filesize($fichier);
$tabSize["$fichier"] = $taille;
}
}
array_multisort($tab, SORT_DESC, $tabSize);
echo $entete;
$nombre = 1;
foreach ($tab as $fichier => $heure)
{
$nom = basename($fichier);
$extension = get_file_icon($fichier,TRUE);
$nom = str_replace(".$extension", "" , $nom);
$nom = str_replace(".", " " , $nom);
/********************************/
/* RENOMMAGE */
/********************************/
if(substr_count(strtoupper($nom), strtoupper(" epz")) > 0)
{
$nom = str_replace("epz-", "" , $nom);
}
if(substr_count(strtoupper($nom), strtoupper(" HDTV")) > 0)
{
$nom = strrev($nom);
$nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("VTDH"))+5));
}
if(substr_count(strtoupper($nom), strtoupper(" PDTV")) > 0)
{
$nom = strrev($nom);
$nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("VTDP"))+5));
}
if(substr_count(strtoupper($nom), strtoupper(" WEB")) > 0)
{
$nom = strrev($nom);
$nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("BEW"))+4));
}
if(substr_count(strtoupper($nom), strtoupper(" XVID")) > 0)
{
$nom = strrev($nom);
$nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("DIVX"))+5));
}
if(substr_count(strtoupper($nom), strtoupper(" LD")) > 0)
{
$nom = strrev($nom);
$nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("DL"))+3));
}
if(substr_count(strtoupper($nom), strtoupper(" DC")) > 0)
{
$nom = strrev($nom);
$nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("CD"))+3));
}
if(substr_count(strtoupper($nom), strtoupper(" x264")) > 0)
{
$nom = strrev($nom);
$nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("462x"))+3));
}
if(substr_count(strtoupper($nom), strtoupper(" bluray")) > 0)
{
$nom = strrev($nom);
$nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("yarulb"))+7));
}
$nom = ucwords(mb_strtolower($nom));
$nom = str_replace ( "French" , "FRENCH", $nom);
$nom = str_replace ( "Vostfr" , "VOSTFR", $nom);
$nom = str_replace ( "e0" , "E0", $nom);
$nom = str_replace ( "e1" , "E1", $nom);
$nom = str_replace ( "e2" , "E2", $nom);
$nom = $nom." [$extension]";
/********************************/
/* RENOMMAGE */
/********************************/
if(($actualTime-$heure) > $tempsAttente)
{
if ($nombre <= $max)
{
echo('
<item>
<title>'.$nom.'</title>
<description>'.$nombre.' | Format : '.$extension.' | Date d\'ajout : '. date("d/m/Y H:i:s", $heure).' | Taille : '.convert_size($tabSize["$fichier"]).'</description>
<pubDate>'.date("D, d M Y H:i:s", $heure).'</pubDate>
<link>'.$site.str_replace($lienInterne, "" ,$fichier).'</link>
<enclosure length="'.$tabSize[$fichier].'" type="'.mime_file($fichier).'" url="'.$site.str_replace($lienInterne, "" ,$fichier).'" />
</item>
');
$nombre++;
}
}
}
echo $pied;
?>