<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Muttley&#039;s Code</title>
	<atom:link href="http://muttley.eb2a.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://muttley.eb2a.com</link>
	<description>Poco aggiornato, ancor meno curato e di dubbio interesse</description>
	<lastBuildDate>Mon, 15 Feb 2010 10:56:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>movme: Programma per smistare file e cartelle</title>
		<link>http://muttley.eb2a.com/2010/movme-programma-per-smistare-file-e-cartelle/</link>
		<comments>http://muttley.eb2a.com/2010/movme-programma-per-smistare-file-e-cartelle/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 11:38:29 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[script]]></category>
		<category><![CDATA[amule]]></category>
		<category><![CDATA[espressioni regolari]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=590</guid>
		<description><![CDATA[Con questo programma si possono spostare file e cartelle secondo delle regole (su nome, dimensione ed estensione) scritte in un file di configurazione. In pratica è uno smistatore che fa largo uso di espressioni regolari, salvate in un file xml. Può essere ad esempio richiamato su ogni file scaricato (da aMule, eMule, torrent, etc&#8230;) per [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/2010/movme-programma-per-smistare-file-e-cartelle/"><img src="/wp-content/uploads/2010/01/movme.png" alt="movme" title="movme" width="248" height="120" class="aligncenter size-full wp-image-596" /></a>Con questo programma si possono spostare file e cartelle secondo delle regole (su nome, dimensione ed estensione) scritte in un file di configurazione. In pratica è uno smistatore che fa largo uso di espressioni regolari, salvate in un file xml. Può essere ad esempio richiamato su ogni file scaricato (da aMule, eMule, torrent, etc&#8230;) per organizzare coerentemente i nostri file.<br />
<span id="more-590"></span><br class="spacer_" />Il file di configurazione di default va in <em>/etc/movme.xml</em>. Eccone un esempio:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;movme&gt;

    &lt;!-- Movies --&gt;
    &lt;filter name=&quot;Films&quot; path=&quot;/home/amule/Download/movies/films/&quot;&gt;
        &lt;rules&gt;
            &lt;filename priority=&quot;20&quot;&gt;[hx]?\.?264|DivX|XviD|AC3|ITA|DVDRip|CD0?[2-4]&lt;/filename&gt;
            &lt;filename priority=&quot;2&quot;&gt;MP3|AAC&lt;/filename&gt;
            &lt;filesize_bigger priority=&quot;10&quot;&gt;600M&lt;/filesize_bigger&gt;
            &lt;filesize_smaller priority=&quot;-15&quot;&gt;600M&lt;/filesize_smaller&gt;
            &lt;fileext priority=&quot;10&quot; needed=&quot;1&quot;&gt;avi mkv&lt;/fileext&gt;
        &lt;/rules&gt;
        &lt;actions&gt;
            &lt;exec_linux_cmd&gt;chmod 664 &quot;%f&quot;&lt;/exec_linux_cmd&gt;
        &lt;/actions&gt;
    &lt;/filter&gt;
    &lt;filter name=&quot;Subtitles&quot; path=&quot;/home/amule/Download/movies/subtitles/&quot;&gt;
        &lt;rules&gt;
            &lt;filename priority=&quot;20&quot;&gt;FORCED|All.?Subs?|Subs?|Pack&lt;/filename&gt;
            &lt;filesize_bigger priority=&quot;-1000&quot;&gt;100M&lt;/filesize_bigger&gt;
            &lt;filesize_bigger priority=&quot;-10&quot;&gt;10M&lt;/filesize_bigger&gt;
            &lt;filesize_smaller priority=&quot;10&quot;&gt;500K&lt;/filesize_smaller&gt;
            &lt;fileext priority=&quot;30&quot;&gt;srt&lt;/fileext&gt;
            &lt;fileext priority=&quot;5&quot;&gt;rar zip&lt;/fileext&gt;
        &lt;/rules&gt;
        &lt;actions&gt;
            &lt;exec_linux_cmd&gt;chmod 664 &quot;%f&quot;&lt;/exec_linux_cmd&gt;
        &lt;/actions&gt;
    &lt;/filter&gt;

    &lt;!-- Series --&gt;
    &lt;filter name=&quot;The Big Bang Theory&quot; mkdir=&quot;775&quot; path=&quot;/home/amule/Download/movies/series/tv/The Big Bang Theory/&quot;&gt;
        &lt;rules&gt;
            &lt;filename needed=&quot;1&quot; priority=&quot;100&quot;&gt;The\.Big\.Bang\.Theory&lt;/filename&gt;
            &lt;fileext needed=&quot;1&quot; priority=&quot;10&quot;&gt;avi srt mp3 mkv&lt;/fileext&gt;
        &lt;/rules&gt;
        &lt;actions&gt;
            &lt;exec_linux_cmd&gt;chmod 664 &quot;%f&quot;&lt;/exec_linux_cmd&gt;
        &lt;/actions&gt;
    &lt;/filter&gt;

    &lt;!-- Music --&gt;
    &lt;filter name=&quot;Music&quot; path=&quot;/home/amule/Download/music/zipped/&quot;&gt;
        &lt;rules&gt;
            &lt;filename priority=&quot;20&quot;&gt;Album|Soundtrack&lt;/filename&gt;
            &lt;filename priority=&quot;5&quot;&gt;MP3|OGG|WMV&lt;/filename&gt;
            &lt;filesize_bigger priority=&quot;15&quot;&gt;50M&lt;/filesize_bigger&gt;
            &lt;filesize_bigger priority=&quot;-10&quot;&gt;150M&lt;/filesize_bigger&gt;
            &lt;filesize_smaller priority=&quot;-10&quot;&gt;10M&lt;/filesize_smaller&gt;
            &lt;fileext priority=&quot;5&quot; needed=&quot;1&quot;&gt;rar zip mp3&lt;/fileext&gt;
        &lt;/rules&gt;
        &lt;actions&gt;
            &lt;exec_linux_cmd&gt;chmod 664 &quot;%f&quot;&lt;/exec_linux_cmd&gt;
        &lt;/actions&gt;
    &lt;/filter&gt;

    &lt;!-- Others --&gt;
    &lt;filter name=&quot;Others&quot; path=&quot;/home/amule/Download/others/&quot;&gt;
        &lt;rules&gt;
            &lt;filename priority=&quot;10&quot;&gt;.*&lt;/filename&gt;
            &lt;filename priority=&quot;100&quot;&gt;xbox&lt;/filename&gt;
        &lt;/rules&gt;
        &lt;actions&gt;
            &lt;exec_linux_cmd&gt;chmod 664 &quot;%f&quot;&lt;/exec_linux_cmd&gt;
        &lt;/actions&gt;
    &lt;/filter&gt;
&lt;/movme&gt;
</pre>
<p>Il file è piuttosto autoesplicativo, è diviso in categorie (i <strong>filters</strong>) ognuna delle quali ha delle regole (<strong>rules</strong>) pesate (<strong>priority</strong>) sul nome, l&#8217;estensione e la dimensione del file. <div id="Ads2" class="wp-caption alignright" style="width: 310px"><p class="wp-caption-text">Ads</p></div>[/caption]La categoria che totalizza più punti (la somma delle regole rispettate dal file) vince, spostandolo il file nella destinazione desiderata (<strong>path</strong> del filter). Come si vede, le varie regole possono essere ripetute più volte con diverse priorità.<br />
<br class="spacer_" />La proprietà <strong>mkdir</strong> di un filtro può essere impostata a 1, in questo modo crea tutte le cartelle fino ad arrivare a quella di destinazione, oppure può essere impostata con i permessi che la directory deve avere (es. 755). Per quanto riguarda <strong>needed</strong>, indica semplicemente che la regola deve essere obbligatoriamente rispettata. Infine  l&#8217;<strong>actions</strong> sono le istruzioni che verranno eseguite al termine dello spostamento, dove <strong>%f</strong> è il path completo del file, <strong>%n</strong> è solo il nome del file e <strong>%d</strong> è il path. Sono possibili più actions consecutive.</p>
<p><br class="spacer_" />Riassumendo i tags e le proprietà del file di configurazione:</p>
<table>
<tr>
<td><strong>filename</strong></td>
<td>Espressione regolare case-insensitive sul nome del file. Può essere presente più volte con differenti priorità.</td>
</tr>
<td><strong>filesize_bigger / filesize_smaller</strong></td>
<td>Queste regole sono rispettate se il file è più grande/piccolo di&#8230;La dimensione del file può essere indicata in giga, mega, kilo e bytes, rispettivamente aggiungendo al termine del numero le lettere G,M,K,B (o g,m,k,b). Se non specificato verrà inteso come byte. Può essere presente più volte con differenti priorità.</td>
</tr>
<tr>
<td><strong>exec_linux_cmd</strong></td>
<td>Indica il comando che verrà eseguito al termine dello spostamento. Si possono utilizzare i placeolder:</p>
<ul>
<li>%n  file name</li>
<li>%d full path</li>
<li>%f full path + file name</li>
</ul>
<p>Può essere presente più volte con differenti priorità.</td>
</tr>
<td><strong>fileext</strong></td>
<td>Indica l&#8217;estensione del file, se ne possono indicare più di una dividendole con degli spazi. Può essere presente più volte con differenti priorità.</td>
</tr>
<tr>
<td><strong>mkdir</strong></td>
<td>Parametro di filter, se la directory di destinazione (path) non esiste viene creata.</p>
<ul>
<li>= 1: crea la directory o le directory fino al percorso (default 0)</li>
<li>!= 1: indica i permessi da attribuire alla nuova directory creata (ex. 755)</li>
</ul>
</td>
</tr>
<tr>
<td><strong>needed</strong></td>
<td>Indica che la regola va obbligatoriamente rispetta, in pratica una condizione necessaria, ma non sufficiente. In realtà sottrae semplicemente una priorità di 1000 al filtro.<br />
n.b. valido solo per <em>filename</em> e <em>fileext</em>
</td>
</table>
<p>Una volta creato correttamente il file di configurazione con le regole, si utilizza il comando <em>movme</em> sul file o la directory che vogliamo <em>smistare</em>.<br />
In questo modo verrà processato il file indicato nel path:<br />
<code>movme -v 2 -f /path/del/file/da/smistare</code></p>
<p><br class="spacer_" />Le opzioni utilizzabili (-h per visualizzarle) sono le seguenti:</p>
<table>
<tr>
<td><strong>-h</strong></td>
<td>Visualizza l&#8217;help del comando</td>
</tr>
<tr>
<td><strong>-s</strong></td>
<td>Simula (senza spostare nulla) cosa avverrebbe con i flag impostati. Da usare con <strong>-v</strong> [1:3] (verbose mode).</td>
</tr>
<tr>
<td><strong>-r</strong></td>
<td>Entra ricorsivamente in ogni sotto-directory</td>
</tr>
<tr>
<td><strong>-a</strong></td>
<td>Da utilizzare con <strong>-d</strong>, considera le directory come i file, testando i filtri sulle directory e spostando queste di conseguenza</td>
</tr>
<tr>
<td><strong>-v X</strong></td>
<td>Verbose mode, <em>X</em> è un numero compreso tra 1 e 3, per aumentare il numero di informazioni fornite dal comando durate l&#8217;esecuzione. Comodo con <strong>-s</strong>.</td>
</tr>
<tr>
<td><strong>-c path</strong></td>
<td>Indica un file di configurazione alternativo a <em>/etc/movme.xml</em></td>
</tr>
<tr>
<td><strong>-l path</strong></td>
<td>Scrive un file di log. Da utilizzare con <strong>-v</strong>.</td>
</tr>
<tr>
<td><strong>-d path</strong></td>
<td>Indica la directory target.</td>
</tr>
<tr>
<td><strong>-f path</strong></td>
<td>Indica il file target.</td>
</tr>
</table>
<p>Può risultare utile il flag <strong>-s</strong> (simula) per verificare il corretto funzionamento dei filtri, e ribilanciare le varie priority.</p>
<p><br class="spacer_" />Per chiudere l&#8217;articolo, allego uno spezzone del file di configurazione di aMule (<em>amule.conf</em>), come esempio per utilizzare <em>movme</em> come smistatore sui file scaricati dal programma:</p>
<pre class="brush: bash;">
[UserEvents]
[UserEvents/DownloadCompleted]
CoreEnabled=1
CoreCommand=/usr/local/bin/movme -v 1 -f &quot;%FILE&quot; -l /var/log/movme.log
</pre>
<p>Ovviamente abbiamo copiato il file <em>movme</em> nella PATH di sistema <em>/usr/local/bin/</em>, così da poterlo usare anche da riga di comando.<br />
L&#8217;esempio qui sopra non fa altro che eseguire <em>movme</em> sul file appena scaricato e creare un file di log (<em>/var/log/movme.log</em>) con verbosity impostata a 1.</p>
<p><br class="spacer_" />In caso di problemi, suggerimenti e consigli fatevi avanti e commentate, ciao!<br />
<br class="spacer_" /></p>
<table style="margin: 0px auto 20px; width: 70%;">  <tbody><tr><td style="padding: 0px; width: 100%; vertical-align: text-top;">  <table style="border: 0px none ; width: 100%; margin-bottom: 0px;">  <tbody><tr style="border-bottom-width: 0px; border-right-width: 0px;"> <td style="border-bottom-width: 0px; border-right-width: 0px;"><strong>movme <i>v1.0b</i></strong></td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Data: 04.02.2010</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Size: 6.23 KB</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Downloads: 6 hits</td></tr></tbody></table> </td><td style="border-left: 0px none; vertical-align: middle;"><a href="http://muttley.eb2a.com/wp-content/plugins/download-monitor/download.php?id=7"><img src="/wp-content/images/btDownload.png" alt="Download" title="Download"/></a></td></tr></tbody></table>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2010/movme-programma-per-smistare-file-e-cartelle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XBMC Scraper per MyMovies.it (update 05.01.10)</title>
		<link>http://muttley.eb2a.com/2010/xbmc-scraper-per-mymovies-it-update-05-01-10/</link>
		<comments>http://muttley.eb2a.com/2010/xbmc-scraper-per-mymovies-it-update-05-01-10/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 21:51:05 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[xbmc]]></category>
		<category><![CDATA[espressioni regolari]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[scraper]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=566</guid>
		<description><![CDATA[Ancora un update dello scraper per XBMC 9.11 Camelot. Modificate alcune espressioni regolari per stare al passo con mymovies.it e con la release finale di XBMC. Sistemati alcuni bug segnalati e aggiunte alcune fetures da voi richieste.
Come sempre se non sapete di che si stà parlando (xbmc, scraper, etc&#8230;) fate riferimento a questo post XBMC [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muttley.eb2a.com/2010/xbmc-scraper-per-mymovies-it-update-05-01-10/"><img class="aligncenter size-full wp-image-355" title="xbmc 9.11" src="http://muttley.eb2a.com/wp-content/uploads/2009/11/xbmc-911.png" alt="xbmc 9.11" width="128" height="103" /></a>Ancora un update dello scraper per <a href="http://xbmc.org/team-xbmc/2009/12/24/xbmc-9-11-camelot/">XBMC 9.11 Camelot</a>. Modificate alcune espressioni regolari per stare al passo con <em>mymovies.it</em> e con la release finale di XBMC. Sistemati alcuni bug segnalati e aggiunte alcune fetures da voi richieste.<span id="more-566"></span><br />
<br class="spacer_" />Come sempre se non sapete di che si stà parlando (xbmc, scraper, etc&#8230;) fate riferimento a questo post <a href="/2009/xbmc-scraper-per-mymovies-it/">XBMC Scraper per MyMovies.it</a> del 29.10.09, dove troverete informazioni su XBMC e su come installare, configurare e usare lo scraper.<br />
<br class="spacer_" />Testato su <em>XBMC 9.11 r26018</em> (compilata il 24.12.2009) per Linux, ma dovrebbe funzionare anche su Windows, Xbox e Mac.<br />
<br class="spacer_" /><strong>Modifiche</strong><br />
Elenco delle nuove features e bugfix rispetto alla <a href="http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/">versione precedente</a>:</p>
<ul>
<li>Nelle impostazioni dello scraper ho aggiunto le diciture <em>lento</em> e <em>molto lento</em>, per indicare quelle opzioni che se attivate allungano i tempi di scaricamento delle informazioni. Non serve a molto, ma vi da un idea&#8230;</li>
<li>Come richiesto da molti è stata aggiunta l&#8217;opzione <em>Tutti i Posters &gt;&gt; Hi-Res</em>, con la quale verrano scaricate locandine a risoluzione maggiore (attiva di default).</li>
<li>Supporto ai file <em>.nfo</em>. In pratica creando un file di testo con il medesimo nome del file del film, contenente l&#8217;url alla scheda del film, xbmc non effettuerà nessuna ricerca e automaticamente scaricherà le informazioni dalla pagina indicata all&#8217;interno del file <em>.nfo</em>.<br class="spacer_" /><br />
<table border="0">
<tbody>
<tr>
<td>es. <em>&#8220;Aliens (1986) DVDScr.avi&#8221;</em> =&gt; Creiamo <em>&#8220;Aliens (1986) DVDScr.nfo&#8221;</em><br />
all&#8217;intero del <em>.nfo</em> inseriamo <em>http://www.mymovies.it/dizionario/recensione.asp?id=744</em></td>
</tr>
<tr>
<td><em>nota:</em> funziona con i vecchi e nuovi link di mymovies.it, con o senza <em>http://</em></td>
</tr>
</tbody>
</table>
</li>
<li>Indicando tra parentesi l&#8217;anno di uscita del film (es. <em>Aliens (1986)</em>), la ricerca sarà ancora più selettiva e precisa, risolvendo il <a href="http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/comment-page-1/#comment-45">problema</a> sengalato da Psolo per i films Hotel e Denti.<br />
Un ringraziamento particolare a <em>KoTiX</em> per la dritta!</li>
<li>Bugfix per i films che non presentavano un cast artistico e generavano problemi nella cattura del Regista. <a href="http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/comment-page-1/#comment-45">Sengalato</a> sempre da Psolo per <em>happy feet, la stella di laura, etc</em>.</li>
<li>Rivisti e corretti per problemi dovuti  all&#8217;aggiornamento di mymovies.it: <em>Plot, Critica, Pubblico, Forum e Frasi Celebri</em>. Questi ultimi 4 di default sono disattivati, per vederli è necessario attivare l&#8217;opzione nelle impostazioni dello scraper.</li>
</ul>
<p><strong>ToDo</strong><br />
Una sfoltita a quello precedente:</p>
<ul>
<li>Ho scoperto, con molto ritardo, dell&#8217;esistenza del sito imdb in italiano. Questo potrebbe evitare la ricerca del titolo originale su mymovies (non sempre presente), cercando direttamente il titolo in italiano su imdb.it. Potrebbe aumentare il numero di films con fanart trovati.</li>
<li>XBMC dovrebbe supportare (non testato) il tag <em>CDATA</em>. Questo potrebbe consentire, utilizzandolo fra i tag <em>expression</em> e con l&#8217;attributo <em>output</em>, un lettura/scrittura dello scraper più user-friendly.</li>
<li>Rimane sempre aperto il <strong>Problema Append to Plot</strong> che trovate sepigato nel <a href="/2009/xbmc-scraper-per-mymovies-it/">precedente post</a>.</li>
<li>Provare il &#8220;nuovo&#8221; tag <em>&lt;results sorted=&#8221;yes&#8221;&gt;</em> per non modificare l&#8217;ordine dei risultati.</li>
<li>E anche <em>&lt;rating max=&#8221;5&#8243;&gt;</em> finalmente si può eliminare la tabella di conversione 5 => 10 sul voto del film.</li>
<li>Sostituire type=&#8221;sep&#8221; con type=&#8221;lsep&#8221; nei settaggi dello scraper</li>
</ul>
<p>Buona visione ;)<br />
<br class="spacer_" /><table style="margin: 0px auto 20px; width: 70%;">  <tbody><tr><td style="padding: 0px; width: 100%; vertical-align: text-top;">  <table style="border: 0px none ; width: 100%; margin-bottom: 0px;">  <tbody><tr style="border-bottom-width: 0px; border-right-width: 0px;"> <td style="border-bottom-width: 0px; border-right-width: 0px;"><strong>XBMC Scraper (myMovies.it) <i>v1.5b per 9.11</i></strong></td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Data: 05.01.2010</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Size: 9.32 KB</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Downloads: 287 hits</td></tr></tbody></table> </td><td style="border-left: 0px none; vertical-align: middle;"><a href="http://muttley.eb2a.com/wp-content/plugins/download-monitor/download.php?id=6"><img src="/wp-content/images/btDownload.png" alt="Download" title="Download"/></a></td></tr></tbody></table></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2010/xbmc-scraper-per-mymovies-it-update-05-01-10/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>cRsync: Sincronizzazioni custom</title>
		<link>http://muttley.eb2a.com/2009/crsync-sincronizzazioni-custom/</link>
		<comments>http://muttley.eb2a.com/2009/crsync-sincronizzazioni-custom/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 21:39:33 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[script]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=497</guid>
		<description><![CDATA[Se avete molte cartelle e file da sincronizzare (e/o backuppare), che prevedono diverse impostazioni/regole, forse questo script potrebbe esservi utile. Con cRsync si possono associare tutte le impostazioni che passate ad rsync (src, dest e parametri vari) ad un modulo, ovvero ad un semplice nome. Inoltre c&#8217;è la possibiltà di impostare un tempo minimo prima [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muttley.eb2a.com/2009/crsync-sincronizzazioni-custom/"><img src="http://muttley.eb2a.com/wp-content/uploads/2009/12/cRsync.png" alt="cRsync logo" title="cRsync logo" width="230" height="139" class="aligncenter size-full wp-image-552" /></a>Se avete molte cartelle e file da sincronizzare (e/o backuppare), che prevedono diverse impostazioni/regole, forse questo script potrebbe esservi utile. Con cRsync si possono associare tutte le impostazioni che passate ad <a href="http://it.wikipedia.org/wiki/Rsync">rsync</a> (src, dest e parametri vari) ad un modulo, ovvero ad un semplice nome. Inoltre c&#8217;è la possibiltà di impostare un tempo minimo prima di effettuare nuovamente la sincronizzazione e nel caso di una sincronizzazione su macchina remota la verifica che questa sia online.<br />
<span id="more-497"></span><br class="spacer_" />Per utilizzare questo script dovete comunque conoscere rsync e i suoi parametri, infatti all&#8217;interno del file di configurazione di cRsync andrete a scrivere i parametri con cui verrà richiamato il comando rsync.</p>
<div id="Ads2" class="wp-caption alignright" style="width: 310px"><p class="wp-caption-text">Ads</p></div>[/caption]<br class="spacer_" />L&#8217;esempio che descriverò, utilizza un sistema di backup remoto, o più semplicemente c&#8217;è una macchina in rete su cui gira il demone <em>rsync</em>.<br />
<br class="spacer_" />Questo non vieta di utilizzare rsync senza demone o su ssh, la differenza sta nel fatto che nel caso optiate per la criptazione del trasferimento su ssh, sarete costretti a immettere la password ogni volta che sincronizzate, abbandonando qualsiasi automatizzazione.<br />
Potreste scegliere per un sistema di chiavi pubbliche, non molto sicuro, ma che permette di loggarvi in ssh sulla macchina remota senza immettere la password. Per approfondire quest&#8217;ultima parte (che non tratterò) eccovi una buona guida (delle tante che potete trovare) <a href="http://archivio.tevac.com/article.php/20070711004415732">collegamenti ssh tramite chiave pubblica</a>.</p>
<p><br class="spacer_" />Nel caso non vi interessi la sincronizzazione con una macchina remota o avete scelto ssh con la chiave pubblica, saltate direttamente a <strong>Installare cRsync</strong>.</p>
<p><br class="spacer_" /><strong>Installare demone rsync</strong> (server di backup)<br />
Rsync è già installato nella maggior parte le distribuzioni, se così non fosse (su Ubuntu):<br />
<code>sudo apt-get install rsync</code><br />
Adesso dobbiamo andare a modificare il files di configurazione <em>/etc/rsyncd.conf</em> o crearlo se non esistesse.<br />
Ecco un file d&#8217;esempio&#8230;partendo dall&#8217;inizio incontriamo i file necessari a rsync:</p>
<pre class="brush: bash;">
# necessario per supportare il paramentro max connections
lock file = /var/run/rsync.lock

# per verificare se il demone è in esecuzione
pid file = /var/run/rsyncd.pid

# il log di rsyncd
log file = /var/log/rsyncd.log   

# il messaggio di benvenuto quando ci collegheremo al server rsync
motd file = /etc/rsyncd.motd
</pre>
<p>Continuando troviamo i vari progetti ed i relativi parametri:</p>
<pre class="brush: bash; first-line: 11;">
[nome_del_progetto]
   path = /cartella/dove/sincronizzare
   comment = commento del progetto

   # utente e gruppo con il quale il demone leggerà e scriverà i file (il demone dovrà essere eseguito come root)
   uid = root
   gid = root  

   # possibilità di leggere soltanto
   read only = false  

   # il progetto può essere visualizzato tra i servizi offerti dal server
   list = yes

   # host/ip che posso accedere al progetto
   hosts allow = pc1.mydomain.it, pc2.mydomain.it 

   # utente NON di sistema che può accedere al servizio rsync
   auth users = rsync

   # file contente gli utenti e le password
   secrets file = /etc/rsyncd.scrt 

[nome_del_secondo_progetto]
...
</pre>
<p>Per altri parametri e maggiori dettagli sul files <em>/etc/rsyncd.conf</em> consiglio un bel<br />
<code>man rsyncd.conf</code></p>
<p><br class="spacer_" /><strong>Testare il demone rsync</strong><br />
Avviamo il nostro demone sul server:<br />
<code>sudo service rsync start</code><br />
Adesso sul nostro client eseguiamo:<br />
<code>rsync host_serverbackup::</code>Dovremmo vedere la lista dei progetti che abbiamo appena configurato in <em>rsyncd.conf</em>, ovviamente se impostato il tag &#8216;<em>list = yes</em>&#8216;.<br />
Se dovessimo usare il nostro nuovo server di backup potremmo scrivere qualcosa come (dal client):<br />
<code>rsync &lt;parametri&gt; /path/sorgente user@host_serverbackup::nome_del_progetto</code>L&#8217;uso dei :: (due punti) indica ad rsync che ci stiamo collegando ad un suo demone.</p>
<p><br class="spacer_" /><strong>Installare cRsync</strong> (client)</p>
<ul>
<li>Decomprimente il file scaricato (lo trovate in fondo a questa pagina):<br />
<code>tar -xvzf cRsync.tar.gz</li>
<p><br class="spacer_" /></p>
<li>Copiate i files "parseconfig.sh" e "crsync" in una delle cartelle PATH di sistema a vostra scelta. Solitamente <em>/usr/local/bin</em>.<br />
<code>echo $PATH	# per vedere quali sono le cartelle sul vostro sistema</code></li>
<p><br class="spacer_" /></p>
<li>Impostate i permessi di entrambi i file a <em>-rwxr-xr-x</em> con:<br />
<code>chmod 755 &lt;nome_file&gt;</code></li>
</ul>
<p>L'installazione <em>base</em> è completa, ma ci sono alcune migliorie e note importanti:</p>
<p><br class="spacer_" /><span style="text-decoration: underline;"><em>Autocompletamento:</em></span> Per abilitare l'autocompletamento (tab da riga di comando) dei nomi dei moduli, dovete copiare il file <em>etc/bash_completion.d/crsync</em> (presente nell tar.gz) appunto in <em>etc/bash_completion.d/</em></li>
<p><br class="spacer_" /><span style="text-decoration: underline;"><em>File di configurazione:</em></span> Il file di configurazione di cRsync va creato in <em>/etc</em> e andrà chiamato <em>crsync.conf</em>, a meno di utilizzare il paramentro <em>'-c'</em> all'avvio di crsync.<br />
Potete usare come base quello d'esempio <em>etc/crsync.conf</em> presente nello tar.gz.</p>
<p><br class="spacer_" /><span style="text-decoration: underline;"><em>Password nel file di configurazione:</em></span> Nel caso inseriate la password di rsync (<em>RSYNC_PASSWORD</em>) nel file di configurazione, dovreste cambiare i permessi e il possessore del file <em>crsync.conf</em>, per renderlo sicuro (<em>-r--------</em>). In questo modo però non funzionerà più l'autocompletamento (correggerò il problema nella prossima release).</p>
<p><br class="spacer_" /><span style="text-decoration: underline;"><em>Sudo e RSYNC_PASSWORD:</em></span> Se utilizzate il campo <em>RSYNC_PASSWORD</em> in <em>crsync.conf</em> e volete avviare crsync come sudo è necessario fare la seguente modifica al file <em>/etc/sudoers</em>:</p>
<pre class="brush: bash;">
# needed for auto-login with rsync running under sudo
Defaults env_keep+=&quot;RSYNC_PASSWORD&quot;
</pre>
<p>L'installazione è decisamente un po' lunga, ma si può risolvere il tutto con una semplice pacchettizazione (.deb)...magari in futuro!</p>
<p><br class="spacer_" /><strong>Configurare cRsync</strong> (client)<br />
Come già scritto, cRsync prevede il file di configurazione <em>/etc/crsync.conf</em>, ma utlizzando il parametro '<em>-c</em>' potete indicarne un altro.</p>
<p><br class="spacer_" />Il file andrà strutturato in moduli, ovvero i nostri progetti. Ecco un esempio, presente anche nell'archivio (<em>etc/crsync.conf</em>):</p>
<pre class="brush: bash;">
# backup etc (/etc/) on myServerBackup
nameModule1 {
    INFO=&quot;backup etc (/etc/) on myServerBackup&quot;
    SRC=&quot;/etc&quot;
    DEST=&quot;rsync_user@myServerBackup::rsync_project_etc&quot;

    RSYNC_PASSWORD=&quot;my_password&quot;		# if don't set it will ask on execution
    GAPDAYS=6					# last rsync must be 6 days old
    CHECK_RSYNC_SERVER=&quot;myServerBackup&quot;		# check if is there a rsync server online&quot;

    RSYNC_PARAMS=&quot;-a --copy-links --delete-during --delete-excluded&quot;
}

# backup my Pictures (/home/myname/Pictures/) on myServerBackup
nameModule2 {
    INFO=&quot;backup my Pictures (/home/myname/Pictures/) on myServerBackup&quot;
    SRC=&quot;/home/myname/Pictures/&quot;
    DEST=&quot;rsync_user@myServerBackup::rsync_project_pictures&quot;

    GAPDAYS=3					# last rsync must be 3 days old
    CHECK_RSYNC_SERVER=&quot;myServerBackup&quot;		# check if is there a rsync server online

    RSYNC_PARAMS=&quot;-a --update --links --delete-during --delete-excluded --ignore-errors \
    --exclude compleanno/ \
    --exclude matrimoni/*/marco/&quot;
}
</pre>
<p>Il file presenta due moduli (<em>nameModule1, nameModule2</em>) e all'interno delle graffe ogni modulo viene caratterizzato con i seguenti tag:</p>
<table >
<tbody>
<tr>
<td><strong>INFO</strong></td>
<td>Semplicemente una stringa descrittiva del modulo.<br />
Servirà esclusivamente a noi per ricordare il comportamento del modulo.</td>
</tr>
<tr>
<td><strong>SRC</strong></td>
<td>Campo <em>sorgente</em>, ovvero quale sarà la cartella da sincronizzare.<br />
Qui potremmo anche trovare la stringa <em>user@host_serverbackup::nome_del_progetto</em>, dove <em>nome_del_progetto</em> è il nome indicato nel file <em>/etc/rsyncd.conf</em>.</td>
</tr>
<tr>
<td><strong>DEST</strong></td>
<td>Campo <em>destinazione</em>, stesse considerazioni del <em>SRC</em>.</td>
</tr>
<tr>
<td><strong>RSYNC_PASSWORD</strong></td>
<td>La password che abbiamo impostato nel file <em>/etc/rsyncd.scrt</em> per accedere al progetto configurato sul demone rsync.<br />
Nel caso non venga indicata la password e questa è necessaria, verrà richiesta a video.</td>
</tr>
<tr>
<td><strong>GAPDAYS</strong></td>
<td>Il numero minimo di giorni che dovrà trascorrere prima di RIeseguire la sincronizzazione.</td>
</tr>
<tr>
<td><strong>CHECK_RSYNC_SERVER</strong></td>
<td>Verifica che l'host indicato sia raggiungibile, altrimenti non avvia la sincronizzazione.</td>
</tr>
<tr>
<td><strong>RSYNC_PARAMS</strong></td>
<td>I parametri che indichereste richiamando semplicemente il comando <em>rsync</em>.</td>
</tr>
</table>
<p>I tags <em>RSYNC_PARAMS, CHECK_RSYNC_SERVER, GAPDAYS e RSYNC_PASSWORD</em> non sono obbligatori. </p>
<p><br class="spacer_" /><strong>Usare cRsync</strong> (client)<br />
Non ci rimane che usare cRsync da riga di comando. </p>
<p><br class="spacer_" />Allora se tutto è andato bene possiamo scrivere nella nostra command line:<br />
<code>crsync &lt;nome_modulo&gt;</code>Se abbiamo correttamente installato anche l'autocompletamento, basterà dare due tab per visualizzare i moduli configurati. Al termine dell'esecuzione ci verrà mostrato l'esito della sincronizzazione.</p>
<p><br class="spacer_" />I parametri di cRsync sono semplici: </p>
<table >
<tbody>
<tr>
<td><strong>-h</strong></td>
<td>Indovinate un po?!? :)</td>
</tr>
<tr>
<td><strong>-l</strong></td>
<td>Visualizza la lista dei moduli presenti in <em>/etc/crsync.conf</em> o nel file passato con '<em>-c</em>'.</td>
</tr>
<tr>
<td><strong>-i</strong></td>
<td>Stampa a video tutte le informazioni sul modulo indicato.</td>
</tr>
<tr>
<td><strong>-p</strong></td>
<td>Consente di passare ulteriori parametri al comando rsync, non previsti nel tag <em>RSYNC_PARAMS</em>.<br />
Utilizzare gli " (apici) per racchiudere i parametri da passare.<br />
Es. <em>-p "-v"</em> per eseguire rsync in modalità verbose.
</td>
</tr>
<tr>
<td><strong>-c</strong></td>
<td>Indica un file di configurazione alternativo.</td>
</tr>
<tr>
<td><strong>-f</strong></td>
<td>Forza cRsync ad effettuare la sincronizzazione anche se <em>GAPDAYS</em> non è rispettato.</td>
</tr>
<tr>
<td><strong>-a</strong></td>
<td>Nel caso in cui <em>GAPDAYS</em> non è rispettato chiedi l'intervento dell'utente per decidere se effettuare l'operazione.</td>
</tr>
<tr>
<td><strong>-v</strong></td>
<td>Avvia cRsync in modalità verbose.</td>
</tr>
</table>
<p>Bene, a questo punto dovreste poter andare avanti anche da soli. </p>
<p><br class="spacer_" />Come sempre feedback e suggerimenti sono graditissimi!<br />
<br class="spacer_" /></p>
<p><table style="margin: 0px auto 20px; width: 70%;">  <tbody><tr><td style="padding: 0px; width: 100%; vertical-align: text-top;">  <table style="border: 0px none ; width: 100%; margin-bottom: 0px;">  <tbody><tr style="border-bottom-width: 0px; border-right-width: 0px;"> <td style="border-bottom-width: 0px; border-right-width: 0px;"><strong>cRsync <i>v0.6b</i></strong></td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Data: 28.12.2009</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Size: 4.26 KB</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Downloads: 5 hits</td></tr></tbody></table> </td><td style="border-left: 0px none; vertical-align: middle;"><a href="http://muttley.eb2a.com/wp-content/plugins/download-monitor/download.php?id=5"><img src="/wp-content/images/btDownload.png" alt="Download" title="Download"/></a></td></tr></tbody></table>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2009/crsync-sincronizzazioni-custom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XBMC Scraper per MyMovies.it (update 10.12.09)</title>
		<link>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/</link>
		<comments>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 12:36:43 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[xbmc]]></category>
		<category><![CDATA[espressioni regolari]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[scraper]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=474</guid>
		<description><![CDATA[Aggiornamento dello scraper per XBMC 9.11 con qualche nuova features e qualche bugfix. Se non sapete di che si stà parlando fate riferimento a questo post XBMC Scraper per MyMovies.it del 29.10.09, dove troverete informazioni su XBMC e su come installare e configurare lo scraper.
Lo scraper è testato su XBMC 9.11 beta2 r25484 (compilata il [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/"><img class="aligncenter size-full wp-image-355" title="xbmc 9.11" src="http://muttley.eb2a.com/wp-content/uploads/2009/11/xbmc-911.png" alt="xbmc 9.11" width="128" height="103" /></a>Aggiornamento dello scraper per XBMC 9.11 con qualche nuova features e qualche bugfix. Se non sapete di che si stà parlando fate riferimento a questo post <a href="/2009/xbmc-scraper-per-mymovies-it/">XBMC Scraper per MyMovies.it</a> del 29.10.09, dove troverete informazioni su XBMC e su come installare e configurare lo scraper.<span id="more-474"></span><br />
Lo scraper è testato su XBMC 9.11 beta2 r25484 (compilata il 9.12.09) per Linux e dovrebbe funzionare anche su Windows e Xbox.<br />
<br class="spacer_" /><strong>Modifiche</strong><br />
Elenco delle nuove features e bugfix rispetto alla <a href="http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-per-9-11/">versione precedente</a>:</p>
<ul>
<li>Aggiunto il tag <em>enable</em> nel blocco <em>GetSettings</em>, così da abilitare/disabilitare le opzioni &#8216;dipendenti&#8217; da altre nella configurazione dello scraper.<br />
<code>enable="eq(x, true)"</code></li>
<li>Rivisto completamente il blocco <em>GetSearchResults</em> che non visualizzava i risultati senza il regista (es. Crank).</li>
<li>Cambiatata la chiamata della funzione da <em>GetTMDBFanartByIMDBId</em> a <em>GetTMDBFanartById</em>, dovuta alla modfica sulla nuova beta2 (ma perchè sta cosa?!).</li>
<li>Ripulita generale al codice con la sostituzione del tag di apertura chiusara <em>expression</em> con uno singolo e riformattazione/indentazione del codice.</li>
</ul>
<p><strong>ToDo</strong><br />
Cosa si potrebbe aggiungere e/o testare:</p>
<ul>
<li>Ho scoperto, con molto ritardo, dell&#8217;esistenza del sito imdb in italiano. Questo potrebbe evitare la ricerca del titolo originale su mymovies (non sempre presente), cercando direttamente il titolo in italiano su imdb.it. Potrebbe aumentare il numero di films con fanart trovati.</li>
<li>XBMC dovrebbe supportare (non testato) il tag <em>CDATA</em>. Questo potrebbe consentire, utilizzandolo fra i tag <em>expression</em> e con l&#8217;attributo <em>output</em>, un lettura/scrittura dello scraper più user-friendly.</li>
<li>Blocco <em>NfoUrl</em> da modficare secondo i due diversi link di myMovies.it</li>
<li>Rimane sempre aperto il <strong>Problema Append to Plot</strong> che trovate sepigato nel <a href="/2009/xbmc-scraper-per-mymovies-it/">precedente post</a>.</li>
<li>Opzione per scaricare i poster di qualità maggiore.</li>
<li>Psolo <a href="http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/comment-page-1/#comment-47">report</a> bug fix</li>
</ul>
<p>Buona visione ;)<br />
<br class="spacer_" /><strong>Aggiornamento 05.01.10:</strong> nuova versione sempre per 9.11, scaricabile da <a href="http://muttley.eb2a.com/2010/xbmc-scraper-per-mymovies-it-update-05-01-10/">qui</a>.<br />
<br class="spacer_" /><table style="margin: 0px auto 20px; width: 70%;">  <tbody><tr><td style="padding: 0px; width: 100%; vertical-align: text-top;">  <table style="border: 0px none ; width: 100%; margin-bottom: 0px;">  <tbody><tr style="border-bottom-width: 0px; border-right-width: 0px;"> <td style="border-bottom-width: 0px; border-right-width: 0px;"><strong>XBMC Scraper (myMovies.it) <i>v1.4b per 9.11</i></strong></td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Data: 10.12.2009</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Size: 9.06 KB</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Downloads: 201 hits</td></tr></tbody></table> </td><td style="border-left: 0px none; vertical-align: middle;"><a href="http://muttley.eb2a.com/wp-content/plugins/download-monitor/download.php?id=4"><img src="/wp-content/images/btDownload.png" alt="Download" title="Download"/></a></td></tr></tbody></table></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Installare Eclipse e PDT su Ubuntu</title>
		<link>http://muttley.eb2a.com/2009/installare-eclipse-e-pdt-su-ubuntu/</link>
		<comments>http://muttley.eb2a.com/2009/installare-eclipse-e-pdt-su-ubuntu/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 21:17:36 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[guide]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pdt]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=402</guid>
		<description><![CDATA[Vediamo come installare Eclipse 3.5.1, completissimo e vastissimo (forse anche troppo) IDE di sviluppo multilinguaggio (multipiattaforma) con il supporto al PHP sul nostro Ubuntu 9.10. Partiamo dal pacchetto base (Eclipse Galileo) per poi andare ad istallare tutti i plug-in necessari per le dipendenze di PDT (PHP Development Tools) più quelli necessari per facilitarci la vita [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muttley.eb2a.com/2009/installare-eclipse-e-pdt-su-ubuntu/"><img src="http://muttley.eb2a.com/wp-content/uploads/2009/12/eclipse.png" alt="eclipse" title="eclipse" width="120" height="125" class="aligncenter size-full wp-image-445" /></a>Vediamo come installare <a href="http://it.wikipedia.org/wiki/Eclipse_%28informatica%29">Eclipse</a> 3.5.1, completissimo e vastissimo (forse anche troppo) <a href="http://it.wikipedia.org/wiki/Integrated_development_environment">IDE</a> di sviluppo multilinguaggio (multipiattaforma) con il supporto al PHP sul nostro Ubuntu 9.10. Partiamo dal pacchetto base (<a href="http://www.eclipse.org/galileo/">Eclipse Galileo</a>) per poi andare ad istallare tutti i plug-in necessari per le dipendenze di <a href="http://www.eclipse.org/pdt/">PDT</a> (PHP Development Tools) più quelli necessari per facilitarci la vita e infine configuriamo il tutto per iniziare.<br class="spacer_" /><br />
<span id="more-402"></span><strong>Introduzione</strong><br />
Le possibilita per chi sviluppa siti in PHP e vuol far uso di Eclipse sono tre:<br />
<div id="Ads2" class="wp-caption alignright" style="width: 310px">[/caption]</p>
<ul>
<li>Zend Studio</li>
<li>PHPEclipse</li>
<li>Eclipse PDT</li>
</ul>
<p>Il primo, lo Zend Studio, altro non è che una versione <em>pompata</em> e a pagamento di Eclipse PDT che a mio avviso è notevolmente appesantita e sopratutto orientata a chi fa uso intensivo dello Zend Framework e altre <em>Zend features</em>. La cosa che più odio, o almeno che non sono riuscito a fare, è il poter installare lo Studio come semplice plug-in di eclipse, consentendo così di utilizzare eclipse anche per altri linguaggi.<br />
Per quanto riguarda PHPEclipse c&#8217;è ben poco da dire, dato che non lo conosco affato :). Quindi se lo provate, fatemi sapere! La terza scelta (ovviamente) è quella che mi ha convinto di più!<br class="spacer_" /><br />
<strong>Installazione</strong><br />
Potete installare l&#8217;accoppiata Eclipse + PDT in un colpo solo scaricando il pacchetto completo (Eclipse for PHP Developers) che trovate nella sezione <a href="http://www.eclipse.org/downloads/">download</a> di eclipse.org, ma visto che noi siamo masochisti, seguiremo il processo più lungo, partendo da Eclipse nudo e crudo (o quasi) e andando a installare tutti i vari componenti necessari:</p>
<ul>
<li>Installazione di Eclipse Galileo dai repository di Ubuntu</li>
</ul>
<p><code>sudo apt-get install eclipse-pde</code><br />
In questo modo usufruiremo di tutti i vantaggi che il sistema di pacchettizzazione <em>.deb</em> comporta (aggiornamenti, dipendenze, facile installazione/disistallazione, etc&#8230;). <em>eclipse-pde</em> non è il pacchetto base (eclipse-platform) ma include PDE (Plug-in Development Environmen) necessario per poter installare successivamente plug-in, questo per via di un (presunto) <a href="https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/477944">bug segnalato su launchpad</a>.<br class="spacer_" /><br />
<em><span style="text-decoration: underline;">Importante</span>:</em> con la 9.10 di Ubuntu c&#8217;è qualche problema tra le GTK e la Java virtual machine che affligge alcune applicazioni java tra cui Eclipse. In pratica ci sarebbero dei problemi di intercettazione degli eventi, come click del mouse su alcuni bottoni. Se incontrate questi problemi dovete impostare la variabile d&#8217;ambiente <em>GDK_NATIVE_WINDOWS=1</em>.<br class="spacer_" /><br />
Editate l&#8217;entry di Eclipse nel menù di Ubuntu in questo modo:<br />
<code>GDK_NATIVE_WINDOWS=1 eclipse</code><br />
&#8230;o fatevi uno script ad-hoc per il lancio di Eclipse che prima esporti la la variabile <em>GDK_NATIVE_WINDOWS=1</em> e poi lanci Eclipse.<div id="attachment_446" class="wp-caption alignright" style="width: 310px"><p class="wp-caption-text">Galileo update site</p></div><a title="Aggiungere Galileo update site" rel="lightbox" href="http://muttley.eb2a.com/wp-content/uploads/2009/12/add_update_site.jpeg"><img src="http://muttley.eb2a.com/wp-content/uploads/2009/12/add_update_site-300x232.jpg" alt="Galileo update site" title="add update site" width="300" height="176" class="size-medium wp-image-446" /></a><p class="wp-caption-text">Ads</p></div></p>
<ul>
<li>Installazione di PDT e dipendenze</li>
</ul>
<p><em><span style="text-decoration: underline;">Premessa</span>:</em> possiamo scegliere se installare l&#8217;ultima versione stabile rilasciata la 2.1 o la 2.2 che verrà rilasciata ufficialmente e integrata nell&#8217;<em>update site</em> (una sorta di repository per Ecplise) di Galileo il 23.06.2010.<br />
A quanto risulta dal sito ufficiale la 2.2 è considerata stabile, ma io ho ripiegato sulla 2.1 dopo aver riscontrato qualche problema di compatibilità fra i vari plug-in (TM e Aptana) che installeremo successivamente.<br class="spacer_" /><br />
<em><span style="text-decoration: underline;">Installazione 2.1</span>:</em> basta aggiungere l&#8217;<em>update site</em> ufficiale di Galileo, stranamente non presente di default sull&#8217;istallazione fatta con i repository di Ubuntu, questo ci consentirà di installare PDT e risolvere automaticamente tutte le dipendenze.<br class="spacer_" /><br />
All&#8217;interno di Eclipse:<code>menù <em>Help</em> &gt; <em>Install New Software...</em> &gt; Bottone <em>Add...</em></code><br />
Inseriamo:<code><em>Name:</em> Galileo (o quello che volete)<br />
<em>Location:</em> http://download.eclipse.org/releases/galileo/</code><br />
Selezioniamo da <em>&#8216;Work with:&#8217;</em> l&#8217;<em>update site</em> di Galileo e nel menù ad albero sotto spuntiamo:<code>Programming Languages > PHP Development Tools</code><br />
Clicchiamo <em>Next</em>, ancora <em>Next</em>, accettiamo la licensa EULA e poi <em>Finish</em>.<br class="spacer_" /><br />
<em><span style="text-decoration: underline;">Installazione 2.2</span>:</em> l&#8217;installazione di questa versione richiede l&#8217;aggiunta dell&#8217;<em>update site</em> di Galileo (come per la 2.1) ed in più:<br />
<br class="spacer_" /></p>
<table style="width: 100%;" border="0">
<tbody>
<tr>
<td><strong>PDT 2.2</strong></td>
<td>http://download.eclipse.org/tools/pdt/updates/2.2/interim/</td>
</tr>
<tr>
<td><strong>DLTK 2.0</strong></td>
<td>http://download.eclipse.org/technology/dltk/updates-dev/2.0/</td>
</tr>
</tbody>
</table>
<p>Questo perchè la 2.2 richiede alcune parti del <a href="http://www.eclipse.org/dltk/">DLTK</a> (Dynamic Languages Toolkit) 2.0.<br />
Selezioniamo da <em>&#8216;Work with:&#8217;</em> l&#8217;<em>update site</em> di PDT 2.2 e spuntiamo nel menù ad albero:<code>pdt 2.2.0 > PHP Development Tool (PDT) Runtime Feature</code><div id="attachment_457" class="wp-caption alignright" style="width: 310px"><a title="Selezionare plug-in PDT" rel="lightbox" href="http://muttley.eb2a.com/wp-content/uploads/2009/12/select_pdt.jpeg"><img src="http://muttley.eb2a.com/wp-content/uploads/2009/12/select_pdt-300x232.jpg" alt="Seleziona plug-in PDT" title="select pdt" width="300" height="166" class="size-medium wp-image-457" /></a><p class="wp-caption-text">Seleziona plug-in PDT</p></div><br />
Come sopra, <em>Next</em>, ancora <em>Next</em>, accettiamo  licensa EULA e <em>Finish</em>.<br class="spacer_" /><br />
<em><span style="text-decoration: underline;">Nota</span>:</em> solo per completezza riporto la lista dei plug-in necessari e rispettivi <em>update sites</em> per installare PDT senza utilizzare quello di Galileo:<br />
<br class="spacer_" /></p>
<table style="width: 100%;" border="0">
<tbody>
<tr>
<td><strong>PDT 2.2</strong></td>
<td>http://download.eclipse.org/tools/pdt/updates/2.2/interim/</td>
</tr>
<tr>
<td><strong>GEF</strong></td>
<td>http://download.eclipse.org/tools/gef/updates/releases/</td>
</tr>
<tr>
<td><strong>EMF</strong></td>
<td>http://download.eclipse.org/modeling/emf/updates/releases/</td>
</tr>
<tr>
<td><strong>DLTK 0.95</strong></td>
<td>http://download.eclipse.org/technology/dltk/updates/</td>
</tr>
<tr>
<td><strong>DLTK 2.0</strong></td>
<td>http://download.eclipse.org/technology/dltk/updates-dev/2.0/</td>
</tr>
<tr>
<td><strong>WTP</strong></td>
<td>http://download.eclipse.org/webtools/updates/</td>
</tr>
</tbody>
</table>
<p>puf, puf&#8230;per l&#8217;installazione degl&#8217;altri plug-in e la configurazione del progetto remoto, rimandiamo alla seconda puntata&#8230;<br />
<br class="spacer_" /></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2009/installare-eclipse-e-pdt-su-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KMail Crash su Kubuntu 9.10</title>
		<link>http://muttley.eb2a.com/2009/kmail-crash-su-kubuntu-9-10/</link>
		<comments>http://muttley.eb2a.com/2009/kmail-crash-su-kubuntu-9-10/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 17:17:31 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[guide]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=357</guid>
		<description><![CDATA[Brevissimo post per segnalare la soluzione che ha risolto il problema sul mio pc con Kubuntu 9.10 Karmic Koala (cmq dovrebbe funzionare anche su altre distribuzioni).
Sintomi
All&#8217;avvio KMail (come Kontact) va in crash subito dopo aver richiesto l&#8217;accesso a KWallet.
Soluzione
sudo rm -r /tmp/
E&#8217; bastato cancellare i file temporanei creati da KMail per far ripartire l&#8217;applicazione.
Possibili cause
Forse [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muttley.eb2a.com/2009/kmail-crash-su-kubuntu-9-10/"><img class="aligncenter size-full wp-image-361" title="kmail" src="http://muttley.eb2a.com/wp-content/uploads/2009/12/kmail.png" alt="kmail" width="120" height="99" /></a>Brevissimo post per segnalare la soluzione che ha risolto il problema sul mio pc con <a href="http://it.wikipedia.org/wiki/Kubuntu">Kubuntu</a> 9.10 Karmic Koala (cmq dovrebbe funzionare anche su altre distribuzioni).<span id="more-357"></span><br />
<br class="spacer_" /><strong>Sintomi</strong><br />
All&#8217;avvio <a href="http://it.wikipedia.org/wiki/KMail/">KMail</a> (come <a href="http://it.wikipedia.org/wiki/Kontact">Kontact</a>) va in crash subito dopo aver richiesto l&#8217;accesso a <a href="http://en.wikipedia.org/wiki/KWallet">KWallet.</a><br />
<strong>Soluzione</strong><br />
<code>sudo rm -r /tmp/</code><br />
E&#8217; bastato cancellare i file temporanei creati da KMail per far ripartire l&#8217;applicazione.<br />
<br class="spacer_" /><strong>Possibili cause</strong><br />
Forse qualche precedente crash che ha interrotto il download dei messaggi o qualche eccessivo smanettamento nella configurazione di KMail.<br />
<br class="spacer_" /><strong>Speranze ;)</strong><br />
 Che qualcun&#8217;altro possa risolvere il mio stesso problema!<br />
 <br class="spacer_" /></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2009/kmail-crash-su-kubuntu-9-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XBMC Scraper per MyMovies.it (per 9.11)</title>
		<link>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-per-9-11/</link>
		<comments>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-per-9-11/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 12:16:13 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[xbmc]]></category>
		<category><![CDATA[espressioni regolari]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[scraper]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=312</guid>
		<description><![CDATA[Questo post fa seguito al recente XBMC Scraper per MyMovies.it del 29.10.09, dove potete trovare informazioni su XBMC e lo scraper, che non riporterò in questo. La nuova versione (modifica della precedente) è dovuta a problemi di compatibilità con l&#8217;utlima svn rilasciata 9.11, ancora in alpha. Quindi per chi utilizzasse la stabile 9.04 non è [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/2009/xbmc-scraper-per-mymovies-it-per-9-11/"><img src="http://muttley.eb2a.com/wp-content/uploads/2009/11/xbmc-911.png" alt="xbmc 9.11" title="xbmc 9.11" width="128" height="103" class="aligncenter size-full wp-image-355" /></a>Questo post fa seguito al recente <a href="/2009/xbmc-scraper-per-mymovies-it/">XBMC Scraper per MyMovies.it</a> del 29.10.09, dove potete trovare informazioni su XBMC e lo scraper, che non riporterò in questo. La nuova versione (modifica della precedente) è dovuta a problemi di compatibilità con l&#8217;utlima svn rilasciata 9.11, ancora in alpha. Quindi per chi utilizzasse la stabile 9.04 non è necessario riscaricare questa versione.<br />
<span id="more-312"></span>Come segnalato da molti, la <a href="/2009/xbmc-scraper-per-mymovies-it/">precedente versione</a> non visualizzava le locandine e le Fanart (Backdrops) nelle ultime release svn. Lo scraper è testato su XBMC 9.11 <del>Alpha1</del> Alpha2 per Linux e dovrebbe funzionare anche su Windows e Xbox (aspetto conferme).<br />
<br class="spacer_" /><strong>Modifiche</strong><br />
Non sono state aggiunte nuove funzionalità, come già detto sono state apportate delle modifiche soltanto per mantenere la compatibilità con la nuova release e correggere qualche piccolo bug:</p>
<ul>
<li>Per il problema delle locandine ho dovuto cancellare il tag <em>&lt;thumbs&gt;</em>, per un aggiornamento della struttura dello scraper nelle ultime versioni di xbmc.<br />
<code><del>&lt;thumbs&gt;</del>&lt;thumb&gt;...&lt;/thumb&gt;&lt;thumb&gt;...&lt;/thumb&gt;<del>&lt;/thumbs&gt;</del></code></li>
<li>Grazie all&#8217;introduzione del tag <em>&lt;include&gt;</em>, vengono usate le common library di TMDB per le Backdrops.</li>
<li>Inserito l&#8217;attributo <em>encode</em> nel tag <em>&lt;expression&gt;</em> per l&#8217;encoding della stringa di ricerca per imdb.</li>
<li>E&#8217; stato corretto qualche piccolo bug nella <em>GetSearchResults</em> e <em>GetMovieWriters</em>.</li>
<li>La modifica più significativa è stata fatta per far funzionare le Fanart, qui è stata rivista un po&#8217; la struttura e l&#8217;uso delle custom function, che rimangono un po&#8217; <em>misteriose</em> per me.
<pre class="brush: xml; first-line: 284;">
  &lt;GetTMDBFanartByIMDBSearchPage dest=&quot;7&quot;&gt;
    &lt;RegExp input=&quot;$$6&quot; output=&quot;&amp;lt;details&amp;gt;\1&amp;lt;/details&amp;gt;&quot; dest=&quot;7&quot;&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;id&amp;gt;\1&amp;lt;/id&amp;gt;&quot; dest=&quot;4&quot;&gt;
	&lt;expression clear=&quot;yes&quot;&gt;/title/([t0-9]*)/faq&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;\1&quot; dest=&quot;3&quot;&gt;
	&lt;expression noclean=&quot;1&quot;&gt;(&amp;gt;&amp;lt;a href=&amp;quot;/title.*)&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$3&quot; output=&quot;&amp;lt;id&amp;gt;\1&amp;lt;/id&amp;gt;&quot; dest=&quot;4+&quot;&gt;
	&lt;expression noclean=&quot;1,2&quot;&gt;&amp;gt;&amp;lt;a href=&amp;quot;/title/([t0-9]*)/[^&amp;gt;]*&amp;gt;[^&amp;lt;]*&amp;lt;/a&amp;gt; *\([0-9]*&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$4&quot; output=&quot;\1&quot; dest=&quot;5&quot;&gt;
	&lt;expression noclean=&quot;1&quot; clear=&quot;yes&quot;&gt;([t0-9]+)&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$5&quot; output=&quot;&amp;lt;url function=&amp;quot;GetTMDBFanartByIMDBId&amp;quot;&amp;gt;http://www.imdb.com/title/\1/&amp;lt;/url&amp;gt;&quot; dest=&quot;6&quot;&gt;
	  &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;expression noclean=&quot;1&quot;/&gt;
    &lt;/RegExp&gt;
  &lt;/GetTMDBFanartByIMDBSearchPage&gt;
</pre>
</li>
</ul>
<p><strong>ToDo</strong></p>
<ul>
<li>Rimane aperto il <strong>Problema Append to Plot</strong> che trovate sempre nel <a href="/2009/xbmc-scraper-per-mymovies-it/">precedente post</a>.</li>
</ul>
<p>Come sempre, scrivete per commenti, bug, problemi, suggerimenti&#8230;e anche semplicemente per ringraziare (che fa sempre piacere)!<br />
<br class="spacer_" /><strong>Aggiornamento 10.12.2009:</strong> nuova versione sempre per 9.11, scaricabile da <a href="/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/">qui</a>.<br />
<br class="spacer_" /><table style="margin: 0px auto 20px; width: 70%;">  <tbody><tr><td style="padding: 0px; width: 100%; vertical-align: text-top;">  <table style="border: 0px none ; width: 100%; margin-bottom: 0px;">  <tbody><tr style="border-bottom-width: 0px; border-right-width: 0px;"> <td style="border-bottom-width: 0px; border-right-width: 0px;"><strong>XBMC Scraper (myMovies.it) <i>v1.3b per 9.11</i></strong></td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Data: 13.11.2009</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Size: 9.12 KB</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Downloads: 133 hits</td></tr></tbody></table> </td><td style="border-left: 0px none; vertical-align: middle;"><a href="http://muttley.eb2a.com/wp-content/plugins/download-monitor/download.php?id=3"><img src="/wp-content/images/btDownload.png" alt="Download" title="Download"/></a></td></tr></tbody></table></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it-per-9-11/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>XBMC Scraper per MyMovies.it</title>
		<link>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it/</link>
		<comments>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 13:55:14 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[xbmc]]></category>
		<category><![CDATA[espressioni regolari]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[scraper]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=205</guid>
		<description><![CDATA[Uno scraper non è altro che un file xml in cui sono definite delle regole per estrapolare, attraverso le espressioni regolari, determinate informazioni da una pagina web. Lo scraper è un&#8217;estensione di XBMC (XBox Media Center) per poter individuare e organizzare informazioni per film, serie Tv e musica dal proprio sito di recensioni preferito (nel [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/2009/xbmc-scraper-per-mymovies-it/"><img class="aligncenter size-full wp-image-96" src="http://muttley.eb2a.com/wp-content/uploads/2009/10/xbmc.png" alt="xbmc" title="xbmc" width="128" height="103" /></a>Uno <a href="http://xbmc.org/wiki/index.php?title=Scraper.xml">scraper</a> non è altro che un file xml in cui sono definite delle regole per <em>estrapolare</em>, attraverso le espressioni regolari, determinate informazioni da una pagina web. Lo scraper è un&#8217;estensione di <a href="http://xbmc.org">XBMC</a> (XBox Media Center) per poter individuare e organizzare informazioni per film, serie Tv e musica dal proprio sito di recensioni preferito (nel nostro caso, i dati verrano presi da mymovies.it).<br />
<span id="more-205"></span>Piccola premessa, nel caso non lo conosceste, XBMC è un fantastico Media Center open source che ha fatto la storia su Xbox (versione 1). Era ed è installalbile solamente su console modificate (sia hw che sw), ma già da diversi hanni gli sviluppatori lo hanno portato anche su linux, windows e mac. Trovate tutte le informazioni sul sito ufficiale.<br class="spacer_" /><br />
Il problema degli scraper, o per meglio dire il loro maggiore &#8216;nemico&#8217;, sono i restyling dei siti. Come già anticipato e vedremo in seguito, il cuore di questi &#8216;estrapolatori&#8217; sono le <a href="http://it.wikipedia.org/wiki/Espressioni_regolari">espressioni regolari</a> (ER da adesso) e viene da se che quando la grafica del sito cambia le ER devono essere aggiornate&#8230;e siamo infatti alla 3° revisione :)<br class="spacer_" /><br />
Vista la lunghezza, più di 500 righe, consiglio la visualizzazione solo agli interessati:</p>
<pre class="brush: xml; collapse: true; light: false; toolbar: true;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;scraper framework=&quot;1.0&quot; date=&quot;2009-09-09&quot; name=&quot;MyMovies&quot; content=&quot;movies&quot; thumb=&quot;MyMovies.png&quot; language=&quot;it&quot;&gt;
&lt;!-- coming soon: &lt;include&gt;common/tmdb.xml&lt;/include&gt; see at the end of this file --&gt;

	&lt;GetSettings dest=&quot;3&quot;&gt;
		&lt;RegExp input=&quot;$$5&quot; output=&quot;&amp;lt;settings&amp;gt;\1&amp;lt;/settings&amp;gt;&quot; dest=&quot;3&quot;&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Cast completo&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;fullcredits&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Cast completo &gt;&gt; Regista/i&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;viewDirector&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Cast completo &gt;&gt; Attori&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;viewActors&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Cast completo &gt;&gt; Filmmakers&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;viewFilmmakers&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Cast completo &gt;&gt; Separatori del Cast&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;fakeactor&amp;quot; default=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting type=&amp;quot;sep&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Aggiungi al Plot &gt;&gt; Critica&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;critic&amp;quot; default=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Aggiungi al Plot &gt;&gt; Commenti del Pubblico&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;public&amp;quot; default=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Aggiungi al Plot &gt;&gt; Commenti sul Forum&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;forum&amp;quot; default=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Aggiungi al Plot &gt;&gt; Frasi Celebri del film&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;frasi_celebri&amp;quot; default=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting type=&amp;quot;sep&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Voto in 10esimi&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;rating_ten&amp;quot; default=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Voto Dizionari, Critica e Pubblico&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;other_rating&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Voto Dizionari, Critica e Pubblico &gt; Visualizza in:&amp;quot; type=&amp;quot;labelenum&amp;quot; values=&amp;quot;mpaa|studio|outline&amp;quot; id=&amp;quot;tag_other_rating&amp;quot; default=&amp;quot;studio&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting type=&amp;quot;sep&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Tutti i Posters&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;thumbs&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;Trailer&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;trailer&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;setting label=&amp;quot;TMDB Backdrops (Lento)&amp;quot; type=&amp;quot;bool&amp;quot; id=&amp;quot;backdrops&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/setting&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
			&lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
		&lt;/RegExp&gt;
	&lt;/GetSettings&gt;

    &lt;NfoUrl dest=&quot;3&quot;&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;\1&quot; dest=&quot;3&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;(http://www\.mymovies\.it/dizionario/recensione\.asp\?id=[0-9]+)&lt;/expression&gt;
      &lt;/RegExp&gt;
    &lt;/NfoUrl&gt;

    &lt;CreateSearchUrl dest=&quot;3&quot;&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;http://www.google.it/cse?q=\1&amp;amp;cx=partner-pub-1699801751737986%3Ax7j961-1g3m&amp;amp;ie=ISO-8859-1&amp;amp;sa=Cerca&amp;amp;num=20&quot; dest=&quot;3&quot;&gt;
        &lt;expression  noclean=&quot;1&quot;/&gt;
      &lt;/RegExp&gt;
    &lt;/CreateSearchUrl&gt;

    &lt;GetSearchResults dest=&quot;8&quot;&gt;
      &lt;RegExp input=&quot;$$5&quot; output=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;iso-8859-1&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&amp;lt;results&amp;gt;\1&amp;lt;/results&amp;gt;&quot; dest=&quot;8&quot;&gt;
        &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;entity&amp;gt;&amp;lt;title&amp;gt;\2 (\4, \3)&amp;lt;/title&amp;gt;&amp;lt;url&amp;gt;\1&amp;lt;/url&amp;gt;&amp;lt;id&amp;gt;\1&amp;lt;/id&amp;gt;&amp;lt;/entity&amp;gt;&quot; dest=&quot;5&quot;&gt;
          &lt;expression repeat=&quot;yes&quot; cs=&quot;true&quot;&gt;&amp;lt;div class=g&amp;gt;&amp;lt;a href=&amp;quot;([^&amp;quot;]+)&amp;quot; target=_top class=l&amp;gt;([^\(]{1,200})\(([0-9]{4})\) \| MYmovies&amp;lt;/a&amp;gt;&amp;lt;table border=0 cellpadding=0 cellspacing=0&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;j&amp;quot;&amp;gt;&amp;lt;div class=std&amp;gt;Un film di (.+?) con&lt;/expression&gt;
        &lt;/RegExp&gt;
        &lt;expression noclean=&quot;1&quot;/&gt;
      &lt;/RegExp&gt;
    &lt;/GetSearchResults&gt;

    &lt;GetDetails dest=&quot;3&quot;&gt;
		&lt;RegExp input=&quot;$$5&quot; output=&quot;&amp;lt;details&amp;gt;\1&amp;lt;/details&amp;gt;&quot; dest=&quot;3&quot;&gt;

    	&lt;!-- Title, Year --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;title&amp;gt;\1&amp;lt;/title&amp;gt;&amp;lt;year&amp;gt;\2&amp;lt;/year&amp;gt;&quot; dest=&quot;5&quot;&gt;
        &lt;expression noclean=&quot;1,2&quot;&gt;&amp;lt;title&amp;gt;([^\(]+) \(([0-9]{4})&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;!-- Genre --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;genre&amp;gt;\2&amp;lt;/genre&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;!-- buffer 1 is needed only for match, not used --&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;a title=&amp;quot;Film ([^&amp;quot;]+)&amp;quot; href=&amp;quot;http://www.mymovies.it/film/\1/&amp;quot;&amp;gt;([^&amp;lt;]+)&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;!-- Runtime --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;runtime&amp;gt;\1&amp;lt;/runtime&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;durata ([0-9]+) min\.&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;!-- Director(s) --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;\1&quot; dest=&quot;4&quot;&gt;
        &lt;expression cs=&quot;true&quot;&gt;&amp;lt;div style=&amp;quot;text-align:left&amp;quot; class=&amp;quot;linkblu&amp;quot;&amp;gt;[^U]+Un film di (.+?)Con&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$4&quot; output=&quot;&amp;lt;director&amp;gt;\1&amp;lt;/director&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;!-- separe each director --&gt;
        &lt;expression repeat=&quot;yes&quot; noclean=&quot;1&quot;&gt;([^\.^,]+)[\.,]&lt;/expression&gt;
      &lt;/RegExp&gt;

      &lt;!-- Writer(s) --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;url cache=&amp;quot;$$2-fullcredits.html&amp;quot; function=&amp;quot;GetMovieWriters&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;Cast [^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Cast&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

      &lt;!-- Tagline --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;tagline&amp;gt;\1&amp;lt;/tagline&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression trim=&quot;1&quot;&gt;&amp;lt;strong class=&amp;quot;rec_lancio&amp;quot; &amp;gt;(.+?)&amp;lt;/strong&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

      &lt;!-- Rating --&gt;
	    &lt;!-- rating map array --&gt;
      &lt;RegExp conditional=&quot;rating_ten&quot; output=&quot;&amp;lt;r&amp;gt;0.1-No rating found&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.1-0.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.2-0.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.3-0.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.4-0.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.5-1.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.6-1.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.7-1.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.8-1.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;0.9-1.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.0-2.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.1-2.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.2-2.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.3-2.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.4-2.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.5-3.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.6-3.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.7-3.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.8-3.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;1.9-3.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.0-4.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.1-4.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.2-4.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.3-4.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.4-4.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.5-5.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.6-5.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.7-5.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.8-5.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;2.9-5.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.0-6.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.1-6.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.2-6.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.3-6.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.4-6.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.5-7.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.6-7.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.7-7.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.8-7.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;3.9-7.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.0-8.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.1-8.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.2-8.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.3-8.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.4-8.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.5-9.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.6-9.2&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.7-9.4&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.8-9.6&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;4.9-9.8&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;5.0-10.0&amp;lt;/r&amp;gt;&amp;lt;r&amp;gt;n.d- &amp;lt;/r&amp;gt;&quot; dest=&quot;4&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
	    &lt;!-- Average --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;\1.\2&quot; dest=&quot;6&quot;&gt;
        &lt;expression noclean=&quot;1&quot; clear=&quot;yes&quot;&gt;&amp;lt;div style=&amp;quot;text-align:center; font-size:23px; font-weight:bold; letter-spacing:1px; margin:0px 11px 7px 11px&amp;quot;&amp;gt;([0-9]),([0-9]{2})&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;!-- Rating x of 10 --&gt;
      &lt;RegExp conditional=&quot;rating_ten&quot; input=&quot;$$4&quot; output=&quot;\1&quot; dest=&quot;6&quot;&gt;
        &lt;!-- number rounding --&gt;
        &lt;RegExp input=&quot;$$6&quot; output=&quot;\1.\2&quot; dest=&quot;6&quot;&gt;
          &lt;expression noclean=&quot;1&quot;&gt;([0-9])\.([0-9])&lt;/expression&gt;
        &lt;/RegExp&gt;
        &lt;expression noclean=&quot;1&quot;&gt;$$6-([^&amp;lt;]+)&lt;/expression&gt;
      &lt;/RegExp&gt;
	    &lt;RegExp input=&quot;$$6&quot; output=&quot;&amp;lt;rating&amp;gt;\1&amp;lt;/rating&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;!-- Others Rating --&gt;
			&lt;RegExp conditional=&quot;other_rating&quot; input=&quot;$$8&quot; output=&quot;&amp;lt;$INFO[tag_other_rating]&amp;gt;\1&amp;lt;/$INFO[tag_other_rating]&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;!-- Dizionari --&gt;
				&lt;RegExp input=&quot;$$1&quot; output=&quot;Dizionari: \1&quot; dest=&quot;8&quot;&gt;
        	&lt;expression clear=&quot;yes&quot; noclean=&quot;1,2&quot;&gt;&amp;lt;td style=&amp;quot;letter-spacing:1px;&amp;quot;[^&amp;gt;]+&amp;gt;[^;]+;dizionari&amp;lt;/td&amp;gt;[^0-9]+([0-9,]+) stelle&lt;/expression&gt;
      	&lt;/RegExp&gt;
				&lt;!-- Critica --&gt;
				&lt;RegExp input=&quot;$$1&quot; output=&quot; / Critica: \1&quot; dest=&quot;8+&quot;&gt;
        	&lt;expression noclean=&quot;1,2&quot;&gt;&amp;lt;td style=&amp;quot;letter-spacing:1px;&amp;quot;[^&amp;gt;]+&amp;gt;[^;]+;critica&amp;lt;/td&amp;gt;[^0-9]+([0-9,]+) stelle&lt;/expression&gt;
      	&lt;/RegExp&gt;
				&lt;!-- Pubblico --&gt;
				&lt;RegExp input=&quot;$$1&quot; output=&quot; / Pubblico: \1&quot; dest=&quot;8+&quot;&gt;
        	&lt;expression noclean=&quot;1,2&quot;&gt;&amp;lt;td style=&amp;quot;letter-spacing:1px;&amp;quot;[^&amp;gt;]+&amp;gt;[^;]+;pubblico&amp;lt;/td&amp;gt;[^0-9]+([0-9,]+) stelle&lt;/expression&gt;
      	&lt;/RegExp&gt;
				&lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
			&lt;/RegExp&gt;

      &lt;!-- Cast --&gt;
      &lt;RegExp conditional=&quot;!fullcredits&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url cache=&amp;quot;$$2-fullcredits.html&amp;quot; function=&amp;quot;GetMovieCast&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
	      &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;Cast [^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Cast&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
	    &lt;/RegExp&gt;
			&lt;!-- else Full Cast --&gt;
	    &lt;RegExp conditional=&quot;fullcredits&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url cache=&amp;quot;$$2-fullcredits.html&amp;quot; function=&amp;quot;GetMovieFullCast&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
				&lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;Cast [^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Cast&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
			&lt;/RegExp&gt;

			&lt;!-- Thumb --&gt;
      &lt;RegExp conditional=&quot;!thumbs&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;thumbs&amp;gt;&amp;lt;thumb&amp;gt;\1&amp;lt;/thumb&amp;gt;&amp;lt;/thumbs&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression cs=&quot;true&quot; noclean=&quot;1&quot;&gt;&amp;lt;img style=&amp;quot;[^&amp;quot;]+&amp;quot; src=&amp;quot;([^&amp;quot;]+)&amp;quot; width=&amp;quot;150px&amp;quot; height=&amp;quot;215px&amp;quot; alt=&amp;quot;Locandina&lt;/expression&gt;
      &lt;/RegExp&gt;
	    &lt;!-- else All Thumbs --&gt;
      &lt;RegExp conditional=&quot;thumbs&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMovieThumbs&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
      	&lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;Poster [^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Poster&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;!-- Trailer --&gt;
      &lt;RegExp conditional=&quot;trailer&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMovieTrailer&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;Trailer [^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Trailer&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;!-- Tmdb Backdrops through imdbId --&gt;
      &lt;RegExp conditional=&quot;backdrops&quot; input=&quot;$$7&quot; output=&quot;&amp;lt;url function=&amp;quot;GetTMDBFanartByIMDBId&amp;quot;&amp;gt;http://api.themoviedb.org/2.0/Movie.imdbLookup?imdb_id=\1&amp;amp;amp;api_key=57983e31fb435df4df77afb854740ea9&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
  			&lt;!-- Get imdbId --&gt;
        &lt;RegExp input=&quot;$$6&quot; output=&quot;&amp;lt;url function=&amp;quot;GetImdbId&amp;quot;&amp;gt;http://akas.imdb.com/find?s=tt;q=\1&amp;lt;/url&amp;gt;&quot; dest=&quot;7&quot;&gt;
          &lt;!-- Italian film title --&gt;
          &lt;RegExp input=&quot;$$1&quot; output=&quot;\1&quot; dest=&quot;4&quot;&gt;
            &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;title&amp;gt;([^\(]+) \(&lt;/expression&gt;
          &lt;/RegExp&gt;
          &lt;!-- Original film title: not always present --&gt;
          &lt;RegExp input=&quot;$$1&quot; output=&quot;\1&quot; dest=&quot;3&quot;&gt;
            &lt;expression cs=&quot;true&quot; noclean=&quot;1&quot; clear=&quot;yes&quot;&gt;Titolo originale[^&amp;gt;]+&amp;gt;([^&amp;lt;]+)&amp;lt;&lt;/expression&gt;
          &lt;/RegExp&gt;
          &lt;!-- Test Original film title --&gt;
          &lt;RegExp input=&quot;$$3&quot; output=&quot;\1&quot; dest=&quot;4&quot;&gt;
            &lt;expression&gt;(.+)&lt;/expression&gt;
          &lt;/RegExp&gt;
          &lt;!-- For better serach --&gt;
          &lt;!-- Get Film Date --&gt;
          &lt;RegExp input=&quot;$$1&quot; output=&quot;$$4 (\1)&quot; dest=&quot;4&quot;&gt;
            &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;title&amp;gt;[^\(]+ \(([0-9]{4})&lt;/expression&gt;
          &lt;/RegExp&gt;
          &lt;!-- Substitute &quot;space&quot; with &quot;%20&quot;...a sort of urlencoding --&gt;
          &lt;!-- when supported use: encode=&quot;1&quot; --&gt;
          &lt;RegExp input=&quot;$$4&quot; output=&quot;\1%20\2&quot; dest=&quot;6&quot;&gt;
            &lt;expression repeat=&quot;yes&quot; noclean=&quot;1,2&quot;&gt;(.*?) ([^ ]*)&lt;/expression&gt;
          &lt;/RegExp&gt;
          &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
        &lt;/RegExp&gt;
			  &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;!-- Plot: It is used for report many information... --&gt;
			&lt;!-- Custum function are used only for see all buffer --&gt;
			&lt;!-- I buffer della GetDetails non sono visibili alle funzioni custom e non risco a trovare un approccio differente per appendere informazioni al plot --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMoviePlot&amp;quot;&amp;gt;$$2&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
          &lt;expression&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;!-- Plot: all that you want append... --&gt;
      &lt;RegExp conditional=&quot;critic&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMovieCritic&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
      	&lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;[^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Critica&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
			&lt;RegExp conditional=&quot;public&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMoviePublic&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;[^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Pubblico&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
			&lt;RegExp conditional=&quot;forum&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMovieForum&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;[^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Forum&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
			&lt;RegExp conditional=&quot;frasi_celebri&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMovieFrasiCelebri&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;[^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Frasi&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

 			&lt;!-- Plot: ...at the end --&gt;
			&lt;!-- Non serve a un c***o l'url (già cached), ma è l'unico modo per vedere i buffer 10,11,12,13,14 istanziati nelle custom function --&gt;
		  &lt;RegExp output=&quot;&amp;lt;url cache=&amp;quot;$$2-fullcredits.html&amp;quot; function=&amp;quot;AppendToPlot&amp;quot;&amp;gt;$$2&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

			&lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
		&lt;/RegExp&gt;
  &lt;/GetDetails&gt;

  &lt;GetMovieWriters dest=&quot;5&quot;&gt;
    &lt;RegExp input=&quot;$$2&quot; output=&quot;&amp;lt;details&amp;gt;\1&amp;lt;/details&amp;gt;&quot; dest=&quot;5&quot;&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;credits&amp;gt;\1&amp;lt;/credits&amp;gt;&quot; dest=&quot;2&quot;&gt;
        &lt;expression repeat=&quot;yes&quot; noclean=&quot;1&quot;&gt;title=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;\1&amp;lt;/a&amp;gt;[^&amp;lt;]+&amp;lt;div style=&amp;quot;margin-top:3px; font-weight:bold;&amp;quot;&amp;gt;Soggetto&amp;lt;/div&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
    &lt;/RegExp&gt;
  &lt;/GetMovieWriters&gt;

  &lt;GetMovieTrailer dest=&quot;5&quot;&gt;
    &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;details&amp;gt;&amp;lt;trailer&amp;gt;\1&amp;lt;/trailer&amp;gt;&amp;lt;/details&amp;gt;&quot; dest=&quot;5&quot;&gt;
      &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;param name=&amp;quot;flashvars&amp;quot; value=&amp;quot;file=([^&amp;amp;]+)&amp;amp;&lt;/expression&gt;
    &lt;/RegExp&gt;
  &lt;/GetMovieTrailer&gt;

  &lt;GetMovieThumbs dest=&quot;5&quot;&gt;
    &lt;RegExp input=&quot;$$3&quot; output=&quot;&amp;lt;details&amp;gt;&amp;lt;thumbs&amp;gt;\1&amp;lt;/thumbs&amp;gt;&amp;lt;/details&amp;gt;&quot; dest=&quot;5&quot;&gt;
      &lt;!-- Match only one big image --&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;thumb&amp;gt;\1&amp;lt;/thumb&amp;gt;&quot; dest=&quot;3&quot;&gt;
          	&lt;expression noclean=&quot;1&quot; clear=&quot;yes&quot;&gt;&amp;lt;img width=&amp;quot;420&amp;quot; style=&amp;quot;margin-top:25px; margin-bottom:25px;&amp;quot; title=&amp;quot;[^&amp;quot;]+&amp;quot; alt=&amp;quot;[^&amp;quot;]+&amp;quot; src=&amp;quot;([^&amp;quot;]+)&amp;quot; /&amp;gt;&lt;/expression&gt;
   		&lt;/RegExp&gt;
      &lt;!-- Match All img --&gt;
    	&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;thumb&amp;gt;\1&amp;lt;/thumb&amp;gt;&quot; dest=&quot;3+&quot;&gt;
      	&lt;expression repeat=&quot;yes&quot; noclean=&quot;1&quot;&gt;&amp;lt;img width=&amp;quot;146&amp;quot; style=&amp;quot;margin-top:10px; margin-bottom:10px;&amp;quot; title=&amp;quot;[^&amp;quot;]+&amp;quot; alt=&amp;quot;[^&amp;quot;]+&amp;quot; src=&amp;quot;([^&amp;quot;]+)&amp;quot;&lt;/expression&gt;
   		&lt;/RegExp&gt;
      &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
    &lt;/RegExp&gt;
  &lt;/GetMovieThumbs&gt;

  &lt;GetMovieCast dest=&quot;5&quot;&gt;
    &lt;RegExp input=&quot;$$2&quot; output=&quot;&amp;lt;details&amp;gt;\1&amp;lt;/details&amp;gt;&quot; dest=&quot;5&quot;&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;actor&amp;gt;&amp;lt;name&amp;gt;\1&amp;lt;/name&amp;gt;&amp;lt;role&amp;gt;\2&amp;lt;/role&amp;gt;&amp;lt;/actor&amp;gt;&quot; dest=&quot;2&quot;&gt;
        &lt;expression repeat=&quot;yes&quot; noclean=&quot;1&quot;&gt;&amp;lt;a href=&amp;quot;http://www.mymovies.it/biografia/\?a=[0-9]+&amp;quot; title=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;\1&amp;lt;/a&amp;gt;[^&amp;gt;]+&amp;gt;([^&amp;lt;]+)&amp;lt;/div&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
    &lt;/RegExp&gt;
  &lt;/GetMovieCast&gt;

	&lt;GetImdbId dest=&quot;5&quot;&gt;
    &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;id&amp;gt;\1&amp;lt;/id&amp;gt;&quot; dest=&quot;4&quot;&gt;
      &lt;expression clear=&quot;yes&quot;&gt;/title/([t0-9]*)/faq&lt;/expression&gt;
    &lt;/RegExp&gt;
    &lt;RegExp input=&quot;$$1&quot; output=&quot;\1&quot; dest=&quot;3&quot;&gt;
      &lt;expression noclean=&quot;1&quot;&gt;(&amp;gt;&amp;lt;a href=&amp;quot;/title.*)&lt;/expression&gt;
    &lt;/RegExp&gt;
    &lt;RegExp input=&quot;$$3&quot; output=&quot;&amp;lt;id&amp;gt;\1&amp;lt;/id&amp;gt;&quot; dest=&quot;4+&quot;&gt;
      &lt;expression noclean=&quot;1,2&quot;&gt;&amp;gt;&amp;lt;a href=&amp;quot;/title/([t0-9]*)/[^&amp;gt;]*&amp;gt;[^&amp;lt;]*&amp;lt;/a&amp;gt; *\([0-9]*&lt;/expression&gt;
    &lt;/RegExp&gt;
    &lt;RegExp input=&quot;$$4&quot; output=&quot;\1&quot; dest=&quot;5&quot;&gt;
      &lt;expression noclean=&quot;1&quot; clear=&quot;yes&quot;&gt;([t0-9]+)&lt;/expression&gt;
    &lt;/RegExp&gt;
  &lt;/GetImdbId&gt;

  &lt;GetMovieFullCast dest=&quot;5&quot;&gt;
    &lt;RegExp input=&quot;$$2&quot; output=&quot;&amp;lt;details&amp;gt;\1&amp;lt;/details&amp;gt;&quot; dest=&quot;5&quot;&gt;

      &lt;!-- Director(s) --&gt;
      &lt;RegExp conditional=&quot;viewDirector&quot; input=&quot;$$3&quot; output=&quot;\1&quot; dest=&quot;2&quot;&gt;
        &lt;!-- Fake Actor for Section delimiter: Regia --&gt;
        &lt;RegExp conditional=&quot;fakeactor&quot; output=&quot;&amp;lt;actor&amp;gt;&amp;lt;name&amp;gt;.Regia&amp;lt;/name&amp;gt;&amp;lt;/actor&amp;gt;&quot; dest=&quot;3&quot;&gt;
          &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
        &lt;/RegExp&gt;
        &lt;!-- Get Director(s) --&gt;
        &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;actor&amp;gt;&amp;lt;thumb&amp;gt;\1&amp;lt;/thumb&amp;gt;&amp;lt;name&amp;gt;\2&amp;lt;/name&amp;gt;&amp;lt;role&amp;gt;\3&amp;lt;/role&amp;gt;&amp;lt;/actor&amp;gt;&quot; dest=&quot;3+&quot;&gt;
          &lt;expression repeat=&quot;yes&quot; noclean=&quot;1&quot;&gt;src=&amp;quot;([^&amp;quot;]+)&amp;quot; alt=&amp;quot;([^&amp;quot;]+)&amp;quot; /&amp;gt;[^d]+div[^&amp;quot;]+&amp;quot;[^&amp;lt;]+&amp;lt;[^&amp;quot;]+&amp;quot;http://www.mymovies.it/biografia/\?r=[0-9]+&amp;quot; title=&amp;quot;\2&amp;quot;&amp;gt;\2&amp;lt;/a&amp;gt;[^&amp;gt;]+&amp;gt;([^&amp;lt;]+)&amp;lt;/div&amp;gt;&lt;/expression&gt;
        &lt;/RegExp&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;  

      &lt;!-- Actors --&gt;
      &lt;RegExp conditional=&quot;viewActors&quot; input=&quot;$$4&quot; output=&quot;\1&quot; dest=&quot;2+&quot;&gt;
        &lt;!-- Fake Actor for Section delimiter: Cast artistico --&gt;
        &lt;RegExp conditional=&quot;fakeactor&quot; output=&quot;&amp;lt;actor&amp;gt;&amp;lt;name&amp;gt;.Cast artistico&amp;lt;/name&amp;gt;&amp;lt;/actor&amp;gt;&quot; dest=&quot;4&quot;&gt;
            &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
        &lt;/RegExp&gt;
        &lt;!-- Get Actors --&gt;
        &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;actor&amp;gt;&amp;lt;thumb&amp;gt;\1&amp;lt;/thumb&amp;gt;&amp;lt;name&amp;gt;\2&amp;lt;/name&amp;gt;&amp;lt;role&amp;gt;\3&amp;lt;/role&amp;gt;&amp;lt;/actor&amp;gt;&quot; dest=&quot;4+&quot;&gt;
          &lt;expression repeat=&quot;yes&quot; noclean=&quot;1&quot;&gt;src=&amp;quot;([^&amp;quot;]+)&amp;quot; alt=&amp;quot;([^&amp;quot;]+)&amp;quot; /&amp;gt;[^d]+div[^&amp;quot;]+&amp;quot;[^&amp;lt;]+&amp;lt;[^&amp;quot;]+&amp;quot;http://www.mymovies.it/biografia/\?a=[0-9]+&amp;quot; title=&amp;quot;\2&amp;quot;&amp;gt;\2&amp;lt;/a&amp;gt;[^&amp;gt;]+&amp;gt;([^&amp;lt;]+)&amp;lt;/div&amp;gt;&lt;/expression&gt;
        &lt;/RegExp&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;

      &lt;!-- Filmmakers --&gt;
      &lt;RegExp conditional=&quot;viewFilmmakers&quot; input=&quot;$$5&quot; output=&quot;\1&quot; dest=&quot;2+&quot;&gt;
        &lt;!-- Fake Actor for Section delimiter: Filmmakers --&gt;
        &lt;RegExp conditional=&quot;fakeactor&quot; output=&quot;&amp;lt;actor&amp;gt;&amp;lt;name&amp;gt;.Filmmakers&amp;lt;/name&amp;gt;&amp;lt;/actor&amp;gt;&quot; dest=&quot;5&quot;&gt;
            &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
        &lt;/RegExp&gt;
        &lt;!-- Get Filmmakers --&gt;
        &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;actor&amp;gt;&amp;lt;thumb&amp;gt;\1&amp;lt;/thumb&amp;gt;&amp;lt;name&amp;gt;\2&amp;lt;/name&amp;gt;&amp;lt;role&amp;gt;\3&amp;lt;/role&amp;gt;&amp;lt;/actor&amp;gt;&quot; dest=&quot;5+&quot;&gt;
          &lt;expression repeat=&quot;yes&quot; noclean=&quot;1&quot;&gt;src=&amp;quot;([^&amp;quot;]+)&amp;quot; alt=&amp;quot;([^&amp;quot;]+)&amp;quot; /&amp;gt;[^d]+div[^&amp;quot;]+&amp;quot;[^&amp;lt;]+&amp;lt;[^&amp;quot;]+&amp;quot;http://www.mymovies.it/biografia/\?s=[0-9]+&amp;quot; title=&amp;quot;\2&amp;quot;&amp;gt;\2&amp;lt;/a&amp;gt;[^&amp;gt;]+&amp;gt;([^&amp;lt;]+)&amp;lt;/div&amp;gt;&lt;/expression&gt;
        &lt;/RegExp&gt;
        &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
  &lt;/RegExp&gt;
  &lt;/GetMovieFullCast&gt;

	&lt;!-- All stuff append to plot --&gt;

	&lt;GetMoviePlot clearbuffers=&quot;no&quot; dest=&quot;5&quot;&gt;
		&lt;RegExp input=&quot;$$1&quot; output=&quot;\1&quot; dest=&quot;10&quot;&gt;
  		&lt;expression trim=&quot;1&quot; cs=&quot;true&quot;&gt;&amp;lt;td rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;(?:.+?)&amp;lt;/a&amp;gt;[^A-Z]+(.+?).[ $]+&amp;lt;/p&amp;gt;&lt;/expression&gt;
  	&lt;/RegExp&gt;
  &lt;/GetMoviePlot&gt;

	&lt;GetMovieCritic clearbuffers=&quot;no&quot; dest=&quot;5&quot;&gt;
	  &lt;RegExp input=&quot;$$4&quot; output=&quot;\n\n:: CRITICA ::\1&quot; dest=&quot;11&quot;&gt;
		  &lt;RegExp input=&quot;$$1&quot; output=&quot;\n\n\1 - \2 (\3)\n\n\4&quot; dest=&quot;4&quot;&gt;
  		  &lt;expression repeat=&quot;yes&quot; cs=&quot;true&quot; noclean=&quot;1,2,3&quot; trim=&quot;4&quot;&gt;&amp;lt;h2&amp;gt;&amp;lt;a href=&amp;quot;[^&amp;quot;]+&amp;quot; title=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;\1&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;[^&amp;gt;]+&amp;gt;[^a-z]+([^&amp;lt;]+)&amp;lt;em&amp;gt;([^&amp;lt;]+)&amp;lt;/em&amp;gt;[^A-Z]+([^&amp;lt;]+)&lt;/expression&gt;
		  &lt;/RegExp&gt;
      	&lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
	  &lt;/RegExp&gt;
  &lt;/GetMovieCritic&gt;

  &lt;GetMoviePublic clearbuffers=&quot;no&quot; dest=&quot;5&quot;&gt;
	  &lt;RegExp input=&quot;$$4&quot; output=&quot;\n\n:: PUBBLICO ::\1&quot; dest=&quot;12&quot;&gt;
		  &lt;RegExp input=&quot;$$1&quot; output=&quot;\n\n\1 stelle - \2\n\n\3&quot; dest=&quot;4&quot;&gt;
    		&lt;expression repeat=&quot;yes&quot; noclean=&quot;1,2&quot; trim=&quot;3&quot;&gt;&amp;lt;img style=&amp;quot;margin-right:5px;&amp;quot; src=&amp;quot;[^&amp;quot;]+&amp;quot;[^0-9]+([0-9])[^=]+=&amp;quot;[^&amp;gt;]+&amp;gt;([^&amp;lt;]+)(?:.+?)&amp;lt;div id=&amp;quot;parziale[0-9]+&amp;quot; class=&amp;quot;linkrosa&amp;quot; style=&amp;quot;color:\#333333; margin-right:10px; margin-bottom:10px;&amp;quot;&amp;gt;[^&amp;gt;]+&amp;gt;[^A-Za-z]([^&amp;lt;]+)&amp;lt;&lt;/expression&gt;
		  &lt;/RegExp&gt;
      	&lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
	  &lt;/RegExp&gt;
  &lt;/GetMoviePublic&gt;

  &lt;GetMovieForum clearbuffers=&quot;no&quot; dest=&quot;5&quot;&gt;
	  &lt;RegExp input=&quot;$$4&quot; output=&quot;\n\n:: FORUM ::\1&quot; dest=&quot;13&quot;&gt;
		  &lt;RegExp input=&quot;$$1&quot; output=&quot;\n\n\1 stelle - \2\n\n\3&quot; dest=&quot;4&quot;&gt;
    		&lt;expression repeat=&quot;yes&quot; noclean=&quot;1,2&quot; trim=&quot;3&quot;&gt;&amp;lt;img style=&amp;quot;margin-right:5px;&amp;quot; src=&amp;quot;[^&amp;quot;]+&amp;quot;[^0-9]+([0-9])[^=]+=&amp;quot;[^&amp;gt;]+&amp;gt;([^&amp;lt;]+)(?:.+?)&amp;lt;div id=&amp;quot;parziale[0-9]+&amp;quot; class=&amp;quot;linkrosa&amp;quot; style=&amp;quot;color:\#333333; margin-right:10px; margin-bottom:10px;&amp;quot;&amp;gt;[^&amp;gt;]+&amp;gt;[^A-Za-z]([^&amp;lt;]+)&amp;lt;&lt;/expression&gt;
		  &lt;/RegExp&gt;
      	&lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
	  &lt;/RegExp&gt;
  &lt;/GetMovieForum&gt;

  &lt;GetMovieFrasiCelebri clearbuffers=&quot;no&quot; dest=&quot;6&quot;&gt;
    &lt;RegExp input=&quot;$$4&quot; output=&quot;\n\n:: FRASI CELEBRI ::\1&quot; dest=&quot;14&quot;&gt;
	    &lt;RegExp input=&quot;$$1&quot; output=&quot;\n\n\1 (\2)\n\n\3&quot; dest=&quot;4&quot;&gt;
      	&lt;expression noclean=&quot;1&quot; trim=&quot;3&quot;&gt;&amp;lt;td class=&amp;quot;linkblu&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;font-weight:bold; font-size:12px&amp;quot;&amp;gt;[^A-Z]+([^\(]+) \(([^\(]+)\)(?:.+?)&amp;lt;strong class=&amp;quot;rec_lancio&amp;quot; &amp;gt;(.+?)&amp;lt;/strong&amp;gt;&lt;/expression&gt;
	    &lt;/RegExp&gt;
	    &lt;RegExp input=&quot;$$1&quot; output=&quot;\n\n\1 (\2)\n\n\3&quot; dest=&quot;4+&quot;&gt;
      	&lt;expression repeat=&quot;yes&quot; noclean=&quot;1&quot; trim=&quot;1,3&quot;&gt;&amp;lt;td valign=&amp;quot;top&amp;quot; style=&amp;quot;font-weight:bold; font-size:12px&amp;quot;&amp;gt;[^A-Z]+([^\(]+)\(([^\)]+)\)(?:.+?)&amp;lt;td valign=&amp;quot;top&amp;quot; style=&amp;quot;font-size:12px&amp;quot;&amp;gt;[^A-Za-z]+(.+?)&amp;lt;/td&amp;gt;&lt;/expression&gt;
	    &lt;/RegExp&gt;
      &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
	  &lt;/RegExp&gt;
  &lt;/GetMovieFrasiCelebri&gt;

  &lt;AppendToPlot clearbuffers=&quot;no&quot; dest=&quot;5&quot;&gt;
    &lt;RegExp input=&quot;$$10$$11$$12$$13$$14&quot; output=&quot;&amp;lt;details&amp;gt;&amp;lt;plot&amp;gt;\1&amp;lt;/plot&amp;gt;&amp;lt;/details&amp;gt;&quot; dest=&quot;5&quot;&gt;
    	&lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
    &lt;/RegExp&gt;
  &lt;/AppendToPlot&gt;

  &lt;!-- NB: when &lt;include&gt; on top of this file is usable, this can be deleted --&gt;
  &lt;GetTMDBFanartByIMDBId dest=&quot;4&quot;&gt;
    &lt;RegExp input=&quot;$$5&quot; output=&quot;&amp;lt;details&amp;gt;\1&amp;lt;/details&amp;gt;&quot; dest=&quot;4&quot;&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetTMDBFanart&amp;quot; cache=&amp;quot;tmdb-\1.xml&amp;quot;&amp;gt;http://api.themoviedb.org/2.0/Movie.getInfo?id=\1&amp;amp;amp;api_key=57983e31fb435df4df77afb854740ea9&amp;lt;/url&amp;gt;&quot; dest=&quot;5&quot;&gt;
        &lt;expression&gt;&amp;lt;id&amp;gt;([0-9]*)&amp;lt;/id&amp;gt;&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetTMDBFanartByIMDBId&amp;quot; cache=&amp;quot;tmdb-trans-\1.xml&amp;quot; &amp;gt;http://api.themoviedb.org/2.0/Movie.imdbLookup?imdb_id=\1&amp;amp;amp;api_key=57983e31fb435df4df77afb854740ea9&amp;lt;/url&amp;gt;&quot; dest=&quot;5&quot;&gt;
        &lt;expression&gt;/title/([t0-9]*)&lt;/expression&gt;
      &lt;/RegExp&gt;
      &lt;expression noclean=&quot;1&quot;/&gt;
    &lt;/RegExp&gt;
  &lt;/GetTMDBFanartByIMDBId&gt;

  &lt;GetTMDBFanart dest=&quot;5&quot;&gt;
    &lt;RegExp input=&quot;$$2&quot; output=&quot;&amp;lt;details&amp;gt;&amp;lt;fanart url=&amp;quot;http://themoviedb.org/image/backdrops&amp;quot;&amp;gt;\1&amp;lt;/fanart&amp;gt;&amp;lt;/details&amp;gt;&quot; dest=&quot;5&quot;&gt;
  		&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;thumb preview=&amp;quot;/\1/\2_poster.\3&amp;quot;&amp;gt;/\1/\2.\3&amp;lt;/thumb&amp;gt;&quot; dest=&quot;2&quot;&gt;
				&lt;expression repeat=&quot;yes&quot;&gt;&amp;lt;backdrop size=&amp;quot;original&amp;quot;&amp;gt;.*?/([0-9]+)/([^\.]+)\.([^&amp;lt;]*)&amp;lt;/backdrop&amp;gt;&lt;/expression&gt;
			&lt;/RegExp&gt;
      &lt;expression noclean=&quot;1&quot;&gt;(.+)&lt;/expression&gt;
    &lt;/RegExp&gt;
  &lt;/GetTMDBFanart&gt;
  &lt;!-- NB: when &lt;include&gt; on top of this file is usable, this can be deleted END --&gt;

&lt;!-- code by Muttley (http://muttley.eb2a.com) --&gt;
&lt;/scraper&gt;
</pre>
<p>Evitorò di entrare nello specifico, tralsciando la speigazione del funzionamento dello scraper e di tutte le sue parti, sempicemente perchè sarebbe un discorso lungo e che a pochi interesserebbe. Comunque trovate un <a href="http://www.xbmc.org/wiki/?title=HOW-TO_Write_Media_Info_Scrapers">how to</a> ben fatto sulla scrittura di uno scraper sul wiki ufficiale.</p>
<p><br class="spacer_" /></p>
<p><strong>Installazione</strong></p>
<p>Decomprimete l&#8217;archivio e copiate entrambi i file nella cartella &#8216;xbmc/system/scrapers/video&#8217;. Adesso dovete abilitare lo scraper per la vostra cartella contenente i films, per far questo aprite il menù contestuale sulla cartella selezionata, scegliete <em>Set Content</em> e poi myMovies.it.</p>
<p><br class="spacer_" /></p>
<p><strong>Configurazione</strong></p>
<p>Nella sezione <em>Settings</em> di Set Content, dopo aver selezionato il nostro scraper, troverete alcune impostazioni per modificare le informazioni da visualizzare.<div id="attachment_307" class="wp-caption aligncenter" style="width: 310px"><a title="Settaggi dello scraper" rel="lightbox" href="/wp-content/uploads/2009/10/scraper_settings.jpg"><img src="http://muttley.eb2a.com/wp-content/uploads/2009/10/scraper_settings-300x194.jpg" alt="Scraper settings" title="Scraper Settings" width="300" height="194" class="size-medium wp-image-307" /></a><p class="wp-caption-text">Scraper settings</p></div>In dettaglio:</p>
<table border="0">
<tbody>
<tr>
<td><strong>Cast completo</strong></td>
<td>Scarica anche le immagini del Cast.</p>
<p>E&#8217; necessario abilitare l&#8217;opzione anche nei settaggi di XBMC.</td>
</tr>
<tr>
<td><strong>Cast completo >> Regista/i</strong></td>
<td>Aggiunge il regista alla lista del Cast (opzione <em>Cast completo</em> necessaria).</td>
</tr>
<tr>
<td><strong>Cast completo >> Attori</strong></td>
<td>Aggiunge gli attori alla lista del Cast (opzione <em>Cast completo</em> necessaria).</td>
</tr>
<tr>
<td><strong>Cast completo >> Filmmakers</strong></td>
<td>Aggiunge i Filmmakers (produttore, costumi, fotografia, etc) alla lista del Cast (opzione <em>Cast completo</em> necessaria).</td>
</tr>
<tr>
<td><strong>Cast completo >> Separatori del Cast</strong></td>
<td>Aggiunge un finto membro del Cast per separare le tre sezioni sopra elencate (opzione <em>Cast completo</em> necessaria).</td>
</tr>
<tr>
<td><strong>Aggiungi al Plot &gt;&gt; Critica</strong></td>
<td>Aggiunge in fondo al campo Plot le recensioni della critica.</td>
</tr>
<tr>
<td><strong>Aggiungi al Plot &gt;&gt; Commenti del Pubblico</strong></td>
<td>Aggiunge in fondo al campo Plot le recensioni della pubblico.</td>
</tr>
<tr>
<td><strong>Aggiungi al Plot &gt;&gt; Commenti sul Forum</strong></td>
<td>Aggiunge in fondo al campo Plot le discussioni sul forum riguardanti il film.</td>
</tr>
<tr>
<td><strong>Aggiungi al Plot &gt;&gt; Frasi Celebri del film</strong></td>
<td>Aggiunge in fondo al campo Plot le frasi celebri presenti del film.</td>
</tr>
<tr>
<td><strong>Voto in 10esimi</strong></td>
<td>Converte il rating da 5 su 5 (myMovies) a 10 su 10 (imdb).<br />
Utile per le skin basate su imdb che visualizzano stelle al posto del numero.</td>
</tr>
<tr>
<td><strong>Voto Dizionari, Critica e Pubblico</strong></td>
<td>Visualizza il rating dei Dizionari, Critica e Pubblico.</td>
</tr>
<tr>
<td><strong>Voto Dizionari, Critica e Pubblico &gt;&gt; Visualizza in</strong></td>
<td>Indica il tag non utilizzato dallo scraper per visualizzare i voti(opzione <em>Voto Dizionari, Critica e Pubblico</em>)</td>
<tr>
<td><strong>Tutti i Posters</strong></td>
<td>Scarica i poster alternativi.</td>
</tr>
<tr>
<td><strong>Trailer</strong></td>
<td>Scarica il trailer</td>
</tr>
</tr>
<tr>
<td><strong>TMDB Backdrops (Lento)</strong></td>
<td>Scarica le Backdrops (fanart) da TMDB.<br />
L&#8217;opzione rallenta lo scraper perchè fa prima una ricerca su imdb per ottenere l&#8217;id che poi passerà a TMDB. Non sempre funzionerà.</td>
</tr>
</tbody>
</table>
<p><strong>Uso</strong></p>
<div id="attachment_166" class="wp-caption alignright" style="width: 310px"><a title="Xbmc scheda film" rel="lightbox" href="http://muttley.eb2a.com/wp-content/uploads/2009/10/scheda_film.jpg"><img class="size-medium wp-image-166" title="XBMC scheda film" src="http://muttley.eb2a.com/wp-content/uploads/2009/10/scheda_film-300x190.jpg" alt="Scheda film" width="300" height="190" /></a><p class="wp-caption-text">Scheda film</p></div>
<p>Basta andare sul film, visualizzare il menù contestuale e selezionare <em>Movie Information</em>. A questo punto il nome del file verà ripulito da qulache tag superfluo (es. [DIVX], x264, DVDRip, etc&#8230;) ed inviato allo scraper. Se non ci saranno risultati verrà chiesto l&#8217;intervento dell&#8217;utente, che dovrà scrivere manualmente il titolo del film. Alla fine verrà presentata un lista di possibili risultati attinenti, e sarà sempre l&#8217;utente a selezionare quello corretto.</p>
<p><br class="spacer_" /></p>
<p>Finalmente visualizzeremo le informazioni estrapolate da mymovies.it per il film selezionato.</p>
<p><br class="spacer_" /></p>
<p><strong> Considerazioni tecniche</strong> (per sviluppatori)</p>
<p>Qualche critica su questo strumento messo a disposizione dagli sviluppatori di XBMC. Il sistema è troppo rigido e imbrigliato nello schema impostato, non consentendo un approccio più flessibile, necessario per affrontare alcune situazioni che si vengo inevitabilmente a creare per le differenze tra un sito e l&#8217;altro (vedi <em>Rating x of 10</em>).</p>
<p>La scelta di una linguaggio dichiarativo a differenza di uno imperativo, consente una maggiore sicurezza, chiarezza e standardizzazione dei risulati, ma dall&#8217;altro impedisce la scrittura di prodotti più complessi e completi e anche notevolmente più semplici nella stesura.</p>
<p><br class="spacer_" /></p>
<p><strong> Contributi</strong> (per sviluppatori)<br />
<div id="Ads2" class="wp-caption alignright" style="width: 310px"><p class="wp-caption-text">Ads</p></div>[/caption]Lo scraper non è assolutamente lo stato dell&#8217;arte della programmazione, si poteva far di meglio nella scelta dell&#8217;ER, soprattuto ad un livello prestazionale. Detto ciò non mi posso neanche lamentare per i risultati più che soddisfacenti ottenuti. Questa breve premessa per dire che ogni buon e utile contributo per questo scraper è ben accetto, e che si può fare ancora molto.</p>
<p><br class="spacer_" /></p>
<p>Grazie alla filosofia open source e all&#8217;ottima infrastruttura messa in piedi dagli sviluppatori per gli sviluppatori (più o meno occasionali) di XBMC, tutti possiamo contribuire anche con piccole modifiche attraverso un sistema di <a href="http://xbmc.org/trac/report">ticket e patch</a>, che vi invito ad usare per correzioni, migliorie e soprattuto adeguamenti delle ER a possibili restyling grafici di mymovies.it (piuttosto frequenti).</p>
<p><br class="spacer_" /></p>
<p><strong>Problema <em>Append to Plot</em></strong> (per sviluppatori)</p>
<p>Come potete vedere dai commenti dello scraper (riga 216), c&#8217;è un bel <em>appiccico</em> che non riesco a risolvere. Riguarda l&#8217;uso del campo <em>Plot</em> per visualizzare anche altre informazioni: commenti del pubblico, critica, forum e frasi celebri del film. Il problema è legato allo scope (visibilità) dei buffer tra le <em>Custum Function</em> (da adesso CF) e la <em>GetDetails</em>. Cerchiamo di spiegare brevemente (e speriamo semplicemente) il problema.</p>
<pre class="brush: xml; first-line: 216; highlight: [219,224,227,230,233,239];">
&lt;!-- Plot: It is used for report many information... --&gt;
&lt;!-- Custum function are used only for see all buffer --&gt;
&lt;!-- I buffer della GetDetails non sono visibili alle funzioni custom e non risco a trovare un approccio differente per appendere informazioni al plot --&gt;
&lt;RegExp input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMoviePlot&amp;quot;&amp;gt;$$2&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
    &lt;expression&gt;&lt;/expression&gt;
&lt;/RegExp&gt;

&lt;!-- Plot: all that you want append... --&gt;
&lt;RegExp conditional=&quot;critic&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMovieCritic&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
	&lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;[^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Critica&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
&lt;/RegExp&gt;
&lt;RegExp conditional=&quot;public&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMoviePublic&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
  &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;[^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Pubblico&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
&lt;/RegExp&gt;
&lt;RegExp conditional=&quot;forum&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMovieForum&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
  &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;[^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Forum&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
&lt;/RegExp&gt;
&lt;RegExp conditional=&quot;frasi_celebri&quot; input=&quot;$$1&quot; output=&quot;&amp;lt;url function=&amp;quot;GetMovieFrasiCelebri&amp;quot;&amp;gt;\1&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
  &lt;expression noclean=&quot;1&quot;&gt;&amp;lt;td class=&amp;quot;rec_link_disattivo&amp;quot;&amp;gt;&amp;lt;a title=&amp;quot;[^&amp;quot;]+&amp;quot; href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;Frasi&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/expression&gt;
&lt;/RegExp&gt;

&lt;!-- Plot: ...at the end --&gt;
&lt;!-- Non serve a un c***o l'url (già cached), ma è l'unico modo per vedere i buffer 10,11,12,13,14 istanziati nelle custom function --&gt;
&lt;RegExp output=&quot;&amp;lt;url cache=&amp;quot;$$2-fullcredits.html&amp;quot; function=&amp;quot;AppendToPlot&amp;quot;&amp;gt;$$2&amp;lt;/url&amp;gt;&quot; dest=&quot;5+&quot;&gt;
  &lt;expression noclean=&quot;1&quot;&gt;&lt;/expression&gt;
&lt;/RegExp&gt;
</pre>
<p>Da qui si può vedere come vengono richiamate le 5 CF, evidenziate nel codice (<em>GetMoviePlot, GetMovieCritic, GetMoviePublic, GetMovieForum e GetMovieFrasiCelebri</em>), che vanno a riempire rispettivamente i relativi 5 buffer (<em>$$10, $$11, $$12, $$13, $$14</em>).</p>
<p>GetMoviePlot viene sempre richiamata, mentre le altre sono condizionalmente vincolate alle impostazioni nei settaggi. Alla fine viene richiamata la <em>AppendToPlot</em> che semplicemente prende tutti i buffer li conatenta e inserisce all&#8217;interno del tag <em>&lt;plot&gt;</em>.</p>
<p><br class="spacer_" /></p>
<p>Con questo approccio la <em>GetMoviePlot</em> è costretta a RIscaricare la pagina del film già scaricata per la <em>GetDetails</em>, peggiorando le prestazione e allungando i tempi.</p>
<p><br class="spacer_" /><strong>Aggiornamento 13.11.2009:</strong> se utilizzate versioni svn successive alla stabile 9.04 dovete scaricare lo scraper da <a href="/2009/xbmc-scraper-per-mymovies-it-per-9-11/">qui</a>.<br />
<strong>Aggiornamento 10.12.2009:</strong> nuova versione sempre per 9.11, scaricabile da <a href="/2009/xbmc-scraper-per-mymovies-it-update-10-12-09/">qui</a>.<br />
<br class="spacer_" /></p>
<table style="margin: 0px auto 20px; width: 70%;">  <tbody><tr><td style="padding: 0px; width: 100%; vertical-align: text-top;">  <table style="border: 0px none ; width: 100%; margin-bottom: 0px;">  <tbody><tr style="border-bottom-width: 0px; border-right-width: 0px;"> <td style="border-bottom-width: 0px; border-right-width: 0px;"><strong>XBMC Scraper (myMovies.it) <i>v1.2b</i></strong></td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Data: 30.10.2009</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Size: 9.36 KB</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Downloads: 134 hits</td></tr></tbody></table> </td><td style="border-left: 0px none; vertical-align: middle;"><a href="http://muttley.eb2a.com/wp-content/plugins/download-monitor/download.php?id=2"><img src="/wp-content/images/btDownload.png" alt="Download" title="Download"/></a></td></tr></tbody></table>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2009/xbmc-scraper-per-mymovies-it/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Aggiungere ad aMule ed2k links da un file</title>
		<link>http://muttley.eb2a.com/2009/aggiungere-ad-amule-ed2k-links-da-un-file/</link>
		<comments>http://muttley.eb2a.com/2009/aggiungere-ad-amule-ed2k-links-da-un-file/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 17:11:23 +0000</pubDate>
		<dc:creator>Muttley</dc:creator>
				<category><![CDATA[script]]></category>
		<category><![CDATA[amule]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://muttley.eb2a.com/?p=54</guid>
		<description><![CDATA[Semplice script che prendere un file di links ed2k (separati da &#8220;andata a capo&#8221;) e li inserisce uno a uno in aMule (corrispettivo di eMule su linux). Può essere usato sia con aMule installato localmente che da un client remoto. Per l&#8217;escuzione dello script è necessario il comando amulecmd, presente nel pacchetto amule-utils (in ubuntu).
Script

#!/bin/bash

WORKING_DIR=$(dirname [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/2009/aggiungere-ad-amule-ed2k-links-da-un-file/"><img src="http://muttley.eb2a.com/wp-content/uploads/2009/10/aMule.png" alt="aMule" title="aMule" width="120" height="120" class="aligncenter size-full wp-image-98" /></a>Semplice script che prendere un file di links ed2k (separati da &#8220;andata a capo&#8221;) e li inserisce uno a uno in <a href="http://www.amule.org/">aMule</a> (corrispettivo di eMule su linux). Può essere usato sia con aMule installato localmente che da un client remoto. Per l&#8217;escuzione dello script è necessario il comando amulecmd, presente nel pacchetto <em>amule-utils</em> (in ubuntu).<span id="more-54"></span><br class="spacer_" /><br />
<strong>Script</strong></p>
<pre class="brush: bash;">
#!/bin/bash

WORKING_DIR=$(dirname $0)

# -----------------------------------------------------
# UTIL FUNCTIONS

print_verbose()
{
  if [[ -n $VERBOSE ]]
  then
          printf &quot;$1\n&quot;
  fi
}

# -----------------------------------------------------
# PARSING CMD LINE OPTIONS

usage()
{
  printf &quot;usage: $0 [-d|v] [-p params] ed2k_file\n&quot;
  printf &quot;\n&quot;
  printf &quot;Add ed2k link stored in a file to aMule.\n&quot;
  printf &quot;\n&quot;
  printf &quot;OPTIONS:\n&quot;
  printf &quot;       -h               Show this message\n&quot;
  printf &quot;       -d               Delete file at the end\n&quot;
  printf &quot;       -v               Verbose\n&quot;
  printf &quot;       -p params        Amule additional params\n&quot;
  printf &quot;\n&quot;
}

DELETE_FILE=
VERBOSE=
AMULE_PARAMS=
ED2K_FILE=
while getopts “hdvp:” OPTION
do
  case $OPTION in
    h)
       usage
       exit 1
       ;;
    d)
       DELETE_FILE=1
       ;;
    v)
       VERBOSE=1
       ;;
    p)
       AMULE_PARAMS=$OPTARG
       ;;
    ?)
       usage
       exit 1
       ;;
  esac
done

eval ED2K_FILE=\$$OPTIND

# Some check
if [[ -z $ED2K_FILE ]]
then
  printf &quot;You must select a file\n&quot;
  usage
  exit 1
fi

if [[ ! -e $ED2K_FILE ]]
then
  printf &quot;$ED2K_FILE: File don't exist!\n&quot;
  exit 1
fi

i=0
# Read file ED2K_FILE line by line
while read line
do
  executed_command=&quot;amulecmd -c \&quot;add $line\&quot;&quot;

  # Add some optional parameters
  test &quot;$AMULE_PARAMS&quot; &amp;&amp; executed_command=&quot;$executed_command $AMULE_PARAMS&quot;
  test ! $VERBOSE &amp;&amp; executed_command=&quot;$executed_command &amp;&gt;/dev/null&quot;

  if eval $executed_command
  then
    print_verbose &quot;Added: $line\n&quot;
    (( i += 1 ))
  else
    printf &quot;Error on exuction: '$executed_command'!\n&quot;
    exit 1
  fi
done &lt; $ED2K_FILE
print_verbose &quot;Added $i ed2k link from file $ED2K_FILE\n&quot;

# Remove $ED2K_FILE
if [[ $DELETE_FILE ]]
then
  if rm $ED2K_FILE
  then
    print_verbose &quot;$ED2K_FILE: File eliminato correttamente\n&quot;
  else
    printf &quot;$ED2K_FILE: Impossibile cancellare il file!\n&quot;
    exit 1
  fi
fi

exit 0
</pre>
<p>Vi consiglio di copiare lo script in /usr/local/bin o cmq in una delle directory indicate nella variabile $PATH e modificare i permessi (es. chmod 775 addE2dk.sh) come meglio credete. In questo modo lo avrete sempre a disposizione come un qualsiasi comando linux.<br />
<strong>Uso</strong><br />
<code>addE2dk.sh [-d|v] [-p params] ed2k_file</code><br class="spacer_" /></p>
<table border="0">
<tbody>
<tr>
<td><strong>-d</strong></td>
<td>Cancella il file (ed2k_file) alla fine del processo</td>
</tr>
<tr>
<td><strong>-v</strong></td>
<td>Abilita la modalità verbose, visualizzando anche l&#8217;output di amulecmd</td>
</tr>
<tr>
<td><strong>-p params</strong></td>
<td>Comandi per amulecmd (es. -P passwd, -h host, etc&#8230;)</td>
</tr>
</tbody>
</table>
<p><strong>Esempio</strong><br />
<code>addE2dk.sh -dv -p "-P mypasswd -h muletto" ed2k_file</code><br />
Con il flag <em>-d</em> cancelliamo il file al termine dell&#8217;esecuzione, <em>-v</em> abilitiamo la modalità verbose visualizzando anche l&#8217;output di amulecmd, mentre con <em>-p</em> ci colleghiamo in remoto ad un demone aMule sull&#8217;host <em>muletto</em> con la password <em>mypasswd</em>. <br class="spacer_" /><br />
L&#8217;opzione <em>-p</em> serve per passare parametri ad <em>amulecmd</em>, nell&#8217;esempio <em>-P</em> e <em>-h</em>. E&#8217; necessario racchiudere i comandi all&#8217;interno di doppi apici.<br class="spacer_" /><br />
<table style="margin: 0px auto 20px; width: 70%;">  <tbody><tr><td style="padding: 0px; width: 100%; vertical-align: text-top;">  <table style="border: 0px none ; width: 100%; margin-bottom: 0px;">  <tbody><tr style="border-bottom-width: 0px; border-right-width: 0px;"> <td style="border-bottom-width: 0px; border-right-width: 0px;"><strong>Add ed2k <i>v0.6b</i></strong></td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Data: 23.10.2009</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Size: 936 bytes</td></tr> <tr style="border-bottom-width: 0px; border-right-width: 0px;"><td style="border-bottom-width: 0px; border-right-width: 0px;">Downloads: 40 hits</td></tr></tbody></table> </td><td style="border-left: 0px none; vertical-align: middle;"><a href="http://muttley.eb2a.com/wp-content/plugins/download-monitor/download.php?id=1"><img src="/wp-content/images/btDownload.png" alt="Download" title="Download"/></a></td></tr></tbody></table></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>]]></content:encoded>
			<wfw:commentRss>http://muttley.eb2a.com/2009/aggiungere-ad-amule-ed2k-links-da-un-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
