MINFO_PROVIDER_INTERFACE = 'com.simonpena.maevies.minfoprovider'
MINFO_PROVIDER_BUS_NAME = 'com.simonpena.maevies.minfoprovider'
-TMDB_MOVIE_INTERFACE = 'com.simonpena.maevies.movie'
+TMDB_MOVIE_INTERFACE = 'com.simonpena.maevies.tmdbmovie'
TMDB_MOVIE_BUS_NAME = 'com.simonpena.maevies.tmdbmovie'
TMDB = 0
WATC = 1
class MovieManager:
- def __init__(self, response_received_cb = None):
+ def __init__(self, response_received_cb=None):
self.response_received_cb = response_received_cb
self._bus = None
self._provider = None
provider_proxy = self._bus.get_object(MINFO_PROVIDER_BUS_NAME,
'/MInfoProvider')
provider_interface = dbus.Interface(provider_proxy,
- dbus_interface = MINFO_PROVIDER_INTERFACE)
- provider_interface.connect_to_signal("ResponseReceived",
+ dbus_interface=MINFO_PROVIDER_INTERFACE)
+ provider_interface.connect_to_signal('ResponseReceived',
self._on_response_received)
return provider_interface
- def query(self, movie_name = '', query_type = TMDB):
+ def query(self, movie_name='', query_type=TMDB):
try:
self._get_provider().Query(query_type, movie_name)
except DBusException:
self._on_response_received([])
- def _on_response_received(self, object_paths):
+ def _on_response_received(self, interface, object_paths):
movies = []
- for path in object_paths:
- movies.append(MovieProxy(self._bus, path))
+
+ if interface == TMDB_MOVIE_INTERFACE:
+ for path in object_paths:
+ movies.append(MovieProxy(self._bus, path))
+ else:
+ pass
if self.response_received_cb:
self.response_received_cb(movies)
+class MovieImage:
+ def __init__(self, image_struct):
+ self._type, self._url, self._size, self._id = image_struct
+
+ def get_url(self):
+ return self._url
+
+ def get_id(self):
+ return self._id
+
+ def get_size(self):
+ return self._size
+
+ def get_type(self):
+ return self._type
+
+ def __str__(self):
+ str = ''
+ for field in [self._id, self._url, self._type, self._size]:
+ str += '\t%s\n' % field
+ return str
+
class MovieProxy:
def __init__(self, bus, object_path):
self._bus = bus
self.interface = self._create_movie_interface(object_path)
- self.fields = ["Title", "Release date", "Rating", "Popularity"]
+ self.fields = ['Title', 'Release date', 'Rating', 'Popularity']
+ self._images = self._retrieve_images()
def _create_movie_interface(self, object_path):
proxy = self._bus.get_object(TMDB_MOVIE_BUS_NAME,
object_path)
interface = dbus.Interface(proxy,
- dbus_interface = TMDB_MOVIE_INTERFACE)
+ dbus_interface=TMDB_MOVIE_INTERFACE)
return interface
+ def _retrieve_images(self):
+ images = { }
+ dbus_images = self.interface.GetImages()
+ for dbus_image in dbus_images:
+ image = MovieImage(dbus_image)
+ if not images.has_key(image.get_type()):
+ images[image.get_type()] = {}
+ images[image.get_type()][image.get_size()] = image
+ return images
+
def get_value(self, field):
- if field == "Title":
+ if field == 'Title':
return self.get_title()
- elif field == "Release date":
+ elif field == 'Release date':
return self.get_released()
- elif field == "Rating":
+ elif field == 'Rating':
return self.get_rating()
- elif field == "Popularity":
+ elif field == 'Popularity':
return self.get_popularity()
else:
- return ""
+ return ''
def get_title(self):
return self.interface.GetTitle()
def get_rating(self):
return self.interface.GetRating()
+ def get_image(self, type, size):
+ return self._images[type][size]
+
def get_released(self):
return self.interface.GetReleased()
def get_info(self):
- return "<b>%(title)s</b>\n<small><i>Popularity: </i>%(popularity)s\
- <i>Rating: </i>%(rating)s <i>Released: </i>%(released)s</small>" % {'title' : self.get_title(),
- 'popularity' : self.get_popularity(),
- 'rating' : self.get_rating(),
- 'released' : self.get_released()}
+ return ('<b>%(title)s</b>\n<small><i>Popularity: </i>%(popularity)s'
+ ' <i>Rating: </i>%(rating)s <i>Released: </i>'
+ '%(released)s</small>' %
+ {'title' : self.get_title(),
+ 'popularity' : self.get_popularity(),
+ 'rating' : self.get_rating(),
+ 'released' : self.get_released()})
def get_overview(self):
return self.interface.GetOverview()
- def get_image(self):
+ def get_placeholder_image(self):
return self._get_placeholder_pixbuf()
def _get_placeholder_pixbuf(self):