<?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>Veinti1 &#187; Python</title>
	<atom:link href="http://veinti1.com/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://veinti1.com</link>
	<description>Linux Redes Seguridad Servidores Programación o eso debería</description>
	<lastBuildDate>Mon, 08 Mar 2010 10:04:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>getTorrent.py &#8211; nueva versión.</title>
		<link>http://veinti1.com/gettorrentpy-nueva-version/</link>
		<comments>http://veinti1.com/gettorrentpy-nueva-version/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 18:23:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://veinti1.com/?p=174</guid>
		<description><![CDATA[¿Que es?
He subido una nueva versión debido a cambios en el RSS de mininova que no me parseaba correctamente los seechs y leechs.
Podeís descargarla desde aquí.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://veinti1.com/gettorrentpy-script-para-descarga-de-torrent-del-rss-de-mininova-y-anadirlos-a-mldonkey/" target="_blank">¿Que es?</a></p>
<p>He subido una nueva versión debido a cambios en el RSS de mininova que no me parseaba correctamente los seechs y leechs.</p>
<p>Podeís descargarla desde <a href="http://doc.veinti1.com/getTorrent.tar.gz">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://veinti1.com/gettorrentpy-nueva-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script para hacer Backups</title>
		<link>http://veinti1.com/script-para-hacer-backups/</link>
		<comments>http://veinti1.com/script-para-hacer-backups/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 03:36:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://veinti1.com/?p=164</guid>
		<description><![CDATA[Me he hecho un pequeño script en Python que llamo todos los dias en en el cron para que me haga un backup.
Utiliza scp y lo tengo configurado con certificado de la máquina &#8216;backup&#8217; hacía la que va a copiar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env python
import os, time, smtplib, sys, subprocess, StringIO
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
from email.mime.multipart import [...]]]></description>
			<content:encoded><![CDATA[<p>Me he hecho un pequeño script en Python que llamo todos los dias en en el cron para que me haga un backup.<br />
Utiliza scp y lo tengo configurado con certificado de la máquina &#8216;backup&#8217; hacía la que va a copiar.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>, <span style="color: #dc143c;">time</span>, <span style="color: #dc143c;">smtplib</span>, <span style="color: #dc143c;">sys</span>, <span style="color: #dc143c;">subprocess</span>, <span style="color: #dc143c;">StringIO</span>
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">email</span>.<span style="color: black;">mime</span>.<span style="color: black;">image</span> <span style="color: #ff7700;font-weight:bold;">import</span> MIMEImage
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">email</span>.<span style="color: black;">mime</span>.<span style="color: black;">text</span> <span style="color: #ff7700;font-weight:bold;">import</span> MIMEText
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">email</span>.<span style="color: black;">mime</span>.<span style="color: black;">multipart</span> <span style="color: #ff7700;font-weight:bold;">import</span> MIMEMultipart
&nbsp;
<span style="color: #dc143c;">email</span> = <span style="color: #483d8b;">&quot;email@dominio&quot;</span> <span style="color: #808080; font-style: italic;">#email al que vas a enviar</span>
email_from = <span style="color: #483d8b;">&quot;email@dominio&quot;</span> <span style="color: #808080; font-style: italic;">#Desde el que vas a enviar</span>
path = <span style="color: #483d8b;">&quot;/path/donde/guardar/el/backup&quot;</span>
path_l = path + <span style="color: #483d8b;">&quot;files/&quot;</span>
path_h = <span style="color: #483d8b;">&quot;/path/de/la/maquina/remota/a/copiar&quot;</span>
host = <span style="color: #483d8b;">&quot;ip_o_dominio&quot;</span>
<span style="color: #dc143c;">user</span> = <span style="color: #483d8b;">&quot;cacaue&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> writelog<span style="color: black;">&#40;</span>content<span style="color: black;">&#41;</span>:
log=<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>path+<span style="color: #483d8b;">'log.txt'</span>, <span style="color: #483d8b;">'a'</span><span style="color: black;">&#41;</span>
log.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">time</span>.<span style="color: black;">strftime</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;%d %m %Y %H:%M&quot;</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">&quot;  &quot;</span>+content+<span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>
log.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> sendemail<span style="color: black;">&#40;</span>content, asunto<span style="color: black;">&#41;</span>:
msg = MIMEMultipart<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
msg<span style="color: black;">&#91;</span><span style="color: #483d8b;">'To'</span><span style="color: black;">&#93;</span> = <span style="color: #dc143c;">email</span>
msg<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Cc'</span><span style="color: black;">&#93;</span> = <span style="color: #483d8b;">&quot;&quot;</span>
msg<span style="color: black;">&#91;</span><span style="color: #483d8b;">'From'</span><span style="color: black;">&#93;</span> = email_from
msg<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Subject'</span><span style="color: black;">&#93;</span> = asunto
text = MIMEText<span style="color: black;">&#40;</span>content<span style="color: black;">&#41;</span>
text.<span style="color: black;">add_header</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Content-Disposition&quot;</span>, <span style="color: #483d8b;">&quot;inline&quot;</span><span style="color: black;">&#41;</span>
msg.<span style="color: black;">attach</span><span style="color: black;">&#40;</span>text<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">try</span>:
server=<span style="color: #dc143c;">smtplib</span>.<span style="color: black;">SMTP</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;localhost&quot;</span><span style="color: black;">&#41;</span>
server.<span style="color: black;">sendmail</span><span style="color: black;">&#40;</span>msg<span style="color: black;">&#91;</span><span style="color: #483d8b;">'From'</span><span style="color: black;">&#93;</span>, msg<span style="color: black;">&#91;</span><span style="color: #483d8b;">'To'</span><span style="color: black;">&#93;</span>, msg.<span style="color: black;">as_string</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
server.<span style="color: black;">quit</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
writelog<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Email enviado a &quot;</span>+msg<span style="color: black;">&#91;</span><span style="color: #483d8b;">'To'</span><span style="color: black;">&#93;</span>+<span style="color: #483d8b;">&quot; con el contenido: &quot;</span>+content<span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">except</span>:
writelog<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Error al enviar email&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
path_backup = path_l+<span style="color: #dc143c;">time</span>.<span style="color: black;">strftime</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;%d%m%y&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">try</span>:
<span style="color: #dc143c;">os</span>.<span style="color: black;">mkdir</span><span style="color: black;">&#40;</span>path_backup<span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">except</span>:
writelog<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Ya existe --&amp;gt; &quot;</span>+path_backup<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #dc143c;">cmd</span> = <span style="color: #483d8b;">&quot;scp -r &quot;</span>+<span style="color: #dc143c;">user</span>+<span style="color: #483d8b;">&quot;@&quot;</span>+host+<span style="color: #483d8b;">&quot;:&quot;</span>+path_h+<span style="color: #483d8b;">&quot; &quot;</span>+path_backup
<span style="color: #ff7700;font-weight:bold;">try</span>:
f=<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>path+<span style="color: #483d8b;">&quot;temp.txt&quot;</span>, <span style="color: #483d8b;">&quot;w&quot;</span><span style="color: black;">&#41;</span>
retcode = <span style="color: #dc143c;">subprocess</span>.<span style="color: black;">call</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">cmd</span>, shell=<span style="color: #008000;">True</span>, stdin=f, stderr=f<span style="color: black;">&#41;</span>
f.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">if</span> retcode <span style="color: #66cc66;">&amp;</span>lt<span style="color: #66cc66;">;</span> <span style="color: #ff4500;">0</span>:
writelog<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Child was terminated by signal&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">else</span>:
f=<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>path+<span style="color: #483d8b;">&quot;temp.txt&quot;</span>, <span style="color: #483d8b;">&quot;r&quot;</span><span style="color: black;">&#41;</span>
salida = f.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
f.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">getsize</span><span style="color: black;">&#40;</span>path+<span style="color: #483d8b;">&quot;temp.txt&quot;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">&amp;</span>gt<span style="color: #66cc66;">;</span><span style="color: #ff4500;">0</span>:
writelog<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Error en &quot;</span>+host<span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">else</span>:
sendemail<span style="color: black;">&#40;</span>salida, <span style="color: #483d8b;">&quot;Backup &quot;</span>+<span style="color: #dc143c;">time</span>.<span style="color: black;">strftime</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;%d/%m/%y&quot;</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">&quot; realizado con exito&quot;</span><span style="color: black;">&#41;</span>
writelog<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Realizado con exito&quot;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">OSError</span>, e:
writelog<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Execution failed&quot;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://veinti1.com/script-para-hacer-backups/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>getTorrent.py &#8211; script, para descarga de .torrent del RSS de Mininova y añadirlos a MLDONKEY</title>
		<link>http://veinti1.com/gettorrentpy-script-para-descarga-de-torrent-del-rss-de-mininova-y-anadirlos-a-mldonkey/</link>
		<comments>http://veinti1.com/gettorrentpy-script-para-descarga-de-torrent-del-rss-de-mininova-y-anadirlos-a-mldonkey/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 07:51:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://veinti1.com/?p=113</guid>
		<description><![CDATA[
Recientemente un amigo me paso un script para descargar Torrents de series españolas del MLDONKEY, el funcionamiento era que solicitaba el rss de series de mininova y lo parseaba para encontrar la url de dicho archivo, lo descargaba y guardaba en la carpeta que por defecto viene en el  subdirectorio de mldonkey con nombre [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://doc.veinti1.com/getTorrent.gif"><br />
Recientemente un amigo me paso un script para descargar Torrents de series españolas del MLDONKEY, el funcionamiento era que solicitaba el rss de series de mininova y lo parseaba para encontrar la url de dicho archivo, lo descargaba y guardaba en la carpeta que por defecto viene en el  subdirectorio de mldonkey con nombre torrents/incoming. Mldonkey añade a su lista de descarga los torrent que se encuentre en esa carpeta.</p>
<p>Modificando su herramienta, la he convertido en un script para bajarme las series automáticamente sin necesidad de estar cada Lunes .. Martes etc&#8230; bajandome el torrent de la serie de turno y introduciendolo en MLDONKEY para subirle el torrent. El mecanismo es que seleciona del RSS el que más Seeds y Leechers tenga la formulá solo para mentes avanzadas Seeds*2+Leechers <img src='http://veinti1.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>El Script tiene dos modos básicos.</p>
<p>Manual:<br />
[sourcecode language='Python']python getTorrent.py Dexter s03e04[/sourcecode]<br />
Guardará en el directorio que le inquemos dentro del script como ML_PATH el torrent con mayor puntuación que de como resultado la busqueda de Dexter+s03e04, podriamos añadir todas las palabras de busqueda que queramos.</p>
<p>Automático:<br />
[sourcecode language='Python']python getTorrent.py -c data.nui[/sourcecode]<br />
contenido de data.nui:<br />
[sourcecode language='Python']<br />
Dexter+s03e01<br />
Dexter+s03e02<br />
Dexter+s03e03<br />
Dexter+s03e04<br />
[/sourcecode]<br />
Ejecutamos esta orden mediante cron todos los Lunes. Primero descargará Dexter s03e01 al Lunes siguiente Dexter s03e02 y así sucesivamente hasta el final. Cierto es de que debemos de quitar el cron cuando se acabe la serie, aunque este no hará nada malo, ya que el archivo quedará vacio y no ejecutará nada.</p>
<p>Descargar: <a href="http://doc.veinti1.com/getTorrent.tar.gz">getTorrent.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://veinti1.com/gettorrentpy-script-para-descarga-de-torrent-del-rss-de-mininova-y-anadirlos-a-mldonkey/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
