<?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>Ubunlog &#187; conky</title>
	<atom:link href="http://ubunlog.com/tag/conky/feed/" rel="self" type="application/rss+xml" />
	<link>http://ubunlog.com</link>
	<description>Tutoriales, escritorios linuxeros,software,noticias y todo sobre Ubuntu</description>
	<lastBuildDate>Fri, 03 Feb 2012 10:58:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>4 configuraciones de Conky que seguramente te gustarán</title>
		<link>http://ubunlog.com/4-configuraciones-de-conky-que-seguramente-te-gustaran/</link>
		<comments>http://ubunlog.com/4-configuraciones-de-conky-que-seguramente-te-gustaran/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 23:21:03 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Aplicaciones Ubuntu]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Conky Ubuntu]]></category>
		<category><![CDATA[Escritorio Ubuntu]]></category>

		<guid isPermaLink="false">http://ubunlog.com/?p=7261</guid>
		<description><![CDATA[conky _HUD Descarga e intrucciones conky_red Descarga e intrucciones conky_grey Descarga e instrucciones conky_orange Descarga e intrucciones Para instalar conky en ubuntu solo debes buscarlo en el Centro de Software o tipear en una terminal sudo apt-get install conky Post &#8230; <a href="http://ubunlog.com/4-configuraciones-de-conky-que-seguramente-te-gustaran/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>conky _HUD</strong></p>
<p style="text-align: left;"><a class="thickbox" href="http://ubunlog.com/wp-content/uploads/2011/01/137505-1.png"><img class="aligncenter size-medium wp-image-7262" src="http://ubunlog.com/wp-content/uploads/2011/01/137505-1-500x287.png" alt="4 configuraciones de Conky que seguramente te gustarán" width="500" height="287" title="4 configuraciones de Conky que seguramente te gustarán" /></a><a title="conky_HUD" rel="nofollow" href="http://gnome-look.org/content/show.php/conky_HUD?content=137505" target="_blank">Descarga e intrucciones</a></p>
<p><strong>conky_red</strong></p>
<p style="text-align: left;"><a class="thickbox" href="http://ubunlog.com/wp-content/uploads/2011/01/137504-1.png"><img class="aligncenter size-medium wp-image-7263" src="http://ubunlog.com/wp-content/uploads/2011/01/137504-1-500x273.png" alt="4 configuraciones de Conky que seguramente te gustarán" width="500" height="273" title="4 configuraciones de Conky que seguramente te gustarán" /></a><a title="Conky red" href="http://gnome-look.org/content/show.php/conky_red?content=137504" target="_blank">Descarga e intrucciones</a></p>
<p><strong>conky_grey</strong></p>
<p style="text-align: left;"><a class="thickbox" style="font-weight: bold;" href="http://ubunlog.com/wp-content/uploads/2011/01/137272-1.png"><img class="aligncenter size-medium wp-image-7264" src="http://ubunlog.com/wp-content/uploads/2011/01/137272-1-500x217.png" alt="4 configuraciones de Conky que seguramente te gustarán" width="500" height="217" title="4 configuraciones de Conky que seguramente te gustarán" /></a><a title="conky grey" rel="nofollow" href="http://gnome-look.org/content/show.php/conky_grey?content=137272" target="_blank">Descarga e instrucciones</a></p>
<p style="text-align: left;"><strong>conky_orange</strong></p>
<p style="text-align: left;"><a class="thickbox" style="font-weight: bold;" href="http://ubunlog.com/wp-content/uploads/2011/01/137503-1.png"><img class="aligncenter size-medium wp-image-7266" src="http://ubunlog.com/wp-content/uploads/2011/01/137503-1-500x266.png" alt="4 configuraciones de Conky que seguramente te gustarán" width="500" height="266" title="4 configuraciones de Conky que seguramente te gustarán" /></a><a title="conky orange" rel="nofollow" href="http://gnome-look.org/content/show.php/conky_orange?content=137503" target="_blank">Descarga e intrucciones</a></p>
<p style="text-align: left;">Para <strong>instalar conky en ubuntu</strong> solo debes buscarlo en el <strong>Centro de Software </strong>o tipear en una terminal</p>
<p style="text-align: left;">
<pre class="brush:shell">sudo apt-get install conky</pre>
<p style="text-align: left;"><strong><br />
</strong></p>
<p><strong><br />
</strong></p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/conky-meet-faenza/" title="Conky meet faenza">Conky meet faenza</a></li><li><a href="http://ubunlog.com/conkywizard-configurar-conky-facilmente/" title="ConkyWizard, configurar conky fácilmente">ConkyWizard, configurar conky fácilmente</a></li><li><a href="http://ubunlog.com/habilitar-radio-tray-en-la-bandeja-del-sistema-en-ubuntu-11-10/" title="Habilitar Radio Tray en la bandeja del sistema en Ubuntu 11.10">Habilitar Radio Tray en la bandeja del sistema en Ubuntu 11.10</a></li><li><a href="http://ubunlog.com/ubuntu-one-en-xubuntu-11-10/" title="Ubuntu One en Xubuntu 11.10">Ubuntu One en Xubuntu 11.10</a></li><li><a href="http://ubunlog.com/faenza-icons-1-1-nueva-version-con-soporte-para-ubuntu-11-10/" title="Faenza Icons 1.1, nueva versión con soporte para Ubuntu 11.10">Faenza Icons 1.1, nueva versión con soporte para Ubuntu 11.10</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/4-configuraciones-de-conky-que-seguramente-te-gustaran/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Conky meet faenza</title>
		<link>http://ubunlog.com/conky-meet-faenza/</link>
		<comments>http://ubunlog.com/conky-meet-faenza/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 16:34:03 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Aplicaciones Ubuntu]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Escritorios]]></category>
		<category><![CDATA[faenza icons]]></category>

		<guid isPermaLink="false">http://ubunlog.com/?p=5984</guid>
		<description><![CDATA[Un Conky que utiliza los iconos Faenza cómo decoración, ideal para quienes utilizan este pack de iconos en su escritorio. Si tienes Conky instalado solo tienes que extraer los archivos en /home/tu-nombre-de-usuario Descarga &#124; Gnome-Look Post RelacionadosConkyWizard, configurar conky fácilmente4 &#8230; <a href="http://ubunlog.com/conky-meet-faenza/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Un <a title="ConkyWizard, configurar conky fácilmente" href="http://ubunlog.com/conkywizard-configurar-conky-facilmente/" target="_blank">Conky</a> que utiliza los <a title="Repositorios PPA para Faenza Icons" href="http://ubunlog.com/repositorios-ppa-para-faenza-icons/" target="_blank">iconos Faenza</a> cómo decoración, ideal para quienes utilizan este pack de iconos en su escritorio.</p>
<p style="text-align: left;"><a class="thickbox" href="http://ubunlog.com/wp-content/uploads/2010/10/Screenshot.png"><img class="size-medium wp-image-5985 aligncenter" src="http://ubunlog.com/wp-content/uploads/2010/10/Screenshot-500x90.png" alt="Conky meet faenza" width="500" height="90" title="Conky meet faenza" /></a></p>
<p style="text-align: left;">Si tienes Conky instalado solo tienes que extraer los archivos en <em>/home/tu-nombre-de-usuario</em></p>
<p style="text-align: left;">
<p style="text-align: left;">Descarga |<a rel="nofollow" href="http://gnome-look.org/content/show.php/conky+meet+faenza?content=133086" target="_blank"> Gnome-Look</a></p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/conkywizard-configurar-conky-facilmente/" title="ConkyWizard, configurar conky fácilmente">ConkyWizard, configurar conky fácilmente</a></li><li><a href="http://ubunlog.com/4-configuraciones-de-conky-que-seguramente-te-gustaran/" title="4 configuraciones de Conky que seguramente te gustarán">4 configuraciones de Conky que seguramente te gustarán</a></li><li><a href="http://ubunlog.com/habilitar-radio-tray-en-la-bandeja-del-sistema-en-ubuntu-11-10/" title="Habilitar Radio Tray en la bandeja del sistema en Ubuntu 11.10">Habilitar Radio Tray en la bandeja del sistema en Ubuntu 11.10</a></li><li><a href="http://ubunlog.com/ubuntu-one-en-xubuntu-11-10/" title="Ubuntu One en Xubuntu 11.10">Ubuntu One en Xubuntu 11.10</a></li><li><a href="http://ubunlog.com/instalacion-y-uso-de-radio-tray-en-ubuntu-11-10-oneiric-ocelot/" title="Instalación y modo de uso de Radio Tray en Ubuntu 11.10 Oneiric Ocelot">Instalación y modo de uso de Radio Tray en Ubuntu 11.10 Oneiric Ocelot</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/conky-meet-faenza/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ConkyWizard, configurar conky fácilmente</title>
		<link>http://ubunlog.com/conkywizard-configurar-conky-facilmente/</link>
		<comments>http://ubunlog.com/conkywizard-configurar-conky-facilmente/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 18:41:53 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Aplicaciones Ubuntu]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Escritorios]]></category>
		<category><![CDATA[Escritorios Gnome]]></category>

		<guid isPermaLink="false">http://ubunlog.com.ar/blog/?p=4573</guid>
		<description><![CDATA[Se trata de una aplicación para configurar fácilmente conky en Ubuntu y obtener un resultado cómo este Solo tienes que bajar el archivo descomprimirlo, ejecutar la opción para tu procesador y seguir los pasos Descarga &#124; GNOME-Look Post RelacionadosConky meet &#8230; <a href="http://ubunlog.com/conkywizard-configurar-conky-facilmente/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Se trata de una aplicación para <strong>configurar fácilmente <a title="Compiz Fusion, Windows Rules (o Conky fijo en el escritorio)" href="http://ubunlog.com/compiz-fusion-windows-rules-o-conky-fijo-en-el-escritorio/" target="_blank">conky</a> en Ubuntu</strong> y obtener un resultado cómo este</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-4587" src="http://ubunlog.com/wp-content/uploads/2010/06/captura_020.jpeg" alt="ConkyWizard, configurar conky fácilmente" width="433" height="74" title="ConkyWizard, configurar conky fácilmente" /></p>
<p style="text-align: left;">Solo tienes que bajar <a title="Conky Wizard" rel="nofollow" href="http://gnome-look.org/content/show.php/ConkyWizard?content=126352">el archivo</a> descomprimirlo, ejecutar la opción para tu procesador y seguir los pasos</p>
<p><a class="thickbox" href="http://ubunlog.com/wp-content/uploads/2010/06/captura_016.jpeg"><img class="aligncenter size-medium wp-image-4575" title="ConkyWizard, configurar conky fácilmente" src="http://ubunlog.com/wp-content/uploads/2010/06/captura_016-500x446.jpg" alt="ConkyWizard, configurar conky fácilmente" width="300" height="268" /></a><br />
<a class="thickbox" href="http://ubunlog.com/wp-content/uploads/2010/06/captura_017.jpeg"><img class="aligncenter size-medium wp-image-4577" title="ConkyWizard, configurar conky fácilmente" src="http://ubunlog.com/wp-content/uploads/2010/06/captura_017-500x446.jpg" alt="ConkyWizard, configurar conky fácilmente" width="300" height="268" /></a></p>
<p style="text-align: left;">Descarga | <a title="ConkyWizard" rel="nofollow" href="http://gnome-look.org/content/show.php/ConkyWizard?content=126352" target="_blank">GNOME-Look</a></p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/conky-meet-faenza/" title="Conky meet faenza">Conky meet faenza</a></li><li><a href="http://ubunlog.com/4-configuraciones-de-conky-que-seguramente-te-gustaran/" title="4 configuraciones de Conky que seguramente te gustarán">4 configuraciones de Conky que seguramente te gustarán</a></li><li><a href="http://ubunlog.com/cambiar-apariencia-de-kupfer/" title="Cambiar apariencia de Kupfer">Cambiar apariencia de Kupfer</a></li><li><a href="http://ubunlog.com/habilitar-radio-tray-en-la-bandeja-del-sistema-en-ubuntu-11-10/" title="Habilitar Radio Tray en la bandeja del sistema en Ubuntu 11.10">Habilitar Radio Tray en la bandeja del sistema en Ubuntu 11.10</a></li><li><a href="http://ubunlog.com/ubuntu-one-en-xubuntu-11-10/" title="Ubuntu One en Xubuntu 11.10">Ubuntu One en Xubuntu 11.10</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/conkywizard-configurar-conky-facilmente/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Colorful Conky Desktop</title>
		<link>http://ubunlog.com/the-colorful-conky-desktop/</link>
		<comments>http://ubunlog.com/the-colorful-conky-desktop/#comments</comments>
		<pubDate>Fri, 29 May 2009 19:20:31 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[9.04]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Escritorio]]></category>

		<guid isPermaLink="false">http://www.ubunlog.com.ar/blog/?p=1108</guid>
		<description><![CDATA[No está bonito? podes ver los detalles de escritorio y configuración de conky ( en inglés) en Lifehacker Post RelacionadosMi escritorio, Abril &#8217;09Miu, Artwork Jaunty ThemeArtwork Jaunty Jackalope, Nuevas PropuestasUbuntu 9.04 se llamará Jaunty Jackalope (jacka que?)Compiz Fusion, Windows Rules &#8230; <a href="http://ubunlog.com/the-colorful-conky-desktop/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://i540.photobucket.com/albums/gg330/ubunlog/3570368334_e9566c9922_b.jpg"><img class="aligncenter" src="http://i540.photobucket.com/albums/gg330/ubunlog/3570368334_e9566c9922_b.jpg" alt="The Colorful Conky Desktop" width="480" height="300" title="The Colorful Conky Desktop" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">No está bonito? podes ver los detalles de escritorio y configuración de conky ( en inglés) en <a href="http://lifehacker.com/5272400/the-colorful-conky-desktop" target="_blank">Lifehacker</a></p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/mi-escritorio-abril-09/" title="Mi escritorio, Abril &#8217;09">Mi escritorio, Abril &#8217;09</a></li><li><a href="http://ubunlog.com/miu-artwork-jaunty-theme/" title="Miu, Artwork Jaunty Theme">Miu, Artwork Jaunty Theme</a></li><li><a href="http://ubunlog.com/artwork-jaunty-jackalope-nuevas-propuestas/" title="Artwork Jaunty Jackalope, Nuevas Propuestas">Artwork Jaunty Jackalope, Nuevas Propuestas</a></li><li><a href="http://ubunlog.com/ubuntu-904-se-llamara-jaunty-jackalope-jacka-que/" title="Ubuntu 9.04 se llamará Jaunty Jackalope (jacka que?)">Ubuntu 9.04 se llamará Jaunty Jackalope (jacka que?)</a></li><li><a href="http://ubunlog.com/compiz-fusion-windows-rules-o-conky-fijo-en-el-escritorio/" title="Compiz Fusion, Windows Rules (o Conky fijo en el escritorio)">Compiz Fusion, Windows Rules (o Conky fijo en el escritorio)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/the-colorful-conky-desktop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mi escritorio, Agosto</title>
		<link>http://ubunlog.com/mi-escritorio-agosto/</link>
		<comments>http://ubunlog.com/mi-escritorio-agosto/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 11:04:00 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Escritorio]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Iconos]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Tema]]></category>

		<guid isPermaLink="false">http://www.ubunlog.com.ar/mi-escritorio-agosto/</guid>
		<description><![CDATA[Tema Gtk:Creamy black panel Conky: Basado en este Iconos: Eikon Wallpaper:Q_s_Magic_Bus_by_webtrance Si te interesa mostrar tu escritorio mandame un mail con una captura y los datos configuración a ubunblog(arroba)gmail.com Post RelacionadosMi escritorio, NoviembreMi escritorio, OctubreMi escritorio, JulioConky, Mi configuraciónMi escritorio &#8230; <a href="http://ubunlog.com/mi-escritorio-agosto/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tema Gtk:<a href="http://www.gnome-look.org/content/show.php/Creamy?content=69315" target="_blank">Creamy black panel</a></p>
<p>Conky: <a href="http://www.gnome-look.org/content/show.php/Another+conky+scripts?content=58555" target="_blank">Basado en este </a></p>
<p>Iconos: <a href="http://www.mediafire.com/?mh0tv32l42j" target="_blank">Eikon</a></p>
<p>Wallpaper:Q_s_Magic_Bus_by_webtrance </p>
<p>Si te interesa mostrar tu escritorio mandame un mail con una captura y los datos configuración a ubunblog(arroba)gmail.com</p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/mi-escritorio-noviembre/" title="Mi escritorio, Noviembre">Mi escritorio, Noviembre</a></li><li><a href="http://ubunlog.com/mi-escritorio-octubre/" title="Mi escritorio, Octubre">Mi escritorio, Octubre</a></li><li><a href="http://ubunlog.com/mi-escritorio-julio/" title="Mi escritorio, Julio">Mi escritorio, Julio</a></li><li><a href="http://ubunlog.com/conky-mi-configuracion/" title="Conky, Mi configuración">Conky, Mi configuración</a></li><li><a href="http://ubunlog.com/mi-escritorio-junio/" title="Mi escritorio Junio">Mi escritorio Junio</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/mi-escritorio-agosto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiz Fusion, Windows Rules (o Conky fijo en el escritorio)</title>
		<link>http://ubunlog.com/compiz-fusion-windows-rules-o-conky-fijo-en-el-escritorio/</link>
		<comments>http://ubunlog.com/compiz-fusion-windows-rules-o-conky-fijo-en-el-escritorio/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 10:21:00 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Escritorio]]></category>
		<category><![CDATA[Tema]]></category>

		<guid isPermaLink="false">http://www.ubunlog.com.ar/compiz-fusion-windows-rules-o-conky-fijo-en-el-escritorio/</guid>
		<description><![CDATA[Algo que siempre me pasaba con Conky era que al darle click al icono de mostrar el escritorio, conky se minimizaba, no era/es molesto, tal es así que nunca me había preocupado por encontrar la solución, leyendo los foros de &#8230; <a href="http://ubunlog.com/compiz-fusion-windows-rules-o-conky-fijo-en-el-escritorio/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Algo que siempre me pasaba con Conky era que al darle click al icono de mostrar el escritorio, conky se minimizaba, no era/es molesto, tal es así que nunca me había preocupado por encontrar la solución, leyendo los foros de Ubuntu-ar, encontré a alguien al que si le importaba esto, (aunque la consulta original se referia a Screenlets, pero la solución sirve igualmente para conky) y un usuario que le daba la solución.</p>
<p>Lo que debemos hacer es ir a <strong>Sistema &gt; Preferencias &gt; configuracion avanzada de efectos de escritorio.</strong></p>
<p>Buscamos el plugin <strong>Windows Rules</strong></p>
<p><strong></strong></p>
<p>Dentro de la configuracion de window rules pone en el campo &#8220;<strong>saltar barra de tareas</strong>&#8220;, esto &#8220;<strong>class=conky</strong>&#8220;</p>
<p>y activamos la casilla &#8220;<strong>habilitar window rules</strong>&#8220;, entramos en <strong>general options</strong> y deshabilitamos la casilla que dice &#8220;<strong>hide skip taskbar windows</strong>&#8220;</p>
<p>Con esto ya tenemos nuestro conky fijo en el escritorioy de ahí no se moverá <img src='http://ubunlog.com/wp-includes/images/smilies/icon_wink.gif' alt="Compiz Fusion, Windows Rules (o Conky fijo en el escritorio)" class='wp-smiley' title="Compiz Fusion, Windows Rules (o Conky fijo en el escritorio)" /> </p>
<p>Creditos usuario excaliburs foro <a href="http://ubuntuforums.org/forumdisplay.php?f=189" target="_blank">Ubuntu-ar</a></p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/mi-escritorio-julio/" title="Mi escritorio, Julio">Mi escritorio, Julio</a></li><li><a href="http://ubunlog.com/mi-escritorio-junio/" title="Mi escritorio Junio">Mi escritorio Junio</a></li><li><a href="http://ubunlog.com/the-colorful-conky-desktop/" title="The Colorful Conky Desktop">The Colorful Conky Desktop</a></li><li><a href="http://ubunlog.com/vamox-theme-pack-para-gnome/" title="Vamox, Theme Pack para GNOME">Vamox, Theme Pack para GNOME</a></li><li><a href="http://ubunlog.com/ubuntu-904-se-llamara-jaunty-jackalope-jacka-que/" title="Ubuntu 9.04 se llamará Jaunty Jackalope (jacka que?)">Ubuntu 9.04 se llamará Jaunty Jackalope (jacka que?)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/compiz-fusion-windows-rules-o-conky-fijo-en-el-escritorio/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mi escritorio, Julio</title>
		<link>http://ubunlog.com/mi-escritorio-julio/</link>
		<comments>http://ubunlog.com/mi-escritorio-julio/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 10:18:00 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Escritorio]]></category>
		<category><![CDATA[Iconos]]></category>
		<category><![CDATA[Tema]]></category>

		<guid isPermaLink="false">http://www.ubunlog.com.ar/mi-escritorio-julio/</guid>
		<description><![CDATA[Nuevo mes, tratando de volver a la actividad del blog, con nuevo escritorio, sencillo como siempre, no soy de poner muchas adornos al escritorio Tema gtk de fedora, Nodoka, iconos Eikon, el wallpaper se llama slepless, esta en devian art &#8230; <a href="http://ubunlog.com/mi-escritorio-julio/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nuevo mes, tratando de volver a la actividad del blog, con nuevo escritorio, sencillo como siempre, no soy de poner muchas adornos al escritorio <img src='http://ubunlog.com/wp-includes/images/smilies/icon_smile.gif' alt="Mi escritorio, Julio" class='wp-smiley' title="Mi escritorio, Julio" /> </p>
<p>Tema gtk de fedora, Nodoka, iconos Eikon, el wallpaper se llama slepless, esta en devian art y el conky es el de <em>valucha</em>, usuario de <strong>Ubuntu-ar</strong>, de <a href="http://ubuntuforums.org/showthread.php?t=827563&amp;highlight=escritorio+elemental" target="_blank">este post</a>.</p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/mi-escritorio-agosto/" title="Mi escritorio, Agosto">Mi escritorio, Agosto</a></li><li><a href="http://ubunlog.com/mi-escritorio-junio/" title="Mi escritorio Junio">Mi escritorio Junio</a></li><li><a href="http://ubunlog.com/mi-escritorio-noviembre/" title="Mi escritorio, Noviembre">Mi escritorio, Noviembre</a></li><li><a href="http://ubunlog.com/mi-escritorio-octubre/" title="Mi escritorio, Octubre">Mi escritorio, Octubre</a></li><li><a href="http://ubunlog.com/eikonicon-pack/" title="Eikon,Icon pack">Eikon,Icon pack</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/mi-escritorio-julio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conky, Mi configuración</title>
		<link>http://ubunlog.com/conky-mi-configuracion/</link>
		<comments>http://ubunlog.com/conky-mi-configuracion/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 10:07:00 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Alpha]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Consola]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Tema]]></category>
		<category><![CDATA[UNR]]></category>

		<guid isPermaLink="false">http://www.ubunlog.com.ar/conky-mi-configuracion/</guid>
		<description><![CDATA[Fecfactor me pedía ayer que publicara la configuración de el conky que muestro en la captura a continuación Como pueden ver se trata de 3 conkys, que son ejecutados mediante un script, la configuración del mismo esta basada en este &#8230; <a href="http://ubunlog.com/conky-mi-configuracion/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Fecfactor me pedía ayer que publicara la configuración de el conky que muestro en  la captura a continuación</p>
<p>Como pueden ver se trata de 3 conkys, que son ejecutados mediante un script, la configuración del mismo esta basada en <a href="http://ubuntuforums.org/showthread.php?t=809615&amp;highlight=conky" target="_blank">este post </a>que publicó el usuario Bruce M. en los foros de <a href="http://ubuntu-ar.org/" target="_blank">Ubuntu-Ar </a>con algunas modificaciones en el conky de el correo, que en mi caso es para Gmail.</p>
<p>En el post de referencia está muy bien explicado por Bruce, pero también como ayuda memoria para mí, voy a copiar los pasos a seguir y el codigo de mis conkys para quien quiera lo tenga.</p>
<p><span id="more-227"></span></p>
<p>Bien, necesitamos por supuesto tener instalado conky, curl y python asi que tipeamos en una consola:<br />
<blockquote>sudo apt-get install conky curl python</p></blockquote>
<p>La fuente de weather.ttf y de arrows.ttf <a href="http://ubuntuforums.org/showthread.php?t=760527" target="_blank">está aquí</a>. La fuente de moon.ttf <a href="http://www.dafont.com/moon-phases.font" target="_blank">está aquí</a> una vez bajadas hay que copiarlas a /usr/share/fonts</p>
<p>Vamos a crear ahora nuestro script llamado ~./startconky<br />
<blockquote>gksudo gedit ~/.startconky</p></blockquote>
<p>dentro del archivo vacio pegamos lo siguiente<br />
<blockquote>#!/bin/bash<br />sleep 0 &amp; # 0 good for Xfce &#8211; use 20 to 30 for Gnome<br />conky -c ~/Conky/conkymain &amp;<br />#sleep 0 &amp; # 0 good for Xfce &#8211; use 1 for Gnome<br />conky -c ~/Conky/conkyforecast &amp;<br />#sleep 0 &amp; # 0 good for Xfce &#8211; use 1 for Gnome<br />conky -c ~/Conky/conkymail &amp;</p></blockquote>
<p>Ahora creamos el archivo conkymain en la carpeta ~/Conky sino tenemos la carpeta Conky habrá que crearla.<br />
<blockquote>gedit ~/Conky/conkymain</p></blockquote>
<p>yo uso la fuente Calibri, si no la tenés reemplazala por la que quieras.</p>
<p>Pegamos dentro lo que sigue<br />
<blockquote>background no<br />own_window yes<br />own_window_transparent yes<br />own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />own_window_colour black<br />double_buffer yes<br />use_spacer left<br />use_xft    yes<br />font calibri:size=9<br />xftfont calibri:size=9<br />xftalpha 0.5<br />update_interval 5.0<br />uppercase no  # set to yes if you want all text to be in uppercase<br />stippled_borders 3<br />border_margin 9<br />border_width 10<br />default_color white<br />default_outline_color black<br />default_shade_color black<br />color0 cyan<br />color1 lightblue<br />color2 orange<br />color3 yellow<br />color4 wheat<br />color5 white<br />color6 white<br />color7 white<br />color8 white<br />color9 white<br />alignment top_right  # or top_left, bottom_left, bottom_right<br />gap_x 10<br />gap_y 35<br />text_buffer_size 128 # use 1024 for the forecast<br />no_buffers yes  # Subtract file system buffers from used memory?<br />draw_borders no<br />draw_outline yes  # amplifies text if yes<br />draw_shades yes  # shadecolor black</p>
<p>TEXT<br />${font calibri:size=12}${alignc}${color1}$sysname $kernel on $machine}$color$font<br />${font calibri:size=12}${alignc}${color2}${exec whoami} @ $nodename$color$font<br />${color0}${hr 1}$color<br />${font calibri:size=20}${alignc}${time %H:%M}$font<br />${font calibri:size=12}${color1}${alignc}${time %A, %d %b. %Y}$color$font<br />${color3}UpTime:${alignr 2}$uptime$color<br />${color0}${hr 1}$color<br />${voffset 5}${color2}CPU:${alignc}$color$running_processes ${color1} /$color $processes${alignr 2}${color2}${cpubar cpu0 14,80}$color<br />${color1}${voffset -16}${alignr 5}$cpu%$color<br />${voffset 2}${color1}Load Avg (${color3}Min${color1}):${alignr 2}${color3}1: $color${loadavg 1}   ${color3}5: $color${loadavg 2}   ${color3}15: $color${loadavg 3}<br />${voffset 5}${color2}RAM:$color $mem ${color2} /$color$memmax${alignr 2}${color2}${membar 14,80}$color<br />${color1}${voffset -16}${alignr 5}$memperc%$color<br />${voffset 2}${color1}Buffered: $color${buffers}${alignr 2}${color1}Cached:$color ${cached}<br />${voffset 5}${color2}SWAP: $color$swap ${color2}/ $color${swapmax}${alignr 2}${color2}${swapbar 14,80}$color<br />${color1}${voffset -16}${alignr 5}$swapperc%<br />${color0}${hr 1}$color<br />${voffset 5}${color2}HD Info${color1} -$color Free${color1} &#8211; Used &#8211; ${color2} Total<br />${voffset 5}${color1}Root: $color${fs_free_perc /}%${alignr 2}${fs_free /}${color2}/${color1}${fs_used /}$color/${color2}${fs_size /}$color<br />${color1}Home: $color${fs_free_perc /home/usuario}%${alignr 2}${fs_free /home/usuario}${color2}/${color1}${fs_used /home/usuario}$color/${color2}${fs_size /home/usuario}$color<br />${color0}${hr 1}$color<br />${color1}Desde:$color Buenos Aires, Argentina<br />${color1}Lat: ${color2}34°35&#8242;S          ${color1}Long: ${color2}58°21&#8242;W            ${color1}Alt: ${color2}25 m$color<br />${voffset 5}${color2}${font calibri:size=12}hoy:$font ${color3}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=CC}$color${alignr 2}${color1}ST: ${color2}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=LT}<br />${color3}${font Weather:size=50}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=WF}$font$color<br />${alignr 50}${voffset -55}${font calibri:size=25}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=HT}$font<br />${alignc 20}${voffset -30}${font Arrows:size=20}${color4}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=BF}$color$font<br />${alignc 10}${voffset 5}${color4}Viento: ${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=WS}$color<br />${color1}Humedad: ${color3}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=HM}${alignr 2}${color1}Precipitación: ${color3}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=PC}$color<br />${alignc}${color1}Presión: ${color3}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=BR} &#8211; ${color3}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=BD}$color<br />${color4}${hr}$color<br />${color1}Salida del Sol: ${color3}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=SR}${alignr 2}${color1}Ocaso: ${color3}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=SS}$color<br />${voffset 15}${color1}Luna:${color4}${alignr 2}${color3}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=MP}$color<br />${voffset -20}${offset 80}${color4}${font moon phases:size=20}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;datatype=MF}$font$color<br />${color0}${hr}$color<br />${voffset 5}${color2}IP:${alignc}$color${addr eth0}<br />${color1}Down: $color${downspeed eth0}k/s ${alignr 2}${color1}Up: $color${upspeed eth0}k/s<br />${color1}Total: $color${totaldown eth0} ${alignr 2}${color1}Total: $color${totalup eth0}<br />${color1}Inbound: $color${tcp_portmon 1 32767 count}          ${color1}Outbound: $color${tcp_portmon 32768 61000 count}${alignr 2}${color1}Total: $color${tcp_portmon 1 65535 count}<br />${voffset 5}${color2}Connections: $color${tcp_portmon 32768 61000 count} ${alignr 2} ${color2}Service/Port $color<br />${voffset 5}${tcp_portmon 32768 61000 rhost 0} ${alignr 2} ${tcp_portmon 32768 61000 rservice 0}<br />${tcp_portmon 32768 61000 rhost 1} ${alignr 2} ${tcp_portmon 32768 61000 rservice 1}<br />${tcp_portmon 32768 61000 rhost 2} ${alignr 2} ${tcp_portmon 32768 61000 rservice 2}<br />${tcp_portmon 32768 61000 rhost 3} ${alignr 2} ${tcp_portmon 32768 61000 rservice 3}<br />${tcp_portmon 32768 61000 rhost 4} ${alignr 2} ${tcp_portmon 32768 61000 rservice 4}<br />${tcp_portmon 32768 61000 rhost 5} ${alignr 2} ${tcp_portmon 32768 61000 rservice 5}$color</p></blockquote>
<p>creamos el archivo  ~/Conky/conkyforecast<br />
<blockquote>gedit ~/Conky/conkyforecast</p></blockquote>
<p>y pegamos dentro lo siguiente<br />
<blockquote>background no<br />own_window yes<br />own_window_transparent yes<br />own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />own_window_colour black<br />double_buffer yes<br />use_spacer left<br />use_xft    yes<br />font calibri:size=8<br />xftfont calibri:size=8<br />xftalpha 0.5<br />update_interval 5.0<br />uppercase no  # set to yes if you want all text to be in uppercase<br />stippled_borders 3<br />border_margin 9<br />border_width 10<br />default_color white<br />default_outline_color black<br />default_shade_color black<br />color0 cyan<br />color1 lightblue<br />color2 orange<br />color3 yellow<br />color4 wheat<br />color5 white<br />color6 white<br />color7 white<br />color8 white<br />color9 white<br />alignment bottom_left  # or top_left, bottom_left, bottom_right<br />gap_x 10<br />gap_y 35<br />text_buffer_size 1024 # use 1024 for the forecast<br />no_buffers yes  # Subtract file system buffers from used memory?<br />draw_borders no<br />draw_outline yes  # amplifies text if yes<br />draw_shades yes  # shadecolor black</p>
<p>TEXT<br />${color4}${font calibri:size=11}Pronostico Extendido$font$color<br />${color0}${hr}$color<br />${color4}${font calibri:size=9}${execi 3600 python ~/Conky/scripts/conkyForecast.py &#8211;location=ARBA0009 &#8211;template=/home/usuario/Conky/scripts/myweather.template}$font$color</p></blockquote>
<p>creamos el archivo  ~/Conky/conkymail<br />
<blockquote>gedit  ~/Conky/conkymail</p></blockquote>
<p>pegamos dentro del archivo lo siguiente<br />
<blockquote>background no<br />own_window yes<br />own_window_transparent yes<br />own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />own_window_colour black<br />double_buffer yes<br />use_spacer left<br />use_xft    yes<br />font calibri:size=8<br />xftfont calibri:size=8<br />xftalpha 0.5<br />update_interval 5.0<br />uppercase no  # set to yes if you want all text to be in uppercase<br />stippled_borders 3<br />border_margin 9<br />border_width 10<br />default_color white<br />default_outline_color black<br />default_shade_color black<br />color0 cyan<br />color1 lightblue<br />color2 orange<br />color3 yellow<br />color4 wheat<br />color5 white<br />color6 white<br />color7 white<br />color8 white<br />color9 white<br />alignment bottom_left  # or top_left, bottom_left, bottom_right<br />gap_x 565<br />gap_y 35<br />text_buffer_size 128 # use 1024 for the forecast<br />no_buffers yes  # Subtract file system buffers from used memory?<br />draw_borders no<br />draw_outline yes  # amplifies text if yes<br />draw_shades yes  # shadecolor black</p>
<p>TEXT<br />${font calibri:size=11}${alignc}${color4}Gmail<br />${color0}${hr}$color<br />${font calibri:size=11}${color4}Tenemos  ${color3}${execi 300 python ~/Conky/scripts/mail/conkyEmail.py}${color4}  email(s)$font</p></blockquote>
<p>Creamos un archivo en ~/Conky/scripts/conkyForecast.py (hay que crear la carpeta scripts)<br />
<blockquote>gedit ~/Conky/scripts/conkyForecast.py</p></blockquote>
<p>
<blockquote>#!/usr/bin/python<br /># -*- coding: utf-8 -*-<br />###############################################################################<br /># conkyForecast.py is a (not so) simple (anymore) python script to gather<br /># details of the current weather for use in conky.<br />#<br />#  Author: Kaivalagi<br /># Created: 13/04/2008<br /># Modifications:<br />#    14/04/2008    Allow day ranges for forecast data<br />#    14/04/2008    Check for connectivity to xoap service<br />#    18/04/2008    Allow the setting of spaces for ranged output<br />#    18/04/2008    Allow Night and Day forecast output<br />#    18/04/2008    Support locale for condition code text &#8220;CC&#8221; option, awaiting spanish language translation<br />#    18/04/2008    Use pickling for class data rather than opening xml, this bypasses the need to interrogate cached data<br />#    19/04/2008    Added spanish condition text &#8211; Thanks Bruce M<br />#    19/04/2008    Added isnumeric check on all numeric output with units suffix<br />#    19/04/2008    Altered pickle file naming to include location code<br />#    19/04/2008    Added spanish week days conversion via locale<br />#    20/04/2008    Added decent command argument parser<br />#    20/04/2008    Added &#8211;shortweekday option, if given the day of week data type is shortened to 3 characters<br />#    21/04/2008    Fixed locale options for forecast output<br />#    21/04/2008    Added &#8211;template option to allow custom output using a single exec call <img src='http://ubunlog.com/wp-includes/images/smilies/icon_smile.gif' alt="Conky, Mi configuración" class='wp-smiley' title="Conky, Mi configuración" /> <br />#    21/04/2008    Added &#8211;hideunits option to remove, for example, mph and C from output<br />#    23/04/2008    Removed &#8211;imperial option from template, this MUST be set as a standard option on the script call and not used in the template file.<br />#    23/04/2008    Readded &#8211;imperial option to template, enabling metric or imperial values per datatype. Note when using templates command line option will not work.<br />#    23/04/2008    Added output notifying user if the location given is bad<br />#    24/04/2008    Added handling for no connectivity, will revert to cached data now (erroring if no cache exists). Tests by trying to open xoap.weather.com<br />#    24/04/2008    Fixed Celsius to fahrenheit conversion<br />#    06/05/2008    Updated url used after webservice was updated<br />#    09/05/2008    Consolidated current condition and forecast data fetch into one call<br />#    09/05/2008    Added Sunrise and sunset to datatypes, these are specific to both current conditions and forecast data<br />#    09/05/2008    Added moon phase, barometer reading and barometer description to datatypes, these are only specific to current conditions and so are N/A in forecasted output<br />#    09/05/2008    Added unit conversions for barometer from mb to inches (imperial)<br />#   09/05/2008  Updated spanish condition text &#8211; Thanks Bruce M<br />#   10/05/2008  Added french locale data &#8211; Thanks benpaka<br />#   12/05/2008  Added new BF (bearing font) datatype to provide an arrow character (use with Arrow.ttf font) instead of NSEW output from WD (wind direction)<br />#   12/05/2008  Updated WD output to be locale specific, currently supports default english and spanish &#8211; Thanks Bruce M<br />#    18/05/2008    Added new MF (moon font) datatype to provide a moon font character (characters incorrect and no dedicated font yet).<br />#    21/05/2008    For current conditions the &#8211;datatype=LT option now displays &#8220;feels like&#8221; temperature rather than the current temperature<br />#<br /># TODO:<br /># Consolidate pkl files into one file/class<br /># Add a weather font based moon phase output based on moon icon data<br /># ??? Any more requirements out there?</p>
<p>import sys, os, socket, urllib2, datetime, time<br />from xml.dom import minidom<br />from stat import *<br />from optparse import OptionParser<br />import locale<br />import gettext<br />import pickle<br />from math import *</p>
<p>APP=&#8221;conkyForecast.py&#8221;<br />DIR=os.path.dirname (__file__) + &#8216;/locale&#8217;<br />gettext.bindtextdomain(APP, DIR)<br />gettext.textdomain(APP)<br />_ = gettext.gettext</p>
<p>class CommandLineParser:</p>
<p>parser = None</p>
<p>def __init__(self):</p>
<p>self.parser = OptionParser()<br />self.parser.add_option(&#8220;-l&#8221;,&#8221;&#8211;location&#8221;, dest=&#8221;location&#8221;, default=&#8221;UKXX0103&#8243;, type=&#8221;string&#8221;, metavar=&#8221;CODE&#8221;, help=u&#8221;location code for weather data [default: %default],Use the following url to determine your location code by city name: http://xoap.weather.com/search/search?where=Norwich&#8221;)<br />self.parser.add_option(&#8220;-d&#8221;,&#8221;&#8211;datatype&#8221;,dest=&#8221;datatype&#8221;, default=&#8221;HT&#8221;, type=&#8221;string&#8221;, metavar=&#8221;DATATYPE&#8221;, help=u&#8221;[default: %default] The data type options are: DW (Day Of Week), WF (Weather Font Output), LT (Forecast:Low Temp,Current:Feels Like Temp), HT (Forecast:High Temp,Current:Current Temp), CC (Current Conditions), CT (Conditions Text), PC (Precipitation Chance), HM (Humidity), WD (Wind Direction), WS (Wind Speed), WG (Wind Gusts), CN (City Name), SR (sunrise), SS (sunset), MP (moon phase), MF (moon font), BR (barometer reading), BD (barometer description). Not applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-s&#8221;,&#8221;&#8211;startday&#8221;,dest=&#8221;startday&#8221;, type=&#8221;int&#8221;, metavar=&#8221;NUMBER&#8221;, help=u&#8221;define the starting day number, if omitted current conditions are output. Not applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-e&#8221;,&#8221;&#8211;endday&#8221;,dest=&#8221;endday&#8221;, type=&#8221;int&#8221;, metavar=&#8221;NUMBER&#8221;, help=u&#8221;define the ending day number, if omitted only starting day data is output. Not applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-S&#8221;,&#8221;&#8211;spaces&#8221;,dest=&#8221;spaces&#8221;, type=&#8221;int&#8221;, default=1, metavar=&#8221;NUMBER&#8221;, help=u&#8221;[default: %default] Define the number of spaces between ranged output. Not applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-t&#8221;,&#8221;&#8211;template&#8221;,dest=&#8221;template&#8221;, type=&#8221;string&#8221;, metavar=&#8221;FILE&#8221;, help=u&#8221;define a template file to generate output in one call. A displayable item in the file is in the form {&#8211;datatype=HT &#8211;startday=1}. The following are possible options within each item: &#8211;datatype,&#8211;startday,&#8211;endday,&#8211;night,&#8211;shortweekday,&#8211;imperial,&#8211;hideunits,&#8211;spaces . Note that the short forms of the options are not currently supported! None of these options are applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-L&#8221;,&#8221;&#8211;locale&#8221;,dest=&#8221;locale&#8221;, type=&#8221;string&#8221;, help=u&#8221;override the system locale for language output (en=english, es=spanish, fr=french, more to come)&#8221;)<br />self.parser.add_option(&#8220;-i&#8221;,&#8221;&#8211;imperial&#8221;,dest=&#8221;imperial&#8221;, default=False, action=&#8221;store_true&#8221;, help=u&#8221;request imperial units, if omitted output is in metric. Not applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-n&#8221;,&#8221;&#8211;night&#8221;,dest=&#8221;night&#8221;, default=False, action=&#8221;store_true&#8221;, help=u&#8221;switch output to night data, if omitted day output will be output. Not applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-w&#8221;,&#8221;&#8211;shortweekday&#8221;,dest=&#8221;shortweekday&#8221;, default=False, action=&#8221;store_true&#8221;, help=u&#8221;Shorten the day of week data type to 3 characters. Not applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-u&#8221;,&#8221;&#8211;hideunits&#8221;,dest=&#8221;hideunits&#8221;, default=False, action=&#8221;store_true&#8221;, help=u&#8221;Hide units such as mph or C, degree symbols (°) are still shown. Not applicable at command line when using templates.&#8221;)<br />self.parser.add_option(&#8220;-v&#8221;,&#8221;&#8211;verbose&#8221;,dest=&#8221;verbose&#8221;, default=False, action=&#8221;store_true&#8221;, help=u&#8221;request verbose output, no a good idea when running through conky!&#8221;)<br />self.parser.add_option(&#8220;-r&#8221;,&#8221;&#8211;refetch&#8221;,dest=&#8221;refetch&#8221;, default=False, action=&#8221;store_true&#8221;, help=u&#8221;fetch data regardless of data expiry&#8221;)</p>
<p>def parse_args(self):<br />(options, args) = self.parser.parse_args()<br />return (options, args)</p>
<p>def print_help(self):<br />return self.parser.print_help()</p>
<p>class WeatherData:<br />def __init__(self, day_of_week, low, high, condition_code, condition_text, precip, humidity, wind_dir, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_read, bar_desc):<br />self.day_of_week = u&#8221;"+day_of_week<br />self.low = u&#8221;"+low<br />self.high = u&#8221;"+high<br />self.condition_code = u&#8221;"+condition_code<br />self.condition_text = u&#8221;"+condition_text<br />self.precip = u&#8221;"+precip<br />self.humidity = u&#8221;"+humidity<br />self.wind_dir = u&#8221;"+wind_dir<br />self.wind_speed = u&#8221;"+wind_speed<br />self.wind_gusts = u&#8221;"+wind_gusts<br />self.city = u&#8221;"+city<br />self.sunrise = u&#8221;"+sunrise<br />self.sunset = u&#8221;"+sunset<br />self.moon_phase = u&#8221;"+moon_phase<br />self.moon_icon = u&#8221;"+moon_icon<br />self.bar_read = u&#8221;"+bar_read<br />self.bar_desc = u&#8221;"+bar_desc</p>
<p>class WeatherText:</p>
<p>conditions_text = {<br />&#8220;0&#8243;: _(u&#8221;Tornado&#8221;),<br />&#8220;1&#8243;: _(u&#8221;Tropical Storm&#8221;),<br />&#8220;2&#8243;: _(u&#8221;Hurricane&#8221;),<br />&#8220;3&#8243;: _(u&#8221;Severe Thunderstorms&#8221;),<br />&#8220;4&#8243;: _(u&#8221;Thunderstorms&#8221;),<br />&#8220;5&#8243;: _(u&#8221;Mixed Rain and Snow&#8221;),<br />&#8220;6&#8243;: _(u&#8221;Mixed Rain and Sleet&#8221;),<br />&#8220;7&#8243;: _(u&#8221;Mixed Precipitation&#8221;),<br />&#8220;8&#8243;: _(u&#8221;Freezing Drizzle&#8221;),<br />&#8220;9&#8243;: _(u&#8221;Drizzle&#8221;),<br />&#8220;10&#8243;: _(u&#8221;Freezing Rain&#8221;),<br />&#8220;11&#8243;: _(u&#8221;Showers&#8221;),<br />&#8220;12&#8243;: _(u&#8221;Showers&#8221;),<br />&#8220;13&#8243;: _(u&#8221;Snow Flurries&#8221;),<br />&#8220;14&#8243;: _(u&#8221;Light Snow Showers&#8221;),<br />&#8220;15&#8243;: _(u&#8221;Blowing Snow&#8221;),<br />&#8220;16&#8243;: _(u&#8221;Snow&#8221;),<br />&#8220;17&#8243;: _(u&#8221;Hail&#8221;),<br />&#8220;18&#8243;: _(u&#8221;Sleet&#8221;),<br />&#8220;19&#8243;: _(u&#8221;Dust&#8221;),<br />&#8220;20&#8243;: _(u&#8221;Fog&#8221;),<br />&#8220;21&#8243;: _(u&#8221;Haze&#8221;),<br />&#8220;22&#8243;: _(u&#8221;Smoke&#8221;),<br />&#8220;23&#8243;: _(u&#8221;Blustery&#8221;),<br />&#8220;24&#8243;: _(u&#8221;Windy&#8221;),<br />&#8220;25&#8243;: _(u&#8221;Cold&#8221;),<br />&#8220;26&#8243;: _(u&#8221;Cloudy&#8221;),<br />&#8220;27&#8243;: _(u&#8221;Mostly Cloudy&#8221;),<br />&#8220;28&#8243;: _(u&#8221;Mostly Cloudy&#8221;),<br />&#8220;29&#8243;: _(u&#8221;Partly Cloudy&#8221;),<br />&#8220;30&#8243;: _(u&#8221;Partly Cloudy&#8221;),<br />&#8220;31&#8243;: _(u&#8221;Clear&#8221;),<br />&#8220;32&#8243;: _(u&#8221;Clear&#8221;),<br />&#8220;33&#8243;: _(u&#8221;Fair&#8221;),<br />&#8220;34&#8243;: _(u&#8221;Fair&#8221;),<br />&#8220;35&#8243;: _(u&#8221;Mixed Rain and Hail&#8221;),<br />&#8220;36&#8243;: _(u&#8221;Hot&#8221;),<br />&#8220;37&#8243;: _(u&#8221;Isolated Thunderstorms&#8221;),<br />&#8220;38&#8243;: _(u&#8221;Scattered Thunderstorms&#8221;),<br />&#8220;39&#8243;: _(u&#8221;Scattered Thunderstorms&#8221;),<br />&#8220;40&#8243;: _(u&#8221;Scattered Showers&#8221;),<br />&#8220;41&#8243;: _(u&#8221;Heavy Snow&#8221;),<br />&#8220;42&#8243;: _(u&#8221;Scattered Snow Showers&#8221;),<br />&#8220;43&#8243;: _(u&#8221;Heavy Snow&#8221;),<br />&#8220;44&#8243;: _(u&#8221;Partly Cloudy&#8221;),<br />&#8220;45&#8243;: _(u&#8221;Thunder Showers&#8221;),<br />&#8220;46&#8243;: _(u&#8221;Snow Showers&#8221;),<br />&#8220;47&#8243;: _(u&#8221;Isolated Thunderstorms&#8221;),<br />&#8220;na&#8221;: _(u&#8221;N/A&#8221;),<br />&#8220;-&#8221;: _(u&#8221;N/A&#8221;)<br />}</p>
<p>conditions_text_es = {<br />&#8220;0&#8243;: _(u&#8221;Tornado&#8221;),<br />&#8220;1&#8243;: _(u&#8221;Tormenta Tropical&#8221;),<br />&#8220;2&#8243;: _(u&#8221;Huracá¡n&#8221;),<br />&#8220;3&#8243;: _(u&#8221;Tormentas Fuertes&#8221;),<br />&#8220;4&#8243;: _(u&#8221;Tormentas&#8221;),<br />&#8220;5&#8243;: _(u&#8221;Lluvia y Nieve Mezclada&#8221;),<br />&#8220;6&#8243;: _(u&#8221;Lluvia y Aguanieve Mezclada&#8221;),<br />&#8220;7&#8243;: _(u&#8221;Aguanieve&#8221;),<br />&#8220;8&#8243;: _(u&#8221;Llovizna Helada&#8221;),<br />&#8220;9&#8243;: _(u&#8221;Llovizna&#8221;),<br />&#8220;10&#8243;: _(u&#8221;Lluvia Engelante&#8221;), # o lluvia helada<br />&#8220;11&#8243;: _(u&#8221;Chaparrones&#8221;),<br />&#8220;12&#8243;: _(u&#8221;Chaparrones&#8221;),<br />&#8220;13&#8243;: _(u&#8221;Nieve Ligera&#8221;),<br />&#8220;14&#8243;: _(u&#8221;Nieve Ligera&#8221;),<br />&#8220;15&#8243;: _(u&#8221;Ventisca de Nieve&#8221;),<br />&#8220;16&#8243;: _(u&#8221;Nieve&#8221;),<br />&#8220;17&#8243;: _(u&#8221;Granizo&#8221;),<br />&#8220;18&#8243;: _(u&#8221;Aguanieve&#8221;),<br />&#8220;19&#8243;: _(u&#8221;Polvo&#8221;),<br />&#8220;20&#8243;: _(u&#8221;Niebla&#8221;),<br />&#8220;21&#8243;: _(u&#8221;Bruma&#8221;),<br />&#8220;22&#8243;: _(u&#8221;Humo&#8221;),<br />&#8220;23&#8243;: _(u&#8221;Tempestad&#8221;),<br />&#8220;24&#8243;: _(u&#8221;Ventoso&#8221;),<br />&#8220;25&#8243;: _(u&#8221;Fráo&#8221;),<br />&#8220;26&#8243;: _(u&#8221;Muy Nublado&#8221;),<br />&#8220;27&#8243;: _(u&#8221;Principalmente Nublado&#8221;),<br />&#8220;28&#8243;: _(u&#8221;Principalmente Nublado&#8221;),<br />&#8220;29&#8243;: _(u&#8221;Parcialmente Nublado&#8221;),<br />&#8220;30&#8243;: _(u&#8221;Parcialmente Nublado&#8221;),<br />&#8220;31&#8243;: _(u&#8221;Despejado&#8221;),<br />&#8220;32&#8243;: _(u&#8221;Despejado&#8221;),<br />&#8220;33&#8243;: _(u&#8221;Algo Nublado&#8221;),<br />&#8220;34&#8243;: _(u&#8221;Algo Nublado&#8221;),<br />&#8220;35&#8243;: _(u&#8221;Lluvia con Granizo&#8221;),<br />&#8220;36&#8243;: _(u&#8221;Calor&#8221;),<br />&#8220;37&#8243;: _(u&#8221;Tormentas Aisladas&#8221;),<br />&#8220;38&#8243;: _(u&#8221;Tormentas Dispersas&#8221;),<br />&#8220;39&#8243;: _(u&#8221;Tormentas Dispersas&#8221;),<br />&#8220;40&#8243;: _(u&#8221;Chubascos Dispersos&#8221;),<br />&#8220;41&#8243;: _(u&#8221;Nieve Pesada&#8221;),<br />&#8220;42&#8243;: _(u&#8221;Nevadas Débiles y Dispersas&#8221;),<br />&#8220;43&#8243;: _(u&#8221;Nevada Intensa&#8221;),<br />&#8220;44&#8243;: _(u&#8221;Nubes Dispersas&#8221;),<br />&#8220;45&#8243;: _(u&#8221;Tormentas&#8221;),<br />&#8220;46&#8243;: _(u&#8221;Nevadas Dispersas&#8221;),<br />&#8220;47&#8243;: _(u&#8221;Tormentas Aisladas&#8221;),<br />&#8220;na&#8221;: _(u&#8221;N/A&#8221;),<br />&#8220;-&#8221;: _(u&#8221;N/A&#8221;)<br />}</p>
<p>conditions_text_fr = {<br />&#8220;0&#8243;: _(u&#8221;Tornade&#8221;),<br />&#8220;1&#8243;: _(u&#8221;Tempête Tropicale&#8221;),<br />&#8220;2&#8243;: _(u&#8221;Ouragan&#8221;),<br />&#8220;3&#8243;: _(u&#8221;Orages Violents&#8221;),<br />&#8220;4&#8243;: _(u&#8221;Orageux&#8221;),<br />&#8220;5&#8243;: _(u&#8221;Pluie et Neige&#8221;),<br />&#8220;6&#8243;: _(u&#8221;Pluie et Neige Mouillée&#8221;),<br />&#8220;7&#8243;: _(u&#8221;Variable avec averses&#8221;),<br />&#8220;8&#8243;: _(u&#8221;Bruine Givrante&#8221;),<br />&#8220;9&#8243;: _(u&#8221;Bruine&#8221;),<br />&#8220;10&#8243;: _(u&#8221;Pluie Glacante&#8221;),<br />&#8220;11&#8243;: _(u&#8221;Averses&#8221;),<br />&#8220;12&#8243;: _(u&#8221;Averses&#8221;),<br />&#8220;13&#8243;: _(u&#8221;Légère Neige&#8221;),<br />&#8220;14&#8243;: _(u&#8221;Forte Neige&#8221;),<br />&#8220;15&#8243;: _(u&#8221;Tempête de Neige&#8221;),<br />&#8220;16&#8243;: _(u&#8221;Neige&#8221;),<br />&#8220;17&#8243;: _(u&#8221;Grêle&#8221;),<br />&#8220;18&#8243;: _(u&#8221;Pluie/Neige&#8221;),<br />&#8220;19&#8243;: _(u&#8221;Nuage de poussière&#8221;),<br />&#8220;20&#8243;: _(u&#8221;Brouillard&#8221;),<br />&#8220;21&#8243;: _(u&#8221;Brume&#8221;),<br />&#8220;22&#8243;: _(u&#8221;Fumée&#8221;),<br />&#8220;23&#8243;: _(u&#8221;Tres Venteux&#8221;),<br />&#8220;24&#8243;: _(u&#8221;Venteux&#8221;),<br />&#8220;25&#8243;: _(u&#8221;Froid&#8221;),<br />&#8220;26&#8243;: _(u&#8221;Nuageux&#8221;),<br />&#8220;27&#8243;: _(u&#8221;Tres Nuageux&#8221;),<br />&#8220;28&#8243;: _(u&#8221;Tres Nuageux&#8221;),<br />&#8220;29&#8243;: _(u&#8221;Nuages Disséminés&#8221;),<br />&#8220;30&#8243;: _(u&#8221;Nuages Disséminés&#8221;),<br />&#8220;31&#8243;: _(u&#8221;Beau&#8221;),<br />&#8220;32&#8243;: _(u&#8221;Beau&#8221;),<br />&#8220;33&#8243;: _(u&#8221;Belles Éclaircies&#8221;),<br />&#8220;34&#8243;: _(u&#8221;Belles Éclaircies&#8221;),<br />&#8220;35&#8243;: _(u&#8221;Pluie avec Grêle&#8221;),<br />&#8220;36&#8243;: _(u&#8221;Chaleur&#8221;),<br />&#8220;37&#8243;: _(u&#8221;Orages Isolés&#8221;),<br />&#8220;38&#8243;: _(u&#8221;Orages Localisés&#8221;),<br />&#8220;39&#8243;: _(u&#8221;Orages Localisés&#8221;),<br />&#8220;40&#8243;: _(u&#8221;Averses Localisées&#8221;),<br />&#8220;41&#8243;: _(u&#8221;Neige Lourde&#8221;),<br />&#8220;42&#8243;: _(u&#8221;Tempête de Neige Localisées&#8221;),<br />&#8220;43&#8243;: _(u&#8221;Neige Lourde&#8221;),<br />&#8220;44&#8243;: _(u&#8221;Nuages Disséminés&#8221;),<br />&#8220;45&#8243;: _(u&#8221;Orages&#8221;),<br />&#8220;46&#8243;: _(u&#8221;Tempête de Neige&#8221;),<br />&#8220;47&#8243;: _(u&#8221;Orages Isolés&#8221;),<br />&#8220;na&#8221;: _(u&#8221;N/A&#8221;),<br />&#8220;-&#8221;: _(u&#8221;N/A&#8221;)<br />}</p>
<p>conditions_weather_font = {<br />&#8220;0&#8243;: _(u&#8221;W&#8221;),<br />&#8220;1&#8243;: _(u&#8221;V&#8221;),<br />&#8220;2&#8243;: _(u&#8221;W&#8221;),<br />&#8220;3&#8243;: _(u&#8221;s&#8221;),<br />&#8220;4&#8243;: _(u&#8221;p&#8221;),<br />&#8220;5&#8243;: _(u&#8221;k&#8221;),<br />&#8220;6&#8243;: _(u&#8221;k&#8221;),<br />&#8220;7&#8243;: _(u&#8221;g&#8221;),<br />&#8220;8&#8243;: _(u&#8221;g&#8221;),<br />&#8220;9&#8243;: _(u&#8221;g&#8221;),<br />&#8220;10&#8243;: _(u&#8221;h&#8221;),<br />&#8220;11&#8243;: _(u&#8221;g&#8221;),<br />&#8220;12&#8243;: _(u&#8221;g&#8221;),<br />&#8220;13&#8243;: _(u&#8221;k&#8221;),<br />&#8220;14&#8243;: _(u&#8221;k&#8221;),<br />&#8220;15&#8243;: _(u&#8221;k&#8221;),<br />&#8220;16&#8243;: _(u&#8221;k&#8221;),<br />&#8220;17&#8243;: _(u&#8221;k&#8221;),<br />&#8220;18&#8243;: _(u&#8221;k&#8221;),<br />&#8220;19&#8243;: _(u&#8221;e&#8221;),<br />&#8220;20&#8243;: _(u&#8221;e&#8221;),<br />&#8220;21&#8243;: _(u&#8221;a&#8221;),<br />&#8220;22&#8243;: _(u&#8221;d&#8221;),<br />&#8220;23&#8243;: _(u&#8221;d&#8221;),<br />&#8220;24&#8243;: _(u&#8221;d&#8221;),<br />&#8220;25&#8243;: _(u&#8221;d&#8221;),<br />&#8220;26&#8243;: _(u&#8221;e&#8221;),<br />&#8220;27&#8243;: _(u&#8221;e&#8221;),<br />&#8220;28&#8243;: _(u&#8221;e&#8221;),<br />&#8220;29&#8243;: _(u&#8221;c&#8221;),<br />&#8220;30&#8243;: _(u&#8221;c&#8221;),<br />&#8220;31&#8243;: _(u&#8221;a&#8221;),<br />&#8220;32&#8243;: _(u&#8221;a&#8221;),<br />&#8220;33&#8243;: _(u&#8221;b&#8221;),<br />&#8220;34&#8243;: _(u&#8221;b&#8221;),<br />&#8220;35&#8243;: _(u&#8221;k&#8221;),<br />&#8220;36&#8243;: _(u&#8221;a&#8221;),<br />&#8220;37&#8243;: _(u&#8221;f&#8221;),<br />&#8220;38&#8243;: _(u&#8221;f&#8221;),<br />&#8220;39&#8243;: _(u&#8221;f&#8221;),<br />&#8220;40&#8243;: _(u&#8221;g&#8221;),<br />&#8220;41&#8243;: _(u&#8221;k&#8221;),<br />&#8220;42&#8243;: _(u&#8221;k&#8221;),<br />&#8220;43&#8243;: _(u&#8221;k&#8221;),<br />&#8220;44&#8243;: _(u&#8221;b&#8221;),<br />&#8220;45&#8243;: _(u&#8221;g&#8221;),<br />&#8220;46&#8243;: _(u&#8221;k&#8221;),<br />&#8220;47&#8243;: _(u&#8221;f&#8221;),<br />&#8220;na&#8221;: _(u&#8221;"),<br />&#8220;-&#8221;: _(u&#8221;")<br />}</p>
<p>conditions_moon_font = {<br />&#8220;0&#8243;: _(u&#8221;1&#8243;),<br />&#8220;1&#8243;: _(u&#8221;N&#8221;),<br />&#8220;2&#8243;: _(u&#8221;O&#8221;),<br />&#8220;3&#8243;: _(u&#8221;P&#8221;),<br />&#8220;4&#8243;: _(u&#8221;Q&#8221;),<br />&#8220;5&#8243;: _(u&#8221;R&#8221;),<br />&#8220;6&#8243;: _(u&#8221;S&#8221;),<br />&#8220;7&#8243;: _(u&#8221;T&#8221;),<br />&#8220;8&#8243;: _(u&#8221;U&#8221;),<br />&#8220;9&#8243;: _(u&#8221;V&#8221;),<br />&#8220;10&#8243;: _(u&#8221;W&#8221;),<br />&#8220;11&#8243;: _(u&#8221;X&#8221;),<br />&#8220;12&#8243;: _(u&#8221;Y&#8221;),<br />&#8220;13&#8243;: _(u&#8221;Z&#8221;),<br />&#8220;14&#8243;: _(u&#8221;0&#8243;),<br />&#8220;15&#8243;: _(u&#8221;0&#8243;),<br />&#8220;16&#8243;: _(u&#8221;A&#8221;),<br />&#8220;17&#8243;: _(u&#8221;B&#8221;),<br />&#8220;18&#8243;: _(u&#8221;C&#8221;),<br />&#8220;19&#8243;: _(u&#8221;D&#8221;),<br />&#8220;20&#8243;: _(u&#8221;E&#8221;),<br />&#8220;21&#8243;: _(u&#8221;F&#8221;),<br />&#8220;22&#8243;: _(u&#8221;G&#8221;),<br />&#8220;23&#8243;: _(u&#8221;H&#8221;),<br />&#8220;24&#8243;: _(u&#8221;I&#8221;),<br />&#8220;25&#8243;: _(u&#8221;J&#8221;),<br />&#8220;26&#8243;: _(u&#8221;K&#8221;),<br />&#8220;27&#8243;: _(u&#8221;L&#8221;),<br />&#8220;28&#8243;: _(u&#8221;M&#8221;),<br />&#8220;29&#8243;: _(u&#8221;1&#8243;),<br />&#8220;na&#8221;: _(u&#8221;"),<br />&#8220;-&#8221;: _(u&#8221;")<br />}</p>
<p>day_of_week = {<br />&#8220;Today&#8221;: _(u&#8221;Today&#8221;),<br />&#8220;Monday&#8221;: _(u&#8221;Monday&#8221;),<br />&#8220;Tuesday&#8221;: _(u&#8221;Tuesday&#8221;),<br />&#8220;Wednesday&#8221;: _(u&#8221;Wednesday&#8221;),<br />&#8220;Thursday&#8221;: _(u&#8221;Thursday&#8221;),<br />&#8220;Friday&#8221;: _(u&#8221;Friday&#8221;),<br />&#8220;Saturday&#8221;: _(u&#8221;Saturday&#8221;),<br />&#8220;Sunday&#8221;: _(u&#8221;Sunday&#8221;)<br />}</p>
<p>day_of_week_short = {<br />&#8220;Today&#8221;: _(u&#8221;Now&#8221;),<br />&#8220;Monday&#8221;: _(u&#8221;Mon&#8221;),<br />&#8220;Tuesday&#8221;: _(u&#8221;Tue&#8221;),<br />&#8220;Wednesday&#8221;: _(u&#8221;Wed&#8221;),<br />&#8220;Thursday&#8221;: _(u&#8221;Thu&#8221;),<br />&#8220;Friday&#8221;: _(u&#8221;Fri&#8221;),<br />&#8220;Saturday&#8221;: _(u&#8221;Sat&#8221;),<br />&#8220;Sunday&#8221;: _(u&#8221;Sun&#8221;)<br />}</p>
<p>day_of_week_es = {<br />&#8220;Today&#8221;: _(u&#8221;hoy&#8221;),<br />&#8220;Monday&#8221;: _(u&#8221;lunes&#8221;),<br />&#8220;Tuesday&#8221;: _(u&#8221;martes&#8221;),<br />&#8220;Wednesday&#8221;: _(u&#8221;miércoles&#8221;),<br />&#8220;Thursday&#8221;: _(u&#8221;jueves&#8221;),<br />&#8220;Friday&#8221;: _(u&#8221;viernes&#8221;),<br />&#8220;Saturday&#8221;: _(u&#8221;sábado&#8221;),<br />&#8220;Sunday&#8221;: _(u&#8221;domingo&#8221;)<br />}</p>
<p>day_of_week_short_es = {<br />&#8220;Today&#8221;: _(u&#8221;hoy&#8221;),<br />&#8220;Monday&#8221;: _(u&#8221;lun&#8221;),<br />&#8220;Tuesday&#8221;: _(u&#8221;mar&#8221;),<br />&#8220;Wednesday&#8221;: _(u&#8221;mié&#8221;),<br />&#8220;Thursday&#8221;: _(u&#8221;jue&#8221;),<br />&#8220;Friday&#8221;: _(u&#8221;vie&#8221;),<br />&#8220;Saturday&#8221;: _(u&#8221;sáb&#8221;),<br />&#8220;Sunday&#8221;: _(u&#8221;dom&#8221;)<br />}</p>
<p>day_of_week_fr = {<br />&#8220;Today&#8221;: _(u&#8221;Aujourd&#8217;hui&#8221;),<br />&#8220;Monday&#8221;: _(u&#8221;Lundi&#8221;),<br />&#8220;Tuesday&#8221;: _(u&#8221;Mardi&#8221;),<br />&#8220;Wednesday&#8221;: _(u&#8221;Mercredi&#8221;),<br />&#8220;Thursday&#8221;: _(u&#8221;Jeudi&#8221;),<br />&#8220;Friday&#8221;: _(u&#8221;Vendredi&#8221;),<br />&#8220;Saturday&#8221;: _(u&#8221;Samedi&#8221;),<br />&#8220;Sunday&#8221;: _(u&#8221;Dimanche&#8221;)<br />}</p>
<p>day_of_week_short_fr = {<br />&#8220;Today&#8221;: _(u&#8221;Auj&#8221;),<br />&#8220;Monday&#8221;: _(u&#8221;Lun&#8221;),<br />&#8220;Tuesday&#8221;: _(u&#8221;Mar&#8221;),<br />&#8220;Wednesday&#8221;: _(u&#8221;Mer&#8221;),<br />&#8220;Thursday&#8221;: _(u&#8221;Jeu&#8221;),<br />&#8220;Friday&#8221;: _(u&#8221;Ven&#8221;),<br />&#8220;Saturday&#8221;: _(u&#8221;Sam&#8221;),<br />&#8220;Sunday&#8221;: _(u&#8221;Dim&#8221;)<br />}</p>
<p>bearing_arrow_font = {<br />&#8220;N&#8221;: _(u&#8221;i&#8221;),<br />&#8220;NNE&#8221;: _(u&#8221;j&#8221;),<br />&#8220;NE&#8221;: _(u&#8221;k&#8221;),<br />&#8220;ENE&#8221;: _(u&#8221;l&#8221;),<br />&#8220;E&#8221;: _(u&#8221;m&#8221;),<br />&#8220;ESE&#8221;: _(u&#8221;n&#8221;),<br />&#8220;SE&#8221;: _(u&#8221;o&#8221;),<br />&#8220;SSE&#8221;: _(u&#8221;p&#8221;),<br />&#8220;S&#8221;: _(u&#8221;a&#8221;),<br />&#8220;SSW&#8221;: _(u&#8221;b&#8221;),<br />&#8220;SW&#8221;: _(u&#8221;c&#8221;),<br />&#8220;WSW&#8221;: _(u&#8221;d&#8221;),<br />&#8220;W&#8221;: _(u&#8221;e&#8221;),<br />&#8220;WNW&#8221;: _(u&#8221;f&#8221;),<br />&#8220;NW&#8221;: _(u&#8221;g&#8221;),<br />&#8220;NNW&#8221;: _(u&#8221;h&#8221;),<br />&#8220;N/A&#8221;: _(u&#8221; &#8220;)<br />}</p>
<p>bearing_text_es = {<br />&#8220;N&#8221;: _(u&#8221;N&#8221;),<br />&#8220;NNE&#8221;: _(u&#8221;NNE&#8221;),<br />&#8220;NE&#8221;: _(u&#8221;NE&#8221;),<br />&#8220;ENE&#8221;: _(u&#8221;ENE&#8221;),<br />&#8220;E&#8221;: _(u&#8221;E&#8221;),<br />&#8220;ESE&#8221;: _(u&#8221;ESE&#8221;),<br />&#8220;SE&#8221;: _(u&#8221;SE&#8221;),<br />&#8220;SSE&#8221;: _(u&#8221;SSE&#8221;),<br />&#8220;S&#8221;: _(u&#8221;S&#8221;),<br />&#8220;SSW&#8221;: _(u&#8221;SSO&#8221;),<br />&#8220;SW&#8221;: _(u&#8221;SO&#8221;),<br />&#8220;WSW&#8221;: _(u&#8221;WOW&#8221;),<br />&#8220;W&#8221;: _(u&#8221;O&#8221;),<br />&#8220;WNW&#8221;: _(u&#8221;ONO&#8221;),<br />&#8220;NW&#8221;: _(u&#8221;NO&#8221;),<br />&#8220;NNW&#8221;: _(u&#8221;NNO&#8221;),<br />&#8220;N/A&#8221;: _(u&#8221;N\A&#8221;)<br />}</p>
<p>bearing_text_fr = {<br />&#8220;N&#8221;: _(u&#8221;N&#8221;),<br />&#8220;NNE&#8221;: _(u&#8221;NNE&#8221;),<br />&#8220;NE&#8221;: _(u&#8221;NE&#8221;),<br />&#8220;ENE&#8221;: _(u&#8221;ENE&#8221;),<br />&#8220;E&#8221;: _(u&#8221;E&#8221;),<br />&#8220;ESE&#8221;: _(u&#8221;ESE&#8221;),<br />&#8220;SE&#8221;: _(u&#8221;SE&#8221;),<br />&#8220;SSE&#8221;: _(u&#8221;SSE&#8221;),<br />&#8220;S&#8221;: _(u&#8221;S&#8221;),<br />&#8220;SSW&#8221;: _(u&#8221;SSO&#8221;),<br />&#8220;SW&#8221;: _(u&#8221;SO&#8221;),<br />&#8220;WSW&#8221;: _(u&#8221;WOW&#8221;),<br />&#8220;W&#8221;: _(u&#8221;O&#8221;),<br />&#8220;WNW&#8221;: _(u&#8221;ONO&#8221;),<br />&#8220;NW&#8221;: _(u&#8221;NO&#8221;),<br />&#8220;NNW&#8221;: _(u&#8221;NNO&#8221;),<br />&#8220;N/A&#8221;: _(u&#8221;N\A&#8221;)<br />}</p>
<p>class GlobalWeather:</p>
<p>current_conditions = []<br />day_forecast = []<br />night_forecast = []</p>
<p>locale = &#8220;en&#8221;</p>
<p>options = None<br />weatherxmldoc = &#8220;&#8221;</p>
<p>TEMP_FILEPATH_CURRENT = &#8220;/tmp/conkyForecast-c-LOCATION.pkl&#8221;<br />TEMP_FILEPATH_DAYFORECAST = &#8220;/tmp/conkyForecast-df-LOCATION.pkl&#8221;<br />TEMP_FILEPATH_NIGHTFORECAST = &#8220;/tmp/conkyForecast-nf-LOCATION.pkl&#8221;<br />EXPIRY_MINUTES = 30<br />DEFAULT_SPACING = u&#8221; &#8220;</p>
<p>def __init__(self,options):</p>
<p>self.options = options</p>
<p>if self.options.locale == None:<br />try:<br />#self.locale = locale.getdefaultlocale()[0][0:2]<br />self.locale = &#8220;es&#8221; #uncomment this line to force Spanish locale<br />#self.locale = &#8220;fr&#8221; #uncomment this line to force French locale<br />except:<br />print &#8220;locale not set&#8221;<br />else:<br />#self.locale = self.options.locale<br />self.locale = &#8220;es&#8221; #uncomment this line to force Spanish locale<br />#self.locale = &#8220;fr&#8221; #uncomment this line to force French locale</p>
<p>if self.options.verbose == True:<br />print &gt;&gt; sys.stdout, &#8220;locale set to &#8220;,self.locale</p>
<p>def getText(self,nodelist):<br />rc = &#8220;&#8221;<br />for node in nodelist:<br />if node.nodeType == node.TEXT_NODE:<br />rc = rc + node.data<br />return rc</p>
<p>def getSpaces(self,spaces):<br />string = u&#8221;"<br />if spaces == None:<br />string = self.DEFAULT_SPACING<br />else:<br />for i in range(0, spaces+1):<br />string = string + u&#8221; &#8220;<br />return string</p>
<p>def isNumeric(self,string):<br />try:<br />dummy = float(string)<br />return True<br />except:<br />return False</p>
<p>def isConnectionAvailable(self):<br /># ensure we can access weather.com&#8217;s server by opening the url<br />try:<br />usock = urllib2.urlopen(&#8216;http://xoap.weather.com&#8217;)<br />usock.close()<br />return True<br />except:<br />return False</p>
<p>def getBearingText(self,bearing):<br />bearing = float(bearing)<br />if bearing &lt; 11.25:<br />return u&#8221;N&#8221;<br />elif bearing &lt; 33.75:<br />return u&#8221;NNE&#8221;<br />elif bearing &lt; 56.25:<br />return u&#8221;NE&#8221;<br />elif bearing &lt; 78.75:<br />return u&#8221;ENE&#8221;<br />elif bearing &lt; 101.25:<br />return u&#8221;E&#8221;<br />elif bearing &lt; 123.75:<br />return u&#8221;ESE&#8221;<br />elif bearing &lt; 146.25:<br />return u&#8221;SE&#8221;<br />elif bearing &lt; 168.75:<br />return u&#8221;SSE&#8221;<br />elif bearing &lt; 191.25:<br />return u&#8221;S&#8221;<br />elif bearing &lt; 213.75:<br />return u&#8221;SSW&#8221;<br />elif bearing &lt; 236.25:<br />return u&#8221;SW&#8221;<br />elif bearing &lt; 258.75:<br />return u&#8221;WSW&#8221;<br />elif bearing &lt; 281.25:<br />return u&#8221;W&#8221;<br />elif bearing &lt; 303.75:<br />return u&#8221;WNW&#8221;<br />elif bearing &lt; 326.25:<br />return u&#8221;NW&#8221;<br />elif bearing &lt; 348.75:<br />return u&#8221;NNW&#8221;<br />else:<br />return &#8220;N/A&#8221;</p>
<p>def convertCelsiusToFahrenheit(self,temp):<br />return str(int(floor(((float(temp)*9.0)/5.0)+32)))</p>
<p>def convertKilometresToMiles(self,dist):<br />return str(int(floor(float(dist)*0.621371192)))</p>
<p>def convertMillibarsToInches(self,mb):<br />return str(int(floor(float(mb)/33.8582)))</p>
<p>def getTemplateList(self,template):</p>
<p>templatelist = []</p>
<p>for template_part in template.split(&#8220;{&#8220;):<br />if template_part != &#8220;&#8221;:<br />for template_part in template_part.split(&#8220;}&#8221;):<br />if template_part != &#8220;&#8221;:<br />templatelist.append(u&#8221;"+template_part)</p>
<p>return templatelist</p>
<p>def getOutputText(self,datatype,startday,endday,night,shortweekday,imperial,hideunits,spaces):<br />#try:<br />output = u&#8221;"</p>
<p># define current units for output<br />if hideunits == False:<br />if imperial == False:<br />tempunit = u&#8221;°C&#8221;<br />speedunit = u&#8221;kph&#8221;<br />pressureunit = u&#8221;mb&#8221;<br />else:<br />tempunit = u&#8221;°F&#8221;<br />speedunit = u&#8221;mph&#8221;<br />pressureunit = u&#8221;in&#8221;<br />else:<br />tempunit = u&#8221;°&#8221;<br />speedunit = u&#8221;"<br />pressureunit = u&#8221;"</p>
<p>if startday == None: # current conditions</p>
<p>if datatype == &#8220;DW&#8221;:<br />if self.locale == &#8220;es&#8221;:<br />if shortweekday == True:<br />output = WeatherText.day_of_week_short_es[self.current_conditions[0].day_of_week]<br />else:<br />output = WeatherText.day_of_week_es[self.current_conditions[0].day_of_week]<br />elif self.locale == &#8220;fr&#8221;:<br />if shortweekday == True:<br />output = WeatherText.day_of_week_short_fr[self.current_conditions[0].day_of_week]<br />else:<br />output = WeatherText.day_of_week_fr[self.current_conditions[0].day_of_week]<br />else:<br />if shortweekday == True:<br />output = WeatherText.day_of_week_short[self.current_conditions[0].day_of_week]<br />else:<br />output = WeatherText.day_of_week[self.current_conditions[0].day_of_week]<br />elif datatype == &#8220;WF&#8221;: # weather font<br />output = WeatherText.conditions_weather_font[self.current_conditions[0].condition_code]<br />elif datatype == &#8220;LT&#8221;:<br />string = self.current_conditions[0].low<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertCelsiusToFahrenheit(string)<br />string = string + tempunit<br />output = string<br />elif datatype == &#8220;HT&#8221;:<br />string = self.current_conditions[0].high<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertCelsiusToFahrenheit(string)<br />string = string + tempunit<br />output = string<br />elif datatype == &#8220;CC&#8221;:<br />if self.locale == &#8220;es&#8221;:<br />output = WeatherText.conditions_text_es[self.current_conditions[0].condition_code]<br />elif self.locale == &#8220;fr&#8221;:<br />output = WeatherText.conditions_text_fr[self.current_conditions[0].condition_code]<br />else:<br />output = WeatherText.conditions_text[self.current_conditions[0].condition_code]<br />elif datatype == &#8220;CT&#8221;:<br />output = self.current_conditions[0].condition_text<br />elif datatype == &#8220;PC&#8221;:<br />string = self.current_conditions[0].precip<br />if self.isNumeric(string) == True:<br />string = string + u&#8221;%&#8221;<br />output = string<br />elif datatype == &#8220;HM&#8221;:<br />string = self.current_conditions[0].humidity<br />if self.isNumeric(string) == True:<br />string = string + u&#8221;%&#8221;<br />output = string<br />elif datatype == &#8220;WD&#8221;:<br />string = self.current_conditions[0].wind_dir<br />if self.isNumeric(string) == True:<br />string = self.getBearingText(string)</p>
<p>if self.locale == &#8220;es&#8221;:<br />output = WeatherText.bearing_text_es[string]<br />elif self.locale == &#8220;fr&#8221;:<br />output = WeatherText.bearing_text_fr[string]<br />else:<br />output = string</p>
<p>elif datatype == &#8220;BF&#8221;:<br />string = self.current_conditions[0].wind_dir<br />if self.isNumeric(string) == True:<br />string = WeatherText.bearing_arrow_font[self.getBearingText(string)]<br />output = string<br />elif datatype == &#8220;WS&#8221;:<br />string = self.current_conditions[0].wind_speed<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertKilometresToMiles(string)<br />string = string + speedunit<br />output = string<br />elif datatype == &#8220;WG&#8221;:<br />string = self.current_conditions[0].wind_gusts<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertKilometresToMiles(string)<br />string = string + speedunit<br />output = string<br />elif datatype == &#8220;CN&#8221;:<br />output = self.current_conditions[0].city<br />elif datatype == &#8220;SR&#8221;:<br />output = self.current_conditions[0].sunrise<br />elif datatype == &#8220;SS&#8221;:<br />output = self.current_conditions[0].sunset<br />elif datatype == &#8220;MP&#8221;:<br />output = self.current_conditions[0].moon_phase<br />elif datatype == &#8220;MF&#8221;:<br />output = WeatherText.conditions_moon_font[self.current_conditions[0].moon_icon]<br />elif datatype == &#8220;BR&#8221;:<br />string = self.current_conditions[0].bar_read<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertMillibarsToInches(string)<br />string = string + pressureunit<br />output = string<br />elif datatype == &#8220;BD&#8221;:<br />output = self.current_conditions[0].bar_desc<br />else:<br />output = &#8220;\nERROR:Unknown data type requested&#8221;</p>
<p>else: # forecast data</p>
<p>if endday == None: # if no endday was set use startday<br />endday = startday</p>
<p>if night == True: # night forecast required</p>
<p>for day_number in range(startday, endday+1):</p>
<p>if datatype == &#8220;DW&#8221;:<br />if self.locale == &#8220;es&#8221;:<br />if shortweekday == True:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_short_es[self.night_forecast[day_number].day_of_week]<br />else:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_es[self.night_forecast[day_number].day_of_week]<br />elif self.locale == &#8220;fr&#8221;:<br />if shortweekday == True:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_short_fr[self.night_forecast[day_number].day_of_week]<br />else:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_fr[self.night_forecast[day_number].day_of_week]<br />else:<br />if shortweekday == True:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_short[self.night_forecast[day_number].day_of_week]<br />else:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week[self.night_forecast[day_number].day_of_week]<br />elif datatype == &#8220;WF&#8221;: # weather font<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_weather_font[self.night_forecast[day_number].condition_code]<br />elif datatype == &#8220;LT&#8221;:<br />string = self.night_forecast[day_number].low<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertCelsiusToFahrenheit(string)<br />string = string + tempunit<br />output = output + self.getSpaces(spaces) + string</p>
<p>elif datatype == &#8220;HT&#8221;:<br />string = self.night_forecast[day_number].high<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertCelsiusToFahrenheit(string)<br />string = string + tempunit<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;CC&#8221;:<br />if self.locale == &#8220;es&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_text_es[self.night_forecast[day_number].condition_code]<br />elif self.locale == &#8220;fr&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_text_fr[self.night_forecast[day_number].condition_code]<br />else:<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_text[self.night_forecast[day_number].condition_code]<br />elif datatype == &#8220;CT&#8221;:<br />output = output + self.getSpaces(spaces) + self.night_forecast[day_number].condition_text<br />elif datatype == &#8220;PC&#8221;:<br />string = self.night_forecast[day_number].precip<br />if self.isNumeric(string) == True:<br />string = string + u&#8221;%&#8221;<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;HM&#8221;:<br />string = self.night_forecast[day_number].humidity<br />if self.isNumeric(string) == True:<br />string = string + u&#8221;%&#8221;<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;WD&#8221;:<br />string = self.night_forecast[day_number].wind_dir<br />if self.locale == &#8220;es&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.bearing_text_es[string]<br />elif self.locale == &#8220;fr&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.bearing_text_fr[string]<br />else:<br />output = output + self.getSpaces(spaces) + string</p>
<p>elif datatype == &#8220;BF&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.bearing_arrow_font[self.night_forecast[day_number].wind_dir]<br />elif datatype == &#8220;WS&#8221;:<br />string = self.night_forecast[day_number].wind_speed<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertKilometresToMiles(string)<br />string = string + speedunit<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;WG&#8221;:<br />string = self.night_forecast[day_number].wind_gusts<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertKilometresToMiles(string)<br />string = string + speedunit<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;CN&#8221;:<br />output = output + self.getSpaces(spaces) + self.night_forecast[day_number].city<br />elif datatype == &#8220;SR&#8221;:<br />output = output + self.getSpaces(spaces) + self.night_forecast[day_number].sunrise<br />elif datatype == &#8220;SS&#8221;:<br />output = output + self.getSpaces(spaces) + self.night_forecast[day_number].sunset<br />elif datatype == &#8220;MP&#8221;:<br />output = output + self.getSpaces(spaces) + self.night_forecast[day_number].moon_phase<br />elif datatype == &#8220;MF&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_moon_font[self.night_forecast[day_number].moon_icon]<br />elif datatype == &#8220;BR&#8221;:<br />output = output + self.getSpaces(spaces) + self.night_forecast[day_number].bar_read<br />elif datatype == &#8220;BD&#8221;:<br />output = output + self.getSpaces(spaces) + self.night_forecast[day_number].bar_desc<br />else:<br />output = &#8220;\nERROR:Unknown data type requested&#8221;<br />break</p>
<p>else: # day forecast wanted</p>
<p>for day_number in range(startday, endday+1):</p>
<p>if datatype == &#8220;DW&#8221;:<br />if self.locale == &#8220;es&#8221;:<br />if shortweekday == True:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_short_es[self.day_forecast[day_number].day_of_week]<br />else:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_es[self.day_forecast[day_number].day_of_week]<br />elif self.locale == &#8220;fr&#8221;:<br />if shortweekday == True:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_short_fr[self.day_forecast[day_number].day_of_week]<br />else:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_fr[self.day_forecast[day_number].day_of_week]<br />else:<br />if shortweekday == True:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week_short[self.day_forecast[day_number].day_of_week]<br />else:<br />output = output + self.getSpaces(spaces) + WeatherText.day_of_week[self.day_forecast[day_number].day_of_week]<br />elif datatype == &#8220;WF&#8221;: # weather font<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_weather_font[self.day_forecast[day_number].condition_code]<br />elif datatype == &#8220;LT&#8221;:<br />string = self.day_forecast[day_number].low<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertCelsiusToFahrenheit(string)<br />string = string + tempunit<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;HT&#8221;:<br />string = self.day_forecast[day_number].high<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertCelsiusToFahrenheit(string)<br />string = string + tempunit<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;CC&#8221;:<br />if self.locale == &#8220;es&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_text_es[self.day_forecast[day_number].condition_code]<br />elif self.locale == &#8220;fr&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_text_fr[self.day_forecast[day_number].condition_code]<br />else:<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_text[self.day_forecast[day_number].condition_code]<br />elif datatype == &#8220;CT&#8221;:<br />output = output + self.getSpaces(spaces) + self.day_forecast[day_number].condition_text<br />elif datatype == &#8220;PC&#8221;:<br />string = self.day_forecast[day_number].precip<br />if self.isNumeric(string) == True:<br />string = string + u&#8221;%&#8221;<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;HM&#8221;:<br />string = self.day_forecast[day_number].humidity<br />if self.isNumeric(string) == True:<br />string = string + u&#8221;%&#8221;<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;WD&#8221;:<br />string = self.day_forecast[day_number].wind_dir</p>
<p>if self.locale == &#8220;es&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.bearing_text_es[string]<br />elif self.locale == &#8220;fr&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.bearing_text_fr[string]<br />else:<br />output = output + self.getSpaces(spaces) + string</p>
<p>elif datatype == &#8220;BF&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.bearing_arrow_font[self.day_forecast[day_number].wind_dir]<br />elif datatype == &#8220;WS&#8221;:<br />string = self.day_forecast[day_number].wind_speed<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertKilometresToMiles(string)<br />string = string + speedunit<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;WG&#8221;:<br />string = self.day_forecast[day_number].wind_gusts<br />if self.isNumeric(string) == True:<br />if imperial == True:<br />string = self.convertKilometresToMiles(string)<br />string = string + speedunit<br />output = output + self.getSpaces(spaces) + string<br />elif datatype == &#8220;CN&#8221;:<br />output = output + self.getSpaces(spaces) + self.day_forecast[day_number].city<br />elif datatype == &#8220;SR&#8221;:<br />output = output + self.getSpaces(spaces) + self.day_forecast[day_number].sunrise<br />elif datatype == &#8220;SS&#8221;:<br />output = output + self.getSpaces(spaces) + self.day_forecast[day_number].sunset<br />elif datatype == &#8220;MP&#8221;:<br />output = output + self.getSpaces(spaces) + self.day_forecast[day_number].moon_phase<br />elif datatype == &#8220;MF&#8221;:<br />output = output + self.getSpaces(spaces) + WeatherText.conditions_moon_font[self.day_forecast[day_number].moon_icon]<br />elif datatype == &#8220;BR&#8221;:<br />output = output + self.getSpaces(spaces) + self.day_forecast[day_number].bar_read<br />elif datatype == &#8220;BD&#8221;:<br />output = output + self.getSpaces(spaces) + self.day_forecast[day_number].bar_desc<br />else:<br />output = u&#8221;\nERROR:Unknown data type requested&#8221;<br />break</p>
<p>output = u&#8221;"+output.strip(u&#8221; &#8220;) # lose leading/trailing spaces<br />return output</p>
<p>#except:<br />#print &#8220;getOutputText:Unexpected error: &#8220;, sys.exc_info()[0]</p>
<p>def getOutputTextFromTemplate(self,template):<br />#try:</p>
<p># keys to template data<br />DATATYPE_KEY = &#8220;&#8211;datatype=&#8221;<br />STARTDAY_KEY = &#8220;&#8211;startday=&#8221;<br />ENDDAY_KEY = &#8220;&#8211;endday=&#8221;<br />NIGHT_KEY = &#8220;&#8211;night&#8221;<br />SHORTWEEKDAY_KEY = &#8220;&#8211;shortweekday&#8221;<br />IMPERIAL_KEY = &#8220;&#8211;imperial&#8221;<br />HIDEUNITS_KEY = &#8220;&#8211;hideunits&#8221;<br />SPACES_KEY = &#8220;&#8211;spaces=&#8221;</p>
<p>output = u&#8221;"</p>
<p>optionfound = False</p>
<p>#load the file<br />try:<br />fileinput = open(self.options.template)<br />template = fileinput.read()<br />fileinput.close()<br />except:<br />output = u&#8221;Template file no found!&#8221;</p>
<p>templatelist = self.getTemplateList(template)</p>
<p># lets walk through the template list and determine the output for each item found<br />for i in range(0,len(templatelist)-1):</p>
<p>pos = templatelist[i].find(DATATYPE_KEY)<br />if pos != -1:<br />optionfound = True<br />pos = pos + len(DATATYPE_KEY)<br />datatype = templatelist[i][pos:pos+4].strip(&#8220;}&#8221;).strip(&#8220;{&#8220;).strip(&#8220;-&#8221;).strip(&#8221; &#8220;)<br />else:<br />datatype = None</p>
<p>pos = templatelist[i].find(STARTDAY_KEY)<br />if pos != -1:<br />optionfound = True<br />pos = pos + len(STARTDAY_KEY)<br />startday = int(templatelist[i][pos:pos+4].strip(&#8220;}&#8221;).strip(&#8220;{&#8220;).strip(&#8220;-&#8221;).strip(&#8221; &#8220;))<br />else:<br />startday = None</p>
<p>pos = templatelist[i].find(ENDDAY_KEY)<br />if pos != -1:<br />optionfound = True<br />pos = pos + len(ENDDAY_KEY)<br />endday = int(templatelist[i][pos:pos+4].strip(&#8220;}&#8221;).strip(&#8220;{&#8220;).strip(&#8220;-&#8221;).strip(&#8221; &#8220;))<br />else:<br />endday = None</p>
<p>pos = templatelist[i].find(NIGHT_KEY)<br />if pos != -1:<br />optionfound = True<br />night = True<br />else:<br />night = False</p>
<p>pos = templatelist[i].find(SHORTWEEKDAY_KEY)<br />if pos != -1:<br />optionfound = True<br />shortweekday = True<br />else:<br />shortweekday = False</p>
<p>pos = templatelist[i].find(IMPERIAL_KEY)<br />if pos != -1:<br />optionfound = True<br />imperial = True<br />else:<br />imperial = False</p>
<p>pos = templatelist[i].find(HIDEUNITS_KEY)<br />if pos != -1:<br />optionfound = True<br />hideunits = True<br />else:<br />hideunits = False</p>
<p>pos = templatelist[i].find(SPACES_KEY)<br />if pos != -1:<br />optionfound = True<br />pos = pos + len(SPACES_KEY)<br />spaces = int(templatelist[i][pos:pos+4].strip(&#8220;}&#8221;).strip(&#8220;{&#8220;).strip(&#8220;-&#8221;).strip(&#8221; &#8220;))<br />else:<br />spaces = 1</p>
<p>if optionfound == True:<br />templatelist[i] = self.getOutputText(datatype,startday,endday,night,shortweekday,imperial,hideunits,spaces)<br />optionfound = False</p>
<p># go through the list concatenating the output now that it&#8217;s been populated<br />for item in templatelist:<br />output = output + item</p>
<p>return output</p>
<p>#except:<br />#print &#8220;getOutputTextFromTemplate:Unexpected error: &#8220;, sys.exc_info()[0]</p>
<p>def fetchData(self):</p>
<p># always fetch metric data, use conversation functions on this data<br />file_path_current = self.TEMP_FILEPATH_CURRENT.replace(&#8220;LOCATION&#8221;,self.options.location)<br />file_path_dayforecast = self.TEMP_FILEPATH_DAYFORECAST.replace(&#8220;LOCATION&#8221;,self.options.location)<br />file_path_nightforecast = self.TEMP_FILEPATH_NIGHTFORECAST.replace(&#8220;LOCATION&#8221;,self.options.location)</p>
<p>if self.isConnectionAvailable() == False:<br />if os.path.exists(file_path_current):<br />RefetchData = False<br />else: # no connection, no cache, bang!<br />print &#8220;No internet connection is available and no cached weather data exists.&#8221;<br />elif self.options.refetch == True:<br />RefetchData = True<br />else:<br /># does the data need retrieving again?<br />if os.path.exists(file_path_current):<br />lastmodDate = time.localtime(os.stat(file_path_current)[ST_MTIME])<br />expiryDate = (datetime.datetime.today() &#8211; datetime.timedelta(minutes=self.EXPIRY_MINUTES)).timetuple()</p>
<p>if expiryDate &gt; lastmodDate:<br />RefetchData = True<br />else:<br />RefetchData = False<br />else:<br />RefetchData = True</p>
<p># fetch the current conditions data, either from the website or by &#8216;unpickling&#8217;<br />if RefetchData == True:</p>
<p># obtain current conditions data from xoap service<br />try:</p>
<p># http://xoap.weather.com/weather/local/UKXX0103?cc=*&amp;dayf=5&amp;link=xoap∏=xoap&amp;par=1061785028&amp;key=e374effbfd74930b</p>
<p>url = &#8216;http://xoap.weather.com/weather/local/&#8217; + self.options.location + &#8216;?cc=*&amp;dayf=8&amp;link=xoap∏=xoap&amp;par=1061785028&amp;key=e374effbfd74930b&amp;unit=m&#8217;<br />if self.options.verbose == True:<br />print &gt;&gt; sys.stdout, &#8220;fetching weather data from &#8220;,url</p>
<p>usock = urllib2.urlopen(url)<br />xml = usock.read()<br />usock.close()<br />self.weatherxmldoc = minidom.parseString(xml)<br />except:<br />print &#8220;fetchData:Unexpected error: &#8220;, sys.exc_info()[0]<br />print &#8220;Unable to contact weather source for current conditions&#8221;</p>
<p># tell the user if the location is bad&#8230;<br />found = xml.find(&#8220;Invalid location provided&#8221;)<br />if found != -1:<br />print &#8220;Invalid location provided&#8221;</p>
<p># interrogate weather data, load into class structure and pickle it<br />try:</p>
<p># prepare weather data lists<br />self.current_conditions = []<br />self.day_forecast = []<br />self.night_forecast = []</p>
<p># collect general data<br />weather_n = self.weatherxmldoc.documentElement<br />location_n = weather_n.getElementsByTagName(&#8216;loc&#8217;)[0]<br />city_n = location_n.getElementsByTagName(&#8216;dnam&#8217;)[0]<br />city = self.getText(city_n.childNodes)</p>
<p># collect current conditions data<br />day_of_week = u&#8221;Today&#8221;<br />precip = u&#8221;N/A&#8221;<br />sunrise_n = location_n.getElementsByTagName(&#8216;sunr&#8217;)[0]<br />sunrise = self.getText(sunrise_n.childNodes)<br />sunset_n = location_n.getElementsByTagName(&#8216;suns&#8217;)[0]<br />sunset = self.getText(sunset_n.childNodes)<br />current_condition_n = weather_n.getElementsByTagName(&#8216;cc&#8217;)[0]<br />current_desc_n = current_condition_n.getElementsByTagName(&#8216;t&#8217;)[0]<br />current_desc = self.getText(current_desc_n.childNodes)<br />current_code_n = current_condition_n.getElementsByTagName(&#8216;icon&#8217;)[0]<br />current_code = self.getText(current_code_n.childNodes)<br />current_temp_n = current_condition_n.getElementsByTagName(&#8216;tmp&#8217;)[0]<br />current_temp = self.getText(current_temp_n.childNodes)<br />current_temp_feels_n = current_condition_n.getElementsByTagName(&#8216;flik&#8217;)[0]<br />current_temp_feels = self.getText(current_temp_feels_n.childNodes)<br />bar_n = current_condition_n.getElementsByTagName(&#8216;bar&#8217;)[0]<br />bar_read_n = bar_n.getElementsByTagName(&#8216;r&#8217;)[0]<br />bar_read = self.getText(bar_read_n.childNodes)<br />bar_desc_n = bar_n.getElementsByTagName(&#8216;d&#8217;)[0]<br />bar_desc = self.getText(bar_desc_n.childNodes)<br />wind_n = current_condition_n.getElementsByTagName(&#8216;wind&#8217;)[0]<br />wind_speed_n = wind_n.getElementsByTagName(&#8216;s&#8217;)[0]<br />wind_speed = self.getText(wind_speed_n.childNodes)<br />wind_gust_n = wind_n.getElementsByTagName(&#8216;gust&#8217;)[0]<br />wind_gusts = self.getText(wind_gust_n.childNodes)<br />wind_dir_n = wind_n.getElementsByTagName(&#8216;d&#8217;)[0]<br />wind_direction = self.getText(wind_dir_n.childNodes)<br />humidity_n = current_condition_n.getElementsByTagName(&#8216;hmid&#8217;)[0]<br />humidity = self.getText(humidity_n.childNodes)<br />moon_n = current_condition_n.getElementsByTagName(&#8216;moon&#8217;)[0]<br />moon_icon_n = moon_n.getElementsByTagName(&#8216;icon&#8217;)[0]<br />moon_icon = self.getText(moon_icon_n.childNodes)<br />moon_phase_n = moon_n.getElementsByTagName(&#8216;t&#8217;)[0]<br />moon_phase = self.getText(moon_phase_n.childNodes)<br />current_conditions_data = WeatherData(day_of_week, current_temp_feels, current_temp, current_code, current_desc, precip, humidity, wind_direction, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_read, bar_desc)<br />self.current_conditions.append(current_conditions_data)</p>
<p># collect forecast data<br />bar_read = u&#8221;N/A&#8221;<br />bar_desc = u&#8221;N/A&#8221;<br />moon_phase = u&#8221;N/A&#8221;<br />moon_icon = u&#8221;na&#8221;<br />forecast_n = weather_n.getElementsByTagName(&#8216;dayf&#8217;)[0]<br />day_nodes = forecast_n.getElementsByTagName(&#8216;day&#8217;)</p>
<p>for day in day_nodes:<br />day_of_week = day.getAttribute(&#8216;t&#8217;)<br />day_of_year = day.getAttribute(&#8216;dt&#8217;)<br />high_temp_n = day.getElementsByTagName(&#8216;hi&#8217;)[0]<br />high_temp = self.getText(high_temp_n.childNodes)<br />low_temp_n = day.getElementsByTagName(&#8216;low&#8217;)[0]<br />low_temp = self.getText(low_temp_n.childNodes)</p>
<p>sunrise_n = day.getElementsByTagName(&#8216;sunr&#8217;)[0]<br />sunrise = self.getText(sunrise_n.childNodes)<br />sunset_n = day.getElementsByTagName(&#8216;suns&#8217;)[0]<br />sunset = self.getText(sunset_n.childNodes)</p>
<p># day forecast specific data<br />daytime_n = day.getElementsByTagName(&#8216;part&#8217;)[0] # day<br />condition_code_n = daytime_n.getElementsByTagName(&#8216;icon&#8217;)[0]<br />condition_code = self.getText(condition_code_n.childNodes)<br />condition_n = daytime_n.getElementsByTagName(&#8216;t&#8217;)[0]<br />condition = self.getText(condition_n.childNodes)<br />precip_n = daytime_n.getElementsByTagName(&#8216;ppcp&#8217;)[0]<br />precip = self.getText(precip_n.childNodes)<br />humidity_n = daytime_n.getElementsByTagName(&#8216;hmid&#8217;)[0]<br />humidity = self.getText(humidity_n.childNodes)<br />wind_n = daytime_n.getElementsByTagName(&#8216;wind&#8217;)[0]<br />wind_speed_n = wind_n.getElementsByTagName(&#8216;s&#8217;)[0]<br />wind_speed = self.getText(wind_speed_n.childNodes)<br />wind_direction_n = wind_n.getElementsByTagName(&#8216;t&#8217;)[0]<br />wind_direction = self.getText(wind_direction_n.childNodes)<br />wind_gusts_n = wind_n.getElementsByTagName(&#8216;gust&#8217;)[0]<br />wind_gusts = self.getText(wind_gusts_n.childNodes)<br />day_forecast_data = WeatherData(day_of_week, low_temp, high_temp, condition_code, condition, precip, humidity, wind_direction, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_read, bar_desc)<br />self.day_forecast.append(day_forecast_data)</p>
<p># night forecast specific data<br />daytime_n = day.getElementsByTagName(&#8216;part&#8217;)[1] # night<br />condition_code_n = daytime_n.getElementsByTagName(&#8216;icon&#8217;)[0]<br />condition_code = self.getText(condition_code_n.childNodes)<br />condition_n = daytime_n.getElementsByTagName(&#8216;t&#8217;)[0]<br />condition = self.getText(condition_n.childNodes)<br />precip_n = daytime_n.getElementsByTagName(&#8216;ppcp&#8217;)[0]<br />precip = self.getText(precip_n.childNodes)<br />humidity_n = daytime_n.getElementsByTagName(&#8216;hmid&#8217;)[0]<br />humidity = self.getText(humidity_n.childNodes)<br />wind_n = daytime_n.getElementsByTagName(&#8216;wind&#8217;)[0]<br />wind_speed_n = wind_n.getElementsByTagName(&#8216;s&#8217;)[0]<br />wind_speed = self.getText(wind_speed_n.childNodes)<br />wind_direction_n = wind_n.getElementsByTagName(&#8216;t&#8217;)[0]<br />wind_direction = self.getText(wind_direction_n.childNodes)<br />wind_gusts_n = wind_n.getElementsByTagName(&#8216;gust&#8217;)[0]<br />wind_gusts = self.getText(wind_gusts_n.childNodes)<br />night_forecast_data = WeatherData(day_of_week, low_temp, high_temp, condition_code, condition, precip, humidity, wind_direction, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_read, bar_desc)<br />self.night_forecast.append(night_forecast_data)</p>
<p># pickle the data for next time!<br />fileoutput = open(file_path_current, &#8216;w&#8217;)<br />pickle.dump(self.current_conditions,fileoutput)<br />fileoutput.close()</p>
<p>fileoutput = open(file_path_dayforecast, &#8216;w&#8217;)<br />pickle.dump(self.day_forecast,fileoutput)<br />fileoutput.close()</p>
<p>fileoutput = open(file_path_nightforecast, &#8216;w&#8217;)<br />pickle.dump(self.night_forecast,fileoutput)<br />fileoutput.close()</p>
<p>except:<br />print &#8220;fetchData:Unexpected error: &#8220;, sys.exc_info()[0]<br />print &#8220;Unable to interrogate the weather data&#8221;</p>
<p>else: # fetch weather data from pickled class files<br />if self.options.verbose == True:<br />print &gt;&gt; sys.stdout, &#8220;fetching weather data from file: &#8220;,file_path_current</p>
<p>fileinput = open(file_path_current, &#8216;r&#8217;)<br />self.current_conditions = pickle.load(fileinput)<br />fileinput.close()</p>
<p>if self.options.verbose == True:<br />print &gt;&gt; sys.stdout, &#8220;fetching day forecast data from files: &#8220;,file_path_dayforecast, file_path_nightforecast</p>
<p>fileinput = open(file_path_dayforecast, &#8216;r&#8217;)<br />self.day_forecast = pickle.load(fileinput)<br />fileinput.close()</p>
<p>if self.options.verbose == True:<br />print &gt;&gt; sys.stdout, &#8220;fetching day forecast data from files: &#8220;,file_path_nightforecast, file_path_nightforecast</p>
<p>fileinput = open(file_path_nightforecast, &#8216;r&#8217;)<br />self.night_forecast = pickle.load(fileinput)<br />fileinput.close()</p>
<p>def outputData(self):<br />#try:</p>
<p>if self.options.template != None:</p>
<p>output = self.getOutputTextFromTemplate(self.options.template)</p>
<p>else:</p>
<p>output = self.getOutputText(self.options.datatype,self.options.startday,self.options.endday,self.options.night,self.options.shortweekday,self.options.imperial,self.options.hideunits,self.options.spaces)</p>
<p>print output.encode(&#8220;utf-8&#8243;)</p>
<p>#except:<br />#print &#8220;outputData:Unexpected error: &#8220;, sys.exc_info()[0]</p>
<p>if __name__ == &#8220;__main__&#8221;:</p>
<p>parser = CommandLineParser()<br />(options, args) = parser.parse_args()</p>
<p>if options.verbose == True:<br />print &gt;&gt; sys.stdout, &#8220;location:&#8221;,options.location<br />print &gt;&gt; sys.stdout, &#8220;imperial:&#8221;,options.imperial<br />print &gt;&gt; sys.stdout, &#8220;datatype:&#8221;,options.datatype<br />print &gt;&gt; sys.stdout, &#8220;night:&#8221;,options.night<br />print &gt;&gt; sys.stdout, &#8220;start day:&#8221;,options.startday<br />print &gt;&gt; sys.stdout, &#8220;end day:&#8221;,options.endday<br />print &gt;&gt; sys.stdout, &#8220;spaces:&#8221;,options.spaces<br />print &gt;&gt; sys.stdout, &#8220;verbose:&#8221;,options.verbose<br />print &gt;&gt; sys.stdout, &#8220;refetch:&#8221;,options.refetch</p>
<p># create new global weather object<br />weather = GlobalWeather(options)<br />weather.fetchData()<br />weather.outputData()</p></blockquote>
<p>Creamos el archivo ~/Conky/scripts/myweather.template<br />
<blockquote>gedit ~/Conky/scripts/myweather.template</p></blockquote>
<p>pegamos dentro lo siguiente:<br />
<blockquote>{&#8211;datatype=DW &#8211;startday=1}:  {&#8211;datatype=CC &#8211;startday=1}<br />{&#8211;datatype=HT &#8211;startday=1} / {&#8211;datatype=LT &#8211;startday=1}   Viento del {&#8211;datatype=WD &#8211;startday=1}  a  {&#8211;datatype=WS &#8211;startday=1}<br />Humedad: {&#8211;datatype=HM &#8211;startday=1}          Precipitacion: {&#8211;datatype=PC &#8211;startday=1}<br />Salida del Sol: {&#8211;datatype=SR &#8211;startday=1}   Ocaso: {&#8211;datatype=SS &#8211;startday=1}<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />{&#8211;datatype=DW &#8211;startday=2}:  {&#8211;datatype=CC &#8211;startday=2}<br />{&#8211;datatype=HT &#8211;startday=2} / {&#8211;datatype=LT &#8211;startday=2}   Viento del {&#8211;datatype=WD &#8211;startday=2}  a  {&#8211;datatype=WS &#8211;startday=2}<br />Humedad: {&#8211;datatype=HM &#8211;startday=2}          Precipitacion: {&#8211;datatype=PC &#8211;startday=2}<br />Salida del Sol: {&#8211;datatype=SR &#8211;startday=2}   Ocaso: {&#8211;datatype=SS &#8211;startday=2}<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />{&#8211;datatype=DW &#8211;startday=3}:  {&#8211;datatype=CC &#8211;startday=3}<br />{&#8211;datatype=HT &#8211;startday=3} / {&#8211;datatype=LT &#8211;startday=3}   Viento del {&#8211;datatype=WD &#8211;startday=3}  a  {&#8211;datatype=WS &#8211;startday=3}<br />Humedad: {&#8211;datatype=HM &#8211;startday=3}          Precipitacion: {&#8211;datatype=PC &#8211;startday=3}<br />Salida del Sol: {&#8211;datatype=SR &#8211;startday=3}   Ocaso: {&#8211;datatype=SS &#8211;startday=3}<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />{&#8211;datatype=DW &#8211;startday=4}:  {&#8211;datatype=CC &#8211;startday=4}<br />{&#8211;datatype=HT &#8211;startday=4} / {&#8211;datatype=LT &#8211;startday=4}   Viento del {&#8211;datatype=WD &#8211;startday=4}  a  {&#8211;datatype=WS &#8211;startday=4}<br />Humedad: {&#8211;datatype=HM &#8211;startday=4}          Precipitacion: {&#8211;datatype=PC &#8211;startday=4}<br />Salida del Sol: {&#8211;datatype=SR &#8211;startday=4}   Ocaso: {&#8211;datatype=SS &#8211;startday=4}</p></blockquote>
<p>Creamos el archivo ~/Conky/scripts/mail/conkyEmail.py ( hay que crear la carpeta mail)<br />
<blockquote>gedit ~/Conky/scripts/mail/conkyEmail.py</p></blockquote>
<p>y pegamos dentro lo siguiente:<br />
<blockquote>import os<br />import string</p>
<p>#Enter your username and password below within double quotes<br /># eg. username=&#8221;username&#8221; and password=&#8221;password&#8221;<br />username=&#8221;<span style="color:#ff0000;">TU_USUARIO_SINARROBA</span>&#8220;<br />password=&#8221;<span style="color:#0000ff;">TU_CLAVE</span>&#8220;</p>
<p>com=&#8221;wget -O &#8211; https://&#8221;+username+&#8221;:&#8221;+password+&#8221;@mail.google.com/mail/feed/atom &#8211;no-check-certificate&#8221;</p>
<p>temp=os.popen(com)<br />msg=temp.read()<br />index=string.find(msg,&#8221;&lt;fullcount&gt;&#8221;)<br />index2=string.find(msg,&#8221;&lt;/fullcount&gt;&#8221;)<br />fc=int(msg[index+11:index2])</p>
<p>if fc==0:<br />print &#8220;0 new&#8221;<br />else:<br />print str(fc)+&#8221; new&#8221;</p></blockquote>
<p><strong>Asique ahora tenes 7 archivos:</strong></p>
<p>En la carpeta: ~<br />&#8211;&gt; .startconky &lt;&lt;&#8211; hacer ejecutable</p>
<p>En la carpeta: ~/Conky<br />&#8211;&gt; conkymain<br />&#8211;&gt; conkyforecast<br />&#8211;&gt; conkymail</p>
<p>y en la carpeta: ~/Conky/scripts<br />&#8211;&gt; conkyForecast.py &lt;&lt;&#8211; hacer ejecutable<br />&#8211;&gt; myweather.template</p>
<p>y en la carpeta: ~/Conky/scripts/mail<br />conkyEmail.py &lt;&lt;&#8211; hacer ejecutable</p>
<p>y eso es todo, aclaraciones, donde dice /home/usuario/&#8230;va tu nombre de usuario y en la parte donde van los datos de Gmail, resalté en colores sonde hay que poner tus datos.</p>
<p>para matar el proceso de conky escribe en una consola<br />
<blockquote>killall conky</p></blockquote>
<p>para ejecutar conky escribe en una consola<br />
<blockquote>./.startconky</p></blockquote>
<p>una vez que tengas todo ajustado, si querés que conky inicie en cada sesión</p>
<p>Sistema&#8212;&gt;Preferencias&#8212;&gt;Sesiones  y en programas de inicio lo añadimos</p>
<p>en Nombre podemos escribir Conky, en Orden ./.startconky con eso se iniciará cada vez que enciendas la pc.</p>
<p>Eso es todo, espero que les sirva.</p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/mi-escritorio-agosto/" title="Mi escritorio, Agosto">Mi escritorio, Agosto</a></li><li><a href="http://ubunlog.com/arreglar-error-time-zone-argentina-tzdata/" title="Arreglar error time zone Argentina-tzdata">Arreglar error time zone Argentina-tzdata</a></li><li><a href="http://ubunlog.com/mi-escritorio-junio/" title="Mi escritorio Junio">Mi escritorio Junio</a></li><li><a href="http://ubunlog.com/instalar-codecs-multimedia-en-ubuntu-804/" title="Instalar codecs multimedia en Ubuntu 8.04">Instalar codecs multimedia en Ubuntu 8.04</a></li><li><a href="http://ubunlog.com/despues-de-instalar/" title="Después de instalar">Después de instalar</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/conky-mi-configuracion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mi escritorio Junio</title>
		<link>http://ubunlog.com/mi-escritorio-junio/</link>
		<comments>http://ubunlog.com/mi-escritorio-junio/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 16:24:00 +0000</pubDate>
		<dc:creator>Ubunlog</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[conky]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Escritorio]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Iconos]]></category>
		<category><![CDATA[Tema]]></category>

		<guid isPermaLink="false">http://www.ubunlog.com.ar/mi-escritorio-junio/</guid>
		<description><![CDATA[Creo que he logrado configurar el escritorio como a mi me gusta, por lo tanto pienso que este se va a quedar por un largo tiempo, detallo las cosas que tiene Escritorio: Gnome Tema Gtk: LXG Iconos: Docang Wallpaper conky &#8230; <a href="http://ubunlog.com/mi-escritorio-junio/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Creo que he logrado configurar el escritorio como a mi me gusta, por lo tanto pienso que este se va a quedar por un largo tiempo, detallo las cosas que tiene</p>
<p>Escritorio: Gnome</p>
<p>Tema Gtk: <a href="http://linux.softpedia.com/get/Desktop-Environment/Themes/LXG-LinuX-G-33797.shtml" target="_blank">LXG</a></p>
<p>Iconos: <a href="http://www.gnome-look.org/content/show.php/Docang-Icons?content=70622" target="_blank">Docang</a></p>
<p>Wallpaper</p>
<p>conky <a href="http://ubuntuforums.org/showthread.php?t=809615" target="_blank">configuración en base a este post</a></p>
<p>Ahora si, la captura</p>
<div  class="related_post_title"><h2>Post Relacionados</h2></div><ul class="related_post"><li><a href="http://ubunlog.com/mi-escritorio-agosto/" title="Mi escritorio, Agosto">Mi escritorio, Agosto</a></li><li><a href="http://ubunlog.com/mi-escritorio-julio/" title="Mi escritorio, Julio">Mi escritorio, Julio</a></li><li><a href="http://ubunlog.com/que-es-eso-de-linux-porque-usar-linux/" title="Que es eso de linux? Porqué usar linux?">Que es eso de linux? Porqué usar linux?</a></li><li><a href="http://ubunlog.com/manda-tu-escritorio-linuxero-sale-lunes-que-viene/" title="Mandá tu escritorio linuxero, sale lunes que viene">Mandá tu escritorio linuxero, sale lunes que viene</a></li><li><a href="http://ubunlog.com/proximo-lunes-escritorios-linuxeros/" title="Próximo lunes, Escritorios Linuxeros ">Próximo lunes, Escritorios Linuxeros </a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ubunlog.com/mi-escritorio-junio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 37/103 queries in 0.342 seconds using disk: basic
Object Caching 1627/1730 objects using disk: basic

Served from: ubunlog.com @ 2012-02-11 08:27:59 -->
