mirror of
				https://github.com/libretro/Lakka-LibreELEC.git
				synced 2025-10-31 13:08:04 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import PIL.Image
 | |
| import os
 | |
| import tempfile
 | |
| import urllib.request
 | |
| 
 | |
| _DIRECTORY_NAME = "librespot.coverart"
 | |
| _DIRECTORY_PATH = os.path.join(tempfile.gettempdir(), _DIRECTORY_NAME)
 | |
| _MAX_COVERARTS = 10
 | |
| 
 | |
| 
 | |
| def get_fanart(url):
 | |
|     name = os.path.basename(url)
 | |
|     target = os.path.join(_DIRECTORY_PATH, f"{name}")
 | |
|     if not os.path.exists(target):
 | |
|         if not os.path.exists(_DIRECTORY_PATH):
 | |
|             os.makedirs(_DIRECTORY_PATH)
 | |
|         paths = [
 | |
|             os.path.join(_DIRECTORY_PATH, file) for file in os.listdir(_DIRECTORY_PATH)
 | |
|         ]
 | |
|         paths = [path for path in paths if os.path.isfile(path)]
 | |
|         paths.sort(key=os.path.getmtime)
 | |
|         for path in paths[:-_MAX_COVERARTS]:
 | |
|             os.remove(path)
 | |
|         source = os.path.join(_DIRECTORY_PATH, f"{name}.tmp")
 | |
|         urllib.request.urlretrieve(url, source)
 | |
|         image = PIL.Image.open(source)
 | |
|         width, height = image.size
 | |
|         new_width = int(height * 16 / 9)
 | |
|         delta_w = new_width - width
 | |
|         new_image = PIL.Image.new("RGB", (new_width, height), (0, 0, 0))
 | |
|         new_image.paste(image, (delta_w // 2, 0))
 | |
|         new_image.save(target, "JPEG", optimize=True)
 | |
|         os.remove(source)
 | |
|     return target
 |