Skip to content

Commit fc087b9

Browse files
authored
Merge branch 'master' into master
2 parents 79b1cfd + 7808a00 commit fc087b9

23 files changed

+398
-300
lines changed

Diff for: README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ Pure Live是一款款平台基于Flutter的直播转码软件,轻松看直播
1717
- Android
1818
- Windows
1919

20+
## Windows 安装
21+
![Windows](https://user-images.githubusercontent.com/82752643/221176075-b6604bd4-dd76-4427-8f9c-9a5f33d74620.png)
22+
23+
2024
## 开发进度看板[link](https://jackiu-notes.notion.site/50bc0d3d377445eea029c6e3d4195671?v=663125e639b047cea5e69d8264926b8b)
2125

2226
## Screenshots
@@ -69,8 +73,6 @@ Pure Live是一款款平台基于Flutter的直播转码软件,轻松看直播
6973

7074
- [x] [斗鱼APP](https://www.douyu.com/client)
7175

72-
- [ ] 没有其他平台的计划
73-
7476
## Donate
7577

7678
如果你觉得该项目对您有所帮助,可以打赏一杯咖啡给我,支持我继续开发维护PureLive。
@@ -121,4 +123,4 @@ No user privacy is ever collected, the app directly requests the official interf
121123
- [real-url](https://github.com/wbt5/real-url)
122124
- [dart_tars_protocol](https://github.com/xiaoyaocz/dart_tars_protocol)
123125
- [bilibili-API-collect](https://github.com/SocialSisterYi/bilibili-API-collect)
124-
- [alltv_flutter](https://github.com/Ha2ryZhang/alltv_flutter)
126+
- [alltv_flutter](https://github.com/Ha2ryZhang/alltv_flutter)

Diff for: lib/common/l10n/generated/intl/messages_en.dart

+2-7
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ class MessageLookup extends MessageLookupByLibrary {
5353
MessageLookupByLibrary.simpleMessage("Backup &Recover"),
5454
"backup_recover_subtitle":
5555
MessageLookupByLibrary.simpleMessage("Create backup and recover"),
56-
"bilibili_cookie":
57-
MessageLookupByLibrary.simpleMessage("Bilibili Cookie"),
5856
"cancel": MessageLookupByLibrary.simpleMessage("Cancel"),
5957
"change_language": MessageLookupByLibrary.simpleMessage("Language"),
6058
"change_language_subtitle": MessageLookupByLibrary.simpleMessage(
@@ -123,11 +121,6 @@ class MessageLookup extends MessageLookupByLibrary {
123121
MessageLookupByLibrary.simpleMessage("Play Background"),
124122
"enable_background_play_subtitle": MessageLookupByLibrary.simpleMessage(
125123
"When leave app, allow video play background"),
126-
"enable_bilibili_search_cookie": MessageLookupByLibrary.simpleMessage(
127-
"Enable bilibili search cookie"),
128-
"enable_bilibili_search_cookie_subtitle":
129-
MessageLookupByLibrary.simpleMessage(
130-
"Set custom bilibili search needed cookie"),
131124
"enable_dense_favorites_mode":
132125
MessageLookupByLibrary.simpleMessage("Dense Mode"),
133126
"enable_dense_favorites_mode_subtitle":
@@ -147,6 +140,8 @@ class MessageLookup extends MessageLookupByLibrary {
147140
"enable_screen_keep_on_subtitle": MessageLookupByLibrary.simpleMessage(
148141
"When in live play, keep screen on"),
149142
"experiment": MessageLookupByLibrary.simpleMessage("Experiment"),
143+
"favorite_areas":
144+
MessageLookupByLibrary.simpleMessage("Favorite Areas"),
150145
"favorites_title": MessageLookupByLibrary.simpleMessage("Favorites"),
151146
"float_overlay_ratio":
152147
MessageLookupByLibrary.simpleMessage("Float Video Ratio"),

Diff for: lib/common/l10n/generated/intl/messages_zh_CN.dart

+1-6
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ class MessageLookup extends MessageLookupByLibrary {
5050
"backup_recover": MessageLookupByLibrary.simpleMessage("备份与恢复"),
5151
"backup_recover_subtitle":
5252
MessageLookupByLibrary.simpleMessage("创建备份与恢复"),
53-
"bilibili_cookie":
54-
MessageLookupByLibrary.simpleMessage("Bilibili Cookie"),
5553
"cancel": MessageLookupByLibrary.simpleMessage("取消"),
5654
"change_language": MessageLookupByLibrary.simpleMessage("切换语言"),
5755
"change_language_subtitle":
@@ -108,10 +106,6 @@ class MessageLookup extends MessageLookupByLibrary {
108106
"enable_background_play": MessageLookupByLibrary.simpleMessage("后台播放"),
109107
"enable_background_play_subtitle":
110108
MessageLookupByLibrary.simpleMessage("当暂时切出APP时,允许后台播放"),
111-
"enable_bilibili_search_cookie":
112-
MessageLookupByLibrary.simpleMessage("启用Bilibili搜索"),
113-
"enable_bilibili_search_cookie_subtitle":
114-
MessageLookupByLibrary.simpleMessage("设置Bilibili搜索所需Cookie"),
115109
"enable_dense_favorites_mode":
116110
MessageLookupByLibrary.simpleMessage("紧凑模式"),
117111
"enable_dense_favorites_mode_subtitle":
@@ -127,6 +121,7 @@ class MessageLookup extends MessageLookupByLibrary {
127121
"enable_screen_keep_on_subtitle":
128122
MessageLookupByLibrary.simpleMessage("当处于直播播放页,屏幕保持常亮"),
129123
"experiment": MessageLookupByLibrary.simpleMessage("实验"),
124+
"favorite_areas": MessageLookupByLibrary.simpleMessage("关注分区"),
130125
"favorites_title": MessageLookupByLibrary.simpleMessage("关注"),
131126
"float_overlay_ratio": MessageLookupByLibrary.simpleMessage("悬浮窗尺寸"),
132127
"float_overlay_ratio_subtitle":

Diff for: lib/common/l10n/generated/l10n.dart

+10-30
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/common/l10n/intl_en.arb

+1-4
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"empty_areas_room_title": "No Live Found",
3232
"empty_areas_room_subtitle": "Pull down to refresh data",
3333
"switch_platform": "Switch platform",
34+
"favorite_areas": "Favorite Areas",
3435

3536
"search_input_hint": "Input live room keyword",
3637
"only_living": "Only Living",
@@ -96,10 +97,6 @@
9697
"auto_refresh_time": "Auto Refresh Time",
9798
"auto_refresh_time_subtitle": "Auto refresh favorites rooms status",
9899

99-
"bilibili_cookie": "Bilibili Cookie",
100-
"enable_bilibili_search_cookie": "Enable bilibili search cookie",
101-
"enable_bilibili_search_cookie_subtitle": "Set custom bilibili search needed cookie",
102-
103100
"about": "About",
104101
"version": "Version",
105102
"what_is_new": "New Features",

Diff for: lib/common/l10n/intl_zh_CN.arb

+1-4
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"empty_areas_subtitle": "请点击下方按钮切换平台",
3232
"empty_areas_room_title": "未发现直播",
3333
"empty_areas_room_subtitle": "下滑/上滑刷新数据",
34+
"favorite_areas": "关注分区",
3435

3536
"search_input_hint": "输入直播关键字",
3637
"only_living": "只搜索直播中",
@@ -96,10 +97,6 @@
9697
"auto_refresh_time": "定时刷新时间",
9798
"auto_refresh_time_subtitle": "定时刷新关注直播间状态",
9899

99-
"bilibili_cookie": "Bilibili Cookie",
100-
"enable_bilibili_search_cookie": "启用Bilibili搜索",
101-
"enable_bilibili_search_cookie_subtitle": "设置Bilibili搜索所需Cookie",
102-
103100
"about": "关于",
104101
"version": "版本",
105102
"what_is_new": "最新特性",

Diff for: lib/common/services/settings_service.dart

+32-8
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,15 @@ class SettingsService extends GetxController {
2929
enableFullScreenDefault.listen((value) {
3030
PrefUtil.setBool('enableFullScreenDefault', value);
3131
});
32-
bilibiliCustomCookie.listen((String value) {
33-
PrefUtil.setString('bilibiliCustomCookie', value);
34-
});
3532

3633
favoriteRooms.listen((rooms) {
3734
PrefUtil.setStringList('favoriteRooms',
3835
favoriteRooms.map<String>((e) => jsonEncode(e.toJson())).toList());
3936
});
37+
favoriteAreas.listen((rooms) {
38+
PrefUtil.setStringList('favoriteAreas',
39+
favoriteAreas.map<String>((e) => jsonEncode(e.toJson())).toList());
40+
});
4041

4142
historyRooms.listen((rooms) {
4243
PrefUtil.setStringList('historyRooms',
@@ -122,9 +123,6 @@ class SettingsService extends GetxController {
122123
final enableFullScreenDefault =
123124
(PrefUtil.getBool('enableFullScreenDefault') ?? false).obs;
124125

125-
final bilibiliCustomCookie =
126-
(PrefUtil.getString('bilibiliCustomCookie') ?? '').obs;
127-
128126
static const List<String> resolutions = ['原画', '蓝光8M', '蓝光4M', '超清', '流畅'];
129127
final preferResolution =
130128
(PrefUtil.getString('preferResolution') ?? resolutions[0]).obs;
@@ -198,6 +196,28 @@ class SettingsService extends GetxController {
198196
}
199197
historyRooms.add(room);
200198
}
199+
200+
// Favorite areas storage
201+
final favoriteAreas = ((PrefUtil.getStringList('favoriteAreas') ?? [])
202+
.map((e) => LiveArea.fromJson(jsonDecode(e)))
203+
.toList())
204+
.obs;
205+
206+
bool isFavoriteArea(LiveArea area) {
207+
return favoriteAreas.contains(area);
208+
}
209+
210+
bool addArea(LiveArea area) {
211+
if (favoriteAreas.contains(area)) return false;
212+
favoriteAreas.add(area);
213+
return true;
214+
}
215+
216+
bool removeArea(LiveArea area) {
217+
if (!favoriteAreas.contains(area)) return false;
218+
favoriteAreas.remove(area);
219+
return true;
220+
}
201221

202222
// Backup & recover storage
203223
final backupDirectory = (PrefUtil.getString('backupDirectory') ?? '').obs;
@@ -226,6 +246,10 @@ class SettingsService extends GetxController {
226246
favoriteRooms.value = (json['favoriteRooms'] as List)
227247
.map<LiveRoom>((e) => LiveRoom.fromJson(jsonDecode(e)))
228248
.toList();
249+
favoriteAreas.value = (json['favoriteAreas'] as List)
250+
.map<LiveArea>((e) => LiveArea.fromJson(jsonDecode(e)))
251+
.toList();
252+
229253
changeThemeMode(json['themeMode'] ?? "System");
230254
changeThemeColor(json['themeColor'] ?? "Crimson");
231255
enableDynamicTheme.value = json['enableDynamicTheme'] ?? false;
@@ -234,7 +258,6 @@ class SettingsService extends GetxController {
234258
enableScreenKeepOn.value = json['enableScreenKeepOn'] ?? false;
235259
enableAutoCheckUpdate.value = json['enableAutoCheckUpdate'] ?? true;
236260
enableFullScreenDefault.value = json['enableFullScreenDefault'] ?? false;
237-
bilibiliCustomCookie.value = json['bilibiliCustomCookie'] ?? '';
238261
changePreferResolution(json['preferResolution'] ?? resolutions[0]);
239262
changePreferPlatform(json['preferPlatform'] ?? platforms[0]);
240263
}
@@ -243,6 +266,8 @@ class SettingsService extends GetxController {
243266
Map<String, dynamic> json = {};
244267
json['favoriteRooms'] =
245268
favoriteRooms.map<String>((e) => jsonEncode(e.toJson())).toList();
269+
json['favoriteAreas'] =
270+
favoriteAreas.map<String>((e) => jsonEncode(e.toJson())).toList();
246271
json['themeMode'] = themeModeName.value;
247272
json['themeColor'] = themeColorName.value;
248273
json['enableDynamicTheme'] = enableDynamicTheme.value;
@@ -251,7 +276,6 @@ class SettingsService extends GetxController {
251276
json['enableScreenKeepOn'] = enableScreenKeepOn.value;
252277
json['enableAutoCheckUpdate'] = enableAutoCheckUpdate.value;
253278
json['enableFullScreenDefault'] = enableFullScreenDefault.value;
254-
json['bilibiliCustomCookie'] = bilibiliCustomCookie.value;
255279
json['preferResolution'] = preferResolution.value;
256280
json['preferPlatform'] = preferPlatform.value;
257281
return json;

Diff for: lib/common/widgets/empty_view.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ class EmptyView extends StatelessWidget {
2626
Text.rich(
2727
TextSpan(children: [
2828
TextSpan(
29-
text: "$title\n\n",
29+
text: "$title\n",
3030
style: Theme.of(context)
3131
.textTheme
32-
.headlineLarge
33-
?.copyWith(color: color, fontSize: 28)),
32+
.headlineMedium
33+
?.copyWith(color: color)),
3434
TextSpan(
35-
text: subtitle,
35+
text: "\n$subtitle",
3636
style: Theme.of(context)
3737
.textTheme
3838
.titleSmall

0 commit comments

Comments
 (0)