fix ffmpeg download
This commit is contained in:
@@ -308,17 +308,19 @@ pub async fn download_ffmpeg(app: &AppHandle) -> Result<PathBuf> {
|
||||
for asset in assets {
|
||||
if let (Some(name), Some(url)) = (asset.get("name").and_then(|n| n.as_str()), asset.get("browser_download_url").and_then(|u| u.as_str())) {
|
||||
let lname = name.to_lowercase();
|
||||
if lname.contains("win64") && lname.ends_with(".zip") {
|
||||
// Prefer GPL static build, avoid shared to get a single exe
|
||||
if lname.contains("win64") && lname.contains("gpl") && !lname.contains("shared") && lname.ends_with(".zip") {
|
||||
download_url = Some(url.to_string());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if download_url.is_none() {
|
||||
// fallback: choose first zip asset
|
||||
// fallback: choose first zip asset that is NOT shared if possible
|
||||
for asset in assets {
|
||||
if let (Some(url), Some(name)) = (asset.get("browser_download_url").and_then(|u| u.as_str()), asset.get("name").and_then(|n| n.as_str())) {
|
||||
if name.to_lowercase().ends_with(".zip") {
|
||||
let lname = name.to_lowercase();
|
||||
if lname.ends_with(".zip") && !lname.contains("shared") {
|
||||
download_url = Some(url.to_string());
|
||||
break;
|
||||
}
|
||||
@@ -341,7 +343,8 @@ pub async fn download_ffmpeg(app: &AppHandle) -> Result<PathBuf> {
|
||||
if file.is_dir() { continue; }
|
||||
let name = file.name().to_string();
|
||||
let filename_only = name.split('/').last().unwrap_or("");
|
||||
if filename_only.eq_ignore_ascii_case("ffmpeg.exe") || filename_only.ends_with(".dll") {
|
||||
// Only extract the executable, ignore DLLs
|
||||
if filename_only.eq_ignore_ascii_case("ffmpeg.exe") {
|
||||
let mut out_file = fs::File::create(bin_dir.join(filename_only))?;
|
||||
std::io::copy(&mut file, &mut out_file)?;
|
||||
found = true;
|
||||
|
||||
Reference in New Issue
Block a user