diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e4374c..4097945 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,25 @@ ---- +--- Author: 目棃 Description: 更新日志 Date: 2024-04-17 -Update: 2024-05-10 +Update: 2024-05-21 --- > 本文档 [`Frontmatter`](https://github.com/BTMuli/MuCli#Frontmatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于 `2024-04-17 17:46:42` > -> 更新于 `2024-05-10 16:21:40` +> 更新于 `2024-05-21 01:18:55` + +## [0.5.0](https://github.com/BTMuli/BangumiToday/releases/tag/v0.4.0) (2024-05-21) + +为了适配在线播放源,将播放记录的模型进行了重构,**该改动会使旧版本应用启动白屏**。 + +解决方法:将 `文档/BangumiToday/hive` 目录下的 `play.hive` 及 `play.lock` 删除后重启应用。 + +弹幕&在线播放源的支持还在测试阶段,暂未实装。 + +- ♻️ 重构请求客户端 +- ✨ 重构播放记录模型,按照条目进行划分,并优化了播放记录的存储逻辑 +- 🐛 修复令牌刷新bug ## [v0.4.0](https://github.com/BTMuli/BangumiToday/releases/tag/v0.4.0) (2024-05-10) diff --git a/README.md b/README.md index 4010f06..4017213 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,12 @@ Author: 目棃 Description: 说明文档 Date: 2024-04-11 -Update: 2024-05-12 +Update: 2024-05-21 --- > 本文档 [`Frontmatter`](https://github.com/BTMuli/MuCli#Frontmatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于 `2024-04-11 12:06:15` > -> 更新于 `2024-05-12 21:58:56` +> 更新于 `2024-05-21 01:24:37` > **项目目前处于开发阶段,不保证稳定性。** @@ -40,17 +40,23 @@ Update: 2024-05-12 ## 应用预览 -![](./screenshots/calendar.png) +![今日放送](./screenshots/calendar.png) -![](./screenshots/subjectDetail.png) +![条目详情](./screenshots/subjectDetail.png) -![](./screenshots/subjectDetail2.png) +![条目详情2](./screenshots/subjectDetail2.png) -![](./screenshots/subjectSearch.png) +![条目搜索](./screenshots/subjectSearch.png) -![](./screenshots/userCollection.png) +![用户界面](./screenshots/userInfo.png) -![](./screenshots/videoPlay.png) +![用户收藏](./screenshots/userCollection.png) + +![BangumiData](./screenshots/bangumiData.png) + +![播放列表](./screenshots/playList.png) + +![播放历史](./screenshots/playHistory.png) ## 发行 diff --git a/lib/pages/bangumi/bangumi_detail.dart b/lib/pages/bangumi/bangumi_detail.dart index 2ecb903..227e244 100644 --- a/lib/pages/bangumi/bangumi_detail.dart +++ b/lib/pages/bangumi/bangumi_detail.dart @@ -1,3 +1,6 @@ +// Flutter imports: +import 'package:flutter/foundation.dart'; + // Package imports: import 'package:fluent_ui/fluent_ui.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; @@ -142,6 +145,35 @@ class _BangumiDetailState extends ConsumerState } } + /// 构建弹幕按钮 + Widget buildDanmakuButton() { + return IconButton( + icon: const Icon(FluentIcons.library), + onPressed: () async { + var check = hiveDanmaku.find(int.parse(widget.id)); + if (check == null) { + await fetchDanmaku(widget.id); + } else { + await hiveDanmaku.showInfo(context, check); + } + }, + onLongPress: () async { + var check = hiveDanmaku.find(int.parse(widget.id)); + if (check == null) { + await fetchDanmaku(widget.id); + return; + } + var confirm = await showConfirmDialog( + context, + title: '重新匹配', + content: '确定重新匹配吗?', + ); + if (!confirm) return; + await fetchDanmaku(widget.id); + }, + ); + } + /// 构建顶部栏 Widget buildHeader() { String? title; @@ -175,31 +207,7 @@ class _BangumiDetailState extends ConsumerState mainAxisAlignment: MainAxisAlignment.end, mainAxisSize: MainAxisSize.min, children: [ - IconButton( - icon: const Icon(FluentIcons.library), - onPressed: () async { - var check = hiveDanmaku.find(int.parse(widget.id)); - if (check == null) { - await fetchDanmaku(widget.id); - } else { - await hiveDanmaku.showInfo(context, check); - } - }, - onLongPress: () async { - var check = hiveDanmaku.find(int.parse(widget.id)); - if (check == null) { - await fetchDanmaku(widget.id); - return; - } - var confirm = await showConfirmDialog( - context, - title: '重新匹配', - content: '确定重新匹配吗?', - ); - if (!confirm) return; - await fetchDanmaku(widget.id); - }, - ), + if (kDebugMode) buildDanmakuButton(), IconButton( icon: const Icon(FluentIcons.refresh), onPressed: () async { diff --git a/lib/tools/scheme_tool.dart b/lib/tools/scheme_tool.dart index 46a3d7f..492598d 100644 --- a/lib/tools/scheme_tool.dart +++ b/lib/tools/scheme_tool.dart @@ -31,7 +31,7 @@ class BTSchemeTool { /// 测试 Future test(BuildContext context) async { - var uri = await appLink.getLatestAppLink(); + var uri = await appLink.getLatestLink(); if (context.mounted) { await BtInfobar.success(context, '[BangumiToday] $uri'); } diff --git a/pubspec.lock b/pubspec.lock index 2502b9b..329fb1a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -37,10 +37,10 @@ packages: dependency: "direct main" description: name: app_links - sha256: "0fd41f0501f131d931251e0942ac63d6216096a0052aeca037915c2c1deeb121" + sha256: "8c6ef5ba9e26b720d4c9073826befb87df2ab5e7a81c22b6c3145080b5e736c9" url: "https://pub.flutter-io.cn" source: hosted - version: "5.0.0" + version: "6.0.2" archive: dependency: transitive description: @@ -125,10 +125,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: "1414d6d733a85d8ad2f1dfcb3ea7945759e35a123cb99ccfac75d0758f75edfa" url: "https://pub.flutter-io.cn" source: hosted - version: "2.4.9" + version: "2.4.10" build_runner_core: dependency: transitive description: @@ -285,10 +285,10 @@ packages: dependency: "direct main" description: name: dart_rss - sha256: "9aee5c0713a48ff55e48752db68cfb2b1dfdff9c5c81adb5993492fb604f5e02" + sha256: "73539d4b7153b47beef8b51763ca55dcb6fc0bb412b29e0f5e74e93fabfd1ac6" url: "https://pub.flutter-io.cn" source: hosted - version: "3.0.1" + version: "3.0.3" dart_style: dependency: transitive description: @@ -477,10 +477,10 @@ packages: dependency: "direct main" description: name: fl_chart - sha256: "2b7c1f5d867da9a054661641c8f499c55c47c39acccb97b3bc673f5fa9a39e74" + sha256: d0f0d49112f2f4b192481c16d05b6418bd7820e021e265a3c22db98acf7ed7fb url: "https://pub.flutter-io.cn" source: hosted - version: "0.67.0" + version: "0.68.0" fluent_ui: dependency: "direct main" description: @@ -493,10 +493,10 @@ packages: dependency: "direct main" description: name: fluentui_system_icons - sha256: "9bb6c46ff0351f0b20a79bbe5afcaf533af5f06fd8ac22407b57eaee8025004c" + sha256: "5438216388532797b339fcd18c3ebf9c04f4e03123b203dedc98368c0753a1e8" url: "https://pub.flutter-io.cn" source: hosted - version: "1.1.236" + version: "1.1.239" flutter: dependency: "direct main" description: flutter @@ -530,10 +530,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" url: "https://pub.flutter-io.cn" source: hosted - version: "3.0.2" + version: "4.0.0" flutter_localizations: dependency: transitive description: flutter @@ -567,10 +567,10 @@ packages: dependency: "direct main" description: name: flutter_screenutil - sha256: "8cf100b8e4973dc570b6415a2090b0bfaa8756ad333db46939efc3e774ee100d" + sha256: b372c35a772a1dc84142a3b9c5ee89a390834bd258e5e6a450d9b975b985d1c9 url: "https://pub.flutter-io.cn" source: hosted - version: "5.9.0" + version: "5.9.1" flutter_web_plugins: dependency: transitive description: flutter @@ -636,10 +636,10 @@ packages: dependency: transitive description: name: http - sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2" + sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" url: "https://pub.flutter-io.cn" source: hosted - version: "0.13.6" + version: "1.2.1" http_multi_server: dependency: transitive description: @@ -684,10 +684,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.flutter-io.cn" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -716,10 +716,10 @@ packages: dependency: "direct main" description: name: jiffy - sha256: cc1d4b75016a9156c29b5d61f0c9176c3e0fb0580cc5a0e0422b5d2cab3fbfff + sha256: "3497caaa36d36a29033e66803c9739ce6bccbc7e241ca46070f76ee9e6f6eb0c" url: "https://pub.flutter-io.cn" source: hosted - version: "6.2.1" + version: "6.3.1" js: dependency: transitive description: @@ -756,10 +756,10 @@ packages: dependency: transitive description: name: lints - sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" url: "https://pub.flutter-io.cn" source: hosted - version: "3.0.0" + version: "4.0.0" local_notifier: dependency: "direct main" description: @@ -772,10 +772,10 @@ packages: dependency: "direct main" description: name: logger - sha256: "8c94b8c219e7e50194efc8771cd0e9f10807d8d3e219af473d89b06cc2ee4e04" + sha256: af05cc8714f356fd1f3888fb6741cbe9fbe25cdb6eedbab80e1a6db21047d4a4 url: "https://pub.flutter-io.cn" source: hosted - version: "2.2.0" + version: "2.3.0" logging: dependency: transitive description: @@ -892,10 +892,10 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.flutter-io.cn" source: hosted - version: "1.11.0" + version: "1.12.0" mime: dependency: transitive description: @@ -949,10 +949,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "2c582551839386fa7ddbc7770658be7c0f87f388a4bff72066478f597c34d17f" + sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0 url: "https://pub.flutter-io.cn" source: hosted - version: "7.0.0" + version: "8.0.0" package_info_plus_platform_interface: dependency: transitive description: @@ -1490,10 +1490,10 @@ packages: dependency: transitive description: name: wakelock_plus - sha256: c8b7cc80f045533b40a0e6c9109905494e3cf32c0fbd5c62616998e0de44003f + sha256: "14758533319a462ffb5aa3b7ddb198e59b29ac3b02da14173a1715d65d4e6e68" url: "https://pub.flutter-io.cn" source: hosted - version: "1.2.4" + version: "1.2.5" wakelock_plus_platform_interface: dependency: transitive description: @@ -1546,10 +1546,10 @@ packages: dependency: "direct main" description: name: window_manager - sha256: b3c895bdf936c77b83c5254bec2e6b3f066710c1f89c38b20b8acc382b525494 + sha256: "8699323b30da4cdbe2aa2e7c9de567a6abd8a97d9a5c850a3c86dcd0b34bbfbf" url: "https://pub.flutter-io.cn" source: hosted - version: "0.3.8" + version: "0.3.9" windows_taskbar: dependency: "direct main" description: @@ -1583,5 +1583,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.3.4 <4.0.0" + dart: ">=3.4.0 <4.0.0" flutter: ">=3.19.0" diff --git a/pubspec.yaml b/pubspec.yaml index 75e8430..2bccc16 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 0.4.0+10 +version: 0.5.0+7 environment: sdk: '>=3.3.4 <4.0.0' @@ -28,11 +28,11 @@ environment: # the latest version available on pub.dev. To see which dependencies have newer # versions available, run `flutter pub outdated`. dependencies: - app_links: ^5.0.0 + app_links: ^6.0.2 cached_network_image: ^3.3.1 crypto: ^3.0.3 cupertino_icons: ^1.0.6 - dart_rss: ^3.0.1 + dart_rss: ^3.0.3 device_info_plus: ^10.1.0 dio: ^5.4.3+1 dtorrent_parser: ^1.0.8 @@ -42,24 +42,24 @@ dependencies: events_emitter2: ^1.0.4 file_picker: ^8.0.1 file_selector: ^1.0.3 - fl_chart: ^0.67.0 + fl_chart: ^0.68.0 fluent_ui: ^4.6.1 - fluentui_system_icons: ^1.1.234 + fluentui_system_icons: ^1.1.239 flutter: sdk: flutter flutter_acrylic: ^1.1.3 flutter_dotenv: ^5.1.0 flutter_rating_bar: ^4.0.1 flutter_riverpod: ^2.4.10 - flutter_screenutil: ^5.9.0 + flutter_screenutil: ^5.9.1 hive: ^2.2.3 html: ^0.15.4 - intl: ^0.18.1 + intl: ^0.19.0 isar_flutter_libs: ^4.0.0-dev.3 - jiffy: ^6.2.1 + jiffy: ^6.3.1 json_annotation: ^4.8.1 local_notifier: ^0.1.6 - logger: ^2.2.0 + logger: ^2.3.0 media_kit: ^1.1.10+1 media_kit_libs_video: ^1.0.4 media_kit_video: ^1.2.4 @@ -67,7 +67,7 @@ dependencies: git: url: https://github.com/xiaoyaocz/flutter_ns_danmaku.git ref: master - package_info_plus: ^7.0.0 + package_info_plus: ^8.0.0 pasteboard: ^0.2.0 path: ^1.9.0 path_provider: ^2.1.3 @@ -75,7 +75,7 @@ dependencies: sqflite_common_ffi: ^2.3.3 system_theme: ^2.3.1 url_launcher: ^6.2.5 - window_manager: ^0.3.8 + window_manager: ^0.3.9 win32_registry: ^1.1.3 windows_taskbar: ^1.1.2 xml: ^6.5.0 @@ -86,8 +86,8 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - build_runner: ^2.4.8 - flutter_lints: ^3.0.2 + build_runner: ^2.4.10 + flutter_lints: ^4.0.0 husky: ^0.1.7 import_sorter: ^4.6.0 # dart run import_sorter:main json_serializable: ^6.7.1 diff --git a/screenshots/bangumiData.png b/screenshots/bangumiData.png new file mode 100644 index 0000000..72d29e2 Binary files /dev/null and b/screenshots/bangumiData.png differ diff --git a/screenshots/playHistory.png b/screenshots/playHistory.png new file mode 100644 index 0000000..82e4bc8 Binary files /dev/null and b/screenshots/playHistory.png differ diff --git a/screenshots/playList.png b/screenshots/playList.png new file mode 100644 index 0000000..844802b Binary files /dev/null and b/screenshots/playList.png differ diff --git a/screenshots/subjectSearch.png b/screenshots/subjectSearch.png index c1bb654..c2dd85f 100644 Binary files a/screenshots/subjectSearch.png and b/screenshots/subjectSearch.png differ diff --git a/screenshots/userInfo.png b/screenshots/userInfo.png new file mode 100644 index 0000000..8e30c08 Binary files /dev/null and b/screenshots/userInfo.png differ diff --git a/screenshots/videoPlay.png b/screenshots/videoPlay.png deleted file mode 100644 index c421be6..0000000 Binary files a/screenshots/videoPlay.png and /dev/null differ