feat: add api function

This commit is contained in:
YuKun Liu committed 2022-10-12 16:37:26 -07:00
1 parent 0fe8e4bcbd
commit 39e38917d6
4 files changed
+12 -29

No files matched your search

+1 -1
View File
@@ -46,7 +46,7 @@ walkdir = "2"
# tools download
dirs = "4.0.0"
reqwest = { version = "0.11", features = ["rustls-tls", "stream", "trust-dns"] }
reqwest = { version = "0.11", features = ["rustls-tls", "stream", "trust-dns", "blocking"] }
flate2 = "1.0.22"
tar = "0.4.38"
zip = "0.6.2"
+3 -3
View File
@@ -5,13 +5,13 @@ use mlua::UserData;
pub struct PluginNetwork;
impl UserData for PluginNetwork {
fn add_methods<'lua, M: mlua::UserDataMethods<'lua, Self>>(methods: &mut M) {
methods.add_async_function("download_file", |_, args: (String, String)| async move {
methods.add_function("download_file", |_, args: (String, String)| {
let url = args.0;
let path = args.1;
let resp = reqwest::get(url).await;
let resp = reqwest::blocking::get(url);
if let Ok(resp) = resp {
let mut content = Cursor::new(resp.bytes().await.unwrap());
let mut content = Cursor::new(resp.bytes().unwrap());
let file = std::fs::File::create(PathBuf::from(path));
if file.is_err() {
return Ok(false);
+8 -6
View File
@@ -1,16 +1,18 @@
use std::path::PathBuf;
use mlua::UserData;
use mlua::{UserData, Variadic};
pub struct PluginPath;
impl UserData for PluginPath {
fn add_methods<'lua, M: mlua::UserDataMethods<'lua, Self>>(methods: &mut M) {
// join function
methods.add_function("join", |_, args: (String, String)| {
let current_path = PathBuf::from(args.0);
let new_path = current_path.join(args.1);
Ok(new_path.to_str().unwrap().to_string())
});
methods.add_function("join", |_, args: Variadic<String>| {
let mut path = PathBuf::new();
for i in args {
path = path.join(i);
}
Ok(path.to_str().unwrap().to_string())
});
// parent function
methods.add_function("parent", |_, path: String| {
-19
View File
@@ -298,25 +298,6 @@ impl PluginManager {
plugin_path
}
pub fn plugin_list_from_dir() -> Vec<String> {
let mut res = vec![];
let app_path = app_path();
let plugin_path = app_path.join("plugins");
let child_dirs = std::fs::read_dir(plugin_path).unwrap();
for p in child_dirs {
if let Ok(p) = p {
if p.path().is_dir() && p.file_name() != "library" {
if p.path().join("init.lua").is_file() {
res.push(p.file_name().to_str().unwrap().to_string());
}
}
}
}
res
}
pub fn plugin_list() -> Vec<String> {
let mut res = vec![];