Langer Posté(e) le 22 janvier 2016 Partager Posté(e) le 22 janvier 2016 (modifié) Désolé du délai, Oui, cela permet plus de sécurité que de laisser un .php à l'accès de tous j'avais essayé cela dans mon .htaccess mais sans succès : order deny,allow deny from all Allow from x.x.x.x Aie Aie Aie, je pense que j'ai fais une erreur dans mon code. je vais vérifier ce soir. j'avais mis deny from xxx.xxx.xxx.xxx en dernière ligne. Est il possible de contrôler aussi les utilisateurs qui se connectent en utilisant le .htaccess avec .htpasswd ? Comment adapter le script dans index.php ? Merci de ton aide Modifié le 22 janvier 2016 par Langer 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vinky Posté(e) le 22 janvier 2016 Partager Posté(e) le 22 janvier 2016 Effectivement le deny doit être la cause de ton souci. Pour la gestion des utilisateurs, qu'est-ce que tu veux "changer" en fonction de l'utilisateur ? Qu'est-ce que tu souhaites faire de particulier pour que tu donnes plusieurs niveaux d'accès (autre que tout ou rien) ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Langer Posté(e) le 22 janvier 2016 Partager Posté(e) le 22 janvier 2016 J'aimerai simplement que mes liens générés par rss n'affiche jamais le monlogin:monmotdepasse en clair. D'une certaine façon, que dans le script index.php, la ligne : $site = 'sftp://monlogin:monpasswd@monip:22' fasse appel à des variables pour "monip" et "monpasswd" qui sont reliés au login et mot de passe de .htpasswd. je sais pas trop si c'est possible, mais ce serait pas mal, étant donné que j'ai un ip dynamique qui change aux 2-3 mois. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vinky Posté(e) le 22 janvier 2016 Partager Posté(e) le 22 janvier 2016 Je ne comprend pas parfaitement. si tu mets dans le liens monlogin:monpassword tu auras forcement l'apparition de ton lien. Ce que tu souhaites faire c'est un genre de cookie du coup ? Il y a peut-être d'autres solutions mais là je ne sais pas trop comment t'aider. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 22 janvier 2016 Partager Posté(e) le 22 janvier 2016 il y a une heure, Langer a dit : $site = 'sftp://monlogin:monpasswd@monip:22' Alors si je comprends bien tu utilises du sftp pour récupérer tes fichiers (ou les déposer) ... donc pour ne pas avoir a mettre me mots de passe en sftp, il suffit d'utiliser une clé privée/public ssh (puisque le sftp s'appuie en fait sur le ssh .. tout comme le scp). Ensuite pour ce quie st de ton adresse ip qui change, il suffit de mettre en place un service DDNS et d'utiliser le nom de domaine complet fournit par le DDNS dans ton script au lieu de l'adresse ip Le tout donnerait : $site = 'sftp://monlogin@mon.domaine.ddns:22' 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Langer Posté(e) le 23 janvier 2016 Partager Posté(e) le 23 janvier 2016 (modifié) Oui c'est ça loli71, je n'ai pas besoin de contrôler l'ip si je contrôle les accès utilisateurs. Concrêtement, j'aimerai que les rectangles oranges de mon index.php ne soit pas visibles/accessibles, mis à part pour mon NAS avec Download Station. Il faut donc que je créer une clé privée et publique ssh, pour qu'elles se vérifient entre elle lors d'une demande de transfert? c'est bien ça? PS: est ce que passer en https à la place de sftp pour la création du flux rss, changerait quelque chose à ma problématique? Merci Modifié le 23 janvier 2016 par Langer 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vinky Posté(e) le 23 janvier 2016 Partager Posté(e) le 23 janvier 2016 (modifié) Il y a 20 heures, loli71 a dit : Alors si je comprends bien tu utilises du sftp pour récupérer tes fichiers (ou les déposer) ... donc pour ne pas avoir a mettre me mots de passe en sftp, il suffit d'utiliser une clé privée/public ssh (puisque le sftp s'appuie en fait sur le ssh .. tout comme le scp). Ensuite pour ce quie st de ton adresse ip qui change, il suffit de mettre en place un service DDNS et d'utiliser le nom de domaine complet fournit par le DDNS dans ton script au lieu de l'adresse ip Le tout donnerait : $site = 'sftp://monlogin@mon.domaine.ddns:22' Pour l'adresse IP, je pense que @langer, parle de la méthodologie de filtrer les accès par mdp en fonction de l'IP. Qu'il y ai un nom de domaine ou non ne change rien. c'est l'ip du NAS et non du serveur. Modifié le 23 janvier 2016 par Vinky 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Langer Posté(e) le 23 janvier 2016 Partager Posté(e) le 23 janvier 2016 (modifié) Hello, j'ai créer une clé publique et privé dans mon /home/.ssh/ de l'utilisateur qui utiliser Download Station sur mon NAS en suivant ce tuto entre autres, puis j'ai exporté la clé publique dans le /home/.ssh/authorized_keys de l'utilisateur admin sur le serveur distant. Mais en enlevant l'id et le mot de passe du script php, cela ne marche pas.. Je n'ai pas trop de solutions à ça.. J'ai l'impression d'avoir bien suivi toute les étapes Est ce que quelqu'un a déjà réussi à le faire fonctionner pour ce cas précis? Modifié le 23 janvier 2016 par Langer 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 24 janvier 2016 Partager Posté(e) le 24 janvier 2016 Il y a 8 heures, Langer a dit : j'ai créer une clé publique et privé dans mon /home/.ssh/ de l'utilisateur qui utiliser Download Station sur mon NAS en suivant ce tuto entre autres, puis j'ai exporté la clé publique dans le /home/.ssh/authorized_keys de l'utilisateur admin sur le serveur distant. Mais en enlevant l'id et le mot de passe du script php, cela ne marche pas.. Si les deux utilisateurs sont sont pas identiques de chaque côté, il est nécessaire de préciser sur le NAS le compte à utilisé sur le serveur distant (donc "admin" dans votre cas), car sinon le sftp va tenté de se connecter avec le compte utilisé par Download Station sur le serveur distant. Pour vérifier dans un premier temps si cela fonctionne, se connecter en ssh sur le syno avec le compte qui utilise Download Station et lancer al commande : ssh admin@mon.domaine.ddns 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Langer Posté(e) le 24 janvier 2016 Partager Posté(e) le 24 janvier 2016 (modifié) Merci de ton aide, Bon, après 15000 edit, ta commande marche sans problème et sans mot de passe. J'ai mis comme tu l'as conseillé un user qui a le même nom dans le NAS et le serveur distant. Par contre le Download Station de mon user n'arrive pas à lancer les téléchargement SFTP sans login et mot de passe même si les clés fonctionnent... As tu aussi une astuce à cela ? Modifié le 24 janvier 2016 par Langer 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mouflo Posté(e) le 1 juin 2016 Partager Posté(e) le 1 juin 2016 Bonjour, je suis de nouveau confronté à un soucis, suite à la mise à jour de mon serveur qui est passé en Ubuntu 16.04 LTS mon rss ne fonctionnait plus, le lien renvoyé sur le fichier txt de configuration du rss. Apres quelques galére j'ai réussi à mettre à jour apahche et compagnie avec cette ligne car l'ancienne ne fonctionne plus avec cette version. apt-get install apache2 php mysql-server libapache2-mod-php php-mysql Depuis le rss est de nouveau bien interprété mais incomplet, aucune liste ne s'affiche, uniquement la ligne : sftp://xxxx:xxxx@91.xxx.xxx.xxx fr-FR Liste des nouveaux fichiers Je n'ai absolument pas touché au fichier rss.php donc si quelqu"un peut me dire où je me plante. Merci d'avance. <?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 = '/home/mouflo/Downloads/transmission/series/'; // Dossier à lister par défaut (ex : /var/www/download) $max = 60; //Nombre de fichiers à afficher dans le flux RSS $site = 'sftp://xxxx:xxxxxx@91.xxx.xxx.xxx'; // IP ou NDD (http://<IP> ou htps://<IP> ou ftp://<IP> etc... utilisé pour télécharger les fichiers) $nomDePage = 'Le flux RSS de mouflobox';// Nom affiché $lienInterne = '/var/www/base/'; //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; ?> 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vinky Posté(e) le 2 juin 2016 Partager Posté(e) le 2 juin 2016 As tu bien réinstalle php ? J'ai l'impression que le php n'est plus interprèté par ton serveur. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mouflo Posté(e) le 2 juin 2016 Partager Posté(e) le 2 juin 2016 Bonjour Vinky, je peut simplement supposé qu'il est bien installé car en ayant fait la maj avec la commande citée plus haut je suis passé d'une page qui affichait le contenu du fichier rss (toute la configuration) à une page qui affiche le début du flux rss. Je suis pas assez doué en Linux pour à affirmer que je l'ai bien installé :) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mouflo Posté(e) le 15 juin 2016 Partager Posté(e) le 15 juin 2016 Alors merci à tous pour vos nombreuse réponse. A force de désinstaller et installer un peu n'importe quoi , n'importe comment vu que linux c'est du chinois pour moi j'ai enfin réussi à tout refaire fonctionner. Dans les dernieres manip que j'ai testées ça proviendrais donc de ubuntu 16.04 LTS qui inclus php7 et qui n'ai pas compatible avec le script rss que nous à fourni Vinky, j'ai donc trouvé un tuto pour le virer et réinstaller le php 5 à la place et enfin tout roule. Si ça interresse quelqu'un d'aussi mauvais que moi voila le lien : http://askubuntu.com/questions/756181/installing-php-5-6-on-xenial-16-04 Il me reste plus qu'as trouver comment sécuriser un peu le bouzin pour eviter que mes login apparaissent sur la page du rss mais c'est une autre paire de manches. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vinky Posté(e) le 15 juin 2016 Partager Posté(e) le 15 juin 2016 Merci pour ton retour. Je suis surpris que le souci provienne de la version de php. Peut-être que j'utilise des fonctions périmés mais je ne pense pas. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mouflo Posté(e) le 18 juin 2016 Partager Posté(e) le 18 juin 2016 Bon et bien ça n'as été que de courte durée .... Depuis hier le syno ne trouve plus de mise à jour, si je regarde le rss avec chrome ou edge j'ai bien le listing avec les nouveaux fichiers mais c'est tout. Par curiosité je réinstalle firefox et je m'aperçoit que j'ai aucun lien, aucun listing ... J'en ai marre je tourne en rond, je comprend pas pourquoi sans rien toucher plus rien ne fonctionne... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vinky Posté(e) le 18 juin 2016 Partager Posté(e) le 18 juin 2016 (modifié) Tu as mis beaucoup de fichier (60) n'est-ce pas la cause du problème ? Essai d'en mettre moins (25 par exemple) pour voir si tu as toujours le souci. Personnellement, en reprenant ton fichier du dessus et en mettant mes paramètres, tout fonctionne correctement. (hormis l'url, mais tu as mis un "/" en trop sur le @physical_path à la fin et il te manque un "/" sur @site (cf l'exemple) Modifié le 18 juin 2016 par Vinky 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mouflo Posté(e) le 18 juin 2016 Partager Posté(e) le 18 juin 2016 J'avais mit 60 depuis plusieurs mois déjà et çà à toujours fonctionné sans poser de problème. J'ai remit la valeur à 20 sans plus de succès. Pour les / en plus et en moins c'est parce que je testé tout ce qui me passait par la tête. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vinky Posté(e) le 19 juin 2016 Partager Posté(e) le 19 juin 2016 Tu dois avoir un autre souci que je ne comprend pas alors (erreur de frappe ou autre) car en reprenant ton fichier (au dessus) et en mettant mes paramètres, cela fonctionne parfaitement. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mouflo Posté(e) le 19 juin 2016 Partager Posté(e) le 19 juin 2016 Bon et bien je ne comprend pas, je n'ai rien changé depuis hier et ce matin au réveil ça se remet à fonctionner, download station m'as fait les mises à jours.... Si je test le lien sur firefox j'ai toujours exactement le même affichage que ma capture d'ecran précédente pourtant. J'espere que ça ne vas pas recommencer à ne plus marcher, fini je fais plus aucune maj du serveur, je galére trop aprés ! Autre question, j'ai vu que tu utilisait les filtres de download station, tu pourrait m'expliquer comment ça marche ? j'ai essayé 2/3 truc sans succés. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vinky Posté(e) le 20 juin 2016 Partager Posté(e) le 20 juin 2016 Sur les filtres, c'est du regex. Le filtre va "chercher" dans ton flux. Tu vas dans Résultat indiquer ce que tu veux chercher. Par exemple : Game.*Of.*Thrones.*S06.*VOSTFR.*1080p.* Va chercher que tous les éléments entre les .* doivent apparaitre pour que le téléchargement soit lancé. (majuscule inclus) il faut bien cocher "utilisation des expressions régulières". Sinon, il faut mettre des espaces entre les mots mais je ne trouve pas ça des plus fiables... Ensuite, dans destination, tu indiques dans quel dossier tu veux que le fichier soit téléchargé s'il correspond au filtre que tu as mis. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mouflo Posté(e) le 21 juin 2016 Partager Posté(e) le 21 juin 2016 Merci je testerais ça. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mouflo Posté(e) le 22 juin 2016 Partager Posté(e) le 22 juin 2016 Je suis définitivement mauvais :) J'ai fait comme ça et bien évidemment ça ne marche pas ... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Langer Posté(e) le 19 janvier 2017 Partager Posté(e) le 19 janvier 2017 Salut Mouflo, Il faut faire un filtre pour bloquer tout ce que tu veux filtrer, puis faire tes filtres personnalisés par la suite. Voici mon filtre AUTRES et mon filtre ViKINGS 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Langer Posté(e) le 2 septembre 2019 Partager Posté(e) le 2 septembre 2019 Salut à tous, J'espère que @Vinky passe encore la dessus. J'ai le même problème que @Mouflo depuis quelques temps... Le script php ne génère que le début d'identification, il ne vient pas chercher les fichiers par la suite. J'ai essayé quelques trucs sans succès. Je suis sur Debian 9.4 Stretch (stable) (64bits) avec YUNOHOST qui roule avec nginx et php7.0 J'ai réussi à installer php5.6 en suivant ce tuto https://stackoverflow.com/questions/46378017/install-php56-in-debian-9, mais le problème persiste. Je ne sais plus trop ou regarder, je n'ai pas les connaissances suffisantes pour trouver une solution. Avez vous vu quelque chose qui cloche ? Voici mon script : <?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 = '/home/yunohost.transmission/completed'; // Dossier à lister par défaut (ex : /var/www/download) $max = 20; //Nombre de fichiers à afficher dans le flux RSS $site = 'sftp://XXX:XXXXX@XXXX.org:22'; // IP ou NDD (http://<IP> ou https://<IP> ou ftp://<IP> etc... utilisé pour télécharger les fichiers) $nomDePage = 'Seedbox Langer';// Nom affiché $lienInterne = ''; //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 = 100; //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 */ /********************************/ #ISO-8859-1 $entete = '<?xml version="1.0" encoding="UTF-8"?> <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; ?> 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.