mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 22:25:39 +00:00
Code cleanup
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user