<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://forum.ubuntu-fr.org/extern.php?action=feed&amp;tid=218006&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Forum Ubuntu-fr.org / [script/python] Nautilus et picasaweb!]]></title>
		<link>http://forum.ubuntu-fr.org/viewtopic.php?id=218006</link>
		<description><![CDATA[Les sujets les plus récents dans [script/python] Nautilus et picasaweb!.]]></description>
		<lastBuildDate>Sat, 16 Feb 2013 08:25:19 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12597691#p12597691</link>
			<description><![CDATA[<p>Bonjour,</p><div class="quotebox"><cite>elephant a écrit&#160;:</cite><blockquote><div><p>en résumé, je cherche un moyen compréhensible pour seulement exporter des fichiers jpeg depuis mon ordi vers Picasa. <br />des suggestions ?</p></div></blockquote></div><p>Tu as vu <a href="http://doc.ubuntu-fr.org/galeries_web_picasa">http://doc.ubuntu-fr.org/galeries_web_picasa</a> ?</p><p>A+</p>]]></description>
			<author><![CDATA[dummy@example.com (michel_04)]]></author>
			<pubDate>Sat, 16 Feb 2013 08:25:19 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12597691#p12597691</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12597631#p12597631</link>
			<description><![CDATA[<p>Bonjour,</p><p>Vous avez bien fait de lire les sujets du forum sur picasa. Mais peut-être auriez vous dû créer un nouveau sujet car celui-ci est ancien et contient des informations sûrement obsolètes.</p><p>Je n&#039;utilise pas Picasa et je ne peux pas vous aider sur votre problème avec l&#039;interface web de Picasa.<br />Pour utiliser Picasa avec Ubuntu vous pouvez essayer les logiciels <a href="http://doc.ubuntu-fr.org/shotwell">Shotwell</a> (normalement installé par défaut sur ubuntu) ou <a href="http://doc.ubuntu-fr.org/conduit">Conduit</a>. (source : <a href="http://askubuntu.com/questions/104186/any-application-which-could-sync-pics-videos-on-ubuntu-with-picasa-web-album">askubuntu</a>)</p>]]></description>
			<author><![CDATA[dummy@example.com (GNU-max)]]></author>
			<pubDate>Sat, 16 Feb 2013 08:16:02 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12597631#p12597631</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12596061#p12596061</link>
			<description><![CDATA[<p>bonjour à tous</p><p>Je ne suis pas sûre que le problème que je rencontre est le même que ceux évoqués plus haut : depuis plus d&#039;un an, j&#039;ai une galerie picasa gratuite qui me sert de vitrine pour exposer mes peintures. J&#039;ai donc besoin de poster des photos dessus très régulièrement. Or, impossible de faire ça depuis mon ordi (sous Ubuntu). je dois aller dans des internet café.</p><p>kafkaïen : je clique sur <br />&quot;transférer des fichiers&quot;<br />je tombe sur<br />&quot;Picasa Albums Web ne comporte pas encore de programme de transfert propre à Linux. Pour tenter de transférer des photos avec notre formulaire de transfert via le Web, cliquez sur le bouton Transférer des photos, à droite.&quot;<br />J&#039;appuie donc, on me dit de me connecter (alors que je suis connectée), je clique donc sur &quot;me connecter&quot;<br />et je tombe sur<br />&quot;La fonctionnalité que vous avez demandée est actuellement indisponible. Veuillez réessayer ultérieurement.&quot;</p><p>J&#039;ai lu vos échanges, mais je suis une femme des cavernes : je ne m&#039;y connais pas suffisamment en informatiques pour engager les procédures que vous décrivez.</p><p>en résumé, je cherche un moyen compréhensible pour seulement exporter des fichiers jpeg depuis mon ordi vers Picasa. <br />des suggestions ?</p><p>merci</p>]]></description>
			<author><![CDATA[dummy@example.com (elephant)]]></author>
			<pubDate>Fri, 15 Feb 2013 23:30:03 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12596061#p12596061</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=3940683#p3940683</link>
			<description><![CDATA[<p>Il existe une extension Firefox pour ça (upload et download depuis Picasa, mais aussi Facebook, Youtube, Flickr et tout un tas d&#039;autres sites...)<br />malheureusement uniquement en anglais : <a href="http://www.fireuploader.com/Default.aspx">FireUploader</a></p>]]></description>
			<author><![CDATA[dummy@example.com (JimBo)]]></author>
			<pubDate>Sun, 09 Jan 2011 17:25:11 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=3940683#p3940683</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=3336430#p3336430</link>
			<description><![CDATA[<p>Ce serait super de créer un clone (enfin de s&#039;inspirer) de nautilus-flirck-uploader mais pour picasa. <img src="http://forum.ubuntu-fr.org/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /></p><p><a href="http://www.usebox.net/jjm/nautilus-flickr-uploader/">http://www.usebox.net/jjm/nautilus-flickr-uploader/</a></p>]]></description>
			<author><![CDATA[dummy@example.com (YvanD)]]></author>
			<pubDate>Sat, 13 Mar 2010 14:45:09 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=3336430#p3336430</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2846895#p2846895</link>
			<description><![CDATA[<div class="quotebox"><cite>Jeece a écrit&#160;:</cite><blockquote><div><p>Salut. Non ça intéresse sûrement personne car Picasa c&#039;est propriétaire et on préfère F-Spot qui fait très bien le boulot. <img src="http://forum.ubuntu-fr.org/img/smilies/tongue.png" width="15" height="15" alt="tongue" /></p></div></blockquote></div><p>au depart j&#039;avais picasa sur ubuntu et quand je suis passé au 3<br />j&#039;ai eu des mauvaises surprise alors je l&#039;ai désinstallé car entre temp en plus<br />j&#039;avais découvert que f-spot effectivement faisait aussi bine le boulot<br />(pas moyen de mettre de transfere en standby mais bon)<br />enfin voila par contre c&#039;est vrais que<br />la gestion de fspot ne me plaisant pas dutout<br />je ne m&#039;en sert vraiement que pour les transfere vers picasa<br />et dois le revider à chaque fois ... bref faudra que je teste ton truc<br />mais la méthode d&#039;install me plait pas trop <img src="http://forum.ubuntu-fr.org/img/smilies/hmm.png" width="15" height="15" alt="hmm" /></p>]]></description>
			<author><![CDATA[dummy@example.com (Qid)]]></author>
			<pubDate>Mon, 03 Aug 2009 00:19:33 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2846895#p2846895</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2846347#p2846347</link>
			<description><![CDATA[<p>C&#039;est bien si t&#039;as trouvé quelque chose qui te convient. Si tu décides de remettre les mains dans le cambouis, n&#039;hésite pas. J&#039;essayerais de t&#039;aider du mieux que je peux.</p><p>P.S.</p><div class="quotebox"><cite>lylambda a écrit&#160;:</cite><blockquote><div><p>Par contre </p><div class="codebox"><pre><code>python picasa_export.py &lt;une image&gt;</code></pre></div><p>me renvois un message d&#039;erreur, donc je suppose que ça vient de ma manière de rentrer l&#039;action dans Nautilus.</p></div></blockquote></div><p>Au contraire, cette commande permet d&#039;exécuter le script sans utiliser nautilus-actions, donc de s&#039;affranchir des éventuelles erreurs liées à celui-ci. Par contre d&#039;une manière générale, si on te demande d&#039;essayer une commande c&#039;est justement pour voir quelle erreur(s) s&#039;affiche(nt) <img src="http://forum.ubuntu-fr.org/img/smilies/tongue.png" width="15" height="15" alt="tongue" /><br />Je n&#039;exlcus pas qu&#039;il s&#039;agissent d&#039;une erreur de ma part.</p>]]></description>
			<author><![CDATA[dummy@example.com (GNU-max)]]></author>
			<pubDate>Sun, 02 Aug 2009 19:09:44 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2846347#p2846347</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2843985#p2843985</link>
			<description><![CDATA[<p>Désolé de l&#039;absence.</p><p>Dans mon répertoire de compilation, j&#039;avais bien fait le test </p><div class="codebox"><pre><code>./tests/run_data_tests.py</code></pre></div><p>Le résultat a était positif d&#039;après l&#039;INSTALL.</p><p>Par contre </p><div class="codebox"><pre><code>python picasa_export.py &lt;une image&gt;</code></pre></div><p>me renvois un message d&#039;erreur, donc je suppose que ça vient de ma manière de rentrer l&#039;action dans Nautilus.</p><p>Comme j&#039;ai bloqué à ce niveau, j&#039;ai testé l&#039;extension firefox &quot;fire/universal uploader&quot; indiqué précédemment par Axelap.<br />Il me convient parfaitement mais cela me frustre de ne pas avoir réussi à faire fonctionner ton script &gt;_&lt;.</p><p>Merci encore et promis, je referais un essai lorsque mes compétences se seront améliorées !</p>]]></description>
			<author><![CDATA[dummy@example.com (lylambda)]]></author>
			<pubDate>Sat, 01 Aug 2009 14:46:35 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2843985#p2843985</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2817181#p2817181</link>
			<description><![CDATA[<p>Lorsque j&#039;ai fait le script c&#039;était gdata 1.3.3 mais je ne pense pas que ce soit ça. Dans l&#039;INSTALL.TXT il y a une procédure pour tester l&#039;installation : lancer ./tests/run_data_tests.py</p><p>Essaye d&#039;executer le script en ligne de commande pour voir si il y a un message d&#039;erreur.</p><div class="codebox"><pre><code>python picasa_export.py &lt;une image&gt;</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (GNU-max)]]></author>
			<pubDate>Sun, 19 Jul 2009 23:54:47 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2817181#p2817181</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2816886#p2816886</link>
			<description><![CDATA[<p>Merci beaucoup pour le retour GNU-max !</p><p>Effectivement, si c&#039;est une dépendance qui n&#039;est pas à jour, cela explique le non-fonctionnement du script<br />J&#039;ai tenté de compiler gdata-2.0.0 comme indiquer mais apparemment je manque encore de connaissance.</p><p>Quand je tape dans mon répertoire de décompression </p><div class="codebox"><pre><code>sudo python setup.py</code></pre></div><p>cela ne me donne que </p><div class="codebox"><pre><code>/usr/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: &#039;install_requires&#039;
  warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: no commands supplied</code></pre></div><p>Par contre taper&#160; </p><div class="codebox"><pre><code>sudo python setup.py install</code></pre></div><p>à plus d&#039;effet avec comme résultat </p><div class="codebox"><pre class="vscroll"><code>/usr/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: &#039;install_requires&#039;
  warnings.warn(msg)
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.6
creating build/lib.linux-i686-2.6/atom
copying src/atom/http.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/data.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/mock_service.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/http_core.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/mock_http_core.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/core.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/client.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/token_store.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/http_interface.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/service.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/auth.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/url.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/__init__.py -&gt; build/lib.linux-i686-2.6/atom
copying src/atom/mock_http.py -&gt; build/lib.linux-i686-2.6/atom
creating build/lib.linux-i686-2.6/gdata
copying src/gdata/data.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/gauth.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/urlfetch.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/test_config.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/sample_util.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/client.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/service.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/auth.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/test_config_template.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/test_data.py -&gt; build/lib.linux-i686-2.6/gdata
copying src/gdata/__init__.py -&gt; build/lib.linux-i686-2.6/gdata
creating build/lib.linux-i686-2.6/gdata/calendar
copying src/gdata/calendar/service.py -&gt; build/lib.linux-i686-2.6/gdata/calendar
copying src/gdata/calendar/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/calendar
creating build/lib.linux-i686-2.6/gdata/base
copying src/gdata/base/service.py -&gt; build/lib.linux-i686-2.6/gdata/base
copying src/gdata/base/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/base
creating build/lib.linux-i686-2.6/gdata/spreadsheet
copying src/gdata/spreadsheet/service.py -&gt; build/lib.linux-i686-2.6/gdata/spreadsheet
copying src/gdata/spreadsheet/text_db.py -&gt; build/lib.linux-i686-2.6/gdata/spreadsheet
copying src/gdata/spreadsheet/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/spreadsheet
creating build/lib.linux-i686-2.6/gdata/apps
copying src/gdata/apps/service.py -&gt; build/lib.linux-i686-2.6/gdata/apps
copying src/gdata/apps/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/apps
creating build/lib.linux-i686-2.6/gdata/apps/emailsettings
copying src/gdata/apps/emailsettings/service.py -&gt; build/lib.linux-i686-2.6/gdata/apps/emailsettings
copying src/gdata/apps/emailsettings/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/apps/emailsettings
creating build/lib.linux-i686-2.6/gdata/apps/migration
copying src/gdata/apps/migration/service.py -&gt; build/lib.linux-i686-2.6/gdata/apps/migration
copying src/gdata/apps/migration/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/apps/migration
creating build/lib.linux-i686-2.6/gdata/apps/groups
copying src/gdata/apps/groups/service.py -&gt; build/lib.linux-i686-2.6/gdata/apps/groups
copying src/gdata/apps/groups/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/apps/groups
creating build/lib.linux-i686-2.6/gdata/docs
copying src/gdata/docs/service.py -&gt; build/lib.linux-i686-2.6/gdata/docs
copying src/gdata/docs/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/docs
creating build/lib.linux-i686-2.6/gdata/codesearch
copying src/gdata/codesearch/service.py -&gt; build/lib.linux-i686-2.6/gdata/codesearch
copying src/gdata/codesearch/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/codesearch
creating build/lib.linux-i686-2.6/gdata/books
copying src/gdata/books/service.py -&gt; build/lib.linux-i686-2.6/gdata/books
copying src/gdata/books/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/books
creating build/lib.linux-i686-2.6/gdata/photos
copying src/gdata/photos/service.py -&gt; build/lib.linux-i686-2.6/gdata/photos
copying src/gdata/photos/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/photos
creating build/lib.linux-i686-2.6/gdata/exif
copying src/gdata/exif/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/exif
creating build/lib.linux-i686-2.6/gdata/geo
copying src/gdata/geo/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/geo
creating build/lib.linux-i686-2.6/gdata/media
copying src/gdata/media/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/media
creating build/lib.linux-i686-2.6/gdata/contacts
copying src/gdata/contacts/service.py -&gt; build/lib.linux-i686-2.6/gdata/contacts
copying src/gdata/contacts/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/contacts
creating build/lib.linux-i686-2.6/gdata/youtube
copying src/gdata/youtube/service.py -&gt; build/lib.linux-i686-2.6/gdata/youtube
copying src/gdata/youtube/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/youtube
creating build/lib.linux-i686-2.6/gdata/webmastertools
copying src/gdata/webmastertools/service.py -&gt; build/lib.linux-i686-2.6/gdata/webmastertools
copying src/gdata/webmastertools/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/webmastertools
creating build/lib.linux-i686-2.6/gdata/blogger
copying src/gdata/blogger/data.py -&gt; build/lib.linux-i686-2.6/gdata/blogger
copying src/gdata/blogger/client.py -&gt; build/lib.linux-i686-2.6/gdata/blogger
copying src/gdata/blogger/service.py -&gt; build/lib.linux-i686-2.6/gdata/blogger
copying src/gdata/blogger/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/blogger
creating build/lib.linux-i686-2.6/gdata/alt
copying src/gdata/alt/appengine.py -&gt; build/lib.linux-i686-2.6/gdata/alt
copying src/gdata/alt/app_engine.py -&gt; build/lib.linux-i686-2.6/gdata/alt
copying src/gdata/alt/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/alt
creating build/lib.linux-i686-2.6/gdata/oauth
copying src/gdata/oauth/rsa.py -&gt; build/lib.linux-i686-2.6/gdata/oauth
copying src/gdata/oauth/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/oauth
creating build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/SessionCache.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/Session.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/errors.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/FileObject.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/X509CertChain.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/mathtls.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/api.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/BaseDB.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/TLSRecordLayer.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/SharedKeyDB.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/HandshakeSettings.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/Checker.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/X509.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/constants.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/TLSConnection.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/messages.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
copying src/gdata/tlslite/VerifierDB.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite
creating build/lib.linux-i686-2.6/gdata/Crypto
copying src/gdata/Crypto/test.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto
copying src/gdata/Crypto/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto
creating build/lib.linux-i686-2.6/gdata/Crypto/Cipher
copying src/gdata/Crypto/Cipher/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Cipher
creating build/lib.linux-i686-2.6/gdata/Crypto/Hash
copying src/gdata/Crypto/Hash/HMAC.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Hash
copying src/gdata/Crypto/Hash/MD5.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Hash
copying src/gdata/Crypto/Hash/SHA.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Hash
copying src/gdata/Crypto/Hash/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Hash
creating build/lib.linux-i686-2.6/gdata/Crypto/Protocol
copying src/gdata/Crypto/Protocol/Chaffing.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Protocol
copying src/gdata/Crypto/Protocol/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Protocol
copying src/gdata/Crypto/Protocol/AllOrNothing.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Protocol
creating build/lib.linux-i686-2.6/gdata/Crypto/PublicKey
copying src/gdata/Crypto/PublicKey/pubkey.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/PublicKey
copying src/gdata/Crypto/PublicKey/ElGamal.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/PublicKey
copying src/gdata/Crypto/PublicKey/DSA.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/PublicKey
copying src/gdata/Crypto/PublicKey/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/PublicKey
copying src/gdata/Crypto/PublicKey/RSA.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/PublicKey
copying src/gdata/Crypto/PublicKey/qNEW.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/PublicKey
creating build/lib.linux-i686-2.6/gdata/Crypto/Util
copying src/gdata/Crypto/Util/randpool.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Util
copying src/gdata/Crypto/Util/test.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Util
copying src/gdata/Crypto/Util/RFC1751.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Util
copying src/gdata/Crypto/Util/number.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Util
copying src/gdata/Crypto/Util/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/Crypto/Util
creating build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/Cryptlib_AES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/Cryptlib_TripleDES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/keyfactory.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/dateFuncs.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/PyCrypto_AES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/PyCrypto_RSAKey.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/Python_RSAKey.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/RSAKey.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/codec.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/AES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/hmac.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/OpenSSL_AES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/Cryptlib_RC4.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/cryptomath.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/OpenSSL_RSAKey.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/compat.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/TripleDES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/OpenSSL_TripleDES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/Python_RC4.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/Python_AES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/PyCrypto_RC4.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/xmltools.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/RC4.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/OpenSSL_RC4.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/PyCrypto_TripleDES.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/ASN1Parser.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/cipherfactory.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/jython_compat.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
copying src/gdata/tlslite/utils/rijndael.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/utils
creating build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/IMAP4_TLS.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/TLSAsyncDispatcherMixIn.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/IntegrationHelper.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/SMTP_TLS.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/POP3_TLS.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/TLSSocketServerMixIn.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/TLSTwistedProtocolWrapper.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/HTTPTLSConnection.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/AsyncStateMachine.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/ClientHelper.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
copying src/gdata/tlslite/integration/XMLRPCTransport.py -&gt; build/lib.linux-i686-2.6/gdata/tlslite/integration
creating build/lib.linux-i686-2.6/gdata/health
copying src/gdata/health/service.py -&gt; build/lib.linux-i686-2.6/gdata/health
copying src/gdata/health/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/health
creating build/lib.linux-i686-2.6/gdata/analytics
copying src/gdata/analytics/service.py -&gt; build/lib.linux-i686-2.6/gdata/analytics
copying src/gdata/analytics/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/analytics
creating build/lib.linux-i686-2.6/gdata/finance
copying src/gdata/finance/service.py -&gt; build/lib.linux-i686-2.6/gdata/finance
copying src/gdata/finance/__init__.py -&gt; build/lib.linux-i686-2.6/gdata/finance
running install_lib
running install_egg_info
Removing /usr/local/lib/python2.6/dist-packages/gdata-2.0.0.egg-info
Writing /usr/local/lib/python2.6/dist-packages/gdata-2.0.0.egg-info</code></pre></div><p>Mais ce ne doit pas être la solution vu qu&#039;au final le script ne s&#039;active toujours pas lorsque je le sélectionne par &quot;clique-droit&quot; dans Nautilus. Bref, je fais une pause pour ce soir et je me replongerais dans l&#039;INSTALL.TXT un peu plus tard.<br />En tout cas, si tu as tout lu jusqu&#039;ici, tu es décidément serviable (et surtout courageux ;-) !</p><p>PS: si un petit paquet deb du dernier gdata traine dans le coin, dis lui que je lui offre un CDI illico :-p</p>]]></description>
			<author><![CDATA[dummy@example.com (lylambda)]]></author>
			<pubDate>Sun, 19 Jul 2009 21:04:05 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2816886#p2816886</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2813800#p2813800</link>
			<description><![CDATA[<p>Salut lylambda,</p><p>Désolé pour la réponse tardive, je ne passe pas souvent sur le forum.<br />En fait le paquet gdata n&#039;est pas suffisant, il faut installer gdata manuellement comme l&#039;a décrit FTG : </p><div class="quotebox"><blockquote><div><p>Une fois ces trois paquets installés, allez voir du côté de ce lien:<br /><a href="http://code.google.com/p/gdata-python-client/downloads/list">http://code.google.com/p/gdata-python-c … loads/list</a> et telechargez la derniere version de<br />gdate-py dans un endroit de votre partition /home/user. Décompresser avec la commande tar xvf puis bien lire INSTALL.TXT ca vaut le coup! Pour les plus préssés d&#039;entre vous lancez tout de suite</p><p>&#160; &#160; python setup.py</p><p>en root. Dans l&#039;INSTALL.TXT il est bien indiqué comment tester si l&#039;installation a bien fonctionné!</p></div></blockquote></div><p>Merci d&#039;avoir relevé ce point (je modifie la note d&#039;installation en conséquence). J&#039;espère que c&#039;est ça.</p>]]></description>
			<author><![CDATA[dummy@example.com (GNU-max)]]></author>
			<pubDate>Sat, 18 Jul 2009 14:25:49 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2813800#p2813800</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2781808#p2781808</link>
			<description><![CDATA[<p>Salut GNU-max,</p><p>Tes scripts adaptés de celui de FTG sont exactement ce que je cherche. J&#039;utilise jBrout pour gérer mes photos, ce logiciel étant parfait niveau tagage. Malheureusement le plugin d&#039;export sur picasaweb ne fonctionne plus sur mon système dernièrement.<br />[Pour info, j&#039;obtiens ce message d&#039;erreur : ]</p><div class="codebox"><pre><code>Erreur d&#039;upload : &#039;PicasaWeb&#039; object has no attribute &#039;_PrepareConnection&#039;</code></pre></div><p>Le 1er scripts seraient la solution idéale. Néanmoins, ma 1 ère tentative n&#039;a aboutit qu&#039;à un échec :</p><p># Dépend de : gdata, nautilus-actions, zenity<br /><strong>--&gt; Aprés vérification sur synaptic, j&#039;ai bien ces paquets sur mon ubuntu</strong><br /># Dans Nautilus Action rentrer<br /># Chemin : /usr/bin/python &lt;/chemni/vers/script&gt;<br /># Parametres : %M<br /># Conditions : <br />#&#160; &#160; Types Mime : image/*<br />#&#160; &#160; Cocher : Apparaît si la selection contient plusieurs fichiers ou dossiers<br /><strong>--&gt; j&#039;ai créé une nouvelle action selon les indications ci-dessus (en mettant évidement mon propre chemin de script, celui-ci étant exécutable) </strong></p><p>Au final, l&#039;intitulé de l&#039;action apparait bien lorsque je clique droit dans Nautilus mais rien ne se passe lorsque je tente de l&#039;activer.</p><p>Aurais-je oublié un élément important ?</p>]]></description>
			<author><![CDATA[dummy@example.com (lylambda)]]></author>
			<pubDate>Sat, 04 Jul 2009 11:42:50 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2781808#p2781808</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2766125#p2766125</link>
			<description><![CDATA[<p>J&#039;ai fait aussi un script bash qui permet de télécharger un album de picasaweb en cliquant sur «Télécharger vers picasa» depuis l&#039;interface web.</p><p>Désolé pour la longueur du script précédent.</p><div class="codebox"><pre class="vscroll"><code>#! /bin/bash
# Script de téléchargement d&#039;un album Picasa à partir de son uri picasa://
# Equivalent à «Télécharger avec picasa» sur picasaweb
#.................................................
# Dépends de : Zenity, plugin picasa pour firefox (npPicasa3.so) dispo dans le paquet .deb de Picasa 3 for linux

#--1--
# Copier npPicasa3.so dans les dossiers de plugins firefox :
#...................................................
# sudo  cp npPicasa3.so /usr/lib/mozilla/plugins/ 
# sudo ln -s /usr/lib/mozilla/plugins/npPicasa3.so /usr/lib/firefox/plugins/npPicasa3.so
# sudo ln -s /usr/lib/mozilla/plugins/npPicasa3.so /usr/lib/firefox-addons/plugins/npPicasa3.so
#...................................................
#Verifier le chargement du plugins (taper about:plugins dans firefox)

#--2--
# Configurer Firefox [adapter le chemin vers le script]
#...................................................
# path=$(ls -d /home/$USER/.mozilla/firefox/*.default)
# echo -e &quot;user_pref(\&quot;network.protocol-handler.app.picasa\&quot;, \&quot;/home/$USER/picasa_down.sh\&quot;);\nuser_pref(\&quot;network.protocol-handler.external.picasa\&quot;, true);$&quot; &gt; $path/user.js
#....................................................

 
rss_link=$(
echo $1 | \
sed &quot;
	s#picasa://downloadfeed/?url=## 
		
	s/%25/%/g
	s/%21/!/g
	s/%23/#/g
	s/%24/\$/g
	s/%26/\&amp;/g
	s/%27/&#039;\&#039;&#039;/g
	s/%28/(/g
	s/%29/)/g
	s/%2A/\*/g
	s/%2B/+/g
	s/%2C/,/g
	s/%2D/-/g
	s/%2E/\./g
	s/%2F/\//g
	s/%3A/:/g
	s/%3B/;/g
	s/%3D/=/g
	s/%3F/?/g
	s/%40/@/g
	s/%5B/\[/g
	s/%5C/\\\/
	s/%5D/\]/g
	s/%5E/\^/g
	s/%5F/_/g
	s/%60/\`/g
	s/%7B/{/g
	s/%7C/|/g
	s/%7D/}/g
	s/%7E/~/g
&quot;)

DOSSIER=`zenity --file-selection --title=&quot;Sélectionnez un dossier de destination&quot; --directory --filename=/home/$USER/`

if [ ! &quot;$DOSSIER&quot; ]
then exit 1
else

wget -q -O - &quot;$rss_link&quot; |
sed -e &#039;s/&lt;pheed:imgsrc&gt;/\n/g ; s/&lt;\/pheed:imgsrc&gt;/\n/g&#039; |
grep -E &#039;^http&#039; |sed &#039;1d&#039; &gt; /tmp/picasa_down


Npics=$(cat /tmp/picasa_down | wc -l)

j=1
(
echo &quot;#Téléchargement de l&#039;album ...&quot;

for i in $(cat /tmp/picasa_down)
do
	echo &quot;#Téléchargement de l&#039;album : photo $j/$Npics.&quot;
	echo &quot;scale=2 ; $j/$Npics*100&quot;| bc
	j=$((j+1))
	(pidof zenity &gt;/dev/null) &amp;&amp; wget -q --directory-prefix=&quot;$DOSSIER&quot; &quot;$i&quot;
done

echo &quot;#Terminé&quot;
)|  zenity --progress --title=&quot;Picasa&quot; --percentage=0 --auto-kill --width=400 

fi
exit 0</code></pre></div><p>[Edit 10/10/09] Ajout de guillemets à $DOSSIER pour gérer les espaces dans les noms de dossier.</p>]]></description>
			<author><![CDATA[dummy@example.com (GNU-max)]]></author>
			<pubDate>Sat, 27 Jun 2009 19:12:07 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2766125#p2766125</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2766102#p2766102</link>
			<description><![CDATA[<p>J&#039;ai repris le script de FTG (merci bcp à lui, j&#039;ai pas changé grand chose) et j&#039;ai ajouté une interface avec zenity (grâce au code de PyZenity de Brian Ramos). J&#039;ai jamais fait de Python alors soyez indulgent.</p><p>L&#039;essentiel du code est à la fin.</p><div class="codebox"><pre class="vscroll"><code># -*- coding: utf-8 -*-
# Envoi de photos sur picasaweb

# Dépend de : 
#                    gdata [ à télécharger sur http://code.google.com/p/gdata-python-client/downloads/list et installer - cf. INSTALL.TXT - ]
#                    nautilus-actions
#                    zenity
# Dans Nautilus Action rentrer
# Chemin : /usr/bin/python &lt;/chemni/vers/script&gt;
# Parametres : %M
# Conditions : 
#	Types Mime : image/*	
#	Cocher : Apparaît si la selection contient plusieurs fichiers ou dossiers
# 

######-PyZenity-##########
#Afin de ne pas avoir à télécharger et installer le code de PyZenity, je l&#039;ai reproduis en partie ici.
######################################################################################################
# Name: iPyZenity.py
# Author:   Brian Ramos
# Created: 10/17/2005
# Revision Information:
#       $Date: $
#       $Revision: $
#       $Author: bramos $
#
# Licence: MIT Licence
# 
# Copyright (c) 2005 Brian Ramos
# Permission is hereby granted, free of charge, to any person obtaining a copy 
# of this software and associated documentation files (the &quot;Software&quot;), to 
# deal in the Software without restriction, including without limitation the 
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 
# sell copies of the Software, and to permit persons to whom the Software is 
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in 
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
################################################################################
from datetime import date
from subprocess import Popen, PIPE
from itertools import chain
from os import path

__all__ = [&#039;GetText&#039;,&#039;Question&#039;, &#039;Warning&#039;, &#039;ErrorMessage&#039;, &#039;Progress&#039;,&#039;List&#039; ]

zen_exec = &#039;zenity&#039;


def run_zenity(type, *args):
    return Popen([zen_exec, type] + list(args), stdin=PIPE, stdout=PIPE)



def List(column_names, title=None, boolstyle=None, editable=False, 
         select_col=None, sep=&#039;|&#039;, data=[]):
    &quot;&quot;&quot;Present a list of items to select.
    
    This will raise a Zenity List Dialog populated with the colomns and rows 
    specified and return either the cell or row that was selected or None if 
    the user hit cancel.
    
    column_names - A tuple or list containing the names of the columns.
    title - The title of the dialog box.
    boolstyle - Whether the first columns should be a bool option (&quot;checklist&quot;,
                &quot;radiolist&quot;) or None if it should be a text field.
    editable - True if the user can edit the cells.
    select_col - The column number of the selected cell to return or &quot;ALL&quot; to 
                 return the entire row.
    sep - Token to use as the row separator when parsing Zenity&#039;s return. 
          Cells should not contain this token.
    data - A list or tuple of tuples that contain the cells in the row.  The 
           size of the row&#039;s tuple must be equal to the number of columns.&quot;&quot;&quot;

    args = []
    for column in column_names:
        args.append(&#039;--column=%s&#039; % column)
    
    if title:
        args.append(&#039;--title=%s&#039; % title)
    if boolstyle:
        if not (boolstyle == &#039;checklist&#039; or boolstyle == &#039;radiolist&#039;):
            raise ValueError(&#039;&quot;%s&quot; is not a proper boolean column style.&#039;
                             % boolstyle)
        args.append(&#039;--&#039; + boolstyle)
    if editable:
        args.append(&#039;--editable&#039;)
    if select_col:
        args.append(&#039;--print-column=%s&#039; % select_col)
    if sep != &#039;|&#039;:
        args.append(&#039;--separator=%s&#039; % sep)
    
    for datum in chain(*data):
        args.append(str(datum))
    
    p = run_zenity(&#039;--list&#039;, *args)

    if p.wait() == 0:
        return p.stdout.read().strip().split(sep)


def ErrorMessage(text):
    &quot;&quot;&quot;Show an error message dialog to the user.
    
    This will raise a Zenity Error Dialog with a description of the error.
    
    text - A description of the error.&quot;&quot;&quot;

    run_zenity(&#039;--error&#039;, &#039;--text=%s&#039; % text).wait()


def Question(text):
    &quot;&quot;&quot;Ask the user a question.
    
    This will raise a Zenity Question Dialog that will present the user with an 
    OK/Cancel dialog box.  It returns True if the user clicked OK; False on 
    Cancel.
    
    text - The question to ask.&quot;&quot;&quot;

    return run_zenity(&#039;--question&#039;, &#039;--text=%s&#039; % text).wait() == 0


def Warning(text):
    &quot;&quot;&quot;Show a warning message dialog to the user.
    
    This will raise a Zenity Warning Dialog with a description of the warning.
    It returns True if the user clicked OK; False on cancel.
    
    text - A description of the warning.&quot;&quot;&quot;

    return run_zenity(&#039;--warning&#039;, &#039;--text=%s&#039; % text).wait() == 0


def Progress(text=&#039;&#039;, percentage=0, auto_close=False, pulsate=False):
    &quot;&quot;&quot;Show a progress dialog to the user.
    
    This will raise a Zenity Progress Dialog.  It returns a callback that 
    accepts two arguments.  The first is a numeric value of the percent 
    complete.  The second is a message about the progress.

    NOTE: This function sends the SIGHUP signal if the user hits the cancel 
          button.  You must connect to this signal if you do not want your 
          application to exit.
    
    text - The initial message about the progress.
    percentage - The initial percentage to set the progress bar to.
    auto_close - True if the dialog should close automatically if it reaches 
                 100%.
    pulsate - True is the status should pulsate instead of progress.&quot;&quot;&quot;

    args = []
    if text:
        args.append(&#039;--text=%s&#039; % text)
    if percentage:
        args.append(&#039;--percentage=%s&#039; % percentage)
    if auto_close:
        args.append(&#039;--auto-close=%s&#039; % auto_close)
    if pulsate:
        args.append(&#039;--pulsate=%s&#039; % pulsate)

    p = Popen([zen_exec, &#039;--progress&#039;] + args, stdin=PIPE, stdout=PIPE)

    def update(percent, message=&#039;&#039;):
        if type(percent) == float:
            percent = int(percent * 100)
        p.stdin.write(str(percent) + &#039;\n&#039;)
        if message:
            p.stdin.write(&#039;# %s\n&#039; % message)
        return p.returncode

    return update


def GetText(text=&#039;&#039;, entry_text=&#039;&#039;, password=False):
    &quot;&quot;&quot;Get some text from the user.

    This will raise a Zenity Text Entry Dialog.  It returns the text the user 
    entered or None if the user hit cancel.

    text - A description of the text to enter.
    entry_text - The initial value of the text entry box.
    password - True if text entered should be hidden by stars.&quot;&quot;&quot;

    args = []
    if text:
        args.append(&#039;--text=%s&#039; % text)
    if entry_text:
        args.append(&#039;--entry-text=%s&#039; % entry_text)
    if password:
        args.append(&#039;--hide-text&#039;)

    p = run_zenity(&#039;--entry&#039;, *args)

    if p.wait() == 0:
        return p.stdout.read()[:-1]


########################################################
#####-END of PyZenity-######


import sys
import gdata.photos.service
#import PyZenity
#import bz2

#Paramètres : possibilité de les rentrer en dur
email=GetText(text=&#039;Email&#039;, entry_text=&#039;@gmail.com&#039;, password=False)
password=GetText(text=&#039;Mot de passe&#039;, entry_text=&#039;Picasa&#039;, password=True)
#key=...




########-Fonction d&#039;envoi des photos-########
def send_photo(album):
	album_url = &#039;/data/feed/api/user/%s/album/%s&#039; % (&#039;default&#039;, album)
	update=Progress(text=&#039;Envoi des photos ...&#039;, percentage=0, auto_close=False, pulsate=False)
	percent=0
        for i in range(len(sys.argv)-1):
		text=&#039;Envoi des photos ... (&#039;+str(i+1)+&#039;/&#039;+str(len(sys.argv)-1)+&#039;)&#039;
		print str(percent)
		update(percent,text)
		entry = gd_client.InsertPhotoSimple(album_url, &#039;New Photo&#039;,&#039;&#039;, sys.argv[i+1], content_type=&#039;image/jpeg&#039;)
		percent=int(float(i+1)/(len(sys.argv)-1)*100)
#############################################

#Connection à picasaweb
gd_client = gdata.photos.service.PhotosService()
gd_client.email = email
#gd_client.password = bz2.decompress(key)
gd_client.password = password
gd_client.source = &#039;exampleCo-exampleApp-1&#039;



try:
    gd_client.ProgrammaticLogin()
except gdata.service.CaptchaRequired:
#    print(&#039;Required Captcha&#039;)
     ErrorMessage(&#039;Required Captcha&#039;)
except gdata.service.BadAuthentication:
#    print(&#039;Mauvaise authentification&#039;)
     ErrorMessage(&#039;Mauvaise authentification&#039;)
except gdata_client.Error:
#    print(&#039;Probleme de Login&#039;)
     ErrorMessage(&#039;Probleme de Login&#039;)
else:
	
	nouvelalbum=Question(&quot;Creer un nouvel album ?&quot;)

	if nouvelalbum==True :
		nom_album=GetText(text=&#039;Nom de l\&#039;album (sans espaces): &#039;, entry_text=&#039;Nouvel_album&#039;, password=False)
		# Verification si l&#039;album existe deja
		feed = gd_client.GetUserFeed(user=&quot;default&quot;)
		for entry in feed.entry:
			while nom_album.lower()==str(entry.title.text).lower():
				Warning(&quot;Cet album existe deja, veuillez entrer un autre nom !&quot;)
				nom_album=GetText(text=&#039;Nom de l\&#039;album (sans espaces): &#039;, entry_text=&#039;Nouvel_album_2&#039;, password=False)
		#Permissions sur l&#039;album
		acces=&quot;private&quot;
        	#Crée l&#039;album
        	entry = gd_client.InsertAlbum(nom_album, summary=&#039;This is an album&#039;, access=acces)
		#Envoi des photos
		send_photo(nom_album)


        
	else:
		# Choisir un album
		feed = gd_client.GetUserFeed(user=&quot;default&quot;)
		i=0
		liste=()
        	for entry in feed.entry:
			i=i+1
			liste = liste + (entry.title.text,)  
		nom_album=(List((&#039;Album&#039;,), title=None, boolstyle=None, editable=False, select_col=None, sep=&#039;|&#039;, data=[liste]))[0]
		#Envoi des photos
		send_photo(nom_album)</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (GNU-max)]]></author>
			<pubDate>Sat, 27 Jun 2009 19:01:15 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2766102#p2766102</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [script/python] Nautilus et picasaweb!]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=2473204#p2473204</link>
			<description><![CDATA[<p>Très efficace l&#039;uploader de firefox.</p>]]></description>
			<author><![CDATA[dummy@example.com (Pedrodelalunabe)]]></author>
			<pubDate>Thu, 05 Mar 2009 01:34:24 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=2473204#p2473204</guid>
		</item>
	</channel>
</rss>
