Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-07-22 21:13:16 +08:00
parent 55bed2e830
commit e770e39c8f
59 changed files with 1388 additions and 1265 deletions

View File

@@ -141,9 +141,10 @@ class MemberVideoCtr
}
Future<void> toViewPlayAll() async {
if (episodicButton.value.text == '继续播放' &&
episodicButton.value.uri?.isNotEmpty == true) {
final params = Uri.parse(episodicButton.value.uri!).queryParameters;
final episodicButton = this.episodicButton.value;
if (episodicButton.text == '继续播放' &&
episodicButton.uri?.isNotEmpty == true) {
final params = Uri.parse(episodicButton.uri!).queryParameters;
String? oid = params['oid'];
if (oid != null) {
var bvid = IdUtils.av2bv(int.parse(oid));
@@ -155,8 +156,7 @@ class MemberVideoCtr
'sourceType': 'archive',
'mediaId': seasonId ?? seriesId ?? mid,
'oid': oid,
'favTitle':
'$username: ${title ?? episodicButton.value.text ?? '播放全部'}',
'favTitle': '$username: ${title ?? episodicButton.text ?? '播放全部'}',
if (seriesId == null) 'count': count.value,
if (seasonId != null || seriesId != null)
'mediaType': params['page_type'],
@@ -197,11 +197,11 @@ class MemberVideoCtr
'mediaId': seasonId ?? seriesId ?? mid,
'oid': IdUtils.bv2av(element.bvid!),
'favTitle':
'$username: ${title ?? episodicButton.value.text ?? '播放全部'}',
'$username: ${title ?? episodicButton.text ?? '播放全部'}',
if (seriesId == null) 'count': count.value,
if (seasonId != null || seriesId != null)
'mediaType': Uri.parse(episodicButton.value.uri!)
.queryParameters['page_type'],
'mediaType':
Uri.parse(episodicButton.uri!).queryParameters['page_type'],
'desc': desc,
if (type == ContributeType.video)
'sortField': order.value == 'click' ? 2 : 1,

View File

@@ -134,43 +134,47 @@ class _MemberVideoState extends State<MemberVideo>
child: Row(
children: [
const SizedBox(width: 8),
Obx(
() => Padding(
padding: const EdgeInsets.only(left: 6),
child: Text(
_controller.count.value != -1
? '${_controller.count.value}视频'
: '',
style: const TextStyle(fontSize: 13),
),
Padding(
padding: const EdgeInsets.only(left: 6),
child: Obx(
() {
final count = _controller.count.value;
return Text(
count != -1 ? '$count视频' : '',
style: const TextStyle(fontSize: 13),
);
},
),
),
Obx(
() => _controller.episodicButton.value.uri != null
? Container(
height: 35,
padding: EdgeInsets.only(
left: _controller.count.value != -1
? 6
: 0),
child: TextButton.icon(
onPressed: _controller.toViewPlayAll,
icon: Icon(
Icons.play_circle_outline_rounded,
size: 16,
color: theme.colorScheme.secondary,
),
label: Text(
_controller.episodicButton.value.text ??
'播放全部',
style: TextStyle(
fontSize: 13,
() {
final episodicButton =
_controller.episodicButton.value;
return episodicButton.uri?.isNotEmpty == true
? Container(
height: 35,
padding: EdgeInsets.only(
left: _controller.count.value != -1
? 6
: 0),
child: TextButton.icon(
onPressed: _controller.toViewPlayAll,
icon: Icon(
Icons.play_circle_outline_rounded,
size: 16,
color: theme.colorScheme.secondary,
),
label: Text(
episodicButton.text ?? '播放全部',
style: TextStyle(
fontSize: 13,
color: theme.colorScheme.secondary,
),
),
),
),
)
: const SizedBox.shrink(),
)
: const SizedBox.shrink();
},
),
const Spacer(),
SizedBox(