Cache set infos locally, increases startup performance
This commit is contained in:
11
mtg-collector/network.py
Normal file
11
mtg-collector/network.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
from urllib import request
|
||||||
|
from urllib.error import URLError, HTTPError
|
||||||
|
from mtgsdk import Set
|
||||||
|
|
||||||
|
|
||||||
|
def net_load_sets():
|
||||||
|
try:
|
||||||
|
sets = Set.all()
|
||||||
|
except:
|
||||||
|
return ""
|
||||||
|
return sets
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from urllib.error import URLError
|
from urllib.error import URLError, HTTPError
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
from gi.repository import Pango
|
from gi.repository import Pango
|
||||||
@@ -235,7 +235,7 @@ class SearchView(Gtk.Grid):
|
|||||||
.where(rarity=rarityfilter) \
|
.where(rarity=rarityfilter) \
|
||||||
.where(pageSize=50)\
|
.where(pageSize=50)\
|
||||||
.where(page=1).all()
|
.where(page=1).all()
|
||||||
except URLError as err:
|
except (URLError, HTTPError) as err:
|
||||||
print("Error connecting to the internet")
|
print("Error connecting to the internet")
|
||||||
GObject.idle_add(util.show_message, "Connection Error", str(err.reason), priority=GObject.PRIORITY_DEFAULT)
|
GObject.idle_add(util.show_message, "Connection Error", str(err.reason), priority=GObject.PRIORITY_DEFAULT)
|
||||||
GObject.idle_add(self.do_activate_controls, True, priorty=GObject.PRIORITY_DEFAULT)
|
GObject.idle_add(self.do_activate_controls, True, priorty=GObject.PRIORITY_DEFAULT)
|
||||||
@@ -338,7 +338,7 @@ class SearchView(Gtk.Grid):
|
|||||||
def do_activate_controls(self, active):
|
def do_activate_controls(self, active):
|
||||||
self.searchEntry.set_editable(active)
|
self.searchEntry.set_editable(active)
|
||||||
self.searchEntry.set_sensitive(active)
|
self.searchEntry.set_sensitive(active)
|
||||||
#self.searchbutton.set_sensitive(active)
|
self.searchbutton.set_sensitive(active)
|
||||||
self.red_mana_button.set_sensitive(active)
|
self.red_mana_button.set_sensitive(active)
|
||||||
self.blue_mana_button.set_sensitive(active)
|
self.blue_mana_button.set_sensitive(active)
|
||||||
self.black_mana_button.set_sensitive(active)
|
self.black_mana_button.set_sensitive(active)
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
|
import json
|
||||||
import os
|
import os
|
||||||
|
import pickle
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
import re
|
import re
|
||||||
|
|
||||||
import config
|
import config
|
||||||
|
import network
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
from gi.repository import GdkPixbuf, Gtk
|
from gi.repository import GdkPixbuf, Gtk
|
||||||
from PIL import Image as PImage
|
from PIL import Image as PImage
|
||||||
from urllib import request
|
from urllib import request
|
||||||
from mtgsdk import Set
|
from mtgsdk import Set
|
||||||
from urllib.error import URLError
|
from urllib.error import URLError, HTTPError
|
||||||
|
|
||||||
# Loacally stored images for faster loading times
|
# Loacally stored images for faster loading times
|
||||||
imagecache = []
|
imagecache = []
|
||||||
@@ -20,12 +25,18 @@ status_bar = None
|
|||||||
|
|
||||||
|
|
||||||
def load_sets():
|
def load_sets():
|
||||||
#setfile = os.open(config.cachepath + "/sets")
|
path = config.cachepath + "sets"
|
||||||
try:
|
if not os.path.isfile(path):
|
||||||
sets = Set.all()
|
# use mtgsdk api to retrieve al list of all sets
|
||||||
except URLError as err:
|
new_sets = network.net_load_sets()
|
||||||
show_message("Connection Error", str(err.reason))
|
|
||||||
return
|
if new_sets == "":
|
||||||
|
show_message("API Error", "Could not retrieve Set infos")
|
||||||
|
return
|
||||||
|
# Serialize the loaded data to a file
|
||||||
|
pickle.dump(new_sets, open(config.cachepath + "sets", 'wb'))
|
||||||
|
# Deserialize set data from local file
|
||||||
|
sets = pickle.load(open(config.cachepath + "sets", 'rb'))
|
||||||
for set in sets:
|
for set in sets:
|
||||||
set_list.append(set)
|
set_list.append(set)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user