Update description for IP-based image limit

This commit is contained in:
FooIbar committed 2024-09-09 22:13:49 +08:00
1 parent bd5bd1e571
commit 31ce4eac92
4 files changed
+35 -16

No files matched your search

@@ -160,7 +160,11 @@ fun EhScreen(navigator: DestinationsNavigator) {
var error by rememberSaveable { mutableStateOf<String?>(null) }
val summary by rememberUpdatedState(
result?.run {
stringResource(id = R.string.image_limits_summary, limits.current, limits.maximum)
when (limits.maximum) {
-1 -> stringResource(id = R.string.image_limits_restricted)
0 -> stringResource(id = R.string.image_limits_normal)
else -> stringResource(id = R.string.image_limits_summary, limits.current, limits.maximum)
}
} ?: placeholder,
)
suspend fun getImageLimits() {
@@ -190,12 +194,16 @@ fun EhScreen(navigator: DestinationsNavigator) {
Text(text = it)
} ?: result?.let { (limits, funds) ->
Column(verticalArrangement = Arrangement.spacedBy(8.dp)) {
LinearProgressIndicator(
progress = { limits.current.toFloat() / limits.maximum },
modifier = Modifier.height(12.dp).fillMaxWidth(),
)
if (limits.maximum > 0) {
LinearProgressIndicator(
progress = { limits.current.toFloat() / limits.maximum },
modifier = Modifier.height(12.dp).fillMaxWidth(),
)
}
Text(text = summary)
Text(text = stringResource(id = R.string.reset_cost, limits.resetCost))
if (limits.resetCost > 0) {
Text(text = stringResource(id = R.string.reset_cost, limits.resetCost))
}
Text(text = stringResource(id = R.string.current_funds))
Row(
modifier = Modifier.fillMaxWidth(),
@@ -423,6 +423,8 @@
<string name="insufficient_funds">余额不足</string>
<string name="image_limits">图片配额</string>
<string name="image_limits_summary">已用:%1$d / %2$d</string>
<string name="image_limits_normal">无限制</string>
<string name="image_limits_restricted">图片分辨率限制为 1280x</string>
<string name="reset_cost">重置花费:%d GP</string>
<string name="reset_limits_succeed">成功重置图片配额</string>
<string name="reset">重置</string>
+2
View File
@@ -444,6 +444,8 @@
<string name="insufficient_funds">Insufficient Funds</string>
<string name="image_limits">Image Limits</string>
<string name="image_limits_summary">Used: %1$d / %2$d</string>
<string name="image_limits_normal">No restrictions</string>
<string name="image_limits_restricted">Image resolution restricted to 1280x</string>
<string name="reset_cost">Reset Cost: %d GP</string>
<string name="reset_limits_succeed">Image limit was successfully reset</string>
<string name="reset">Reset</string>
+17 -10
View File
@@ -17,10 +17,9 @@ struct Limits {
}
fn parse_limit(dom: &VDom, parser: &Parser) -> Option<Limits> {
let iter = get_vdom_first_element_by_class_name(dom, "homebox")?
.as_tag()?
.query_selector(parser, "strong")?;
let vec: Vec<i32> = iter
let limit_box = get_vdom_first_element_by_class_name(dom, "homebox")?.as_tag()?;
let vec = limit_box
.query_selector(parser, "strong")?
.filter_map(|e| {
e.get(parser)?
.inner_text(parser)
@@ -28,15 +27,23 @@ fn parse_limit(dom: &VDom, parser: &Parser) -> Option<Limits> {
.parse::<i32>()
.ok()
})
.collect();
if vec.len() == 3 {
Some(Limits {
.collect::<Vec<_>>();
match vec.len() {
3 => Some(Limits {
current: vec[0],
maximum: vec[1],
resetCost: vec[2],
})
} else {
None
}),
1 => Some(Limits {
current: 0,
maximum: if limit_box.inner_text(parser).contains("No restrictions") {
0
} else {
-1
},
resetCost: 0,
}),
_ => None,
}
}