Aller au contenu

Ssh & Download Station Ou Notification


Messages recommandés

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é par Langer
Lien vers le commentaire
Partager sur d’autres sites

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. 

Lien vers le commentaire
Partager sur d’autres sites

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'

 

Lien vers le commentaire
Partager sur d’autres sites

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

Sans titre.png

Modifié par Langer
Lien vers le commentaire
Partager sur d’autres sites

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é par Vinky
Lien vers le commentaire
Partager sur d’autres sites

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é par Langer
Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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 ?

 

 

Capture1.PNG

Capture2.PNG

Modifié par Langer
Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

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; 	
	
?>

 

Lien vers le commentaire
Partager sur d’autres sites

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é :) 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

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.

Lien vers le commentaire
Partager sur d’autres sites

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...

cq5sSpN.jpg

Lien vers le commentaire
Partager sur d’autres sites

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é par Vinky
Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...
  • 2 ans après...

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.

 

tempsnip.png.3330aa042c187f299becb10be1a6d277.png

 

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; 	
	
?>

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.