Fork me on GitHub

Rapport de message :*
 

Re: Régénérer les desciptions avec allociné

Titre du sujet : Re: Régénérer les desciptions avec allociné
par seboseboss sur 04/01/2015 10:27:44

Bien vu slider et merci car j'ai encore du mal à savoir par quel bout y prendre.

ça marche nickel en demandant d'afficher le tableau, par contre le script à pas l'air de fonctionner, y'a trop de requête à faire et c'est beaucoup trop long, j'imagine que j’atteins le time out puis page blanche., il faudrait un truc genre cron pour faire les requête 1 par 1 tranquilement et afficher à chaque tour"update réussi pour $title, passage au suivant"

parceque la, j'ai l'impression que les infos seront toutes affiché quand tout sera fini. pas évident à faire ça pour moi, je vais me renseigner.

mon code:
$sql$xoopsDB->query('SELECT lid, title FROM ' $xoopsDB->prefix('xoopstube_videos')
        . 
' WHERE published > 0 AND published <= ' time() . ' AND (expired = 0 OR expired > ' time()
        . 
') AND offline = 0 AND cid = 7');
    
// boucle pour parcourir les résultats de la requête
    
while ( $myrow $xoopsDB->fetchArray($sql)) {
        
$titre_arr =array();
        
$titre_arr['lid'] = $myrow['lid'];
        
$titre_arr['title'] = $myrow['title'];
        
print_r ($titre_arr);


Resultat:
Array
(
    [
lid] => 3440
    
[title] => No Good Deed [FilmVOSTFR]
)
Array
(
    [
lid] => 104
    
[title] => Le Portrait de Dorian Gray [FilmVOSTFR]
)
Array
(
    [
lid] => 225
    
[title] => Les Rodeurs de l'aube [FilmVOSTFR]
)
Array
(
    [lid] => 1120
    [title] => Les Poings contre les murs [FilmVOSTFR]
)
Array
(
    [lid] => 1259
    [title] => The Giver [FilmVOSTFR]
)
Array
(
    [lid] => 1280
    [title] => The November Man [FilmVOSTFR]
)
etc... etc...


OUI c'est bien ça le problème, je viens de refaire un essai sur une catégorie qui ne contient que 6 vidéo et c'est passé aprés 1 minute de chargement et il y a plein s d'erreurs, c'est trop rapide, il faut compartimenter.

code utilisé(sans les fonctions, pas importante):
$sql$xoopsDB->query('SELECT lid, title FROM ' $xoopsDB->prefix('xoopstube_videos')
        . 
' WHERE published > 0 AND published <= ' time() . ' AND (expired = 0 OR expired > ' time()
        . 
') AND offline = 0 AND cid = 8');
    
// boucle pour parcourir les résultats de la requête
    
while ( $myrow $xoopsDB->fetchArray($sql)) {
        
$titre_arr =array();
        
$titre_arr['lid'] = $myrow['lid'];
        
$titre_arr['title'] = $myrow['title'];
        
//print_r ($titre_arr);
        
                // On lance la recherche des codes films grace aux titres
                
$helper  = new AlloHelper;
                
$title $titre_arr['title'];
                
$title substr("$title"0, -9); //enlever le [FilmFR] en fin de chaine
                //echo $title;
                
$q removeAccents($title); //nettoyage du titre pour recherche
                
$page 1;
                
$count 1;
        
                if (isset(
$title)) {
                    try {
                        
// Envoi de la requête de recherche
                        
$info   $helper->search($q$page$count)->getArray(); 
                        
//print_r($info);
                        
if (isset($info['movie'])) {
                            foreach (
$info['movie'] as $key) {
                                
$code $key['code'];
                                echo 
"Code trouvé pour " $title ":" $code;
                            }
                        }
                    }                
                    catch (
ErrorException $error) {
                        
// En cas d'erreur
                        
echo "Erreur n°"$error->getCode(), ": "$error->getMessage(), PHP_EOL;
                    }
                }
                    
// début de la récupération des infos 
                    // Créer l'objet
                    
$allohelper = new AlloHelper;

                    
//Pour plus de clareté, on définit les paramètres à l'avance: le code du film, et la quantité d'informations à récupérer.

                    
$profile 'medium';
                    
$filter 'movie';
                    
                    
//Ensuite, il est conseillé d'effectuer des requêtes dans un bloc try{} catch(){} pour gérer les erreurs.
                
                    
try
                    {
                        
// Envoi de la requête
                        
$data $allohelper->movie$code$profile$filter );
                        
//print_r($data->getArray());
                        
                        //Convertir la durée en hh:mm:ss
                        
$total $data->runtime//Nombre de secondes
                        
$heure intval(abs($total 3600));
                        
$total $total - ($heure 3600);
                        
$minute intval(abs($total 60));
                        
$total $total - ($minute 60);
                        
$seconde $total;
                        
                        
//Convertir la date en jj.mm.aa
                        
$date $data->release['releaseDate'];
                        
                    }
                    catch( 
ErrorException $error )
                    {
                        
// En cas d'erreur
                        
echo "Erreur n°"$error->getCode(), ": "$error->getMessage(), PHP_EOL;
                    }
                    
                        
$url_img $data->poster;
                        
$titre2 $data->title;
                        
$annee $data->productionYear;
                        
$duree $data->runtime;
                        
$date_sortie $data->release['releaseDate'];
                        
$nom_realisateur $data->castingShort['directors'];
                        
$synopsis $data->synopsis;
                        
$nom_acteur $data->castingShort['actors'];
                        
$nom_pays $data->nationality[0]['$'];
                        
$bande_a $data->trailerEmbed;
                        
$nom_genre $data->genre[0]['$'];
                        
$nom_genre2 $data->genre[1]['$'];
                        
                        
                        
$nom_genre removespace($nom_genre);
                        
$nom_genre2 removespace($nom_genre2);
                        
                        
$descrip '' $synopsis .'<br /><br />Date de production ' $annee '('.$heure.'h'.$minute.'min)<br />Réalisé par ' $nom_realisateur '<br />Avec ' $nom_acteur '<br />Genre ' $nom_genre ' ' $nom_genre2 '<br />Nationalité ' $nom_pays '<br /><div id="demo"><span class="cutout"><img src="' $url_img '" style="width: 243px; height: 363px;"></img></span><br /><br /><a href="' $data->trailer['href'] . '" class="zoombox w600% h340%" title="Bande annonce : ' $titre2 '"><img src="/streaming/images/icon/trailer.png" alt="/streaming/images/icon/trailer.png" class="decoded" style="border: medium none;"></a></img></div><br />';
                        
                        echo 
$descrip;
                    
                                        
                
                
                    
                
                
/*$sql     = "UPDATE " . $xoopsDB->prefix('xoopstube_videos')
                    . " SET description='$descrip',
                    WHERE lid ="
                    . $lid;
                if (!$result = $xoopsDB->query($sql)) {
                    $_error = $xoopsDB->error() . " : " . $xoopsDB->errno();
                    XoopsErrorHandler_HandleError(E_USER_WARNING, $_error, __FILE__, __LINE__);
                }
                else{
                echo "mise à jour réussi pour " . $title . "<br />";
                }*/
            
            
    
}
        



include 
XOOPS_ROOT_PATH '/footer.php';


        
?>


Resulat (affiché d'un coup à la fin, pas bon):2reussi,1 a moitier et 2 loupé:
Open in new window


NOTE pour nouveau site xoopsfr: problème avec les grandes images, impossible de scrowler l'image quand affiché avec jquery.


Je pense qu'en les traitant 10 par 10 ça devrait aller, le problème en fait réside dans les titres, j'ai des tag qu'il faut que je retire, c'est ce qui fait loupé la recherche des codes.
J'ai coupé pour [cam-ts-tc] mais j'ai des vostfr [cam-ts-tc] ou encore des HD qu'il faut virer.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

100 Personne(s) en ligne (72 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 100 | Plus ...