~kamus/+junk/huuf

« back to all changes in this revision

Viewing changes to bin/huuf

  • Committer: Victor Vargas
  • Date: 2009-12-20 05:06:13 UTC
  • Revision ID: kamusin@gmail.com-20091220050613-tsrv243aiby0txhd
Primera version semi funcional

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
# This file is in the public domain
5
5
### END LICENSE
6
6
 
 
7
from subprocess import Popen, PIPE
7
8
import sys
8
9
import os
9
10
import gtk
 
11
import webkit
 
12
 
10
13
 
11
14
# Check if we are working in the source tree or from the installed 
12
15
# package and mangle the python path accordingly
46
49
        #get a reference to the builder and set up the signals
47
50
        self.builder = builder
48
51
        self.builder.connect_signals(self)
 
52
        
49
53
 
50
54
        #uncomment the following code to read in preferences at start up
51
55
        #dlg = PreferencesHuufDialog.NewPreferencesHuufDialog()
53
57
 
54
58
        #code for other initialization actions should be added here
55
59
 
 
60
        self.txtoutput = builder.get_object("txtoutput")
 
61
        self.treeview1 = builder.get_object("treeview1")
 
62
        self.statusbar = builder.get_object("statusbar1")
 
63
 
 
64
        #Barra Estado
 
65
        self.contexto = self.statusbar.get_context_id("StatusBar")
 
66
 
 
67
        #Modelo del treeview
 
68
        self.liststore = gtk.ListStore(gtk.gdk.Pixbuf, str)
 
69
        self.treeview1.set_model(self.liststore)
 
70
 
 
71
 
 
72
        #Iconos Treeview
 
73
        self.audio = gtk.gdk.pixbuf_new_from_file("data/media/audio-card.png")
 
74
        self.video = gtk.gdk.pixbuf_new_from_file("data/media/video-display.png")
 
75
        self.disco = gtk.gdk.pixbuf_new_from_file("data/media/drive-harddisk.png")
 
76
        self.compu = gtk.gdk.pixbuf_new_from_file("data/media/computer.png")
 
77
        self.wifi = gtk.gdk.pixbuf_new_from_file("data/media/network-wireless.png")   
 
78
    
 
79
        #columnas del Treeview
 
80
        self.column_texto = gtk.TreeViewColumn("",gtk.CellRendererText(),text=1)
 
81
        self.column_imagen = gtk.TreeViewColumn("",gtk.CellRendererPixbuf(),pixbuf=0)
 
82
        
 
83
        #Cellrenderes para insertar los datos
 
84
        self.cellpixel = gtk.CellRendererPixbuf()
 
85
        self.celltexto = gtk.CellRendererText()
 
86
        
 
87
        #Agregar columnas del TreeView
 
88
        self.treeview1.append_column(self.column_imagen)
 
89
        self.treeview1.append_column(self.column_texto)
 
90
 
 
91
        #Agregar las celdas a la lista  
 
92
        self.item1 = self.liststore.append([self.video, "Video"])
 
93
        self.item2 = self.liststore.append([self.audio, "Audio"])
 
94
        self.item3 = self.liststore.append([self.disco, "Particiones"])            
 
95
        self.item4 = self.liststore.append([self.wifi, "Wifi"])
 
96
    
 
97
 
56
98
    def about(self, widget, data=None):
57
99
        """about - display the about box for huuf """
58
100
        about = AboutHuufDialog.NewAboutHuufDialog()
75
117
    def on_destroy(self, widget, data=None):
76
118
        """on_destroy - called when the HuufWindow is close. """
77
119
        #clean up code for saving application state should be added here
78
 
 
 
120
        print "Closing..."
79
121
        gtk.main_quit()
80
122
 
 
123
    def on_treeview1_cursor_changed(self, tree=None):
 
124
        """Esto genera los comandos al momento de hacer clic en una opcion de la lista"""
 
125
        try:        
 
126
            treeselection = self.treeview1.get_selection()
 
127
            modelo, ite = treeselection.get_selected()
 
128
            texto = modelo.get_value(ite, 1)
 
129
            #print "Seleccionado", texto
 
130
            #opcion = model.get_value(model, TEXTO)
 
131
            opcion = texto
 
132
            print opcion
 
133
            self.rescata_datos(opcion)
 
134
        except TypeError, err:
 
135
            sys.stderr.write('Ocurrio un error de tipo %s' % str(err))
 
136
 
 
137
    def rescata_datos(self, opcion):
 
138
        #print os.environ['DESKTOP_SESSION'].upper()
 
139
            diccionario_comandos = {"Audio":["aplay -l",
 
140
                        "lspci | grep -i audio",
 
141
                        #"asoundconf list",
 
142
                        "cat /proc/asound/cards",
 
143
                        "lsmod | grep -i snd",
 
144
                        """lsof /dev/snd/controlC0 /dev/snd/pcmC0D0c /dev/snd/pcmC0D0p
 
145
                        /dev/snd/pcmC0D1p /dev/snd/pcmC0D2c /dev/snd/seq /dev/snd/timer"""],
 
146
                "Particiones": ["df -h",
 
147
                                "free -tm",
 
148
                                "mount",
 
149
                                "cat /etc/fstab",
 
150
                                "fdisk -l"],
 
151
                "Redes": ["ifconfig",
 
152
                        "dmesg |grep eth",
 
153
                        "cat /etc/network/interfaces",
 
154
                        "cat /etc/resolv.conf"],                
 
155
                "Video":  ["lspci|grep -i vga",
 
156
                        "cat /var/log/Xorg.0.log|grep EE",
 
157
                        "cat /var/log/messages |grep error",
 
158
                        "cat /var/log/syslog |grep error",
 
159
                        "lsmod |grep drm",
 
160
                        "lsmod |grep agp",
 
161
                        "glxinfo |grep direct"],
 
162
                "Wifi": ["iwconfig",
 
163
                        "cat /proc/net/wireless",
 
164
                        "lsmod |grep wlan && lsmod |grep ath && lsmod |grep ra",
 
165
                        "cat /etc/network/interfaces"]
 
166
            }
 
167
            output = Popen("lsb_release -a",shell=True,stdout=PIPE)
 
168
            salida = output.communicate()[0]
 
169
            salida = salida + "\n"
 
170
            orden = diccionario_comandos.keys()
 
171
            orden.sort()
 
172
            try:
 
173
                if opcion not in orden:
 
174
                    for i in orden:
 
175
                     for j in diccionario_comandos[i]:
 
176
                         output = Popen(j,shell=True,stdout=PIPE)
 
177
                         comando = output.communicate()[0]
 
178
                         salida = salida + "#" + j + "\n"
 
179
                         salida = salida + comando + "\n"    
 
180
                else:    
 
181
                    for i in diccionario_comandos[opcion]:
 
182
                        #print i
 
183
                        output = Popen(i,shell=True,stdout=PIPE)
 
184
                        comando = output.communicate()[0]
 
185
                        salida = salida + "#" + i + "\n"
 
186
                        salida = salida + comando + "\n"
 
187
            except err:
 
188
                print err
 
189
 
 
190
            print salida  
 
191
            self.rellena_datos(salida, opcion)
 
192
        
 
193
    def rellena_datos(self, salida, opcion):
 
194
        """llena la entrada de texto con la salida del comando"""    
 
195
        buf = self.txtoutput.get_buffer()
 
196
        buf.set_text(salida)
 
197
        #cargando info
 
198
        mensaje = 'Cargando informacion de %s' % opcion
 
199
        self.statusbar.push(self.contexto, mensaje)
 
200
        self.txtoutput.set_buffer(buf)
 
201
 
 
202
 
 
203
    def on_menuitem3_activate(self, widget, data=None):
 
204
        """Bottom to activate browser linked to ubuntuforums"""
 
205
        
 
206
    
 
207
 
 
208
    def on_window1_activate_default(self):
 
209
        """Al cargar ventana se abre el navegador de ubuntuforums"""
 
210
        browser = HuufWindow()        
 
211
        self.defaulturl = "http://ubuntuforums.org/forumdisplay.php?f=362"  
 
212
        self.defaulturl.open(self.defaulturl)
 
213
 
 
214
        self.scrolledwindow1 = gtk.ScrolledWindow()
 
215
        self.webview = webkit.WebView()
 
216
        self.scrolledwindow1.add(self.webview)
 
217
 
 
218
        browser.show()
 
219
 
 
220
 
 
221
    def _loadurl(self, url):
 
222
        """Cargar URL para browser"""        
 
223
        self.webview.open(url)
 
224
 
 
225
 
 
226
        
 
227
 
 
228
 
 
229
 
81
230
def NewHuufWindow():
82
231
    """NewHuufWindow - returns a fully instantiated
83
232
    HuufWindow object. Use this function rather than
93
242
    builder.add_from_file(ui_filename)
94
243
    window = builder.get_object("huuf_window")
95
244
    window.finish_initializing(builder)
 
245
    
 
246
    
96
247
    return window
97
248
 
98
249
if __name__ == "__main__":