From e61fa99c98d875a16550cc9b3e24c7df97d76bcc Mon Sep 17 00:00:00 2001 From: lunaticbum Date: Mon, 19 Jan 2026 17:10:02 +0900 Subject: [PATCH] .. --- .../bums/lunatic/launcher/home/RssHome.kt | 159 +++++++++--------- 1 file changed, 79 insertions(+), 80 deletions(-) diff --git a/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt b/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt index c84837d5..ff92f6c1 100644 --- a/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt +++ b/app/src/main/kotlin/bums/lunatic/launcher/home/RssHome.kt @@ -323,90 +323,89 @@ internal class RssHome : Fragment() { bottomSheet.show(childFragmentManager, "SearchBottomSheet") } + fun openSummary(rssData : RssData) { + rssData.let { + currentRss = it + + synchronized(lasted) { + if (lasted.isNotEmpty()) { + lasted.removeAll { target -> target.originPage.equals(it.originPage) } + } + } + appendReadCount(it, 1, false) + binding.layoutRssSummary.title.setOnLongClickListener { + currentRss?.originPage?.let { binding.geckoWeb.loadUrl(it)} + binding.layoutRssSummary.root.visibility = View.GONE + true + } + binding.layoutRssSummary.title.tag = it + binding.layoutRssSummary.root.visibility = View.VISIBLE + binding.layoutRssSummary.scrollView.scrollTo(0,0) + var vote = it.vote + var read = it.read + var keyword = "" + it.title?.let { + Blog.LOGE(it) + keyword = it + binding.layoutRssSummary.title.text = it.replace(Regex("[\\r\\n]+"), " ").plus( "\n[V:${if (vote) { + "O" + }else { + "X" + }} , R:${read + 1}]") + + val regex = Regex("[A-Za-z0-9-]+") + val pattern = Regex("^(?=[A-Za-z0-9-]*$)(?=.*[A-Za-z])(?=.*\\d)(?=.*-)[A-Za-z0-9-]+$") + val results = regex.findAll(it) + .map { it.value } + .filter { it.matches(pattern) && !it.contains(" ") } + .toList() + if (results.isNotEmpty()) { + keyword = results.first() + } + } + + it.pubDate()?.let { + Blog.LOGE("") + binding.layoutRssSummary.date.text = + SimpleDateFormat("yyyy.MM.dd HH-mm").format(Date(it)) + } + binding.layoutRssSummary.desc.tag = it + it.description()?.let { + Blog.LOGE(it) + binding.layoutRssSummary.desc.text = it.replace(Regex("[\\r\\n]+"), " ") + } + binding.layoutRssSummary.link.tag = it + it.getMagnet().let { + Blog.LOGE(it) + binding.layoutRssSummary.link.text = it + } + binding.layoutRssSummary.coverLink.text = it.thumbnailUrl() + binding.layoutRssSummary.cover.tag = it + it.thumbnailUrl().let { + Blog.LOGE(it) + loadImage(binding.layoutRssSummary.cover, it, isMain = true) + + + } + binding.layoutRssSummary.screenLink.text = it.getScreen() + binding.layoutRssSummary.screen.tag = it + it.getScreen().let { + Blog.LOGE(it) + loadImage(binding.layoutRssSummary.screen, it, isMain = false) + binding.layoutRssSummary.screenLink.text = it + } + if (it.getMagnet().length < 10) { + binding.layoutRssSummary.smallg.loadUrl("https://btsearch.love/en/search?keyword=${keyword}") + } else { + binding.layoutRssSummary.smallg.visibility = View.GONE + } + } + } + var currentRss : RssData? = null @SuppressLint("SimpleDateFormat") fun openGecko(rssData: RssData? = null) { binding.layoutRssSummary.root.visibility = View.GONE - - fun openSummary(rssData : RssData) { - rssData.let { - currentRss = it - - synchronized(lasted) { - if (lasted.isNotEmpty()) { - lasted.removeAll { target -> target.originPage.equals(it.originPage) } - } - } - appendReadCount(it, 1, false) - binding.layoutRssSummary.title.setOnLongClickListener { - currentRss?.originPage?.let { binding.geckoWeb.loadUrl(it)} - binding.layoutRssSummary.root.visibility = View.GONE - true - } - binding.layoutRssSummary.title.tag = it - binding.layoutRssSummary.root.visibility = View.VISIBLE - binding.layoutRssSummary.scrollView.scrollTo(0,0) - var vote = it.vote - var read = it.read - var keyword = "" - it.title?.let { - Blog.LOGE(it) - keyword = it - binding.layoutRssSummary.title.text = it.replace(Regex("[\\r\\n]+"), " ").plus( "\n[V:${if (vote) { - "O" - }else { - "X" - }} , R:${read + 1}]") - - val regex = Regex("[A-Za-z0-9-]+") - val pattern = Regex("^(?=[A-Za-z0-9-]*$)(?=.*[A-Za-z])(?=.*\\d)(?=.*-)[A-Za-z0-9-]+$") - val results = regex.findAll(it) - .map { it.value } - .filter { it.matches(pattern) && !it.contains(" ") } - .toList() - if (results.isNotEmpty()) { - keyword = results.first() - } - } - - it.pubDate()?.let { - Blog.LOGE("") - binding.layoutRssSummary.date.text = - SimpleDateFormat("yyyy.MM.dd HH-mm").format(Date(it)) - } - binding.layoutRssSummary.desc.tag = it - it.description()?.let { - Blog.LOGE(it) - binding.layoutRssSummary.desc.text = it.replace(Regex("[\\r\\n]+"), " ") - } - binding.layoutRssSummary.link.tag = it - it.getMagnet().let { - Blog.LOGE(it) - binding.layoutRssSummary.link.text = it - } - binding.layoutRssSummary.coverLink.text = it.thumbnailUrl() - binding.layoutRssSummary.cover.tag = it - it.thumbnailUrl().let { - Blog.LOGE(it) - loadImage(binding.layoutRssSummary.cover, it, isMain = true) - - - } - binding.layoutRssSummary.screenLink.text = it.getScreen() - binding.layoutRssSummary.screen.tag = it - it.getScreen().let { - Blog.LOGE(it) - loadImage(binding.layoutRssSummary.screen, it, isMain = false) - binding.layoutRssSummary.screenLink.text = it - } - if (it.getMagnet().length < 10) { - binding.layoutRssSummary.smallg.loadUrl("https://btsearch.love/en/search?keyword=${keyword}") - } else { - binding.layoutRssSummary.smallg.visibility = View.GONE - } - } - } - if (rssData?.category()?.equals(RssDataType.PRIVATE) == true && rssData?.getMagnet().isNullOrEmpty()) { openSummary(rssData) } else if (rssData?.originPage?.isNotEmpty() == true) {