Added Diablo refresh code. imgfetch.py added, contains function portrait_filename...
authorDanny Campbell <danny.campbell@gmail.com>
Sat, 17 Apr 2010 04:42:34 +0000 (22:42 -0600)
committerDanny Campbell <danny.campbell@gmail.com>
Sat, 17 Apr 2010 04:42:34 +0000 (22:42 -0600)
avatar.png [deleted file]
imgfetch.py [new file with mode: 0644]
imgs/avatar.jpg [new file with mode: 0644]
imgs/error.jpg [new file with mode: 0644]
mevemon.py
ui/diablo/ui.py

diff --git a/avatar.png b/avatar.png
deleted file mode 100644 (file)
index 39ac428..0000000
Binary files a/avatar.png and /dev/null differ
diff --git a/imgfetch.py b/imgfetch.py
new file mode 100644 (file)
index 0000000..760b6be
--- /dev/null
@@ -0,0 +1,21 @@
+import urllib
+import os.path
+
+def portrait_filename( char_id ):
+
+    filename = "imgs/%s.jpg" % char_id
+
+    if os.path.isfile( filename ):
+        return filename
+
+    try:
+        img = urllib.urlopen( "http://img.eve.is/serv.asp?s=64&c=%s" % char_id ).read()
+    except IOError:
+        return 'imgs/error.jpg'
+
+    fp = open( filename, 'w' )
+    fp.write( img )
+    fp.close()
+    return filename
+
+print portrait_filename( '797400947' )
diff --git a/imgs/avatar.jpg b/imgs/avatar.jpg
new file mode 100644 (file)
index 0000000..9a609d8
Binary files /dev/null and b/imgs/avatar.jpg differ
diff --git a/imgs/error.jpg b/imgs/error.jpg
new file mode 100644 (file)
index 0000000..b997eca
Binary files /dev/null and b/imgs/error.jpg differ
index ce7cc63..ce0f5d9 100644 (file)
@@ -42,7 +42,7 @@ class mEveMon():
     def get_characters( self ):
         ui_char_list = []
         print 'get_characters() called.'
-        placeholder_chars = [("Character 1", "avatar.png"), ("Character 2", "avatar.png")]
+        placeholder_chars = [("Please check your API settings.", "imgs/error.jpg")]
         api = eveapi.EVEAPIConnection()
         uid = self.get_uid()
         api_key = self.get_api_key()
@@ -56,11 +56,11 @@ class mEveMon():
                 return placeholder_chars
             except Exception, e:
                 print "The sky is falling! Unknown error: ", str( e )
-                raise
+                return placeholder_chars
             print "grabbing character list:"
             for character in api_char_list.characters:
                 print character
-                ui_char_list.append( ( character.name, "avatar.png" ) )
+                ui_char_list.append( ( character.name, "imgs/avatar.jpg" ) )
             return ui_char_list
         else:
             return placeholder_chars
index 8c4eaf0..72b33d7 100644 (file)
@@ -32,21 +32,24 @@ class mEveMonUI():
         win.set_menu(menu)
 
         # will probably need to refer to http://maemo.org/community/maemo-developers/gtktreeview_issue/ for sample code again when we make these clickable --danny
-        model = self.create_model()
-        treeview = gtk.TreeView( model = model )
-        treeview.set_model(model)
+        self.char_model = self.create_char_model()
+        treeview = gtk.TreeView( model = self.char_model )
+        treeview.set_model(self.char_model)
         self.add_columns_to_treeview(treeview)
 
         win.add(treeview)
         win.show_all()
   
-    def create_model(self):
+    def create_char_model(self):
         lstore = gtk.ListStore(gtk.gdk.Pixbuf, gobject.TYPE_STRING)
 
         #get icon and name and put in a liststore
 
-        # temporary hard-coding until we can fetch the data with eveapi
-        # something like:
+        self.fill_char_model(lstore)
+
+        return lstore
+
+    def fill_char_model(self, lstore):
         char_list = self.controller.get_characters()
         #char_list = [("Character 1", "avatar.png"), ("Character 2", "avatar.png")]
 
@@ -54,7 +57,9 @@ class mEveMonUI():
             liter = lstore.append()
             lstore.set(liter, 1, name, 0, self.set_pix(icon))
 
-        return lstore
+    def update_model(self, lstore):
+        lstore.clear()
+        self.fill_char_model(lstore)
 
     def set_pix(self, filename):
         pixbuf = gtk.gdk.pixbuf_new_from_file(filename)
@@ -117,6 +122,7 @@ class mEveMonUI():
         if result == gtk.RESPONSE_OK:
             self.controller.set_api_key(apiEntry.get_text())
             self.controller.set_uid(uidEntry.get_text())
+            self.update_model(self.char_model)
         
         dialog.destroy()
 
@@ -135,9 +141,8 @@ class mEveMonUI():
         dialog.destroy()
 
     def refresh_clicked(self, button, window):
-        pass
+        self.update_model(self.char_model)
   
-
     def create_menu(self, window):
     
         # changed from hildon.AppMenu --danny