Recherche avancée

Médias (0)

Mot : - Tags -/objet éditorial

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (44)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Modifier la date de publication

    21 juin 2013, par

    Comment changer la date de publication d’un média ?
    Il faut au préalable rajouter un champ "Date de publication" dans le masque de formulaire adéquat :
    Administrer > Configuration des masques de formulaires > Sélectionner "Un média"
    Dans la rubrique "Champs à ajouter, cocher "Date de publication "
    Cliquer en bas de la page sur Enregistrer

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (4563)

  • Anomalie #4260 (Nouveau) : réaffichages de la page d’upgrade BDD

    31 décembre 2018, par jluc -

    Ayant fait la mise à jour successive d’un site 2.1 vers 3.0 puis 3.1.8 puis 3.2 dev, j’ai constaté qu’à chaque fois la mise à jour de la base de donnée a été proposée 3 fois
    - 1 première fois dans un cadre jaune, sous le menu de la partie privée SPIP
    - aprés validation, une 2eme fois dans une page totalement blanche sans déco. Quand on valide, la mise à jour se fait
    - 1 3eme fois encore dans la page blanche, et la mise à jour proposée n’a rien à faire puisqu’il faut aller d’une révision à elle-même. Par exemple vers spip3.2dev : « Vous venez de mettre à jour les fichiers SPIP. Il faut maintenant mettre à niveau la base de données du site. [23375/23375] »

    Si c’est pas du à un pb sur mon site qui serait bancal, ce serait bien d’éviter ces étapes successives. Le premier joli affichage sympa devrait être le seul !

  • Evolution #3973 : Brancher inc/distant recuperer_url() sur une librairie récente

    20 février 2019, par Eric Camus

    Bonjour,
    Suite à un changement de machine pour nos SPIP (de WIMP vers LAMP (centos)) de nombreux flux RSS ne fonctionnaient plus, la cause : la fonction ’recuperer_url’ !!!.
    J’ai donc réécrit le corps de cette fonction avec la biblio PHP CURL a partir du code dans SPIP 3.2.0 (je sais que je suis en retard d’une version).
    Je vous le livre comme je viens de le finir après un léger debug.

    1. <span class="CodeRay"><span class="keyword">function</span> <span class="function">recuperer_url</span>(<span class="local-variable">$url</span>, <span class="local-variable">$options</span> = <span class="predefined">array</span>()) {
    2.     <span class="local-variable">$default</span> = <span class="predefined">array</span>(
    3.         <span class="string"><span class="delimiter">'</span><span class="content">transcoder</span><span class="delimiter">'</span></span> => <span class="predefined-constant">false</span>,
    4.         <span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">GET</span><span class="delimiter">'</span></span>,
    5.         <span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span> => <span class="predefined-constant">null</span>,
    6.         <span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    7.         <span class="string"><span class="delimiter">'</span><span class="content">boundary</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    8.         <span class="string"><span class="delimiter">'</span><span class="content">refuser_gz</span><span class="delimiter">'</span></span> => <span class="predefined-constant">false</span>,
    9.         <span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    10.         <span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    11.         <span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    12.         <span class="string"><span class="delimiter">'</span><span class="content">follow_location</span><span class="delimiter">'</span></span> => <span class="integer">10</span>,
    13.         <span class="string"><span class="delimiter">'</span><span class="content">version_http</span><span class="delimiter">'</span></span> => _INC_DISTANT_VERSION_HTTP,
    14.     );
    15.     <span class="local-variable">$options</span> = <span class="predefined">array_merge</span>(<span class="local-variable">$default</span>, <span class="local-variable">$options</span>);
    16.     <span class="comment">// copier directement dans un fichier ?</span>
    17.     <span class="local-variable">$copy</span> = <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span>];
    18.  
    19.     <span class="keyword">if</span> (<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>] == <span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    20.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>] = <span class="integer">0</span>;
    21.     }
    22.     <span class="keyword">if</span> (<span class="predefined">is_null</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>])) {
    23.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>] = <span class="local-variable">$copy</span> ? _COPIE_LOCALE_MAX_SIZE : _INC_DISTANT_MAX_SIZE;
    24.     }
    25.  
    26.     <span class="comment">// Accepter les URLs au format feed:// ou qui ont oublie le http:// ou les urls relatives au protocole</span>
    27.     <span class="local-variable">$url</span> = <span class="predefined">preg_replace</span>(<span class="string"><span class="delimiter">'</span><span class="content">,^feed://,i</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">http://</span><span class="delimiter">'</span></span>, <span class="local-variable">$url</span>);
    28.     <span class="keyword">if</span> (!tester_url_absolue(<span class="local-variable">$url</span>)) {
    29.         <span class="local-variable">$url</span> = <span class="string"><span class="delimiter">'</span><span class="content">http://</span><span class="delimiter">'</span></span> . <span class="local-variable">$url</span>;
    30.     } <span class="keyword">elseif</span> (<span class="predefined">strncmp</span>(<span class="local-variable">$url</span>, <span class="string"><span class="delimiter">'</span><span class="content">//</span><span class="delimiter">'</span></span>, <span class="integer">2</span>) == <span class="integer">0</span>) {
    31.         <span class="local-variable">$url</span> = <span class="string"><span class="delimiter">'</span><span class="content">http:</span><span class="delimiter">'</span></span> . <span class="local-variable">$url</span>;
    32.     }
    33.  
    34.     <span class="local-variable">$url</span> = url_to_ascii(<span class="local-variable">$url</span>);
    35.  
    36.     <span class="local-variable">$result</span> = <span class="predefined">array</span>(
    37.         <span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    38.         <span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    39.         <span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    40.         <span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    41.         <span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    42.         <span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    43.         <span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span> => <span class="local-variable">$url</span>
    44.     );
    45.  
    46.     <span class="local-variable">$pCurl</span>=curl_init(<span class="local-variable">$url</span>);
    47.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_HTTP_VERSION</span>,<span class="constant">CURL_HTTP_VERSION_1_1</span>);
    48.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_SSL_VERIFYPEER</span>,<span class="predefined-constant">false</span>);
    49.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_RETURNTRANSFER</span>,<span class="predefined-constant">true</span>);
    50.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_FOLLOWLOCATION</span>,<span class="predefined-constant">true</span>);
    51.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_TIMEOUT</span>,<span class="integer">30</span>);  <span class="comment">// timeout 30s</span>
    52.     <span class="keyword">if</span> (!<span class="predefined">empty</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span>])) {  <span class="comment">// des datas</span>
    53.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_POST</span>,<span class="predefined-constant">true</span>);
    54.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_SAFE_UPLOAD</span>,<span class="predefined-constant">true</span>);
    55.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_POSTFIELDS</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span>]);
    56.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]=<span class="string"><span class="delimiter">'</span><span class="content">POST</span><span class="delimiter">'</span></span>;
    57.     }
    58.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]==<span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    59.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_NOBODY</span>,<span class="predefined-constant">true</span>);
    60.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]=<span class="integer">0</span>;  <span class="comment">// pas de taille</span>
    61.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]=<span class="integer">0</span>;  <span class="comment">// pas de date de modif</span>
    62.         <span class="local-variable">$copy</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;  <span class="comment">// pas de copie dans fichier</span>
    63.     }
    64.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    65.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_TIMEVALUE</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]);
    66.     }
    67.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    68.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_RANGE</span>,<span class="string"><span class="delimiter">'</span><span class="content">0-</span><span class="delimiter">'</span></span>.<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]);
    69.     }
    70.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span>]) {
    71.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_REFERER</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span>]);
    72.     }
    73.     <span class="local-variable">$opt_header</span>=<span class="predefined-constant">true</span>;
    74.     <span class="local-variable">$fheader</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;  <span class="comment">// nom du fichier contenant le header</span>
    75.     <span class="keyword">if</span>(<span class="local-variable">$copy</span>) {
    76.         <span class="local-variable">$fc</span>=<span class="predefined">fopen</span>(<span class="local-variable">$copy</span>,<span class="string"><span class="delimiter">'</span><span class="content">w</span><span class="delimiter">'</span></span>);
    77.         <span class="keyword">if</span>(<span class="local-variable">$fc</span>) {
    78.             <span class="local-variable">$fheader</span>=_DIR_TMP.<span class="predefined">md5</span>(<span class="local-variable">$copy</span>).<span class="string"><span class="delimiter">'</span><span class="content">_head.txt</span><span class="delimiter">'</span></span>;
    79.             <span class="local-variable">$fh</span>=<span class="predefined">fopen</span>(<span class="local-variable">$fheader</span>,<span class="string"><span class="delimiter">'</span><span class="content">w</span><span class="delimiter">'</span></span>);
    80.             <span class="keyword">if</span>(<span class="local-variable">$fh</span>) {
    81.                 curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_FILE</span>,<span class="local-variable">$fc</span>);
    82.                 curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_WRITEHEADER</span>,<span class="local-variable">$fh</span>);
    83.                 <span class="local-variable">$opt_header</span>=<span class="predefined-constant">false</span>;
    84.             }
    85.             <span class="keyword">else</span> {
    86.                 <span class="predefined">fclose</span>(<span class="local-variable">$fc</span>);
    87.             }
    88.         }
    89.     }
    90.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_HEADER</span>,<span class="local-variable">$opt_header</span>);
    91.     <span class="local-variable">$cont</span>=curl_exec(<span class="local-variable">$pCurl</span>);
    92.     <span class="local-variable">$info</span>=curl_getinfo(<span class="local-variable">$pCurl</span>);
    93.     curl_close(<span class="local-variable">$pCurl</span>);  <span class="comment">// fermer curl</span>
    94.     <span class="keyword">if</span>(<span class="local-variable">$fc</span>) {
    95.         <span class="predefined">fclose</span>(<span class="local-variable">$fc</span>);  <span class="comment">// fermer fichier</span>
    96.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span>]=<span class="local-variable">$copy</span>;
    97.     }
    98.     <span class="keyword">if</span>(<span class="local-variable">$fh</span>) {
    99.         <span class="predefined">fclose</span>(<span class="local-variable">$fh</span>);
    100.     }
    101.     <span class="keyword">if</span>(<span class="local-variable">$cont</span>===<span class="predefined-constant">false</span>) {
    102.         spip_log(<span class="string"><span class="delimiter">'</span><span class="content">ECHEC CURL </span><span class="delimiter">'</span></span>.<span class="local-variable">$url</span>,_LOG_ERREUR);
    103.         <span class="keyword">if</span>(<span class="predefined">file_exists</span>(<span class="local-variable">$copy</span>)) <span class="predefined">unlink</span>(<span class="local-variable">$copy</span>);  <span class="comment">// suppr fichier sur erreur</span>
    104.         <span class="keyword">if</span>(<span class="predefined">file_exists</span>(<span class="local-variable">$fheader</span>)) <span class="predefined">unlink</span>(<span class="local-variable">$fheader</span>);
    105.         <span class="keyword">return</span> <span class="predefined-constant">false</span>;
    106.     }
    107.     <span class="comment">// on range le tout dans la var $result</span>
    108.     <span class="local-variable">$body</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    109.     <span class="local-variable">$head</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    110.     <span class="keyword">if</span>(<span class="local-variable">$cont</span>!==<span class="predefined-constant">true</span>) {  <span class="comment">// cas de demande par fichier</span>
    111.         <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]==<span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    112.             <span class="local-variable">$head</span>=<span class="local-variable">$cont</span>;
    113.         }
    114.         <span class="keyword">else</span> {
    115.             <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    116.                 <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,-<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]);
    117.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>];
    118.             }
    119.             <span class="keyword">elseif</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    120.                 <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,-<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]);
    121.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>];
    122.             }
    123.             <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    124.                 <span class="local-variable">$head</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,<span class="integer">0</span>,<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]);
    125.                 <span class="keyword">if</span>(<span class="local-variable">$body</span>==<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>) {  <span class="comment">// cas ou download_content_length=-1 !!!!!!</span>
    126.                     <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]);
    127.                     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="predefined">strlen</span>(<span class="local-variable">$body</span>);  <span class="comment">// pare absence</span>
    128.                 }
    129.             }
    130.         }
    131.     }
    132.     <span class="keyword">if</span>(<span class="local-variable">$fheader</span> <span class="keyword">and</span> <span class="predefined">file_exists</span>(<span class="local-variable">$fheader</span>)) {  <span class="comment">// si un fichier de header est fait</span>
    133.         <span class="local-variable">$head</span>=<span class="predefined">file_get_contents</span>(<span class="local-variable">$fheader</span>);
    134.         <span class="predefined">unlink</span>(<span class="local-variable">$fheader</span>);
    135.     }
    136.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">http_code</span><span class="delimiter">'</span></span>];
    137.     <span class="keyword">if</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">http_code</span><span class="delimiter">'</span></span>]==<span class="integer">206</span>) <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span>]=<span class="integer">200</span>;  <span class="comment">// SPIP refuse les partial content alors qu'il les demande</span>
    138.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span>]=<span class="local-variable">$head</span>;
    139.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>]=<span class="local-variable">$body</span>;
    140.     <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    141.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>];
    142.     }
    143.     <span class="keyword">elseif</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    144.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>];
    145.     }
    146.     <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>]!=<span class="local-variable">$url</span>) <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>];
    147.     <span class="keyword">if</span>(<span class="local-variable">$head</span>) {  <span class="comment">// analyse de head pour info</span>
    148.         <span class="local-variable">$trouve</span>=<span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">Content-Length</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>,  <span class="comment">// texte avant : => cle du $result</span>
    149.                      <span class="string"><span class="delimiter">'</span><span class="content">Last-Modified</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>,
    150.                      <span class="string"><span class="delimiter">'</span><span class="content">Accept-Ranges</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">range</span><span class="delimiter">'</span></span>);
    151.         <span class="local-variable">$liste</span>=<span class="predefined">preg_split</span>(<span class="string"><span class="delimiter">'</span><span class="content">/[</span><span class="content">\r</span><span class="content">\n</span><span class="content">]+/</span><span class="delimiter">'</span></span>,<span class="local-variable">$head</span>,-<span class="integer">1</span>,<span class="constant">PREG_SPLIT_NO_EMPTY</span>);
    152.         <span class="keyword">if</span>(<span class="predefined">is_array</span>(<span class="local-variable">$liste</span>)) {
    153.             <span class="local-variable">$liste</span>=<span class="predefined">array_reverse</span>(<span class="local-variable">$liste</span>);
    154.             <span class="keyword">foreach</span>(<span class="local-variable">$liste</span> <span class="keyword">as</span> <span class="local-variable">$l</span>) {  <span class="comment">// premier trouver donc dernier dans le head</span>
    155.                 <span class="local-variable">$lt</span>=<span class="predefined">trim</span>(<span class="local-variable">$l</span>);
    156.                 <span class="keyword">if</span>(<span class="predefined">strlen</span>(<span class="local-variable">$lt</span>)><span class="integer">5</span> <span class="keyword">and</span> <span class="predefined">substr</span>(<span class="local-variable">$lt</span>,<span class="integer">0</span>,<span class="integer">4</span>)==<span class="string"><span class="delimiter">'</span><span class="content">HTTP</span><span class="delimiter">'</span></span>) <span class="keyword">break</span>;  <span class="comment">// on arrete sur derniere entete HTTP ?</span>
    157.                 <span class="local-variable">$item</span>=<span class="predefined">explode</span>(<span class="string"><span class="delimiter">'</span><span class="content">:</span><span class="delimiter">'</span></span>,<span class="local-variable">$lt</span>,<span class="integer">2</span>);
    158.                 <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$item</span>[<span class="integer">0</span>]) <span class="keyword">and</span> <span class="predefined">isset</span>(<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]])) {
    159.                     <span class="local-variable">$result</span>[<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]]]=<span class="predefined">trim</span>(<span class="local-variable">$item</span>[<span class="integer">1</span>]);
    160.                     <span class="predefined">unset</span>(<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]]);  <span class="comment">// plus d'autre a chercher</span>
    161.                 }
    162.             }
    163.         }
    164.         <span class="comment">// cas particuliers</span>
    165.         <span class="keyword">if</span>(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]) {
    166.             <span class="local-variable">$val</span>=<span class="predefined">strtotime</span>(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]);
    167.             <span class="keyword">if</span>(<span class="local-variable">$val</span>===<span class="predefined-constant">false</span>) {
    168.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    169.             }
    170.             <span class="keyword">else</span> {
    171.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]=<span class="local-variable">$val</span>;
    172.             }
    173.         }
    174.     }
    175.  
    176.     <span class="comment">// Faut-il l'importer dans notre charset local ?</span>
    177.     <span class="keyword">if</span> (<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">transcoder</span><span class="delimiter">'</span></span>]) {
    178.         include_spip(<span class="string"><span class="delimiter">'</span><span class="content">inc/charsets</span><span class="delimiter">'</span></span>);
    179.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>] = transcoder_page(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>], <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span>]);
    180.     }
    181.  
    182.     <span class="keyword">return</span> <span class="local-variable">$result</span>;
    183. }
    184. </span>

    Télécharger

    Normalement, ce code doit être compatible avec l’ancienne fonction, il donne en plus en sortie [’range’] qui permet de savoir si un partial content peut être délivré.
    Il ne prend plus en compte les entrées [’refuser_gz’], [’version_http’] et [’boundary’] et l’entrée [’data’] doit être compatible avec celle de ’curl_setopt : CURLOPT_POSTFIELDS’.
    Si des gens veulent la tester et l’améliorer : bienvenue.

    Petit nota : SPIP laisse le fichier créer dans cette fonction ([’file’]) dans le tmp sans le détruire (version de base idem) : accumulation !

  • How can i use exiftool ffmpeg and python to create a script that collects videos/images and puts them in a sequence ?

    15 mars 2019, par David G

    Hey all I am rather new to scripting in python and am looking for some help with a script that i am working on. the script i have in python uses exiftool to read metadata in video and image files however i need it to go further where it uses my input of some keywords that it searches the meta data for then copies the videos to another directory and then links them together in ffmpeg ready for me to make detailed edits in Premier Pro eg : my input will be

    keywords = ("Opening", "part01", "part02", "ending")etc...

    description = ("date", "client")etc...

    then the script will find the videos with that in its meta and copy x2 them and then run one of the copies through ffmpeg to put them in a sequence respective to the order of the keywords.

    import os
    import subprocess

    for path, subdirs, files in os.walk("/Users/me/Desktop/videosAndImages"):
       input_file = "."
       exe = "exiftool"
       process = subprocess.Popen([exe, input_file], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
       for output in process.stdout:
           print(output.strip())

    this is the script if i have it with just the input as input_file"." and not the for loop i can run exiftool with the cmd /terminal and this for loop just scans directories and not the images inside please help.