Fix missing quotes in uploader name

This commit is contained in:
FooIbar committed 2026-01-27 21:23:04 +08:00
1 parent 80225bfe6c
commit 24505cb77c
6 files changed
+27 -28

No files matched your search

@@ -35,7 +35,7 @@ data class ListUrlBuilder(
private var jumpTo: String? = null,
private var range: Int = 0,
var category: Int = EhUtils.NONE,
private var mKeyword: String? = null,
var keyword: String? = null,
var hash: String? = null,
var language: Int = -1,
var advanceSearch: Int = -1,
@@ -69,16 +69,10 @@ data class ListUrlBuilder(
jumpTo = date
}
var keyword: String?
get() = if (MODE_UPLOADER == mode) "uploader:$mKeyword" else mKeyword
set(keyword) {
mKeyword = keyword
}
constructor(q: QuickSearch) : this(
mode = q.mode,
category = q.category,
mKeyword = q.keyword,
keyword = q.keyword,
advanceSearch = q.advanceSearch,
minRating = q.minRating,
pageFrom = q.pageFrom,
@@ -90,7 +84,7 @@ data class ListUrlBuilder(
name = name,
mode = mode,
category = category,
keyword = mKeyword,
keyword = keyword,
advanceSearch = advanceSearch,
minRating = minRating,
pageFrom = pageFrom,
@@ -107,7 +101,7 @@ data class ListUrlBuilder(
if (q.category != this.category) {
return false
}
if (q.keyword != mKeyword) {
if (q.keyword != keyword) {
return false
}
if (q.advanceSearch != advanceSearch) {
@@ -129,7 +123,7 @@ data class ListUrlBuilder(
jumpTo = params["seek"],
range = params["range"]?.toIntOrNull() ?: 0,
category = params["f_cats"]?.toIntOrNull()?.let(EhUtils::invCategory) ?: EhUtils.NONE,
mKeyword = params["f_search"],
keyword = params["f_search"],
) {
if (params["advsearch"] == "1") {
advanceSearch = 0
@@ -160,7 +154,7 @@ data class ListUrlBuilder(
if (category > 0) {
addQueryParameter("f_cats", "${EhUtils.invCategory(category)}")
}
val query = mKeyword?.let { keyword ->
val query = keyword?.let { keyword ->
if (language == -1 || "gid:" in keyword || "l:" in keyword || "language:" in keyword) {
keyword
} else {
@@ -214,7 +208,7 @@ data class ListUrlBuilder(
}.buildString()
MODE_UPLOADER, MODE_TAG -> {
val path = if (mode == MODE_UPLOADER) "uploader" else "tag"
ehUrl(listOf(path, requireNotNull(mKeyword))) {
ehUrl(listOf(path, requireNotNull(keyword))) {
addQueryParameterIfNotBlank("prev", prev)
addQueryParameterIfNotBlank("next", next)
addQueryParameterIfNotBlank("seek", jumpTo)
@@ -226,7 +220,7 @@ data class ListUrlBuilder(
addQueryParameter("f_shash", requireNotNull(hash))
}.buildString()
MODE_TOPLIST -> ehUrl("toplist.php", EhUrl.DOMAIN_E) {
addQueryParameter("tl", requireNotNull(mKeyword))
addQueryParameter("tl", requireNotNull(keyword))
addQueryParameterIfNotBlank("p", jumpTo)
}.buildString()
else -> throw IllegalStateException("Unexpected value: $mode")
@@ -48,7 +48,7 @@ object GalleryListUrlParser {
ListUrlBuilder(
mode = ListUrlBuilder.MODE_TOPLIST,
jumpTo = url.parameters["p"],
mKeyword = tl,
keyword = tl,
)
} else {
null
@@ -300,7 +300,7 @@ class MainActivity : AppCompatActivity() {
if ("text/plain" == type) {
val keyword = intent.getStringExtra(Intent.EXTRA_TEXT)
if (keyword != null && !navWithUrl(keyword)) {
navigate(ListUrlBuilder(mKeyword = keyword).asDst())
navigate(ListUrlBuilder(keyword = keyword).asDst())
}
} else if (type != null && type.startsWith("image/")) {
val uri = intent.getParcelableExtraCompat<Uri>(Intent.EXTRA_STREAM)
@@ -409,7 +409,7 @@ fun AnimatedVisibilityScope.GalleryCommentsScreen(gid: Long, navigator: Destinat
navigate(
ListUrlBuilder(
mode = ListUrlBuilder.MODE_UPLOADER,
mKeyword = item.user,
keyword = item.user,
).asDst(),
)
},
@@ -215,7 +215,7 @@ fun GalleryDetailContent(
if (uploader.isNullOrEmpty() || disowned) {
return
}
navigate(ListUrlBuilder(mode = ListUrlBuilder.MODE_UPLOADER, mKeyword = uploader).asDst())
navigate(ListUrlBuilder(mode = ListUrlBuilder.MODE_UPLOADER, keyword = uploader).asDst())
}
fun onGalleryInfoCardClick() {
@@ -529,21 +529,21 @@ fun BelowHeader(galleryDetail: GalleryDetail, voteTag: VoteTag) {
navigate(
ListUrlBuilder(
mode = ListUrlBuilder.MODE_NORMAL,
mKeyword = "\"" + keyword + "\"",
keyword = "\"" + keyword + "\"",
).asDst(),
)
} else if (artistTag != null) {
navigate(
ListUrlBuilder(
mode = ListUrlBuilder.MODE_TAG,
mKeyword = artistTag,
keyword = artistTag,
).asDst(),
)
} else if (null != galleryDetail.uploader) {
navigate(
ListUrlBuilder(
mode = ListUrlBuilder.MODE_UPLOADER,
mKeyword = galleryDetail.uploader,
keyword = galleryDetail.uploader,
).asDst(),
)
}
@@ -721,7 +721,7 @@ fun BelowHeader(galleryDetail: GalleryDetail, voteTag: VoteTag) {
val upTag = stringResource(R.string.tag_vote_up)
val downTag = stringResource(R.string.tag_vote_down)
val withDraw = stringResource(R.string.tag_vote_withdraw)
fun search(tag: String) = navigate(ListUrlBuilder(mode = ListUrlBuilder.MODE_TAG, mKeyword = tag).asDst())
fun search(tag: String) = navigate(ListUrlBuilder(mode = ListUrlBuilder.MODE_TAG, keyword = tag).asDst())
GalleryTags(
tagGroups = tags,
onTagClick = ::search,
@@ -147,7 +147,7 @@ fun AnimatedVisibilityScope.WhatshotScreen(navigator: DestinationsNavigator) = G
@Destination<RootGraph>
@Composable
fun AnimatedVisibilityScope.ToplistScreen(navigator: DestinationsNavigator) = GalleryListScreen(ListUrlBuilder(MODE_TOPLIST, mKeyword = Settings.recentToplist), navigator)
fun AnimatedVisibilityScope.ToplistScreen(navigator: DestinationsNavigator) = GalleryListScreen(ListUrlBuilder(MODE_TOPLIST, keyword = Settings.recentToplist), navigator)
@Destination<RootGraph>
@Composable
@@ -172,10 +172,14 @@ fun AnimatedVisibilityScope.GalleryListScreen(
LaunchedEffect(urlBuilder) {
if (urlBuilder.category != EhUtils.NONE) category = urlBuilder.category
var keyword = urlBuilder.keyword.takeUnless { urlBuilder.mode == MODE_TOPLIST }.orEmpty()
if (urlBuilder.mode == MODE_TAG) {
keyword = wrapTagKeyword(keyword)
}
val keyword = urlBuilder.keyword?.let { keyword ->
when (urlBuilder.mode) {
MODE_UPLOADER -> "uploader:\"$keyword\""
MODE_TAG -> wrapTagKeyword(keyword)
MODE_TOPLIST -> ""
else -> keyword
}
}.orEmpty()
searchFieldState.setTextAndPlaceCursorAtEnd(keyword)
}
@@ -217,7 +221,7 @@ fun AnimatedVisibilityScope.GalleryListScreen(
ListItem(
modifier = Modifier.padding(horizontal = 4.dp).clip(CardDefaults.shape).clickable {
Settings.recentToplist = keyword
urlBuilder = ListUrlBuilder(MODE_TOPLIST, mKeyword = keyword)
urlBuilder = ListUrlBuilder(MODE_TOPLIST, keyword = keyword)
data.refresh()
fabHidden = false
launch { sheetState.close() }
@@ -641,6 +645,7 @@ private fun getSuitableTitleForUrlBuilder(urlBuilder: ListUrlBuilder, appName: B
val canTranslate = Settings.showTagTranslations.value && EhTagDatabase.translatable && EhTagDatabase.initialized
wrapTagKeyword(keyword, canTranslate)
}
MODE_UPLOADER -> "uploader:\"$keyword\""
else -> keyword
}
} else if (category == EhUtils.NONE && urlBuilder.advanceSearch == -1) {