Aller au contenu

Ssh & Download Station Ou Notification


GorMsoN

Messages recommandés

Wow, merci bien pour ce lien.

J'ai modifié suivant les recommandations du lien de Vinky :

J'ai édité le fichier :

/etc/apache2/sites-enabled/000-default

et ai modifié la ligne pour adapter à mon cas :

DocumentRoot /home/maison/public_html

Ensuite, j'ai édité :

/etc/apache2/mods-enabled/php5.conf

et ai commenté :

# <IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
# </IfModule>
sudo /etc/init.d/apache2 restart

et hop, ça fonctionne!

effectivement ça fonctionne presque ;)

79v8.png

Par contre, Download Station du syno prend bien le fichier rss, et je vois les fichiers du fichier rss. Malheureusement, les downloads ne se lance pas une fois ajouté dans la page de téléchargement. Ils se mettent en erreur : J'ai modifié le script comme ceci, en mettant la variable site en sftp :

<?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/cedric/complets'; // Dossier à lister par défaut (ex : /var/www/download)
	
	$max = 20; //Nombre de fichiers à afficher dans le flux RSS

	$site = 'sftp://user:mdp@ip:port/'; // IP ou NDD (http://<IP> ou htps://<IP> ou ftp://<IP> etc... utilisé pour télécharger les fichiers)

	$nomDePage = 'Seedbox Langer';// Nom affiché

	$lienInterne = '/home/cedric/complets/'; //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 : 

Merci Vinky de ton aide, tes commentaires sont toujours très éclairés, et cela avance :)

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

Pour ce genre de souci, c'est un problème de génération de l'uri.

Je ne pourrais pas t'aider sans avoir des informations liés à ton serveur.

Seul toi pourra le debuger, pour cela, en supposant que tu parviens parfaitement à connaître l'uri par sftp qui fonctionne, c'est de comparer le lien sftp qui fonctionne convenablement et que tu peux mettre manuellement dans download station pour télécharger avec celui que génére le rss

Une fois cela fait tu pourras rectifier (je suppose que c'est dans la variable : $lien_interne que ça coince)

Lien vers le commentaire
Partager sur d’autres sites

Ca marche au poil :D Merci beaucoup de ton aide Vinky!!

j'ai mis en commentaires la ligne du lien interne et la ligne 100 pour l'instant.

Petit question subsidiaire : Le script gère t il les caractères spéciaux chez toi? chez moi, il me met des caractères du genres intégrale ou – quand je pointe vers l'index.php dans mon explorateur internet, et donc DownloadStation ne peut pas récupérer certains fichiers .

Y a t il une petite dernière manip a effectuer?

Encore un grand merci a toi, et bonne fin de semaine

Lien vers le commentaire
Partager sur d’autres sites

Pour lien interne, si ça marche sans, laisse comme ça, même si ça serait plus propre de laisser lieninterne vide.

Pour la ligne 100 cela ne doit avoir aucun rapport normalement, ça te permet juste de filtrer les videos seulement.

Pour les caractères spéciaux, je n'ai pas le souvenir d'en avoir eu, mais si tu en as il faut changer dans l'entête le format encodage.

Lien vers le commentaire
Partager sur d’autres sites

Jai essayé ces 4 là, #ISO-8859-15, #ISO-8859-1, #UTF-EBCDIC, #UTF-8

Celui qui me sort un index.php le plus propre sur mon serveur distant, c'est l'UTF-8. Malheureusement dans la configuration avec UTF-8, DownloadStation met l'erreur comme quoi le flux rss est vide ou ne marche pas...

Bref, ca se trouve c'est mes 2 fichiers aussi qui ne sont pas bien codés?

je t'envoi les liens des fichiers en mp si je peux me permettre

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Merci Vinky pour ton script il fonctionne bien chez moi.
Par contre je n'arrive pas a géré les répertoires avec ton script.
Si j'ai sur ma seedbox une arborescence avec différents sous dossier, lors du téléchargemnt sur mon nas, tous ce met a la racine.

Aurais-tu une solution a ce petit problème ?
En tous cas pour les fichier unique ton script est vraiment top.
Merci

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

Je ne comprend pas parfaitement ce que tu cherches à faire, mais si tu cherches à faire une synchro parfaitement identique à ta seedbox, le flux rss ne te sera pas pratique. J'ai construit le flux justement dans le but d'avoir un listing sans repertoire pour pouvoir moi même refaire le rangement comme je le souhaite.

Personnellement, j'ai mis en place des filtres dans le flux rss (onglet au dessus du flux sous download station) permettant ainsi de télécharger ce que je veux et seulement ce que je veux sur le NAS et j'indique à quel emplacement je souhaite qu'il soit mis. Comme ça, je peux par exemple ranger mes films de vacances par type et par saison. (et non pas un dossier par épisode)

Si cela ne correspond pas du tout à ce que tu cherches, je ne comprend pas trop.

PS : Si quelqu'un sait comment on peut faire pour gérer l'encodage convenablement, je suis preneur.

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

Merci de ta réponse,

sur ma seebox les fichiers a traiter sont dans un répertoire spécifique.

Je cherche a télécharger automatiquement dès qu'un fichier/dossier est crée dans se répertoire.

Les fichiers de se répertoire ne seront pas modifié.

D’après ce que j'ai compris de ton script, et mes très mauvaises notions de dev,

pour copier intégralement le contenu du repertoire ma seedbox :

-il faudrait avoir un champ spécifique dans le rss permettant "d'informer" download station du répertoire dans lequel le fichier sera télécharger.

-ou arrêter le script pour qu'il ne descende pas dans les sous répertoire. crée un<item> pour le répertoire au lieu d'un <item> par fichier

Je sais pas si je suis clair, en tous cas merci pour ton aide et de ton code.

Lien vers le commentaire
Partager sur d’autres sites

Comme dit, le flux rss n'a pas pas pour vocation (en tout cas tel qu'il a été codé) à faire une synchronisation à l'identique entre un serveur et un NAS.

Le but étant de pouvoir récupérer tout ce que l'on souhaite et de les ranger dans les répertoires que l'on souhaite.

Après, à toi de le modifier si tu souhaites faire d'aitres choses avec.

-il faudrait avoir un champ spécifique dans le rss permettant "d'informer" download station du répertoire dans lequel le fichier sera télécharger.

-ou arrêter le script pour qu'il ne descende pas dans les sous répertoire. crée un<item> pour le répertoire au lieu d'un <item> par fichier

JE t'avoue ne pas du tout comprendre ce dont tu parles :(

Pour le 1, un flux rss n'est pas spécifique à download station, impossible donc de donner des informations pour lui dire quoi faire.

ce qui peut peut-être s'apparenter à ça, si j'ai compris, c'est de créer un compte sur ton NAS et de configurer downolaod station pour ce compte dans un répertoire souhaité, spécifique à celui-ci, et d'y ajouté le flux rss (toujours connecté sur le compte spécifique pour le flux et si j'ai bien compris ce que tu voulais).

Pour le 2, j'ai déjà entendu certains me parler de ça, je ne vois vraiment plus l'intéret du flux rss pour faire ça, mais soit.

Normalement le but d'un flux rss est d'informer des nouveautées et de permettre de les télécharger. (et ceux quelques soient leurs lieux de stockage) Ensuite, à l'utilisateur d'utiliser des filtres sous download station pour ranger comme il souhaite ses nouveautés (et les récupérer automatiquement que s'il le souhaite)

Lien vers le commentaire
Partager sur d’autres sites

Salut Sobit

D’après ce que j'ai compris de ton script, et mes très mauvaises notions de dev,

pour copier intégralement le contenu du repertoire ma seedbox :

-il faudrait avoir un champ spécifique dans le rss permettant "d'informer" download station du répertoire dans lequel le fichier sera télécharger.

-ou arrêter le script pour qu'il ne descende pas dans les sous répertoire. crée un<item> pour le répertoire au lieu d'un <item> par fichier

Comme dit Vinky, ce que tu peux faire, c'est de créer des filtres dans download station pour qu'il envoie les fichiers de tel et tel type vers un répertoire différent.

Par exemple :

Nom : Musique mp3

Résultats : mp3

Pas de résultats: (vide)

Destination: le répertoire ou tu veux que tout les fichiers contenant mp3 se téléchargent

Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...

Salut à tous,

Pour des besoins perso j'ai demandé à Vinky qu'il me modifie un peu son script. J'avais besoin d'exclure un dossier du "listage" du RSS et il me fallait aussi que le RSS ne soit pas récursif.

Alors voilà les solutions de Vinky (encore merci à lui)

Exclure un dossier :

Il faut ajouter après ceci (ligne 58 environ)

//. = current directory, .. = up one level. We want to ignore both.
            if ($file[0] == ".") {
                continue;
            }

Cette ligne de commande :

           if ($file == "nom_du_dossier") {
                continue;
            }

Il faut bien sûr remplacer nom_du_dossier par le dossier à exclure...

Retirer le récursif :

Il suffit de supprimer ces lignes de commandes (Vers la ligne 64)

//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);
            }

Voilà peut être que ça va aider quelqu'un d'autre que moi

Lien vers le commentaire
Partager sur d’autres sites

Après des heures d'arrachage de cheveux et de MP avec Vinky (merci encore pour ta patience), voici la config pour Feral et son install de base de ruTorrent :

$physical_path = '/media/sde1/home/USER/private/rtorrent/data';
$site = 'ftp://SERVEUR.feralhosting.com/';
$lienInterne = '/media/sde1/home/USER/';

Me reste à sécuriser et automatiser tout ca, parceque "Download Station" est bien sympa, mais bon entrer un par un le login/mot de passe pour chaque torrent qui est dans le RSS ca va vite me saouler ^^

Si quelqu'un à capter comment faire fonctionner les sftp ou ftps, je suis preneur parceque c'est l'horreur la.

Edit : petite précision, je viens juste de faire un test avec BitTorrent Sync, et je l'ai adopté en quelques minutes.

Synchronisation en quelques clicks des 2 cotés (un peu plus long sur la seedBox, mais faisable du moment que vous avez un accès SSH).

Le partage se fait en 2s en générant des clés et en les copiant / collant entre les 2 BitTorrent Sync.

Je partage le repertoire reception de RuTorrent en lecture de la SeedBox vers le NAS

Je partage le repertoire "watch" en lecture / écriture du NAS vers la SeedBox

Et c'est terminé ! Tout ca sans "ouvrir" le NAS vers l'extérieur, et les débits sont au max.

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

J'utilise ton script rss Vinky et ça marche nickel, avant j'utilisais synchback sur le pc pour ça mais ça m'obligeait à laisser mon pc allumé.

L'inconvénient en effet c'est que ça telecharge uniquement les fichiers sans conserver l'arborescence des fichiers ce qui est un poil gênant quand on automatise tous avec sickbeard, devoir les redeplacer manuellement après c'est toujours chiant.

J'ai résolu le soucis sans le savoir grâce à sickbeard justement, sickbeard est installé directement sur la seedbox mais auparavant je l'avais mis sur mon syno avant de réussir à le configurer sur la seedbox.

Du coup sickbeard/seedbox telecharge, déplace et renomme mes épisodes tout seul dans les bon dossiers de chaque série et saison. Le syno grâce au rss récupère tous les épisodes via download station donc uniquement les fichiers sans dossier dans un répertoire surveillé par mon sickbeard/syno qui se charge donc de les redeplacer tout seul dans les bon dossier de série/saison :)

Un grand merci pour ton script assez simple à installer pour quelqu'un qui ne comprend rien à la programmation :)

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Bon est bien je suis un boulay :P

Tous fonctionnais bien mais j'ai eu besoin de repartir a zero sur mon serveur du coup j'ai une instal toute fraiche et je me retrouve comme un con car plus moyen de faire fonctionner la page web rss.php !

Je ne trouve plus dans quel dossier je doit le placer, j'ai essayer plein de chose et ej tourne en rond depuis 1h alors que a premiere fois j'avais ça en 2min ...

Si quelqu'un peut me dire où je me plante


//Utilisation : <-----------URL------------>/rss.php?dossier=
//Si le paramêtre dossier n'est pas mis, le dossier par défaut est listé.

/********************************/
/* CONFIGURATION */
/********************************/

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

$max = 20; //Nombre de fichiers à afficher dans le flux RSS

$site = 'http://monid:password@1111.1111.1111.1111/'; // IP ou NDD (http:// ou htps:// ou ftp:// 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:///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 = '
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/">




'.$site.'
fr-FR
Liste des nouveaux fichiers
';
$pied = '
';

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('


'.$nombre.' | Format : '.$extension.' | Date d'ajout : '. date("d/m/Y H:i:s", $heure).' | Taille : '.convert_size($tabSize["$fichier"]).'
'.date("D, d M Y H:i:s", $heure).'
'.$site.str_replace($lienInterne, "" ,$fichier).'


');
$nombre++;
}
}
}

echo $pied;

?>

Merci d'avance.

Edit: J'ai enfin réussi à en venir à bout ! Je ne saurais pas trop dire comment mais ouf ça remarche.

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

  • 2 semaines après...

Wow le post a bien évolué depuis mon dernier tour sur le forum :)

En ce qui concerne le nom traitement des caractères spéciaux, je pense que cela vient du DS Download Station. Car quand on place un fichier usenet nzb avec des accents, DS n'aime pas ça non plus.

Je viens tout juste de me reprendre un abonnement Usenet pour tester 1 mois, et j'ai tout de suite pensé à ce poste :)

A+ au plaisir de vous lire

Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

Hello Hello,

Je m'intéresse de près à ce post parce que j'utilise aussi des flux RSS pour télécharger via Download Station.

Le problème, c'est que chaque fichier sur ma Seedbox est déclaré en tant qu'item, mais quand Download Station télécharge les items, ils sont tous placés à la racine du dossier de destination => en clair, je perds l'arborescence que j'ai sur ma seedbox.

Y'a-t-il un moyen de palier à ce problème ?

Lien vers le commentaire
Partager sur d’autres sites

Etant donné que le but de ce flux est de télécharger justement fichier par fichier et non pas dossier par dossier, cela semble logique.

Il reste peut-être possible de modifier pour qu'il mette le lien d'un dossier directement.

Mais cela impliquera l'utilisation du ftp (car seul le ftp permet de télécharger par dossier)

Tu cherches plus de la synchronisation que du rapatriement de fichier, je ne pense pas que le flux rss soit le plus adapté pour ton besoin.

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

  • 9 mois 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.