Code cleanup

This commit is contained in:
9and3r
2014-08-04 02:36:08 +02:00
parent 375c73d89f
commit 72238ab099
16 changed files with 341 additions and 200 deletions

View File

@@ -34,12 +34,15 @@ class MainScreen():
def update(self, screen):
if self.track is not None:
if self.image is not None:
screen.blit(self.image, (self.base_size / 2, self.base_size + self.base_size / 2))
screen.blit(self.image, (
self.base_size / 2, self.base_size + self.base_size / 2))
self.touch_text_manager.get_touch_object("time_progress").set_value(
self.core.playback.time_position.get() / 1000)
self.touch_text_manager.get_touch_object("time_progress").set_text(time.strftime('%M:%S', time.gmtime(
self.core.playback.time_position.get() / 1000)) + "/" + time.strftime('%M:%S', time.gmtime(
self.track.length / 1000)))
self.touch_text_manager.get_touch_object("time_progress").set_text(
time.strftime('%M:%S', time.gmtime(
self.core.playback.time_position.get() / 1000)) + "/" + time.strftime(
'%M:%S', time.gmtime(
self.track.length / 1000)))
self.touch_text_manager.render(screen)
return screen
@@ -54,32 +57,42 @@ class MainScreen():
self.artists.append(artist)
# Track name
label = TextItem(self.fonts['base'], MainScreen.get_track_name(track), (x, self.base_size * 2),
label = TextItem(self.fonts['base'], MainScreen.get_track_name(track),
(x, self.base_size * 2),
(width, self.size[1]))
self.touch_text_manager.set_object("track_name", label)
#Album name
label = TextItem(self.fonts['base'], MainScreen.get_track_album_name(track), (x, self.base_size * 3),
# Album name
label = TextItem(self.fonts['base'],
MainScreen.get_track_album_name(track),
(x, self.base_size * 3),
(width, self.size[1]))
self.touch_text_manager.set_object("album_name", label)
#Artist
label = TextItem(self.fonts['base'], self.get_artist_string(), (x, self.base_size * 4), (width, self.size[1]))
# Artist
label = TextItem(self.fonts['base'], self.get_artist_string(),
(x, self.base_size * 4), (width, self.size[1]))
self.touch_text_manager.set_object("artist_name", label)
#Previous track button
button = TouchAndTextItem(self.fonts['icon'], u"\ue61c", (0, self.base_size * 6), None)
button = TouchAndTextItem(self.fonts['icon'], u"\ue61c",
(0, self.base_size * 6), None)
self.touch_text_manager.set_touch_object("previous", button)
size_1 = button.get_right_pos()
size_2 = self.fonts['icon'].size(u"\ue61d")[0]
button = TouchAndTextItem(self.fonts['icon'], u"\ue61d", (self.size[0] - size_2, self.base_size * 6), None)
button = TouchAndTextItem(self.fonts['icon'], u"\ue61d",
(self.size[0] - size_2, self.base_size * 6),
None)
self.touch_text_manager.set_touch_object("next", button)
#Progress
progress = Progressbar(self.fonts['base'],
time.strftime('%M:%S', time.gmtime(0)) + "/" + time.strftime('%M:%S', time.gmtime(0)),
(size_1, self.base_size * 6), (self.size[0] - size_1 - size_2, self.base_size),
time.strftime('%M:%S', time.gmtime(
0)) + "/" + time.strftime('%M:%S',
time.gmtime(0)),
(size_1, self.base_size * 6),
(self.size[0] - size_1 - size_2, self.base_size),
track.length / 1000, False)
self.touch_text_manager.set_touch_object("time_progress", progress)
@@ -101,7 +114,8 @@ class MainScreen():
return artists_string
def get_image_file_name(self):
name = MainScreen.get_track_album_name(self.track) + '-' + self.get_artist_string()
name = MainScreen.get_track_album_name(
self.track) + '-' + self.get_artist_string()
md5name = hashlib.md5(name.encode('utf-8')).hexdigest()
return md5name
@@ -112,19 +126,22 @@ class MainScreen():
def is_image_in_cache(self):
self.get_cover_folder()
return os.path.isfile(self.get_cover_folder() + self.get_image_file_name())
return os.path.isfile(
self.get_cover_folder() + self.get_image_file_name())
def download_image(self, artist_index):
if artist_index < len(self.artists):
try:
safe_artist = urllib.quote_plus(self.artists[artist_index].name)
safe_album = urllib.quote_plus(MainScreen.get_track_album_name(self.track))
safe_album = urllib.quote_plus(
MainScreen.get_track_album_name(self.track))
url = "http://ws.audioscrobbler.com/2.0/?"
params = "method=album.getinfo&api_key=59a04c6a73fb99d6e8996e01db306829&artist=" + safe_artist + "&album=" + safe_album + "&format=json"
response = urllib2.urlopen(url + params)
data = json.load(response)
image = data['album']['image'][-1]['#text']
urllib.urlretrieve(image, self.get_cover_folder() + self.get_image_file_name())
urllib.urlretrieve(image,
self.get_cover_folder() + self.get_image_file_name())
self.load_image()
except:
self.download_image(artist_index + 1)
@@ -135,17 +152,20 @@ class MainScreen():
# There is no cover so it will use all the screen size for the text
width = self.size[0] - self.base_size
current = TextItem(self.fonts['base'], MainScreen.get_track_name(self.track),
current = TextItem(self.fonts['base'],
MainScreen.get_track_name(self.track),
(self.base_size / 2, self.base_size * 2),
(width, -1))
self.touch_text_manager.set_object("track_name", current)
current = TextItem(self.fonts['base'], MainScreen.get_track_album_name(self.track),
current = TextItem(self.fonts['base'],
MainScreen.get_track_album_name(self.track),
(self.base_size / 2, self.base_size * 3),
(width, -1))
self.touch_text_manager.set_object("album_name", current)
current = TextItem(self.fonts['base'], self.get_artist_string(), (self.base_size / 2, self.base_size * 4),
current = TextItem(self.fonts['base'], self.get_artist_string(),
(self.base_size / 2, self.base_size * 4),
(width, -1))
self.touch_text_manager.set_object("artist_name", current)
@@ -156,30 +176,37 @@ class MainScreen():
# There is no cover so it will use all the screen size for the text
width = self.size[0] - self.base_size
current = TextItem(self.fonts['base'], "Stopped", (self.base_size / 2, self.base_size * 2),
current = TextItem(self.fonts['base'], "Stopped",
(self.base_size / 2, self.base_size * 2),
(width, -1))
self.touch_text_manager.set_object("track_name", current)
current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 3),
current = TextItem(self.fonts['base'], "",
(self.base_size / 2, self.base_size * 3),
(width, -1))
self.touch_text_manager.set_object("album_name", current)
current = TextItem(self.fonts['base'], "", (self.base_size / 2, self.base_size * 4),
current = TextItem(self.fonts['base'], "",
(self.base_size / 2, self.base_size * 4),
(width, -1))
self.touch_text_manager.set_object("artist_name", current)
def load_image(self):
size = self.base_size * 4
self.image = pygame.transform.scale(
pygame.image.load(self.get_cover_folder() + self.get_image_file_name()).convert(), (size, size))
pygame.image.load(
self.get_cover_folder() + self.get_image_file_name()).convert(),
(size, size))
def touch_event(self, event):
if event.type == TouchManager.click:
objects = self.touch_text_manager.get_touch_objects_in_pos(event.current_pos)
objects = self.touch_text_manager.get_touch_objects_in_pos(
event.current_pos)
if objects is not None:
for key in objects:
if key == "time_progress":
value = self.touch_text_manager.get_touch_object(key).get_pos_value(event.current_pos) * 1000
value = self.touch_text_manager.get_touch_object(
key).get_pos_value(event.current_pos) * 1000
self.core.playback.seek(value)
elif key == "previous":
self.core.playback.previous()
@@ -212,7 +239,8 @@ class MainScreen():
@staticmethod
def get_track_album_name(track):
if track.album is not None and track.album.name is not None and len(track.album.name) > 0:
if track.album is not None and track.album.name is not None and len(
track.album.name) > 0:
return track.album.name
else:
return "Unknow Album"