main_screen.py~ 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import pygame
  2. import logging
  3. import hashlib
  4. import os
  5. import urllib
  6. from mopidy.audio import PlaybackState
  7. from .dynamic_background import DynamicBackground
  8. logger = logging.getLogger(__name__)
  9. class MainScreen():
  10. def __init__(self,size,manager,cache):
  11. self.size=size
  12. self.manager=manager
  13. self.background=DynamicBackground()
  14. self.track = None
  15. self.cache=cache
  16. self.imageStatus = -1
  17. def update(self,core):
  18. screen = pygame.Surface(self.size)
  19. self.background.drawBackground(screen)
  20. text = pygame.font.SysFont("arial",20)
  21. if(self.track!=None):
  22. text_surface=text.render(self.track.name,False,(255,255,255))
  23. screen.blit(text_surface,(0,0))
  24. return screen
  25. def track_started(self,track):
  26. self.track=track
  27. logger.error("track started")
  28. if(not self.isImageInCache()):
  29. logger.error("deskarga hasiko da")
  30. self.downloadImage()
  31. else:
  32. self.imageStatus = 1
  33. logger.error("supuestamente irudia badago")
  34. def getImageFileName(self):
  35. logger.error("izena sortzen")
  36. name = self.track.album.name
  37. logger.error(name)
  38. md5name = hashlib.md5(name).hexdigest()
  39. logger.error("izena ondo")
  40. return md5name
  41. def getCoverFolder(self):
  42. logger.error("cover karpeta lortzen")
  43. if(not os.path.isdir(self.cache+"/covers")):
  44. logger.error("cover carpeta sortu da")
  45. os.makedirs(self.cache+"/covers")
  46. else:
  47. logger.error("ez da cover carpeta sortu")
  48. return self.cache+"/covers/"
  49. def isImageInCache(self):
  50. logger.error("imagen en katxe hasiera")
  51. self.getCoverFolder()
  52. logger.error("imagen en katxe bukaerar")
  53. return os.path.isfile(self.cache+self.getCoverFolder()+self.getImageFileName())
  54. def downloadImage(self):
  55. logger.error("deskarga hasi da jaja")
  56. self.imageStatus = 0
  57. #safe_artist=urllib.quote_plus(self.track.artists)
  58. safe_artist=''
  59. logger.error("-1")
  60. safe_album=urllib.quote_plus(self.track.album.name)
  61. logger.error("1")
  62. url="http://ws.audioscrobbler.com/2.0/?"
  63. params="method=album.getinfo&api_key=59a04c6a73fb99d6e8996e01db306829&artist="+safe_artist+"&album="+safe_album+"&format=json"
  64. response = urllib2.urlopen(url+params)
  65. data = json.load(response)
  66. image = data['album']['image'][2]['#text']
  67. urllib.urlretrieve(image, folder+"00000001.jpg")
  68. self.imageStatus = 1