feat: 动态跳转番剧
This commit is contained in:
@ -478,6 +478,8 @@ class DynamicArchiveModel {
|
|||||||
this.stat,
|
this.stat,
|
||||||
this.title,
|
this.title,
|
||||||
this.type,
|
this.type,
|
||||||
|
this.epid,
|
||||||
|
this.seasonId,
|
||||||
});
|
});
|
||||||
|
|
||||||
int? aid;
|
int? aid;
|
||||||
@ -491,6 +493,8 @@ class DynamicArchiveModel {
|
|||||||
Stat? stat;
|
Stat? stat;
|
||||||
String? title;
|
String? title;
|
||||||
int? type;
|
int? type;
|
||||||
|
int? epid;
|
||||||
|
int? seasonId;
|
||||||
|
|
||||||
DynamicArchiveModel.fromJson(Map<String, dynamic> json) {
|
DynamicArchiveModel.fromJson(Map<String, dynamic> json) {
|
||||||
aid = json['aid'] is String ? int.parse(json['aid']) : json['aid'];
|
aid = json['aid'] is String ? int.parse(json['aid']) : json['aid'];
|
||||||
@ -503,6 +507,8 @@ class DynamicArchiveModel {
|
|||||||
stat = json['stat'] != null ? Stat.fromJson(json['stat']) : null;
|
stat = json['stat'] != null ? Stat.fromJson(json['stat']) : null;
|
||||||
title = json['title'];
|
title = json['title'];
|
||||||
type = json['type'];
|
type = json['type'];
|
||||||
|
epid = json['epid'];
|
||||||
|
seasonId = json['season_id'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,11 +5,14 @@ import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:pilipala/http/dynamics.dart';
|
import 'package:pilipala/http/dynamics.dart';
|
||||||
import 'package:pilipala/http/search.dart';
|
import 'package:pilipala/http/search.dart';
|
||||||
|
import 'package:pilipala/models/bangumi/info.dart';
|
||||||
import 'package:pilipala/models/common/dynamics_type.dart';
|
import 'package:pilipala/models/common/dynamics_type.dart';
|
||||||
|
import 'package:pilipala/models/common/search_type.dart';
|
||||||
import 'package:pilipala/models/dynamics/result.dart';
|
import 'package:pilipala/models/dynamics/result.dart';
|
||||||
import 'package:pilipala/models/dynamics/up.dart';
|
import 'package:pilipala/models/dynamics/up.dart';
|
||||||
import 'package:pilipala/models/live/item.dart';
|
import 'package:pilipala/models/live/item.dart';
|
||||||
import 'package:pilipala/utils/feed_back.dart';
|
import 'package:pilipala/utils/feed_back.dart';
|
||||||
|
import 'package:pilipala/utils/utils.dart';
|
||||||
|
|
||||||
class DynamicsController extends GetxController {
|
class DynamicsController extends GetxController {
|
||||||
int page = 1;
|
int page = 1;
|
||||||
@ -142,6 +145,32 @@ class DynamicsController extends GetxController {
|
|||||||
/// TODO
|
/// TODO
|
||||||
case 'DYNAMIC_TYPE_UGC_SEASON':
|
case 'DYNAMIC_TYPE_UGC_SEASON':
|
||||||
print('合集');
|
print('合集');
|
||||||
|
break;
|
||||||
|
case 'DYNAMIC_TYPE_PGC_UNION':
|
||||||
|
print('DYNAMIC_TYPE_PGC_UNION 番剧');
|
||||||
|
DynamicArchiveModel pgc = item.modules.moduleDynamic.major.pgc;
|
||||||
|
if (pgc.epid != null) {
|
||||||
|
SmartDialog.showLoading(msg: '获取中...');
|
||||||
|
var res = await SearchHttp.bangumiInfo(epId: pgc.epid);
|
||||||
|
SmartDialog.dismiss();
|
||||||
|
if (res['status']) {
|
||||||
|
EpisodeItem episode = res['data'].episodes.first;
|
||||||
|
String bvid = episode.bvid!;
|
||||||
|
int cid = episode.cid!;
|
||||||
|
String pic = episode.cover!;
|
||||||
|
String heroTag = Utils.makeHeroTag(cid);
|
||||||
|
Get.toNamed(
|
||||||
|
'/video?bvid=$bvid&cid=$cid&seasonId=${res['data'].seasonId}',
|
||||||
|
arguments: {
|
||||||
|
'pic': pic,
|
||||||
|
'heroTag': heroTag,
|
||||||
|
'videoType': SearchType.media_bangumi,
|
||||||
|
'bangumiItem': res['data'],
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,8 @@ Widget author(item, context) {
|
|||||||
Text(
|
Text(
|
||||||
item.modules.moduleAuthor.name,
|
item.modules.moduleAuthor.name,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: item.modules.moduleAuthor!.vip!['status'] > 0
|
color: item.modules.moduleAuthor!.vip != null &&
|
||||||
|
item.modules.moduleAuthor!.vip['status'] > 0
|
||||||
? const Color.fromARGB(255, 251, 100, 163)
|
? const Color.fromARGB(255, 251, 100, 163)
|
||||||
: Theme.of(context).colorScheme.onBackground,
|
: Theme.of(context).colorScheme.onBackground,
|
||||||
fontSize: Theme.of(context).textTheme.titleSmall!.fontSize,
|
fontSize: Theme.of(context).textTheme.titleSmall!.fontSize,
|
||||||
|
|||||||
Reference in New Issue
Block a user