Fixup codestyle
This commit is contained in:
1 parent
1d0812ddaf
commit
a9d5c15bd9
4 files changed
+55
-53
No files matched your search
@@ -13,15 +13,10 @@ extern crate regex;
|
||||
extern crate tl;
|
||||
|
||||
use android_logger::Config;
|
||||
use apply::Also;
|
||||
use catch_panic::catch_panic;
|
||||
use jni_fn::jni_fn;
|
||||
use jnix::jni::objects::{JClass, JString};
|
||||
use jnix::jni::sys::{jint, jintArray, jobjectArray, JavaVM, JNI_VERSION_1_6};
|
||||
use jnix::jni::JNIEnv;
|
||||
use jnix::jni::objects::JString;
|
||||
use jnix::jni::sys::{jint, JavaVM, JNI_VERSION_1_6};
|
||||
use jnix::JnixEnv;
|
||||
use log::LevelFilter;
|
||||
use quick_xml::escape::unescape;
|
||||
use std::ffi::c_void;
|
||||
use tl::{Bytes, Node, NodeHandle, Parser, VDom};
|
||||
|
||||
@@ -84,8 +79,7 @@ fn get_node_handle_attr<'a>(
|
||||
}
|
||||
|
||||
fn get_node_attr<'a>(node: &'a Node<'_>, attr: &'a str) -> Option<&'a str> {
|
||||
let str = node.as_tag()?.attributes().get(attr)??.try_as_utf8_str()?;
|
||||
Some(str)
|
||||
node.as_tag()?.attributes().get(attr)??.try_as_utf8_str()
|
||||
}
|
||||
|
||||
// Should not use it at too upper node, since it will do DFS?
|
||||
@@ -99,45 +93,6 @@ fn query_childs_first_match_attr<'a>(
|
||||
get_node_handle_attr(&iter.next()?, parser, attr)
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
#[catch_panic(default = "std::ptr::null_mut()")]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.FavoritesParserKt")]
|
||||
pub fn parseFav(env: JNIEnv, _class: JClass, input: JString, str: jobjectArray) -> jintArray {
|
||||
let mut env = JnixEnv { env };
|
||||
let vec = parse_jni_string(&mut env, &input, |dom, parser, env| {
|
||||
let vec: Vec<i32> = dom
|
||||
.get_elements_by_class_name("fp")
|
||||
.enumerate()
|
||||
.filter_map(|(i, e)| {
|
||||
if i == 10 {
|
||||
return None;
|
||||
}
|
||||
let top = e.get(parser)?.children()?;
|
||||
let children = top.top();
|
||||
let cat = children[5].get(parser)?.inner_text(parser);
|
||||
let name = unescape(&cat).ok()?;
|
||||
env.set_object_array_element(str, i as i32, env.new_string(name.trim()).ok()?)
|
||||
.ok()?;
|
||||
children[1]
|
||||
.get(parser)?
|
||||
.inner_text(parser)
|
||||
.parse::<i32>()
|
||||
.ok()
|
||||
})
|
||||
.collect();
|
||||
if vec.len() == 10 {
|
||||
Some(vec)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.unwrap();
|
||||
env.new_int_array(10)
|
||||
.unwrap()
|
||||
.also(|it| env.set_int_array_region(*it, 0, &vec).unwrap())
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "system" fn JNI_OnLoad(_: JavaVM, _: *mut c_void) -> jint {
|
||||
android_logger::init_once(Config::default().with_max_level(LevelFilter::Debug));
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
use apply::Also;
|
||||
use catch_panic::catch_panic;
|
||||
use jni_fn::jni_fn;
|
||||
use jnix::jni::objects::{JClass, JString};
|
||||
use jnix::jni::sys::{jintArray, jobjectArray};
|
||||
use jnix::jni::JNIEnv;
|
||||
use jnix::JnixEnv;
|
||||
use parse_jni_string;
|
||||
use quick_xml::escape::unescape;
|
||||
|
||||
#[no_mangle]
|
||||
#[catch_panic(default = "std::ptr::null_mut()")]
|
||||
#[allow(non_snake_case)]
|
||||
#[jni_fn("com.hippo.ehviewer.client.parser.FavoritesParserKt")]
|
||||
pub fn parseFav(env: JNIEnv, _class: JClass, input: JString, str: jobjectArray) -> jintArray {
|
||||
let mut env = JnixEnv { env };
|
||||
let vec = parse_jni_string(&mut env, &input, |dom, parser, env| {
|
||||
let vec: Vec<i32> = dom
|
||||
.get_elements_by_class_name("fp")
|
||||
.enumerate()
|
||||
.filter_map(|(i, e)| {
|
||||
if i == 10 {
|
||||
return None;
|
||||
}
|
||||
let top = e.get(parser)?.children()?;
|
||||
let children = top.top();
|
||||
let cat = children[5].get(parser)?.inner_text(parser);
|
||||
let name = unescape(&cat).ok()?;
|
||||
env.set_object_array_element(str, i as i32, env.new_string(name.trim()).ok()?)
|
||||
.ok()?;
|
||||
children[1]
|
||||
.get(parser)?
|
||||
.inner_text(parser)
|
||||
.parse::<i32>()
|
||||
.ok()
|
||||
})
|
||||
.collect();
|
||||
if vec.len() == 10 {
|
||||
Some(vec)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.unwrap();
|
||||
env.new_int_array(10)
|
||||
.unwrap()
|
||||
.also(|it| env.set_int_array_region(*it, 0, &vec).unwrap())
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
use std::borrow::Cow;
|
||||
|
||||
use catch_panic::catch_panic;
|
||||
use jni_fn::jni_fn;
|
||||
use jnix::jni::objects::{JClass, JString};
|
||||
@@ -7,10 +5,10 @@ use jnix::jni::sys::jobject;
|
||||
use jnix::jni::JNIEnv;
|
||||
use jnix::{IntoJava, JnixEnv};
|
||||
use jnix_macros::IntoJava;
|
||||
use quick_xml::escape::unescape;
|
||||
use tl::{Node, Parser};
|
||||
|
||||
use parse_jni_string;
|
||||
use quick_xml::escape::unescape;
|
||||
use std::borrow::Cow;
|
||||
use tl::{Node, Parser};
|
||||
use {get_element_by_id, get_vdom_first_element_by_class_name};
|
||||
use {get_first_element_by_class_name, query_childs_first_match_attr};
|
||||
use {get_node_attr, get_node_handle_attr, regex};
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
mod fav;
|
||||
mod home;
|
||||
mod list;
|
||||
mod torrent;
|
||||
Reference in new issue
Block a user