From 1d0812ddaf8fcd540fa974c98e1dd61b8e4047e6 Mon Sep 17 00:00:00 2001 From: tarsin Date: Fri, 28 Jul 2023 11:15:48 +0800 Subject: [PATCH] Fixup codestyle --- app/src/main/rust/src/lib.rs | 30 ++++++++++------------------ app/src/main/rust/src/parser/home.rs | 6 +++--- app/src/main/rust/src/parser/list.rs | 6 +++--- 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/app/src/main/rust/src/lib.rs b/app/src/main/rust/src/lib.rs index 017e90205..640b9e9c8 100644 --- a/app/src/main/rust/src/lib.rs +++ b/app/src/main/rust/src/lib.rs @@ -36,31 +36,24 @@ macro_rules! regex { const EHGT_PREFIX: &str = "https://ehgt.org/"; const EX_PREFIX: &str = "https://s.exhentai.org/"; -trait Anon { - fn get_first_element_by_class_name(&self, name: &str) -> Option<&Node>; +fn get_vdom_first_element_by_class_name<'a>(dom: &'a VDom, name: &str) -> Option<&'a Node<'a>> { + let handle = dom.get_elements_by_class_name(name).next()?; + handle.get(dom.parser()) } -impl<'a> Anon for VDom<'a> { - fn get_first_element_by_class_name(&self, name: &str) -> Option<&Node> { - let handle = self.get_elements_by_class_name(name).next()?; - handle.get(self.parser()) - } -} - -pub fn get_first_element_by_class_name<'b>( - node: &'b Node, - parser: &'b Parser, - id: &'b str, -) -> Option<&'b Node<'b>> { +fn get_first_element_by_class_name<'a>( + node: &'a Node, + parser: &'a Parser, + id: &str, +) -> Option<&'a Node<'a>> { let handle = node.find_node(parser, &mut |n| match n.as_tag() { None => false, Some(tag) => tag.attributes().is_class_member(id), })?; - let node = handle.get(parser)?; - Some(node) + handle.get(parser) } -pub fn get_element_by_id<'b, S>(node: &'b Node, parser: &'b Parser, id: S) -> Option<&'b Node<'b>> +fn get_element_by_id<'b, S>(node: &'b Node, parser: &'b Parser, id: S) -> Option<&'b Node<'b>> where S: Into>, { @@ -69,8 +62,7 @@ where None => false, Some(tag) => tag.attributes().id().map_or(false, |x| x.eq(&bytes)), })?; - let node = handle.get(parser)?; - Some(node) + handle.get(parser) } fn parse_jni_string(env: &mut JnixEnv, str: &JString, mut f: F) -> Option diff --git a/app/src/main/rust/src/parser/home.rs b/app/src/main/rust/src/parser/home.rs index 7b8f93ddf..818198b1c 100644 --- a/app/src/main/rust/src/parser/home.rs +++ b/app/src/main/rust/src/parser/home.rs @@ -1,11 +1,12 @@ use catch_panic::catch_panic; +use get_vdom_first_element_by_class_name; 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, Anon}; +use parse_jni_string; #[derive(Default, IntoJava)] #[allow(non_snake_case)] @@ -23,8 +24,7 @@ pub struct Limits { pub fn parseLimit(env: JNIEnv, _class: JClass, input: JString) -> jobject { let mut env = JnixEnv { env }; parse_jni_string(&mut env, &input, |dom, parser, _env| { - let iter = dom - .get_first_element_by_class_name("homebox")? + let iter = get_vdom_first_element_by_class_name(dom, "homebox")? .as_tag()? .query_selector(parser, "strong")?; let vec: Vec = iter diff --git a/app/src/main/rust/src/parser/list.rs b/app/src/main/rust/src/parser/list.rs index 666b6a934..d2eaca4d3 100644 --- a/app/src/main/rust/src/parser/list.rs +++ b/app/src/main/rust/src/parser/list.rs @@ -10,10 +10,10 @@ use jnix_macros::IntoJava; use quick_xml::escape::unescape; use tl::{Node, Parser}; -use get_element_by_id; +use parse_jni_string; +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}; -use {parse_jni_string, Anon}; use {EHGT_PREFIX, EX_PREFIX}; #[derive(Default, IntoJava)] @@ -195,7 +195,7 @@ fn parse_gallery_info(node: &Node, parser: &Parser) -> Option { pub fn parseGalleryInfoList(env: JNIEnv, _class: JClass, input: JString) -> jobject { let mut env = JnixEnv { env }; parse_jni_string(&mut env, &input, |dom, parser, _env| { - let itg = dom.get_first_element_by_class_name("itg")?; + let itg = get_vdom_first_element_by_class_name(dom, "itg")?; let children = itg.children()?; let iter = children.top().iter(); let info: Vec = iter