Skip to content

Commit

Permalink
opt: get bangumiInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
bggRGjQaUbCoE committed Oct 5, 2024
1 parent 6c84b0c commit 052e8f9
Show file tree
Hide file tree
Showing 8 changed files with 269 additions and 180 deletions.
54 changes: 35 additions & 19 deletions lib/common/widgets/video_card_v.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:PiliPalaX/models/bangumi/info.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
Expand Down Expand Up @@ -43,25 +44,40 @@ class VideoCardV extends StatelessWidget {
return;
}
int epId = videoItem.param;
SmartDialog.showLoading(msg: '资源获取中');
var result = await SearchHttp.bangumiInfo(seasonId: null, epId: epId);
SmartDialog.dismiss();
if (result['status']) {
var bangumiDetail = result['data'];
int cid = bangumiDetail.episodes!.first.cid;
String bvid = IdUtils.av2bv(bangumiDetail.episodes!.first.aid);
String seasonId = bangumiDetail.seasonId;
Get.toNamed(
'/video?bvid=$bvid&cid=$cid&seasonId=$seasonId&epId=$epId',
arguments: {
'pic': videoItem.pic,
'heroTag': heroTag,
'videoType': SearchType.media_bangumi,
},
);
} else {
SmartDialog.showToast(result['msg']);
}
Utils.viewBangumi(epId: epId);
// SmartDialog.showLoading(msg: '资源获取中');
// var result = await SearchHttp.bangumiInfo(seasonId: null, epId: epId);
// SmartDialog.dismiss();
// if (result['status']) {
// var bangumiDetail = result['data'];
// EpisodeItem episode = result['data'].episodes.first;
// int? epId = result['data'].userStatus?.progress?.lastEpId;
// if (epId == null) {
// epId = episode.epId;
// } else {
// for (var item in result['data'].episodes) {
// if (item.epId == epId) {
// episode = item;
// break;
// }
// }
// }
// String bvid = episode.bvid!;
// int cid = episode.cid!;
// String pic = episode.cover!;
// String seasonId = bangumiDetail.seasonId;
// dynamic heroTag = Utils.makeHeroTag(cid);
// Get.toNamed(
// '/video?bvid=$bvid&cid=$cid&seasonId=$seasonId&epId=$epId',
// arguments: {
// 'pic': pic,
// 'heroTag': heroTag,
// 'videoType': SearchType.media_bangumi,
// },
// );
// } else {
// SmartDialog.showToast(result['msg']);
// }
break;
case 'av':
String bvid = videoItem.bvid ?? IdUtils.av2bv(videoItem.aid);
Expand Down
2 changes: 1 addition & 1 deletion lib/pages/bangumi/introduction/controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class BangumiIntroController extends CommonController {
// 视频bvid
String bvid = Get.parameters['bvid'] ?? '';
var seasonId = Get.parameters['seasonId'] != null
? int.parse(Get.parameters['seasonId']!)
? int.tryParse(Get.parameters['seasonId']!)
: null;
var epId = Get.parameters['epId'] != null
? int.tryParse(Get.parameters['epId']!)
Expand Down
79 changes: 40 additions & 39 deletions lib/pages/bangumi/widgets/bangumi_card_v.dart
Original file line number Diff line number Diff line change
Expand Up @@ -42,45 +42,46 @@ class BangumiCardV extends StatelessWidget {
child: InkWell(
onTap: () async {
final int seasonId = bangumiItem.seasonId;
SmartDialog.showLoading(msg: '获取中...');
final res = await SearchHttp.bangumiInfo(seasonId: seasonId);
SmartDialog.dismiss().then((value) {
if (res['status']) {
if (res['data'].episodes.isEmpty) {
SmartDialog.showToast('资源加载失败');
return;
}
EpisodeItem episode = res['data'].episodes.first;
int? epId = res['data'].userStatus?.progress?.lastEpId;
if (epId == null) {
epId = episode.epId;
} else {
for (var item in res['data'].episodes) {
if (item.epId == epId) {
episode = item;
break;
}
}
}
String bvid = episode.bvid!;
int cid = episode.cid!;
String pic = episode.cover!;
print('epId');
print(epId);
String heroTag = Utils.makeHeroTag(cid);
Get.toNamed(
'/video?bvid=$bvid&cid=$cid&seasonId=$seasonId&epId=$epId',
arguments: {
'pic': pic,
'heroTag': heroTag,
'videoType': SearchType.media_bangumi,
'bangumiItem': res['data'],
},
);
} else {
SmartDialog.showToast(res['msg']);
}
});
Utils.viewBangumi(seasonId: seasonId);
// SmartDialog.showLoading(msg: '获取中...');
// final res = await SearchHttp.bangumiInfo(seasonId: seasonId);
// SmartDialog.dismiss().then((value) {
// if (res['status']) {
// if (res['data'].episodes.isEmpty) {
// SmartDialog.showToast('资源加载失败');
// return;
// }
// EpisodeItem episode = res['data'].episodes.first;
// int? epId = res['data'].userStatus?.progress?.lastEpId;
// if (epId == null) {
// epId = episode.epId;
// } else {
// for (var item in res['data'].episodes) {
// if (item.epId == epId) {
// episode = item;
// break;
// }
// }
// }
// String bvid = episode.bvid!;
// int cid = episode.cid!;
// String pic = episode.cover!;
// // print('epId');
// // print(epId);
// String heroTag = Utils.makeHeroTag(cid);
// Get.toNamed(
// '/video?bvid=$bvid&cid=$cid&seasonId=$seasonId&epId=$epId',
// arguments: {
// 'pic': pic,
// 'heroTag': heroTag,
// 'videoType': SearchType.media_bangumi,
// 'bangumiItem': res['data'],
// },
// );
// } else {
// SmartDialog.showToast(res['msg']);
// }
// });
},
child: Column(
children: [
Expand Down
63 changes: 32 additions & 31 deletions lib/pages/dynamics/controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -178,37 +178,38 @@ class DynamicsController extends GetxController
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']) {
// dynamic episode -> progress episode -> first episode
EpisodeItem episode = (res['data'].episodes as List)
.firstWhereOrNull(
(item) => item.epId == pgc.epid,
) ??
(res['data'].episodes as List).firstWhereOrNull(
(item) =>
item.epId == res['data'].userStatus?.progress?.lastEpId,
) ??
res['data'].episodes.first;
dynamic epId = episode.epId;
dynamic bvid = episode.bvid;
dynamic cid = episode.cid;
dynamic pic = episode.cover;
dynamic heroTag = Utils.makeHeroTag(cid);
Utils.toDupNamed(
'/video?bvid=$bvid&cid=$cid&seasonId=${res['data'].seasonId}&epId=$epId',
arguments: {
'pic': pic,
'heroTag': heroTag,
'videoType': SearchType.media_bangumi,
'bangumiItem': res['data'],
},
);
} else {
SmartDialog.showToast(res['msg']);
}
Utils.viewBangumi(epId: pgc.epid);
// SmartDialog.showLoading(msg: '获取中...');
// var res = await SearchHttp.bangumiInfo(epId: pgc.epid);
// SmartDialog.dismiss();
// if (res['status']) {
// // dynamic episode -> progress episode -> first episode
// EpisodeItem episode = (res['data'].episodes as List)
// .firstWhereOrNull(
// (item) => item.epId == pgc.epid,
// ) ??
// (res['data'].episodes as List).firstWhereOrNull(
// (item) =>
// item.epId == res['data'].userStatus?.progress?.lastEpId,
// ) ??
// res['data'].episodes.first;
// dynamic epId = episode.epId;
// dynamic bvid = episode.bvid;
// dynamic cid = episode.cid;
// dynamic pic = episode.cover;
// dynamic heroTag = Utils.makeHeroTag(cid);
// Utils.toDupNamed(
// '/video?bvid=$bvid&cid=$cid&seasonId=${res['data'].seasonId}&epId=$epId',
// arguments: {
// 'pic': pic,
// 'heroTag': heroTag,
// 'videoType': SearchType.media_bangumi,
// 'bangumiItem': res['data'],
// },
// );
// } else {
// SmartDialog.showToast(res['msg']);
// }
}
break;
}
Expand Down
64 changes: 36 additions & 28 deletions lib/pages/history/widgets/item.dart
Original file line number Diff line number Diff line change
Expand Up @@ -106,34 +106,42 @@ class HistoryItem extends StatelessWidget {
}
} else {
if (videoItem.history.epid != '') {
SmartDialog.showLoading(msg: '获取中...');
var res =
await SearchHttp.bangumiInfo(epId: videoItem.history.epid);
SmartDialog.dismiss();
if (res['status']) {
EpisodeItem episode = res['data'].episodes.first;
for (EpisodeItem i in res['data'].episodes) {
if (i.epId == videoItem.history.epid) {
episode = i;
break;
}
}
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}&epId=${episode.epId}',
arguments: {
'pic': pic,
'heroTag': heroTag,
'videoType': SearchType.media_bangumi,
'bangumiItem': res['data'],
},
);
} else {
SmartDialog.showToast(res['msg']);
}
Utils.viewBangumi(epId: videoItem.history.epid);
// SmartDialog.showLoading(msg: '获取中...');
// var res =
// await SearchHttp.bangumiInfo(epId: videoItem.history.epid);
// SmartDialog.dismiss();
// if (res['status']) {
// var bangumiDetail = res['data'];
// EpisodeItem episode = res['data'].episodes.first;
// int? epId = res['data'].userStatus?.progress?.lastEpId;
// if (epId == null) {
// epId = episode.epId;
// } else {
// for (var item in res['data'].episodes) {
// if (item.epId == epId) {
// episode = item;
// break;
// }
// }
// }
// String bvid = episode.bvid!;
// int cid = episode.cid!;
// String pic = episode.cover!;
// String seasonId = bangumiDetail.seasonId;
// dynamic heroTag = Utils.makeHeroTag(cid);
// Get.toNamed(
// '/video?bvid=$bvid&cid=$cid&seasonId=$seasonId&epId=$epId',
// arguments: {
// 'pic': pic,
// 'heroTag': heroTag,
// 'videoType': SearchType.media_bangumi,
// 'bangumiItem': res['data'],
// },
// );
// } else {
// SmartDialog.showToast(res['msg']);
// }
}
}
} else {
Expand Down
83 changes: 42 additions & 41 deletions lib/pages/search_panel/widgets/media_bangumi_panel.dart
Original file line number Diff line number Diff line change
Expand Up @@ -137,47 +137,48 @@ Widget searchBangumiPanel(BuildContext context, ctr, loadingState) {
height: 32,
child: ElevatedButton(
onPressed: () async {
SmartDialog.showLoading(msg: '获取中...');
var res = await SearchHttp.bangumiInfo(
seasonId: i.seasonId);
SmartDialog.dismiss().then((value) {
if (res['status']) {
EpisodeItem episode =
res['data'].episodes.first;
int? epId = res['data']
.userStatus
?.progress
?.lastEpId;
if (epId == null) {
epId = episode.epId;
} else {
for (var item
in res['data'].episodes) {
if (item.epId == epId) {
episode = item;
break;
}
}
}
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=${i.seasonId}&epId=$epId',
arguments: {
'pic': pic,
'heroTag': heroTag,
'videoType':
SearchType.media_bangumi,
'bangumiItem': res['data'],
},
);
} else {
SmartDialog.showToast(res['msg']);
}
});
Utils.viewBangumi(seasonId: i.seasonId);
// SmartDialog.showLoading(msg: '获取中...');
// var res = await SearchHttp.bangumiInfo(
// seasonId: i.seasonId);
// SmartDialog.dismiss().then((value) {
// if (res['status']) {
// EpisodeItem episode =
// res['data'].episodes.first;
// int? epId = res['data']
// .userStatus
// ?.progress
// ?.lastEpId;
// if (epId == null) {
// epId = episode.epId;
// } else {
// for (var item
// in res['data'].episodes) {
// if (item.epId == epId) {
// episode = item;
// break;
// }
// }
// }
// 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=${i.seasonId}&epId=$epId',
// arguments: {
// 'pic': pic,
// 'heroTag': heroTag,
// 'videoType':
// SearchType.media_bangumi,
// 'bangumiItem': res['data'],
// },
// );
// } else {
// SmartDialog.showToast(res['msg']);
// }
// });
},
child: const Text('观看'),
),
Expand Down
Loading

0 comments on commit 052e8f9

Please sign in to comment.