mirror of
				https://github.com/devine-dl/devine.git
				synced 2025-11-03 19:34:49 +00:00 
			
		
		
		
	refactor(utilities): Remove get_binary_path, use binaries.find instead
The function now located at core/binaries should only be used by services to find a specific binary not listed in there already, or if the name of the binary needed by your service differs.
This commit is contained in:
		
							parent
							
								
									677fd9c56a
								
							
						
					
					
						commit
						fd64e6acf4
					
				@ -1,34 +1,45 @@
 | 
				
			|||||||
 | 
					import shutil
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
 | 
					from pathlib import Path
 | 
				
			||||||
from devine.core.utilities import get_binary_path
 | 
					from typing import Optional
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__shaka_platform = {
 | 
					__shaka_platform = {
 | 
				
			||||||
    "win32": "win",
 | 
					    "win32": "win",
 | 
				
			||||||
    "darwin": "osx"
 | 
					    "darwin": "osx"
 | 
				
			||||||
}.get(sys.platform, sys.platform)
 | 
					}.get(sys.platform, sys.platform)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FFMPEG = get_binary_path("ffmpeg")
 | 
					
 | 
				
			||||||
FFProbe = get_binary_path("ffprobe")
 | 
					def find(*names: str) -> Optional[Path]:
 | 
				
			||||||
FFPlay = get_binary_path("ffplay")
 | 
					    """Find the path of the first found binary name."""
 | 
				
			||||||
SubtitleEdit = get_binary_path("SubtitleEdit")
 | 
					    for name in names:
 | 
				
			||||||
ShakaPackager = get_binary_path(
 | 
					        path = shutil.which(name)
 | 
				
			||||||
 | 
					        if path:
 | 
				
			||||||
 | 
					            return Path(path)
 | 
				
			||||||
 | 
					    return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FFMPEG = find("ffmpeg")
 | 
				
			||||||
 | 
					FFProbe = find("ffprobe")
 | 
				
			||||||
 | 
					FFPlay = find("ffplay")
 | 
				
			||||||
 | 
					SubtitleEdit = find("SubtitleEdit")
 | 
				
			||||||
 | 
					ShakaPackager = find(
 | 
				
			||||||
    "shaka-packager",
 | 
					    "shaka-packager",
 | 
				
			||||||
    "packager",
 | 
					    "packager",
 | 
				
			||||||
    f"packager-{__shaka_platform}",
 | 
					    f"packager-{__shaka_platform}",
 | 
				
			||||||
    f"packager-{__shaka_platform}-x64"
 | 
					    f"packager-{__shaka_platform}-x64"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
Aria2 = get_binary_path("aria2c", "aria2")
 | 
					Aria2 = find("aria2c", "aria2")
 | 
				
			||||||
CCExtractor = get_binary_path(
 | 
					CCExtractor = find(
 | 
				
			||||||
    "ccextractor",
 | 
					    "ccextractor",
 | 
				
			||||||
    "ccextractorwin",
 | 
					    "ccextractorwin",
 | 
				
			||||||
    "ccextractorwinfull"
 | 
					    "ccextractorwinfull"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
HolaProxy = get_binary_path("hola-proxy")
 | 
					HolaProxy = find("hola-proxy")
 | 
				
			||||||
MPV = get_binary_path("mpv")
 | 
					MPV = find("mpv")
 | 
				
			||||||
Caddy = get_binary_path("caddy")
 | 
					Caddy = find("caddy")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__all__ = (
 | 
					__all__ = (
 | 
				
			||||||
    "FFMPEG", "FFProbe", "FFPlay", "SubtitleEdit", "ShakaPackager",
 | 
					    "FFMPEG", "FFProbe", "FFPlay", "SubtitleEdit", "ShakaPackager",
 | 
				
			||||||
    "Aria2", "CCExtractor", "HolaProxy", "MPV", "Caddy"
 | 
					    "Aria2", "CCExtractor", "HolaProxy", "MPV", "Caddy", "find"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,6 @@ import contextlib
 | 
				
			|||||||
import importlib.util
 | 
					import importlib.util
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
import shutil
 | 
					 | 
				
			||||||
import socket
 | 
					import socket
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
import time
 | 
					import time
 | 
				
			||||||
@ -87,15 +86,6 @@ def import_module_by_path(path: Path) -> ModuleType:
 | 
				
			|||||||
    return module
 | 
					    return module
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_binary_path(*names: str) -> Optional[Path]:
 | 
					 | 
				
			||||||
    """Find the path of the first found binary name."""
 | 
					 | 
				
			||||||
    for name in names:
 | 
					 | 
				
			||||||
        path = shutil.which(name)
 | 
					 | 
				
			||||||
        if path:
 | 
					 | 
				
			||||||
            return Path(path)
 | 
					 | 
				
			||||||
    return None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def sanitize_filename(filename: str, spacer: str = ".") -> str:
 | 
					def sanitize_filename(filename: str, spacer: str = ".") -> str:
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Sanitize a string to be filename safe.
 | 
					    Sanitize a string to be filename safe.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user