Aller au contenu

Messages recommandés

J'ai actuellement un NAS Ds213j et un serveur Kimsufi de chez OVH avec une seedbox installée dessus.

J'aimerai installer une récupération automatique de mes fichiers de ma seedbox vers mon NAS. (Pourquoi pas programmer les heures de récupérations)
J'ai bien entendu un accès SSH.

J'ai trouvé beaucoup d'éléments de réponses sur internet mais rien de très clair à mes yeux.

Si vous avez des réponses à m'apporter pour une mise en place d'un tel système, c'est partis :D

Merci d'avance.

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

D'accord donc ce script a moi de le modifier avec mes paramètres, à le mettre sur mon serveur Kimsufi est à l'exécuter dans DLStation en tant que flux RSS ?

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

?>

Je me permet de poser deux trois questions sur le renommage pour être sur :

//Utilisation : <-----------URL------------>/rss.php?dossier=<NOM_DU_DOSSIER>

URL = Ip de mon serveur ou chemin d’accès a ma seedbox ?

Nom du dossier = Dossier dans lequel se trouve mon script ?

$physical_path = '/var/www/'; // Dossier à lister par défaut (ex : /var/www/download)

Ici je mes ou est situé le répertoire de téléchargement de ma seedbox ?

$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)

Et ici l'ip de mon serveur ?

Je te remercie d'avance pour ton aide !

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

1. URL c'est le lien web d'accès sur le fichier php que tu auras enregistré. C'est elle qui te permettra d'accéder à ton flux rss à distance. Nom du dossier n'est pas obligatoire. C'est pour lister uniquement un sous répertoire

2. Exactement ;)

3. C'est ça ou ton nom de domaine si tu en as un (kimsufi en fournissent)

Lien vers le commentaire
Partager sur d’autres sites

Un petit récap' des choses déjà faites pour être sur que je n'ai pas fais d'erreur :

J'ai installé Apache et php5 et j'ai mis mon fichier rss.php dans /var/www/. Maintenant quand je me rend sur http://IPKIMSUFI/rss.php ça me télécharge le fichier. C'est mieux ?

Il y a t'il quelque chose à modifier ici ;

$nomDePage = 'Le flux RSS de mon site';// Nom affiché

$lienInterne = '/var/www/'; //position non affiché dans l'url

Ensuite si tout est bon, je n'est plus qu'a me rendre sur DLstation et rajouter ceci : http://IPKIMSUFI/rss.php en flux RSS et cela devrait fonctionner ?
Merci encore de ton aide.
Lien vers le commentaire
Partager sur d’autres sites

Ce n'est pas sensé te telecharger le fichier normalement. (Il faut le tester sous Firefox par exemple)

Pour les deux questions :

1. C'est qu'un affichage quand tu lances ton flux rss (aucun impact sur le fonctionnement)

2. Cela sert si par exemple tes fichiers sont dans /var/www/downloads (var/www/ sera retiré du lien du fichier car n'apparait pas dans l'url)

Mais tu peux mettre ce que tu veux en fonction de tes preferences (ça peut être un lien FTP si tu préfères)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines aprè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.

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.