Spilt home.rs

This commit is contained in:
tarsin committed 2023-06-16 00:19:22 +08:00
1 parent 9e4fc2e7af
commit 506c63380a
3 files changed
+43 -34

No files matched your search

-34
View File
@@ -75,15 +75,6 @@ pub struct BaseGalleryInfo {
favoriteName: Option<String>,
}
#[derive(Default, IntoJava)]
#[allow(non_snake_case)]
#[jnix(package = "com.hippo.ehviewer.client.parser")]
pub struct Limits {
current: i32,
maximum: i32,
resetCost: i32,
}
fn parse_jni_string<F, R>(env: &mut JnixEnv, str: &JString, mut f: F) -> Option<R>
where
F: FnMut(&VDom, &Parser, &JnixEnv) -> Option<R>,
@@ -94,31 +85,6 @@ where
Some(f(&dom, parser, env)?)
}
#[no_mangle]
#[catch_panic(default = "std::ptr::null_mut()")]
#[allow(non_snake_case)]
#[jni_fn("com.hippo.ehviewer.client.parser.HomeParserKt")]
pub fn parseLimit(env: JNIEnv, _class: JClass, input: JString) -> jobject {
let mut env = JnixEnv { env };
let vec = parse_jni_string(&mut env, &input, |dom, parser, _env| {
let iter = dom.query_selector("strong")?;
let vec: Vec<i32> = iter
.filter_map(|e| Some(e.get(parser)?.inner_text(parser).parse::<i32>().ok()?))
.collect();
if vec.len() == 3 {
Some(Limits {
current: vec[0],
maximum: vec[1],
resetCost: vec[2],
})
} else {
None
}
})
.unwrap();
vec.into_java(&env).forget().into_raw()
}
#[no_mangle]
#[catch_panic(default = "std::ptr::null_mut()")]
#[allow(non_snake_case)]
+42
View File
@@ -0,0 +1,42 @@
use catch_panic::catch_panic;
use jni_fn::jni_fn;
use jnix::jni::objects::{JClass, JString};
use jnix::jni::sys::jobject;
use jnix::jni::JNIEnv;
use jnix::{IntoJava, JnixEnv};
use jnix_macros::IntoJava;
use parse_jni_string;
#[derive(Default, IntoJava)]
#[allow(non_snake_case)]
#[jnix(package = "com.hippo.ehviewer.client.parser")]
pub struct Limits {
current: i32,
maximum: i32,
resetCost: i32,
}
#[no_mangle]
#[catch_panic(default = "std::ptr::null_mut()")]
#[allow(non_snake_case)]
#[jni_fn("com.hippo.ehviewer.client.parser.HomeParserKt")]
pub fn parseLimit(env: JNIEnv, _class: JClass, input: JString) -> jobject {
let mut env = JnixEnv { env };
let vec = parse_jni_string(&mut env, &input, |dom, parser, _env| {
let iter = dom.query_selector("strong")?;
let vec: Vec<i32> = iter
.filter_map(|e| Some(e.get(parser)?.inner_text(parser).parse::<i32>().ok()?))
.collect();
if vec.len() == 3 {
Some(Limits {
current: vec[0],
maximum: vec[1],
resetCost: vec[2],
})
} else {
None
}
})
.unwrap();
vec.into_java(&env).forget().into_raw()
}
+1
View File
@@ -1 +1,2 @@
mod home;
mod torrent;