Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgnacio Rodríguez <ignacio@sugarlabs.org>2013-01-10 17:19:30 (GMT)
committer Ignacio Rodríguez <ignacio@sugarlabs.org>2013-01-10 17:19:30 (GMT)
commitd78e6e6f621a2af699e23c7443e2211a79435e88 (patch)
tree17f6fe0b1079e216afbac508036be2a6b11018bd
parentbc587bc23138e916b272ea388d4a434d51016161 (diff)
Pastebin Uploader.
-rw-r--r--uploader.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/uploader.py b/uploader.py
new file mode 100644
index 0000000..87292dd
--- /dev/null
+++ b/uploader.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# uploader.py by/por:
+# Ignacio Rodríguez <nachoel01@gmail.com>
+# Sugarlabs - CeibalJAM! - Uruguay
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+
+import urllib2
+import urllib
+import gtk
+try:
+ from sugar.graphics.alert import ErrorAlert
+except:
+ pass
+from gettext import gettext as _
+
+
+class Pastebin:
+ def __init__(self, activity, text, name, syntax):
+ self.activity = activity
+ self.url = "http://pastebin.com/api/api_post.php"
+ self.request = {}
+ self.request['api_paste_code'] = text
+ self.request['api_dev_key'] = "6c71766cdadff9f33347e80131397ac2"
+ # Dont touch this ^^^
+ self.request['api_option'] = 'paste'
+ self.request['api_paste_format'] = syntax
+ self.request['api_paste_name'] = name
+ self.urlrequest = urllib.urlencode(self.request)
+ try:
+ self.upload = urllib2.urlopen(self.url, self.urlrequest)
+ except urllib2.URLError:
+ try:
+ alert = ErrorAlert()
+ alert.props.title = _('Error')
+ alert.props.msg = _('Error trying upload the file')
+ alert.connect('response', self._alert_response_cb)
+ self.activity.add_alert(alert)
+ except:
+ print 'Error al cargar'
+ else:
+ respuesta = self.upload.read()
+ try:
+ alert = ErrorAlert()
+ alert.props.title = _('Genial!')
+ alert.props.title = _('Carga finalizada. El link ha sido copiado al portapapeles')
+ self.activity.add_alert(alert)
+ alert.connect('response', self._alert_response_cb)
+ except:
+ pass
+ clipboard = gtk.Clipboard()
+ clipboard.set_text(respuesta)
+
+ def _alert_response_cb(self, alert, response_id):
+ self.activity.remove_alert(alert)
+
+class acexample:
+ def __init__(self):
+ pass
+ def add_alert(alert):
+ pass
+ def remove_alert(alert):
+ pass
+
+if __name__ == "__main__":
+ print " Testeo "
+ name = raw_input('Título:')
+ texto = raw_input('Escriba un texto a subir:')
+ syntax = raw_input('Syntax:')
+ Pastebin(acexample(), texto, name, syntax)