Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/uploader.py
blob: 32c7ebf935b331fd1a645511f29af8ac3a53b6b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/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'
	print syntax
        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:
		if 'Post limit, maximum pastes per 24h reached' in respuesta:
                        alert = ErrorAlert()
                        alert.props.title = _('Error!')
                        alert.props.title = _('Post limit, maximum pastes per 24h reached')
                        self.activity.add_alert(alert)
                        alert.connect('response', self._alert_response_cb)
                else:
                        alert = ErrorAlert()
                        alert.props.title = _('Great!')
                        alert.props.title = _('Charging complete. The link has been copied to clipboard')
                        self.activity.add_alert(alert)
                        alert.connect('response', self._alert_response_cb)
                        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)