add deno package support for arm64 and x86_64

pull/1165/head
deniscerri 4 months ago
parent e93132b28a
commit 730e587b90
No known key found for this signature in database
GPG Key ID: 95C43D517D830350

@ -32,6 +32,7 @@
<package android:name="com.deniscerri.ytdl.python" />
<package android:name="com.deniscerri.ytdl.ffmpeg" />
<package android:name="com.deniscerri.ytdl.nodejs" />
<package android:name="com.deniscerri.ytdl.deno" />
<package android:name="com.deniscerri.ytdl.aria2c" />
</queries>

@ -7,6 +7,7 @@ import com.deniscerri.ytdl.core.models.ExecuteException
import com.deniscerri.ytdl.core.models.ExecuteResponse
import com.deniscerri.ytdl.core.models.YTDLRequest
import com.deniscerri.ytdl.core.packages.Aria2c
import com.deniscerri.ytdl.core.packages.Deno
import com.deniscerri.ytdl.core.packages.FFmpeg
import com.deniscerri.ytdl.core.packages.NodeJS
import com.deniscerri.ytdl.core.packages.PackageBase
@ -33,6 +34,7 @@ object RuntimeManager {
lateinit var ffmpegLocation: PackageBase.PackageLocation
lateinit var aria2Location: PackageBase.PackageLocation
lateinit var nodeLocation : PackageBase.PackageLocation
lateinit var denoLocation : PackageBase.PackageLocation
lateinit var quickJsLocation : PackageBase.PackageLocation
var ytdlpPath: File? = null
@ -60,18 +62,21 @@ object RuntimeManager {
val aria2c = Aria2c.getInstance()
val nodeJS = NodeJS.getInstance()
val quickJS = QuickJS.getInstance()
val deno = Deno.getInstance()
python.init(appContext)
ffmpeg.init(appContext)
aria2c.init(appContext)
nodeJS.init(appContext)
quickJS.init(appContext)
deno.init(appContext)
//find location of libraries either from bundled or downloaded paths
pythonLocation = python.location
ffmpegLocation = ffmpeg.location
aria2Location = aria2c.location
nodeLocation = nodeJS.location
denoLocation = deno.location
quickJsLocation = quickJS.location
val ytdlpDir = File(baseDir, ytdlpDirName)
@ -83,7 +88,8 @@ object RuntimeManager {
ffmpegLocation,
aria2Location,
nodeLocation,
quickJsLocation
quickJsLocation,
denoLocation,
)
val ldPaths = mutableListOf<String>()
@ -208,6 +214,10 @@ object RuntimeManager {
request.addOption("--js-runtimes", "node:${nodeLocation.executable.absolutePath}")
}
if (denoLocation.isAvailable) {
request.addOption("--js-runtimes", "deno:${denoLocation.executable.absolutePath}")
}
if (quickJsLocation.isAvailable) {
request.addOption("--js-runtimes", "quickjs:${quickJsLocation.executable.absolutePath}")
}

@ -0,0 +1,12 @@
package com.deniscerri.ytdl.core.packages
object Deno : PackageBase() {
override val executableName: String get() = "deno"
override val packageFolderName: String get() = "deno"
override val bundledZipName: String get() = "libdeno.zip.so"
override val canUninstall: Boolean = true
override val bundledVersion: String get() = ""
override val githubRepo: String get() = "deniscerri/ytdlnis-packages"
override val githubPackageName: String get() = "deno"
override val apkPackage: String get() = "com.deniscerri.ytdl.deno"
}

@ -279,7 +279,7 @@ abstract class PackageBase {
it.tag_name.contains(githubPackageName)
}
.onEach {
// nodejs-1.0.0-arm64-v8a
// e.g. nodejs-1.0.0-arm64-v8a
it.version = it.tag_name.split("-")[1]
it.assets = it.assets.filter { a -> a.name.contains(supportedArch) }
it.downloadSize = it.assets.first().size

@ -53,6 +53,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import androidx.core.net.toUri
import com.anggrayudi.storage.file.toRawFile
import com.deniscerri.ytdl.core.packages.Deno
import java.io.File
@ -95,6 +96,7 @@ class PackagesFragment : Fragment(), PackagesAdapter.OnItemClickListener, Packag
PackageItem("Python", Python),
PackageItem("FFmpeg", FFmpeg),
PackageItem("NodeJS", NodeJS),
PackageItem("Deno", Deno),
PackageItem("Aria2c", Aria2c)
)
listAdapter.submitList(packages)

@ -80,7 +80,7 @@ object UpdateSettingsModule : SettingModule {
}
"packages" -> {
pref.apply {
summary = "Python, FFmpeg, Aria2c, NodeJS"
summary = "Python, FFmpeg, Aria2c, NodeJS, Deno"
setOnPreferenceClickListener {
host.requestNavigate(R.id.packagesFragment)
false

Loading…
Cancel
Save