Compare commits

...

1189 Commits

Author SHA1 Message Date
dom
b897103af0 Upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-04-03 09:39:03 +08:00
dom
353664fbd4 Open offline dir on desktop
Signed-off-by: dom <githubaccount56556@proton.me>
2026-04-03 09:35:32 +08:00
dom
de3505ce07 Floating NavBar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-04-03 09:35:32 +08:00
dom
cdc1720358 Reformat
Signed-off-by: dom <githubaccount56556@proton.me>
2026-04-03 09:35:25 +08:00
dom
904d210ba2 build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-04-02 12:45:08 +08:00
HCha
db8dd85b63 fix: revert commit 7ee6d1e element.weight (#1879) 2026-04-02 12:44:35 +08:00
dom
8ad130567e Release 2.0.2
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-31 18:25:39 +08:00
dom
7eb21bc5a2 build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-31 18:24:02 +08:00
dom
ea4316a847 opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-31 16:57:12 +08:00
dom
2bbc97a950 fix macOS build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-31 11:51:22 +08:00
dom
0178d105ba add Local Network permissions for iOS & macOS
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-31 11:17:32 +08:00
dom
771fa75f48 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-31 11:17:09 +08:00
dom
82483b33fc opt live emote
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-30 00:02:58 +08:00
My-Responsitories
886c53c7d8 opt: m3e loading (#1877)
* opt: loading

* feat: refresh m3e

* restore refreshIndicator

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-03-29 23:34:04 +08:00
dom
f0050dd6e6 fix pendent offset
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-29 11:47:58 +08:00
dom
e6a2f65b4e fix reply up badge
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-29 11:47:58 +08:00
dom
2fc3f9864f opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-29 10:51:52 +08:00
dom
64c05a1b06 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-29 10:02:00 +08:00
ninatan777
7c4e20f96c safely parse up list (#1876)
* fix: 兼容 mid/roomId/count 字段为字符串或数字类型

* update

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-03-29 10:01:10 +08:00
dom
ace286753c flutter 3.41.6
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-27 10:33:15 +08:00
dom
f0430eba9f opt player bar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-26 18:34:57 +08:00
dom
bbcceb72a7 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-26 10:27:21 +08:00
dom
be4fa6ad2c build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-25 20:25:54 +08:00
dom
50e1f77e10 log player error instead of toast
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-25 20:22:07 +08:00
dom
ba56b45038 clamp archive page
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-25 15:01:35 +08:00
dom
b4b3764e5f web archive
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-25 12:59:29 +08:00
dom
2220372e4f tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-25 12:58:49 +08:00
dom
0957dfc66e fix ios build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-23 14:50:57 +08:00
dom
9578f948b4 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-23 13:47:20 +08:00
dom
1724f0d202 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-23 11:14:31 +08:00
dom
2bebf200df show user medal
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-23 11:03:24 +08:00
dom
fc7fc18b14 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-22 16:35:08 +08:00
0x535A
8f00ca5680 fix: macOS Media Control not activated & remove Background Play switch on desktop (#1872)
* fix: macOS Media Control not activated

* fix: remove Background Play switch on desktop

asdf

Update lib/main.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-22 16:25:31 +08:00
dom
236b524445 opt image viewer gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-22 13:53:49 +08:00
dom
ae59d257c3 show medal wall
show user follow time

show top image title

Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-22 13:53:44 +08:00
dom
662ccfcf0a upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-19 20:34:36 +08:00
dom
b7ab3655c4 flutter 3.41.5
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-19 20:34:36 +08:00
Starfallen
eda04b32a4 fix(player): clamp loudnorm measured_thresh parameters to valid range (#1871)
Co-authored-by: ci <example@example.com>
2026-03-19 08:30:17 +00:00
dom
9b1ae39922 m3e loading indicator
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-18 09:11:08 +08:00
dom
d1497115da tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-18 08:50:07 +08:00
HeXis-YS
7f2682bb7b opt(download): force cache downloads to use http/1.1 (#1870)
* opt(download): force cache downloads to use http/1.1

* refactor(http): lazily initialize fallback http/1.1 client

* fix(http): keep fallback client decision consistent at startup

* opt: use clone

* fix

* fix

---------

Co-authored-by: My-Responsitories <107370289+My-Responsitories@users.noreply.github.com>
2026-03-17 12:43:03 +00:00
dom
d6579b29ae reduce rebuild
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-17 14:38:10 +08:00
dom
8a8aa6c1e0 unique image tag
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-17 14:37:53 +08:00
dom
ed66a4655b opt fab location
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-16 10:20:59 +08:00
My-Responsitories
e04affd0fe opt: hive ce (#1868) 2026-03-15 16:51:45 +08:00
dom
e293083492 opt set shader
opt refresh player

Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-15 09:48:31 +08:00
dom
7f39f36c75 fix auto fullscreen
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-15 09:16:21 +08:00
dom
565819febe remove unused param
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-15 09:16:21 +08:00
dom
af150118a1 opt load saved reply
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-15 09:16:21 +08:00
dom
470e519a2b opt save panel
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-15 09:16:21 +08:00
HeXis-YS
d73588f1fd fix(player): disable audio normalization on missing audio input (#1865)
* fix(player): disable audio normalization on missing audio input

* fix(player): skip normalization when local audio input is missing

* fix `hasDashAudio`

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-03-15 09:16:10 +08:00
dom
ffbbd8e702 Release 2.0.1
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-14 17:52:15 +08:00
dom
a1815c4cc7 unify platform file name
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-14 17:44:10 +08:00
dom
b9e543f26b improve export/import
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-14 17:09:23 +08:00
dom
0788a4de2d upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-14 13:40:58 +08:00
dom
b0c6e2f5cd fix dyn folded link
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-14 13:40:58 +08:00
dom
9489d8a7ca opt handle dyn additional
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-14 12:19:30 +08:00
My-Responsitories
aee4424dbf opt: escape performReassemble (#1864) 2026-03-13 18:38:37 +08:00
dom
96f9972895 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-13 09:49:48 +08:00
dom
6ddf282555 fix header progress
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-13 09:49:48 +08:00
dom
e98b2b69bb tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-12 17:23:51 +08:00
dom
448192b635 DynamicFlexibleSpaceBar: provide height
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-12 15:45:36 +08:00
My-Responsitories
6cda3a1880 tweaks (#1862)
* opt: linter

* tweaks

* opt: TopImage

* update

* remove repaintBoundary [skip ci]

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-03-12 15:45:18 +08:00
dom
99128b2641 stateless DynamicSliverAppBar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-12 13:01:05 +08:00
dom
b8098fe067 show member collection top
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-11 17:46:09 +08:00
dom
9fef3284db opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-11 17:17:47 +08:00
dom
f2b0a3a5ed link up to launcher
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-10 17:22:53 +08:00
dom
3090cfc6f9 live first frame
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-10 13:12:33 +08:00
dom
98ce99202e decrease image max ratio
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-10 13:12:33 +08:00
dom
fddf46a90a upgrade dep
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-10 11:13:15 +08:00
dom
a5231a55b8 fix dyn with title only
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-09 19:40:30 +08:00
dom
b8cae015d7 upgrade dep
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-09 17:43:50 +08:00
dom
3b09534320 upgrade dep
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-09 15:56:18 +08:00
dom
702cf988d3 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-09 11:53:46 +08:00
dom
5586d12b1f opt live chat list
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-09 10:22:15 +08:00
dom
4683939364 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-09 10:22:02 +08:00
My-Responsitories
f825f87dc1 opt: save reply (#1860)
* opt: save reply

* opt: reply save switch

* remove unneeded sort

* clear sub replies [skip ci]

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-03-08 20:37:59 +08:00
dom
4ad422c3ea suppress build annotation
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-08 15:47:26 +08:00
My-Responsitories
c01318c066 feat: sliver wrap (#1858)
* feat: sliver wrap

* opt: list

* update

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-03-08 15:25:44 +08:00
dom
01a74e191a redirect ugc to pgc
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-08 11:28:57 +08:00
dom
a1f15b5da5 feat: record reply
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-08 11:28:51 +08:00
Dxeee
1e83a23c5c feat: "Selected Comments" status displayed (#1857)
* Add support for UpSelection in reply display and controller

* update

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-03-08 00:26:58 +08:00
dom
2d69c05f33 tweak
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-08 00:24:18 +08:00
dom
7a2dbe68c7 build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-08 00:24:10 +08:00
dom
db08af6ca5 correct scrollable position when hiding top bar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-07 15:05:57 +08:00
dom
fefb5c837b build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-07 15:05:57 +08:00
dom
a88429d6d7 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-07 10:49:29 +08:00
dom
cbe99a32eb fix player interactive viewer recognizer
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 18:54:01 +08:00
dom
b65d10ac5f flutter 3.41.4
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 17:51:43 +08:00
dom
868f7f5055 increase image max ratio
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 12:43:55 +08:00
dom
e843684109 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 12:06:42 +08:00
dom
631197e3b9 opt perf
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 12:05:54 +08:00
dom
381c385726 refactor image grid
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 12:05:54 +08:00
dom
077255e776 opt member profile
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 12:05:54 +08:00
dom
0bcc1a7f12 build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 12:05:54 +08:00
dom
9b145b525a opt floating header
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-06 12:05:53 +08:00
dom
b61a54bf9b fix auto fullscreen
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-04 23:57:22 +08:00
dom
cf103a09c1 fix typo
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-04 16:16:41 +08:00
dom
a802bc1cdf opt auto fullscreen
opt video fit

Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-04 16:03:41 +08:00
dom
8d312d8cf1 build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-04 11:38:13 +08:00
dom
6738142ac0 opt player listener
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-04 11:19:11 +08:00
dom
3d99e6c761 fetch dyn type onlyfansQaCard
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-04 11:19:11 +08:00
dom
f9f52e918a resize image placeholder
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-04 11:19:11 +08:00
dom
6108290b4b remove unused property
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-04 11:19:05 +08:00
dom
8bae275120 fix trackpad not respecting enableSlideVolumeBrightness property
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-03 18:38:18 +08:00
dom
0504011ba0 Release 2.0.0
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-03 10:54:58 +08:00
dom
dc9d4f9eed upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-03 09:56:48 +08:00
dom
187c92d691 flutter 3.41.3
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-03 09:55:59 +08:00
dom
9c7b18710c refa persistent header & dynamic sliver appbar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-03 09:44:29 +08:00
dom
1dbc54f063 opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-03-02 10:31:16 +08:00
My-Responsitories
348bc8b920 opt: set repeat ui (#1854) 2026-03-01 20:38:03 +08:00
dom
a375d8525f upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-28 18:12:52 +08:00
dom
e3e423f9b1 fix app scheme
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-28 18:06:01 +08:00
NLsdt
62048992be chore(ci): upgrade upload-artifact to v7 and set archive options (#1852) 2026-02-28 13:31:45 +08:00
dom
ec9498a2ca fix profile actions constraints
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-28 12:04:05 +08:00
dom
1d35abef63 fixes
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-27 18:15:34 +08:00
dom
889f6d01c2 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-27 16:03:56 +08:00
dom
d9c47be2a9 opt chat list
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-27 15:55:40 +08:00
dom
cf44036589 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-27 15:52:14 +08:00
My-Responsitories
7276cde48a refa player (#1848)
* tweak

* Reapply "opt: audio uri" (#1833)

This reverts commit 8e726f49b2.

* opt: player

* opt: player

* refa: create player

* refa: player

* opt: UaType

* fix: sb seek preview

* opt: setSub

* fix: screenshot

* opt: unnecessary final player state

* opt: player track

* opt FileSource constructor [skip ci]

* fixes

* fix: dispose player

* fix: quote

* update

* fix: multi ua & remove unused loop

* remove unneeded check [skip ci]

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-27 15:51:55 +08:00
My-Responsitories
6782bee11a opt: HeaderLayout with SlottedMultiChild (#1850)
* opt: HeaderLayout with SlottedMultiChild

* ordered

* update [skip ci]
2026-02-27 14:40:17 +08:00
barmxds6ch
b55e102dc3 feat(whisper): add uploader message attachment display (#1849)
* feat(whisper): add uploader message attachment display

* update

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-27 10:56:44 +08:00
dom
65ad8a0fdc opt anim
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-26 21:26:28 +08:00
dom
fdb3bf3edc opt member profile
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-26 16:59:51 +08:00
dom
95506ad896 tweak
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-26 14:06:34 +08:00
dom
348b2533dc opt image gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-26 10:05:06 +08:00
dom
2bdab71138 opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-25 18:02:36 +08:00
My-Responsitories
e707764f84 tweaks (#1846)
* opt: live extra

* opt: remove addPointer

* opt: use ssd

* opt: cache svg

* opt: localToGlobal

* opt: disabled icon

* opt: onVideoDetailChange switch

* fix

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-25 18:01:43 +08:00
dom
4a3d827f7a opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-24 21:48:42 +08:00
dom
e88cd12dfa opt refresh
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-24 12:17:18 +08:00
dom
ee04978e0c opt scrollPhysics
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-23 12:03:35 +08:00
dom
d15ad4911d upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-23 11:53:26 +08:00
dom
14b6c115b5 opt refresh
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-23 11:44:39 +08:00
dom
ee188da6b0 opt scrollPhysics
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-22 20:45:06 +08:00
dom
998b70cd87 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-22 16:47:51 +08:00
dom
7563a52bed opt refresh
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-22 15:51:57 +08:00
dom
7e81fae2bc fix jump to item
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-22 15:22:12 +08:00
dom
639dfac8af build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-21 21:13:47 +08:00
dom
d8950adb64 opt player bottom bar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-21 19:50:51 +08:00
dom
9092db86ca upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-21 18:54:22 +08:00
My-Responsitories
d7d9655f81 opt: RepaintBoundary (#1840)
* opt: RepaintBoundary

* fix [skip ci]

* opt time width

* opt: video position

* update

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-20 21:04:34 +08:00
dom
a63ca93762 flutter 3.41.2
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-20 12:00:54 +08:00
dom
243178c112 format
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-20 12:00:54 +08:00
Just_A_Pony
dcb3a02da8 allow user to configure window decorations(CSD/SSD) (#1839)
* allow user to configure window decorations(CSD/SSD)

* rename piliplus.desktop
to com.example.piliplus.desktop

* update

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-20 11:46:25 +08:00
Starfallen
b1c0eca328 fix(player): clamp loudnorm parameters to valid FFmpeg ranges (#1838)
- Define Integrated True Peak (TP) boundary constants.
- Use .clamp() in Volume.format to ensure parameters stay within [-9, 0] for 'TP'.
- Prevents FFmpeg filter errors when video metadata contains very low peak values (e.g., TP = -22).
2026-02-19 15:31:29 +08:00
dom
e3a1eb5c87 opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-19 15:12:29 +08:00
dom
736478b1c5 fix patch
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-19 13:33:05 +08:00
dom
12919804dc mouse cursor patch
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-19 12:23:20 +08:00
dom
888b3d8173 remove unused val
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-19 10:45:57 +08:00
dom
1e6b0f0b53 opt hide bottom bar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-19 10:33:40 +08:00
dom
aa3e5a4737 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-18 23:12:03 +08:00
dom
3f3d54fd27 add bar hide type
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-18 21:41:15 +08:00
dom
a142b15344 fix hide bottom bar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-18 18:33:33 +08:00
dom
651e79ce26 opt handle scroll
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-18 18:16:22 +08:00
dom
9b93ce84ab upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-18 17:44:46 +08:00
dom
dfa258b9e6 opt hide top/bottom bar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-18 17:36:11 +08:00
dom
a5efca4e1f upgrade dep
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-17 18:35:03 +08:00
dom
1fe84d1d34 Revert "disable windows thread merging"
This reverts commit bebf34db23.
2026-02-17 18:35:03 +08:00
dom
b978ff5649 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-17 18:34:58 +08:00
dom
fa85ae47ac gitignore
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-16 10:22:03 +08:00
dom
3209ecd0ba opt image recognizer
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-15 22:19:54 +08:00
dom
807de41ff0 opt gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-15 21:43:51 +08:00
dom
d273e72a44 opt image viewer
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-15 19:14:17 +08:00
dom
2c0597175d opt gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-15 17:16:24 +08:00
My-Responsitories
85292a3df2 opt: image viewer (#1837)
* opt: image

* opt: MatrixTransition

* update


---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-15 17:13:55 +08:00
dom
9c7c6f9e4e tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-15 10:47:20 +08:00
Gujial
511ff71f5f opt share video link (#1835)
* feat: share video with current time position preference

* simplify


---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-14 21:16:47 +08:00
систем
e104982246 handle Cmd+Q on macOS (#1834)
* feat(video): add Pref.keyboardControl check &  support in video page

- 在 player_focus 处理按键事件前增加 Pref.keyboardControl 检查,允许禁用键盘快捷键
- 修复 Cmd+Q 事件被 Q 键逻辑拦截导致无法退出的问题

* Update player_focus.dart
2026-02-14 21:01:34 +08:00
dom
e7e79eb62a opt image preview
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-14 18:26:31 +08:00
dom
352e314ee1 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-14 18:26:31 +08:00
dom
e9dafbc227 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-14 12:03:28 +08:00
dom
96727469ac build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-14 12:03:28 +08:00
dom
c70c9829c0 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-14 12:03:18 +08:00
dom
beb7eb1aea refa image preview
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-14 11:03:02 +08:00
My-Responsitories
8e726f49b2 Revert "opt: audio uri" (#1833)
This reverts commit 78739d9c0a.
2026-02-13 20:36:51 +08:00
dom
007375371e revert new overscrollindicator
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 17:39:26 +08:00
dom
6d79551566 fix updateTicker
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 15:27:10 +08:00
dom
483953cf56 sync flutter widgets
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 13:44:55 +08:00
dom
fbf7116edf fix modal barrier patch
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 11:14:51 +08:00
dom
6c164d81e3 use TickerMode.getValuesNotifier
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 10:30:40 +08:00
dom
d0789734ec fix get icon assets
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 10:20:11 +08:00
dom
f3bd305337 use findItemIndexCallback
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 10:15:19 +08:00
dom
5ab7000716 platform assets
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 10:12:08 +08:00
dom
dc1c33f086 adapt RadioClient
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 10:12:08 +08:00
dom
920c51100a flutter 3.41.0
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 10:12:08 +08:00
dom
05a385d69e tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-12 10:12:08 +08:00
My-Responsitories
9411785d26 opt: PlPlayerController (#1832)
* opt: audio uri

* opt: PlPlayerController
2026-02-10 16:33:02 +08:00
My-Responsitories
ed2bd069ee opt: segment (#1831)
* opt: segment

* revert: block config
2026-02-10 16:13:38 +08:00
My-Responsitories
0460030a2b feat: tempPlayerConf add playRepeat (#1830) 2026-02-09 18:16:45 +08:00
My-Responsitories
7e570d11d8 fix: live dm 2026-02-09 16:43:21 +08:00
dom
32cd3209d0 opt init recognizer
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-09 09:55:01 +08:00
dom
0cb07aef1c audio block
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-08 23:35:58 +08:00
dom
0c65605ac0 audio sschedule shutdown
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-08 20:51:13 +08:00
My-Responsitories
8234b7ac92 opt: matrix anim (#1829) 2026-02-08 15:27:03 +08:00
dom
4ac855d393 Release 1.1.6
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-07 16:43:37 +08:00
dom
7381939c0f upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-07 16:43:37 +08:00
dom
a380bcd96a tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-07 12:38:52 +08:00
dom
d253ef468b tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-07 11:39:23 +08:00
систем
e8145ef65a fix: initialize controller before super (#1827) 2026-02-07 11:32:02 +08:00
dom
0c175abc0b opt image physics
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-07 10:55:00 +08:00
dom
946a5a1e47 opt image gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-07 10:40:21 +08:00
dom
29e7e0e556 feat: vertical tabbar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-07 09:28:02 +08:00
dom
cc1704a021 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-07 09:25:23 +08:00
My-Responsitories
7ab2cf973f tweaks (#1826)
* opt: dataStatus

* tweaks

* opt: ui

* update

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-06 14:25:45 +08:00
dom
32386bf146 fix check bottom bar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-06 12:52:35 +08:00
dom
40269da391 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-06 12:34:08 +08:00
dom
42e082bbc6 scroll to current rank
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-06 11:39:31 +08:00
dom
1ad710c1cf opt settings
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-06 10:48:36 +08:00
dom
cfa925549e tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-05 16:54:27 +08:00
dom
ca387787b3 opt handle reply note
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-05 11:19:36 +08:00
dom
29a9b22c29 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-05 11:18:17 +08:00
dom
672375b925 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-04 19:54:44 +08:00
wuhenzha
c099738802 fix: respect title bar setting after exiting PiP (#1825) 2026-02-04 19:50:52 +08:00
dom
50561b8dc1 opt persist header
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-03 18:28:06 +08:00
dom
2596859778 custom dyn text menu
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-03 10:21:34 +08:00
dom
3d453bafdb modal barrier patch
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-03 10:21:34 +08:00
систем
18e0b93ca7 feat: add copy/move support to fav/later search results (#1822)
* feat: add copy/move support to fav/later search results

* update

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-03 10:21:01 +08:00
My-Responsitories
7260a387f9 tweaks (#1821)
* opt: _onTapUp

* opt: set contains

* opt: elementAtOrNull
2026-02-02 20:12:12 +08:00
dom
37fa165f59 opt pip
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-01 17:06:21 +08:00
dom
8f08104f37 upgrade dep
Signed-off-by: dom <githubaccount56556@proton.me>
2026-02-01 11:57:13 +08:00
lesetong
6ee4deab05 Fix duplicate items in Up list when showAllUp is enabled. (#1819)
Overrode UpItem's == operator and hashCode using 'mid' to prevent
redundant entries.
2026-02-01 00:18:18 +08:00
My-Responsitories
77fff92939 opt: binary search fontsize (#1818)
* opt: permission

* opt: opt: binary search fontsize

* use transform

Signed-off-by: dom <githubaccount56556@proton.me>

* fix

Signed-off-by: dom <githubaccount56556@proton.me>

* opt: matrix

* opt [skip ci]

* tweaks [skip ci]

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-02-01 00:01:34 +08:00
dom
8964197b73 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-31 13:20:51 +08:00
dom
dbc7bcd0dd upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-31 13:20:51 +08:00
dom
207ad2753c opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-30 15:16:22 +08:00
My-Responsitories
d6e6e52df2 tweaks (#1816)
* opt: getFileName

* opt: audio-pitch-correction

* opt: spring dialog

* opt: account dialog

* update [skip ci]

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-30 10:31:26 +08:00
систем
9442b17d63 opt select account (#1815)
* feat: switchAccountDialog pages simple-detaile

* update

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-29 22:06:10 +08:00
dom
058ff44e39 opt autosync
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-29 19:35:50 +08:00
dom
48c7dc0eed custom autosync
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-29 18:12:08 +08:00
dom
99634a66ab tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-29 18:12:03 +08:00
nakixii
21fad89cde Add autosync property with value '30' (#1813) 2026-01-29 15:22:00 +08:00
dom
5979ddb60c tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-29 14:55:16 +08:00
dom
bcbfe5c849 SpringDescription with duration
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-29 12:35:58 +08:00
dom
1640732f5d opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-29 12:35:58 +08:00
dom
9567910611 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-29 10:24:16 +08:00
dom
d1713504a0 opt gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-29 10:16:16 +08:00
dom
bce73d9f16 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-28 15:46:06 +08:00
dom
6f30d2e331 opt reply
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-28 12:37:21 +08:00
dom
556bda0d68 opt video intro
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-28 11:46:47 +08:00
dom
9d5eb55e26 upgrade dep
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-28 11:46:42 +08:00
dom
110469961d opt video scheme
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-27 11:40:00 +08:00
dom
fa348db7c5 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-27 11:19:49 +08:00
dom
3eac565b5e fix slide
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-26 14:52:49 +08:00
dom
af40e489bc opt ao
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-26 14:38:48 +08:00
dom
361eb4c614 opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-26 14:15:47 +08:00
dom
7ace981f24 upgrade dep
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-26 14:15:47 +08:00
My-Responsitories
bfb2becb2d opt: ao (#1811)
* opt: ao

* multi select

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-26 14:11:48 +08:00
My-Responsitories
038f03a4e7 tweaks (#1810)
* tweak

* opt: image quality

* opt: VideoPlayerServiceHandler

* fixes

* update

Signed-off-by: dom <githubaccount56556@proton.me>

* fix get file name

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-25 15:21:33 +08:00
dom
219228f8b5 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-25 11:59:17 +08:00
dom
1f64de5954 opt gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-25 11:59:17 +08:00
dom
e9b5cffa91 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-25 11:59:12 +08:00
dom
68872f7b14 opt gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-24 16:23:14 +08:00
dom
bd158619a4 opt gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-24 15:40:21 +08:00
dom
310f497c30 opt slide
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-24 15:20:01 +08:00
dom
30ee413852 fix web rcmd
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-24 13:45:30 +08:00
dom
0ab07a713e tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-24 13:45:25 +08:00
My-Responsitories
7eaf05839a fixes (#1809)
* Revert "opt gesture"

This reverts commit bd97f9a500.

* revert: late init

* update [skip ci]

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-24 11:46:00 +08:00
该昵称己被占用_
777c3c2278 fix typo (#1808)
把中文段落中的“, ”改为“,”。
2026-01-24 11:45:44 +08:00
dom
b9b54ce4f7 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-23 13:08:32 +08:00
dom
92e5fae29c opt pop
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-22 12:35:34 +08:00
dom
05e8ded86a upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-21 21:32:15 +08:00
dom
7a65b777c9 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-21 21:32:10 +08:00
dom
0b1f6c4d0e tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-21 13:38:10 +08:00
My-Responsitories
923af32c96 tweaks (#1806)
* opt: nonnull case

* fix: ImageGrid

* opt: distanceSquared
2026-01-21 13:34:44 +08:00
dom
4eae7e698f opt live border indicator
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-20 15:13:32 +08:00
dom
5a61dbe30c opt emoji tooltip
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-20 15:13:32 +08:00
dom
036dbcaf21 opt image grid
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-20 15:13:32 +08:00
dom
bd97f9a500 opt gesture
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-20 15:13:32 +08:00
dom
33278a74b2 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-20 15:13:27 +08:00
dom
397f887b91 fix video progress indicator
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-19 12:21:25 +08:00
dom
ebe793ccfc fix progress behavior
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-19 12:12:54 +08:00
dom
68464e4e34 refa: segment progressbar
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-19 11:39:25 +08:00
dom
395893fc7d refa: video progress indicator
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-19 11:38:28 +08:00
dom
f5657d2d4c refa custom painter
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-19 11:38:27 +08:00
dom
a3ddc83430 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-19 11:37:45 +08:00
dom
d2f8aff421 opt ui
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-19 11:37:33 +08:00
My-Responsitories
25148509d2 opt: aaudio (#1805)
* opt: aaudio
2026-01-18 09:29:34 +08:00
dom
2879d0dc00 upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-15 16:41:23 +08:00
dom
90349189ee fix image grid
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-15 16:41:23 +08:00
dom
bdc524e486 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-15 16:41:17 +08:00
dom
cb58822009 feat: edit dyn
feat: set pub setting

feat: set reply interaction

Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-15 15:03:19 +08:00
dom
4a2679a589 opt scale
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-11 21:40:25 +08:00
dom
09bd1edeb3 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-11 15:27:10 +08:00
KoishiMoe
00da3c4a0e fix: ipa can't be installed by altstore/sidestore (#1803) 2026-01-11 10:46:18 +08:00
My-Responsitories
c40d794180 tweaks (#1802)
* opt: uuid

* tweak

* opt: SlideDialog

* mod: fvmrc [skip ci]

* Revert "mod: fvmrc [skip ci]"

This reverts commit 500fd7f454.

* Revert "opt: SlideDialog"

This reverts commit b435a312a6.

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-11 10:45:51 +08:00
dom
34a839d9e2 fix menu position
fix sc

opt ui

Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-10 18:04:30 +08:00
dom
f06d0605ce fix chat panel container
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-10 12:38:15 +08:00
dom
ef975de624 mark deleted sc
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-10 11:47:40 +08:00
dom
d10c737a38 show img menu
opt img placeholder

opt player gesture

opt pref

tweaks

Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-10 10:21:06 +08:00
s
28b69a06fa feat: Add desktop scaling and fix linux postinst (#1800)
* fix: resolve Linux window close handler to prevent app hang

- Add delete-event callback that properly quits the application when window is closed

* feat: Add desktop scaling and fix linux postinst

- Implement desktop interface scaling in main.dart using FittedBox.
- Add desktop scaling setting UI.
- Add desktopScale to storage preference.
- Fix typos and logic in Linux postinst script.
- Update piliplus.desktop with StartupWMClass.

* update

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Signed-off-by: Shao Guohao <shao.gh.98@gmail.com>
Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-10 10:03:51 +08:00
dom
069cf555ea bump flutter
Signed-off-by: dom <githubaccount56556@proton.me>
2026-01-09 11:48:04 +08:00
KoishiMoe
836ab311d6 feat: add option to turn off dynamic interactions (#1798)
* add option to turn off dynamic interactions

* update

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-09 11:35:47 +08:00
KoishiMoe
dbc11c36df fix: permission dialog (#1799)
* don't request photo permission on A13+

saving to system album requires no additional permission

* fix permission dialog

* update

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
2026-01-09 11:07:39 +08:00
Kofua
fffce10b31 update sponsor block api (#1797)
* update sponsor block api

* update

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-08 11:33:07 +08:00
dom
de85e82bfa Update build.yml 2026-01-07 12:12:39 +08:00
bggRGjQaUbCoE
9855b35b65 opt ui
fix

report im msg

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-07 11:32:24 +08:00
bggRGjQaUbCoE
5a0b045a1f opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-06 13:10:02 +08:00
bggRGjQaUbCoE
c226f8f6df upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-06 13:10:02 +08:00
bggRGjQaUbCoE
fd06fa9cc4 report sc
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-06 13:09:58 +08:00
s
2b5f111fb1 fix: resolve Linux window close handler to prevent app hang (#1795)
- Add delete-event callback that properly quits the application when window is closed
2026-01-03 18:42:30 +08:00
bggRGjQaUbCoE
9f5ce5ae37 fix find sc index
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-03 15:28:19 +08:00
Vixb
3d95165d46 feat: support more dolby id (#1794) 2026-01-03 12:16:09 +08:00
bggRGjQaUbCoE
cfb72f27ac tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-03 11:29:47 +08:00
bggRGjQaUbCoE
bcacc41db3 live dm action
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-03 11:01:06 +08:00
bggRGjQaUbCoE
b2da99e334 fix dm
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-02 14:58:52 +08:00
bggRGjQaUbCoE
041af37bb0 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-02 12:06:09 +08:00
bggRGjQaUbCoE
80e007bac6 add static2Scroll option
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2026-01-02 12:06:05 +08:00
bggRGjQaUbCoE
87c7699324 fix dm
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-31 14:01:49 +08:00
bggRGjQaUbCoE
11912c5f62 fix level
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-31 12:44:03 +08:00
bggRGjQaUbCoE
236a8b3023 fix dm
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-31 12:14:01 +08:00
bggRGjQaUbCoE
63e4bac204 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-31 12:13:38 +08:00
My-Responsitories
2e11247af4 fix: font size 2025-12-30 14:13:45 +08:00
My-Responsitories
13f377f680 fix: font size 2025-12-30 14:07:18 +08:00
bggRGjQaUbCoE
b9d594bc8b tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-29 21:04:52 +08:00
bggRGjQaUbCoE
2a52157c3f show live rank
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-29 21:04:10 +08:00
bggRGjQaUbCoE
a037d8e793 opt dyn publish
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-29 21:04:10 +08:00
My-Responsitories
49b7ea14c3 refa: danmaku & feat: scroll fixed velocity (#1791) 2025-12-29 21:03:24 +08:00
bggRGjQaUbCoE
0a40d11133 opt SpringDescription
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-28 10:58:31 +08:00
bggRGjQaUbCoE
dff6b6486d do not check uploadPictureIconState
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-27 20:54:57 +08:00
bggRGjQaUbCoE
b51c646415 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-27 20:54:41 +08:00
My-Responsitories
25acf3a9bb fix: dynamic openInBrowser (#1790) 2025-12-27 20:51:40 +08:00
bggRGjQaUbCoE
7ec90e9a22 opt dyn more text
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-27 14:07:49 +08:00
bggRGjQaUbCoE
645ce0b7b3 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-27 13:52:36 +08:00
bggRGjQaUbCoE
864fef5881 fix check uploadPictureIconState
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-27 12:40:35 +08:00
bggRGjQaUbCoE
eea232c6db show dyn interaction
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-27 12:40:35 +08:00
bggRGjQaUbCoE
25fca498fc opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-27 12:40:30 +08:00
bggRGjQaUbCoE
c9a02f9c74 fix retry
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-26 10:43:27 +08:00
bggRGjQaUbCoE
99602eea95 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-26 10:43:27 +08:00
bggRGjQaUbCoE
b5fe0faeec Revert "opt view dyn reply"
This reverts commit 161bf2eedb.
2025-12-26 10:43:27 +08:00
bggRGjQaUbCoE
20a36e8f9a tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-25 13:46:21 +08:00
bggRGjQaUbCoE
161bf2eedb opt view dyn reply
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-24 18:36:17 +08:00
bggRGjQaUbCoE
fcf4e72d8e fix vote card
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-24 12:47:50 +08:00
bggRGjQaUbCoE
b46cb69df4 opt reload reply
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-24 12:47:30 +08:00
My-Responsitories
43c7620b4c fix: cacheIndex 2025-12-24 01:05:59 +08:00
bggRGjQaUbCoE
1a8f65b075 opt bar set
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-23 21:12:51 +08:00
bggRGjQaUbCoE
259e7080f8 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-23 17:31:05 +08:00
My-Responsitories
7da6f05a50 tweak 2025-12-23 14:17:22 +08:00
My-Responsitories
521ca3ad18 tweaks (#1788)
* tweak

* opt: show bar

* opt: crc32

* opt: appsign

* opt: Get

* opt: compress only if large

* opt: wbi

* tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Signed-off-by: My-Responsitories <107370289+My-Responsitories@users.noreply.github.com>
Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-23 12:57:19 +08:00
bggRGjQaUbCoE
31e5692dff upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-22 10:58:45 +08:00
bggRGjQaUbCoE
191bcbc525 fix parse dyn emoji
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-22 10:58:45 +08:00
bggRGjQaUbCoE
a0f3b3e442 tweaks
cache season fav state

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-22 10:58:40 +08:00
bggRGjQaUbCoE
5bcd822251 opt live follow list
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-22 10:43:52 +08:00
My-Responsitories
d80324655e opt: cache image (#1787) 2025-12-22 10:43:32 +08:00
bggRGjQaUbCoE
952d168022 fix grpc contentType
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-19 11:22:26 +08:00
bggRGjQaUbCoE
af723e161c tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-19 11:22:13 +08:00
dom
3ff521e103 Update build.yml 2025-12-18 22:29:19 +08:00
My-Responsitories
b4a5d985f5 opt: isolate parse danmaku & feat: grpc account (#1785)
* opt: isolate parse danmaku

* feat: grpc account
2025-12-18 22:27:40 +08:00
bggRGjQaUbCoE
1e0e2d2d6e tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-18 12:30:57 +08:00
My-Responsitories
d7f7611af4 opt: color (#1782)
* fixes

* opt: color

* fix
2025-12-18 11:08:03 +08:00
My-Responsitories
11cdb67050 feat: show network type (#1781) 2025-12-17 21:58:42 +08:00
bggRGjQaUbCoE
53cf9d54c4 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-17 21:39:34 +08:00
bggRGjQaUbCoE
2e73688688 add superChatType
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-17 19:54:30 +08:00
My-Responsitories
ce5e85e64b tweaks (#1780)
* opt: sized

* fix: self send

* feat: ctrl enter to send

* opt: checked

* opt: download notifier

* opt: Future.syncValue

* mod: account

* mod: loading state

* opt: DebounceStreamMixin

* opt: report

* opt: enum map

* opt: file handler

* opt: dyn color

* opt: Uint8List subview

* opt: FileExt

* opt: computeLuminance

* opt: isNullOrEmpty

* opt: Get context

* update [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt dynamicColor [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* fixes [skip ci]

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Signed-off-by: My-Responsitories <107370289+My-Responsitories@users.noreply.github.com>
Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-17 17:01:10 +08:00
bggRGjQaUbCoE
02e0d34127 increase desktop max volume
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-17 14:05:30 +08:00
bggRGjQaUbCoE
830f3b60e0 opt theme
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-17 13:09:15 +08:00
bggRGjQaUbCoE
b4fb7d14d4 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-17 13:02:01 +08:00
lesetong
ab1e5cb62a Add multi-select support to pmshare panel (#1779)
* Add multi-select support to share panel

- Replace single selection index with per-user selected flag
- Allow sending to multiple selected users
- Add sending state to prevent multiple clicks
- Update default selection logic to mark first user as selected

* 简化代码逻辑

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Signed-off-by: lesetong <oscarlbw@qq.com>
Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-17 12:46:36 +08:00
bggRGjQaUbCoE
348a9e014e opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-16 18:42:20 +08:00
bggRGjQaUbCoE
0baf3fcd36 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-16 15:56:54 +08:00
bggRGjQaUbCoE
13818533a7 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-16 14:13:40 +08:00
bggRGjQaUbCoE
0dd3689d65 opt opus text
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-16 11:21:03 +08:00
bggRGjQaUbCoE
23b6850778 opt dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-15 20:29:46 +08:00
bggRGjQaUbCoE
d8ca89ac8f upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-15 20:11:07 +08:00
bggRGjQaUbCoE
ae06d5f7f2 opt live header
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 17:02:01 +08:00
bggRGjQaUbCoE
62506d3eb5 disable alwaysOnTop on dispose
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 16:36:02 +08:00
bggRGjQaUbCoE
f7c61d63a0 remove deprecated pref keys
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 16:14:10 +08:00
bggRGjQaUbCoE
f46437f891 fix get block color
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 15:57:57 +08:00
bggRGjQaUbCoE
1cd949c365 use ValueGetter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 14:14:27 +08:00
bggRGjQaUbCoE
bc5ce11449 fix PopupMenuText
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 14:04:00 +08:00
Vixb
cef4beaa0c feat: sync segment type with upstream (#1777)
* feat: sync segment type with upstream

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Signed-off-by: Vixb <xzx8023@outlook.com>
Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 13:48:00 +08:00
bggRGjQaUbCoE
02bd68f697 opt desktop pip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 12:31:51 +08:00
bggRGjQaUbCoE
2bc3275c1f opt reply
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-14 11:14:01 +08:00
bggRGjQaUbCoE
ec107063c3 opt pay coin
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-13 20:42:27 +08:00
bggRGjQaUbCoE
4c2fd38d6c upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-13 17:10:46 +08:00
bggRGjQaUbCoE
1a6653ba93 opt reply
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-13 15:53:14 +08:00
bggRGjQaUbCoE
74d5e03a34 show followee votes
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-13 15:53:14 +08:00
My-Responsitories
2b4b1debe6 tweak 2025-12-13 14:51:07 +08:00
My-Responsitories
17883eb77e opt: LoadingState (#1776) 2025-12-13 12:43:32 +08:00
bggRGjQaUbCoE
3741fe54ff upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-10 18:00:01 +08:00
bggRGjQaUbCoE
ec11af3827 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-10 17:57:39 +08:00
My-Responsitories
890dc58dc3 refa: settings model (#1773)
* opt: MediaQuery

* refa: settings model
2025-12-10 16:41:31 +08:00
bggRGjQaUbCoE
b12bdf2eb8 opt log page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-10 10:51:33 +08:00
bggRGjQaUbCoE
59c7f8a030 opt onChangeAccount
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-10 10:51:33 +08:00
bggRGjQaUbCoE
50cf74ccf7 fix play next audio
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-10 10:51:33 +08:00
LiPolymer
15b5c0a874 feat: modify recommend page's card width separately (#1771)
* feat: modify recommend card width setting separately
2025-12-10 10:51:16 +08:00
My-Responsitories
244ef22f54 feat: load config from text (#1772)
* feat: load config from text

* opt: login utils

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-09 22:09:57 +08:00
bggRGjQaUbCoE
b4daf5fbd8 reduce log snackbar duration
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-08 23:07:30 +08:00
bggRGjQaUbCoE
0519ec0e4b build
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-08 23:07:30 +08:00
My-Responsitories
ff4f97de1a opt: parse sys msg (#1770) 2025-12-08 23:06:46 +08:00
My-Responsitories
773bdafec3 opt: more linter (#1765)
* opt: more linter

* fix [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-07 23:46:42 +08:00
bggRGjQaUbCoE
3787f99d35 opt download next
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-07 12:29:12 +08:00
bggRGjQaUbCoE
2cb8331528 cache follow order type
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-07 11:48:47 +08:00
bggRGjQaUbCoE
5b6443cfa4 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-07 11:48:42 +08:00
bggRGjQaUbCoE
6fd8212d8b upgrade actions/checkout
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-07 10:42:36 +08:00
My-Responsitories
0d273f6909 refa: logfile (#1764)
* refa: logfile

* opt: log page

* opt: raf log file

* remove old log

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-06 22:33:00 +08:00
bggRGjQaUbCoE
255e39b709 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-06 10:04:57 +08:00
bggRGjQaUbCoE
ea52dd4484 fix typos
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-06 10:04:52 +08:00
bggRGjQaUbCoE
b4a46133be opt set pageTransition
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-04 17:11:59 +08:00
bggRGjQaUbCoE
7c1644efc4 upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-04 11:26:17 +08:00
bggRGjQaUbCoE
775e1aa97d do not show others rank
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-04 11:19:50 +08:00
bggRGjQaUbCoE
2a55d4390a opt list
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-04 11:16:51 +08:00
bggRGjQaUbCoE
d57a34a4e1 fix member list jump
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-03 22:05:06 +08:00
bggRGjQaUbCoE
2785248615 opt up panel
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-03 21:47:12 +08:00
bggRGjQaUbCoE
c42468e2c8 opt update down progress
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-03 19:05:00 +08:00
bggRGjQaUbCoE
196ddf3f5f opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-03 17:36:47 +08:00
bggRGjQaUbCoE
27302435be specify window class name
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-03 17:36:47 +08:00
My-Responsitories
2b3ec77e92 opt: unnecessary_non_null_assertion (#1762) 2025-12-03 17:35:42 +08:00
bggRGjQaUbCoE
b7a277a57c refa: member fav
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-03 14:15:02 +08:00
bggRGjQaUbCoE
9c8e5b53e7 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-03 14:14:38 +08:00
bggRGjQaUbCoE
001b746f65 change dynamicColor def value
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-02 17:06:52 +08:00
bggRGjQaUbCoE
a78214de3c sort video language
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-02 16:58:26 +08:00
bggRGjQaUbCoE
d88ffb1127 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-02 16:58:26 +08:00
dom
f05b901009 fix & opt appsign (#1761)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-02 16:58:13 +08:00
bggRGjQaUbCoE
430837eef6 opt live
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-02 11:46:38 +08:00
bggRGjQaUbCoE
fa583ebd0f tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-02 11:46:31 +08:00
bggRGjQaUbCoE
d2dcba5a59 upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-02 11:45:57 +08:00
bggRGjQaUbCoE
fb5116d525 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-01 14:14:29 +08:00
bggRGjQaUbCoE
a48f6b1ca5 opt update block type
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-30 11:41:34 +08:00
bggRGjQaUbCoE
fc0af3f284 remove seek announce
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-30 11:41:34 +08:00
bggRGjQaUbCoE
2288e11398 fix dm block type
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-30 11:06:20 +08:00
bggRGjQaUbCoE
d95283c4ac upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-28 20:49:28 +08:00
bggRGjQaUbCoE
4b56bd5a87 fix download status
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-28 16:50:53 +08:00
My-Responsitories
62bb605ee8 tweak: danmaku (#1756)
* fix: danmaku like

* opt: danmaku merge

* remove: showSpecialDanmaku
2025-11-28 16:50:37 +08:00
bggRGjQaUbCoE
0f8da1999a opt multi select
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-28 11:59:12 +08:00
bggRGjQaUbCoE
21a2373a5c update dm
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-28 11:24:03 +08:00
bggRGjQaUbCoE
2ca5310825 reduce fullscreen sc duration
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-28 11:24:03 +08:00
dom
9ccaa3072b opt download (#1755)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-27 21:00:13 +08:00
bggRGjQaUbCoE
ded78e534f upgrade protobuf
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-26 17:11:35 +08:00
bggRGjQaUbCoE
9b0a43efc9 upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-26 11:50:08 +08:00
bggRGjQaUbCoE
10808c2a84 show live online count
update live title

update live watchedshow

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-26 11:47:00 +08:00
My-Responsitories
38a7afd63a opt: player controller (#1753)
* opt: player controller

* tweak [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-26 11:45:16 +08:00
bggRGjQaUbCoE
54b26d20fa upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-23 12:43:53 +08:00
bggRGjQaUbCoE
ad2bc78ebd opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-23 12:43:46 +08:00
bggRGjQaUbCoE
c4aca389a8 fixes
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-22 22:35:37 +08:00
bggRGjQaUbCoE
cb8333d4c0 show vote status
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-22 19:35:27 +08:00
bggRGjQaUbCoE
2f5eed6998 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-22 13:56:06 +08:00
bggRGjQaUbCoE
935c53e452 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-22 09:50:32 +08:00
bggRGjQaUbCoE
dd0ccb327b show battery level
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-22 09:50:27 +08:00
bggRGjQaUbCoE
919134759b tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-21 17:53:46 +08:00
bggRGjQaUbCoE
c1d42b498a opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-21 17:46:17 +08:00
bggRGjQaUbCoE
a7e67796f1 fix theme type
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-21 14:07:22 +08:00
bggRGjQaUbCoE
6692c9e851 set dm for live
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-21 14:03:20 +08:00
bggRGjQaUbCoE
ace949aaa0 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-21 13:26:57 +08:00
bggRGjQaUbCoE
fbd9687432 upgrade kgp
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-21 13:26:47 +08:00
bggRGjQaUbCoE
460a8262c1 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-20 19:45:55 +08:00
bggRGjQaUbCoE
c8de503fae fix dyn showmore
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-20 15:27:52 +08:00
bggRGjQaUbCoE
a60cd51ff4 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-20 13:27:31 +08:00
bggRGjQaUbCoE
aad980ce23 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-20 13:27:15 +08:00
bggRGjQaUbCoE
e7cda7b9fa upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-19 18:34:54 +08:00
bggRGjQaUbCoE
1d368b7a8b update richtextfield
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-19 18:34:49 +08:00
bggRGjQaUbCoE
725d7055bf update flutter widgets
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-19 17:45:24 +08:00
bggRGjQaUbCoE
1fb798db4e opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-19 10:19:36 +08:00
bggRGjQaUbCoE
8e1d5e0dd5 opt live back btn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-19 09:35:14 +08:00
bggRGjQaUbCoE
2d9a1310b9 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-19 09:35:09 +08:00
bggRGjQaUbCoE
588ec7babd upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-19 09:35:04 +08:00
My-Responsitories
2be13e7283 refa: sb & feat: sb portVideo (WIP) (#1751)
* refa: sb

* feat: sb portVideo (WIP)

* fix: keep-alive

* revert: ua version

* fix

* tweak [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-19 09:30:04 +08:00
bggRGjQaUbCoE
d5d95671ff ios uiscene migration
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-18 18:22:55 +08:00
bggRGjQaUbCoE
a0eccda6ff set player proxy
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-18 18:22:55 +08:00
bggRGjQaUbCoE
ec82c86210 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 22:06:30 +08:00
bggRGjQaUbCoE
de03bef226 show video restore btn if translated
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 21:50:03 +08:00
My-Responsitories
0f8166620e opt: notify-debugger-on-exception (#1750) 2025-11-17 21:49:36 +08:00
bggRGjQaUbCoE
76c2de4394 fix THREE_DOT_ITEM_TYPE_UP_HELPER action
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 21:10:20 +08:00
bggRGjQaUbCoE
0d38ded981 show lock btn for live
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 18:51:40 +08:00
bggRGjQaUbCoE
646888c06f fix import
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 18:15:20 +08:00
bggRGjQaUbCoE
332f6f1bb4 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 18:04:30 +08:00
bggRGjQaUbCoE
aaab5371b2 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 17:35:29 +08:00
JianGuo Wang
ad931d7ea2 add media notification handling for offline videos (#1748)
* feat: add media notification handling for offline videos

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 17:35:00 +08:00
My-Responsitories
377e430d74 refa: report error (#1747)
* refa: report error

* remove some reports [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-17 17:20:29 +08:00
My-Responsitories
a797467606 upgrade dep (#1746) 2025-11-16 15:02:20 +00:00
My-Responsitories
5ee83d902d opt: exclude analysis flutter widget (#1745) 2025-11-16 14:33:40 +00:00
My-Responsitories
27ae296b28 refa: cdn (#1743)
* refa: cdn

* feat: live cdn (WIP)

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* add live quality [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* mod: replace durl host

* tweak [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-15 20:12:21 +08:00
My-Responsitories
e589f27195 fix; set subtitle before init (#1742)
* tweka

* fix; set subtitle before init
2025-11-15 07:34:23 +00:00
bggRGjQaUbCoE
c89d6a5a59 fix wakelock
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-15 11:50:17 +08:00
bggRGjQaUbCoE
861365930d reformat
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-14 09:22:43 +08:00
bggRGjQaUbCoE
0d4d92a202 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-14 09:22:43 +08:00
bggRGjQaUbCoE
4c6ad0e385 increase webdav timeout
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-14 09:22:43 +08:00
iKirby
ad45e995e2 fix preferred cdn & Add more PCDN url patterns (#1739)
* Fix preferred cdn not used after changing quality

* Add more PCDN url patterns
2025-11-14 09:21:51 +08:00
bggRGjQaUbCoE
50a035a479 opt get season status
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-13 14:27:52 +08:00
bggRGjQaUbCoE
c0dbd6cbb2 migration
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-13 11:04:46 +08:00
bggRGjQaUbCoE
686af4a330 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-13 10:07:44 +08:00
bggRGjQaUbCoE
46aad06e34 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-13 10:05:27 +08:00
bggRGjQaUbCoE
3921b2304d opt download task
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-13 09:38:23 +08:00
My-Responsitories
bca5b0419c tweaks (#1738)
* feat: edit dm filter

* opt: browser

* feat: sb userInfo

* mod: tvPlayUrl
2025-11-13 09:36:50 +08:00
bggRGjQaUbCoE
9754b061dd check dm state
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-12 20:21:11 +08:00
My-Responsitories
407b31c5c1 refa: download video (#1737)
* opt: save pb danmaku

* refa: download video

* opt: replaceAll

* fix: wait delete

* opt: remove completer

* fix: index.json

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-12 19:12:17 +08:00
bggRGjQaUbCoE
37b1228552 feat: dlna
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-12 19:03:01 +08:00
bggRGjQaUbCoE
0acd9ca767 upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-12 10:50:29 +08:00
My-Responsitories
8f3c9f029c opt: const page (#1736) 2025-11-12 07:33:28 +08:00
BH8GUQ
9310732343 Mark offline cache as completed in README (#1735) 2025-11-11 17:46:11 +08:00
bggRGjQaUbCoE
e767e506f3 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-11 17:43:50 +08:00
bggRGjQaUbCoE
ef3a612338 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-11 09:32:08 +08:00
bggRGjQaUbCoE
d66a42a0aa opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-11 09:32:03 +08:00
bggRGjQaUbCoE
0f06de0047 fix save subtitle on win
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-10 12:09:59 +08:00
bggRGjQaUbCoE
963181fef2 feat: load file sub
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-10 11:31:43 +08:00
bggRGjQaUbCoE
ffd4f9ee73 feat: video download
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-09 22:06:19 +08:00
bggRGjQaUbCoE
976622df89 fix pm send btn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-09 16:13:42 +08:00
bggRGjQaUbCoE
13c220338c set system brightness
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-09 15:48:52 +08:00
bggRGjQaUbCoE
1291dc77c8 stop audio service
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-09 11:34:00 +08:00
bggRGjQaUbCoE
08e5477e74 enable audio cdn by def
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-08 16:55:28 +08:00
bggRGjQaUbCoE
c4c6a2243e disable win single alt key event
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-08 16:55:28 +08:00
bggRGjQaUbCoE
58791e3e91 show vote option pic
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-08 16:55:28 +08:00
bggRGjQaUbCoE
d5bb4bc149 fix fan/follow params
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-07 19:55:59 +08:00
bggRGjQaUbCoE
3d1199363b Release 1.1.5
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-07 16:45:13 +08:00
bggRGjQaUbCoE
f225fa33e1 update proto
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-06 15:08:19 +08:00
bggRGjQaUbCoE
e85c8b3dde tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-02 12:37:20 +08:00
bggRGjQaUbCoE
737be8dcac del cache
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-01 18:26:58 +08:00
bggRGjQaUbCoE
77dd939172 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-11-01 15:57:17 +08:00
bggRGjQaUbCoE
0a5965a423 fix parse dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-31 18:57:31 +08:00
bggRGjQaUbCoE
a53be6814c opt tooltip style
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-31 15:12:28 +08:00
bggRGjQaUbCoE
415b8e9da3 fix audio action
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-31 12:28:59 +08:00
bggRGjQaUbCoE
f034c24d13 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-30 17:32:18 +08:00
bggRGjQaUbCoE
1ac93d6269 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-30 17:32:02 +08:00
bggRGjQaUbCoE
906c8f7999 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-29 18:28:10 +08:00
bggRGjQaUbCoE
c904a5ded8 del
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-29 18:28:04 +08:00
bggRGjQaUbCoE
0c9486f6b4 build
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-28 23:15:48 +08:00
bggRGjQaUbCoE
576740a502 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-28 21:53:07 +08:00
bggRGjQaUbCoE
b3f9f43b57 fix #1729
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-28 21:52:52 +08:00
bggRGjQaUbCoE
e7424bcc66 fix buvidActive
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-28 17:21:41 +08:00
bggRGjQaUbCoE
209ec70ea9 opt icon
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-28 17:21:00 +08:00
bggRGjQaUbCoE
3b4e251034 opt desktop pip
Closes #1478

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-28 13:49:09 +08:00
bggRGjQaUbCoE
86beb879a2 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-28 13:17:16 +08:00
bggRGjQaUbCoE
321d434141 build
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-28 11:04:12 +08:00
Axiaobo
b9d17e27b1 fix #1718 (#1723) 2025-10-28 10:45:15 +08:00
My-Responsitories
2f6f6da6c0 opt: tap (#1719)
* opt: tap

* revert: remove suspendedDm
2025-10-27 21:32:39 +08:00
bggRGjQaUbCoE
c3d3fa67f7 fix #1716
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-27 18:16:09 +08:00
bggRGjQaUbCoE
032dfd69be fix #1712
fix #1641

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-27 18:16:09 +08:00
bggRGjQaUbCoE
e9dc154642 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-27 18:16:03 +08:00
My-Responsitories
b43840b636 mod: save panel (#1706) 2025-10-25 10:23:42 +00:00
My-Responsitories
1a9d8e35ba feat: show aiConclusion (#1698) 2025-10-25 06:54:21 +00:00
My-Responsitories
ccb61415f5 tweaks (#1697)
* opt: play status

* opt: comment
2025-10-25 06:45:19 +00:00
My-Responsitories
08944241bb fix: danmaku (#1696)
* fix: post danmaku

* mod: tap danmaku

* mod: delete danmaku
2025-10-25 06:41:47 +00:00
bggRGjQaUbCoE
63030147ea bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-25 12:16:11 +08:00
bggRGjQaUbCoE
8ff71c44ca opt dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-25 12:16:11 +08:00
bggRGjQaUbCoE
4eaf16f500 disable search default by def
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-24 20:22:06 +08:00
Axiaobo
1a9c8a62f2 package linux appimage (#1688)
* modified:   .github/workflows/linux_x64.yml

* modified:   .github/workflows/linux_arm64.yml

* modified:   .github/workflows/linux_arm64.yml
	modified:   lib/plugin/pl_player/controller.dart

* modified:   lib/plugin/pl_player/controller.dart

* modified:   lib/plugin/pl_player/controller.dart

* modified:   lib/plugin/pl_player/controller.dart

---------

Co-authored-by: Xiaobo Ch. <Axiaobo7788@163.com>
2025-10-24 18:36:46 +08:00
bggRGjQaUbCoE
4256c2b023 opt ui
Closes #1680

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-24 14:34:13 +08:00
bggRGjQaUbCoE
bbcf0dec1b upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-23 23:21:33 +08:00
bggRGjQaUbCoE
da52cac2c6 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-23 23:21:28 +08:00
bggRGjQaUbCoE
e8a32a6149 custom audio order
Closes #1636

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-21 17:22:33 +08:00
bggRGjQaUbCoE
a71a7b66f8 opt req
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-21 17:01:18 +08:00
bggRGjQaUbCoE
9808f50816 show audio playlist parts
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-21 11:35:41 +08:00
bggRGjQaUbCoE
cf86bb7e13 add match entrance
Closes #1628

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-21 10:20:42 +08:00
bggRGjQaUbCoE
ff065254ae fix get window pos
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-21 10:20:00 +08:00
bggRGjQaUbCoE
39b4c1a59b show rank fold items
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-21 10:19:17 +08:00
bggRGjQaUbCoE
28f10e0a4b check uploadPictureIconState
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-20 19:34:27 +08:00
bggRGjQaUbCoE
12c0ed5baf fix #1616
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-20 15:41:20 +08:00
bggRGjQaUbCoE
23272d285b tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-20 15:39:48 +08:00
bggRGjQaUbCoE
67b4ed65ab opt audio playlist
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-20 13:15:26 +08:00
My-Responsitories
7524b3d168 fix: hide danmaku (#1654) 2025-10-20 12:17:59 +08:00
bggRGjQaUbCoE
340a933e70 fix #1648
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-20 10:23:13 +08:00
bggRGjQaUbCoE
488ca29fc1 opt dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-19 21:31:27 +08:00
bggRGjQaUbCoE
cc00b2cc39 feat: dyn show more
Closes #1629

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-19 20:27:42 +08:00
bggRGjQaUbCoE
287cea4d6c tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-19 20:11:44 +08:00
bggRGjQaUbCoE
39e556891a upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-19 15:33:02 +08:00
bggRGjQaUbCoE
0ae4157384 create release
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-19 14:40:40 +08:00
My-Responsitories
6e1ceb1277 feat: like count (#1640) 2025-10-19 05:45:29 +00:00
bggRGjQaUbCoE
71a170deb5 audio notification
Closes #1635

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-19 11:24:14 +08:00
bggRGjQaUbCoE
9482a706da fix #1613
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 21:02:05 +08:00
bggRGjQaUbCoE
0804484a49 check cmd key
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 19:28:14 +08:00
bggRGjQaUbCoE
cdb9bb3dbc check cmd key
Closes #1630

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 19:16:55 +08:00
bggRGjQaUbCoE
6ca0de96f4 opt pip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 17:21:14 +08:00
bggRGjQaUbCoE
d908f58528 opt pip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 16:29:14 +08:00
bggRGjQaUbCoE
1368733a24 fix check pip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 16:17:32 +08:00
bggRGjQaUbCoE
32e71dbf65 fix #1625
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 15:57:41 +08:00
bggRGjQaUbCoE
c9ce1af2c6 Update build
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 14:23:17 +08:00
bggRGjQaUbCoE
416f9e6a8d upgrade dm dep
Closes #1619

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 13:25:10 +08:00
bggRGjQaUbCoE
3ae3955f53 rename release files
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 13:14:05 +08:00
bggRGjQaUbCoE
464f008023 fix #1615
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 11:29:31 +08:00
bggRGjQaUbCoE
52498b3e34 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-18 11:29:31 +08:00
Axiaobo
57c57b02a5 build linux arm64 (#1610)
* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* new file:   .github/workflows/linux_arm64.yml

* modified:   .github/workflows/linux.yml
	deleted:    .github/workflows/linux_arm64.yml
	modified:   .github/workflows/win.yml

* new file:   .github/workflows/linux_arm64.yml

* modified:   .github/workflows/linux_arm64.yml

* modified:   .github/workflows/linux_arm64.yml

* modified:   .github/workflows/linux_arm64.yml
	renamed:    .github/workflows/linux.yml -> .github/workflows/linux_x64.yml

* renamed:    .github/workflows/win.yml -> .github/workflows/win_x64.yml

* modified:   .github/workflows/linux_x64.yml

---------

Co-authored-by: Zhang Yujie <Axiaobo7788@163.com>
2025-10-17 23:23:33 +08:00
My-Responsitories
b8c6868043 fix: cross import 2025-10-17 17:24:13 +08:00
My-Responsitories
8200fbf512 tweak 2025-10-17 14:38:56 +08:00
My-Responsitories
8650c96b7b feat: danmaku seekTo (#1603) 2025-10-17 06:37:25 +00:00
bggRGjQaUbCoE
15fe7787ba pause
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-17 13:28:21 +08:00
dom
d83076cb07 Update android.yml 2025-10-17 12:07:07 +08:00
bggRGjQaUbCoE
8b3b4c28a5 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-17 10:43:43 +08:00
bggRGjQaUbCoE
740c001e2f bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-17 10:34:13 +08:00
bggRGjQaUbCoE
096b057f81 fix #1598
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-17 10:34:13 +08:00
bggRGjQaUbCoE
a161fa5e58 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-17 10:34:08 +08:00
bggRGjQaUbCoE
bebf34db23 disable windows thread merging
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-16 19:09:47 +08:00
bggRGjQaUbCoE
b95061434a upgrade danmaku dep
Closes #1583

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-16 18:56:23 +08:00
bggRGjQaUbCoE
f2a05bb970 fix #1593
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-16 18:55:47 +08:00
bggRGjQaUbCoE
6c361a047b live dm action
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-16 17:37:49 +08:00
bggRGjQaUbCoE
3fb9e22378 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-16 13:44:13 +08:00
bggRGjQaUbCoE
b2fb4c9afe opt dm action
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-16 13:21:15 +08:00
bggRGjQaUbCoE
0862c0fc87 show backbtn on mine page if needed
Closes #1580

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-15 21:34:21 +08:00
My-Responsitories
77ec78e3fe opt: singleton FollowTypeController (#1578) 2025-10-15 21:13:56 +08:00
Axiaobo
fb59c208e3 package linux rpm (#1575)
* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml

* modified:   .github/workflows/linux.yml
2025-10-15 20:17:46 +08:00
bggRGjQaUbCoE
112a06f92a custom show tray icon
Closes #1569

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-15 19:21:11 +08:00
bggRGjQaUbCoE
c10c4a6f89 windows single instance
Closes #1574

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-15 19:06:28 +08:00
bggRGjQaUbCoE
669c807b23 Update README.md
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-15 18:40:54 +08:00
bggRGjQaUbCoE
c9de79532a handle relation url
Closes #1566

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-15 18:28:50 +08:00
bggRGjQaUbCoE
32ce2b87db enable tap dm by def
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-15 18:28:46 +08:00
bggRGjQaUbCoE
4cfcf18bc9 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-15 18:06:51 +08:00
bggRGjQaUbCoE
14ae61f891 fix typo
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-15 18:06:51 +08:00
My-Responsitories
a2d5ecc51e feat: ImmediateTapGestureRecognizer (#1572) 2025-10-15 18:06:10 +08:00
My-Responsitories
84f972a3ab fix: report 2025-10-15 16:03:10 +08:00
bggRGjQaUbCoE
5249ceccdb opt audio playlist
Closes #1547

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-14 21:39:30 +08:00
bggRGjQaUbCoE
5035495043 pause
Closes #1559

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-14 21:39:30 +08:00
My-Responsitories
25483d71e9 fix: decompress 2025-10-14 21:23:26 +08:00
My-Responsitories
c3fa976b26 tweaks (#1562)
* opt: downloadImg use cache

* opt: uin8 cast

* non null ext
2025-10-14 11:36:43 +00:00
My-Responsitories
43beb518f4 feat: right click fullscreen (#1561) 2025-10-14 11:27:15 +00:00
bggRGjQaUbCoE
11edabb890 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-14 17:09:06 +08:00
bggRGjQaUbCoE
019cd9fda0 opt search
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-14 17:08:42 +08:00
My-Responsitories
9d747c8e2c refa: video (#1555)
* refa: video [skip ci]

* fix: scroll [skip ci]

* mod: only left click

* downgrade

* refa: background play & wakelock [skip ci]

* fix: subtitle [skip ci]

* upgrade deps

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* mod: long press

* tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* fix [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* use right pos

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* delay showing

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* fix: null danmaku

* remove

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-14 17:05:31 +08:00
bggRGjQaUbCoE
4cf1c25b36 fix #1545
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 20:35:40 +08:00
bggRGjQaUbCoE
6c6ed46aea fix #1541
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 19:32:29 +08:00
bggRGjQaUbCoE
e1473a453e tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 17:03:36 +08:00
bggRGjQaUbCoE
9f6ef0281a tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 14:36:38 +08:00
bggRGjQaUbCoE
84d5a24bc3 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 13:44:32 +08:00
bggRGjQaUbCoE
ed8c39aa76 opt player gesture
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 12:52:50 +08:00
bggRGjQaUbCoE
23d235b8f4 opt player gesture
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 12:39:22 +08:00
bggRGjQaUbCoE
8bea09b78a tap dm when debug
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 11:49:20 +08:00
bggRGjQaUbCoE
897fda875a opt dm
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-13 10:55:56 +08:00
bggRGjQaUbCoE
510bfe01be opt btn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-12 21:55:39 +08:00
My-Responsitories
f6ca007815 feat: tap danmaku (#1534) 2025-10-12 21:51:59 +08:00
bggRGjQaUbCoE
35b34cb2d4 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-12 21:51:14 +08:00
My-Responsitories
5197cca69c tweaks 2025-10-12 18:56:09 +08:00
My-Responsitories
e5f0742bf6 feat: danmaku api (#1530) 2025-10-12 18:41:40 +08:00
bggRGjQaUbCoE
88d207cc24 upgrade danmaku dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-12 18:32:01 +08:00
bggRGjQaUbCoE
931fcb6f8f opt fab
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-12 17:09:50 +08:00
bggRGjQaUbCoE
e4a960ecf9 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-12 16:13:23 +08:00
My-Responsitories
e44419e088 mod: ui (#1521)
* mod: ui

* fix: -400

* tweaks

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweak [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweak [skip ci]

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-12 12:12:44 +08:00
dom
16f577f3fd feat: audio page (#1518)
* feat: audio page

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt ui

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* impl intro, share, fav

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* load prev/next

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-11 22:16:16 +08:00
My-Responsitories
a65edab7d1 opt: env (#1510)
* opt: env

* fix

* fix: regex

* fix: android

* fix

* fix

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* fastforge define

* fix

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-10 15:52:26 +08:00
bggRGjQaUbCoE
c0bbf8400a upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-10 13:20:53 +08:00
bggRGjQaUbCoE
1dc2da68ac opt msgNotifyMsg
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-10 13:20:47 +08:00
bggRGjQaUbCoE
3d49529272 show user name
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-09 16:48:42 +08:00
bggRGjQaUbCoE
41768656b4 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-09 11:24:44 +08:00
bggRGjQaUbCoE
c7e7b3f9c5 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-09 11:24:39 +08:00
bggRGjQaUbCoE
e0b0a98f0f opt block
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-08 23:03:59 +08:00
bggRGjQaUbCoE
ca0eb1716f feat: pgc skip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-08 22:50:08 +08:00
bggRGjQaUbCoE
06d8296939 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-08 16:11:24 +08:00
bggRGjQaUbCoE
322885f284 opt slide
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-07 21:25:47 +08:00
bggRGjQaUbCoE
4553b86cb4 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-07 17:47:31 +08:00
bggRGjQaUbCoE
904756b6ea opt gesture
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-07 14:10:48 +08:00
bggRGjQaUbCoE
2bfa1bb6c2 tweaks
Closes #1505

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-07 14:10:29 +08:00
bggRGjQaUbCoE
8439a3d85c opt fs
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-07 12:32:36 +08:00
bggRGjQaUbCoE
454d6b9de1 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-07 11:52:29 +08:00
bggRGjQaUbCoE
44c7c44a27 tweaks
Closes #1354

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-07 11:52:24 +08:00
dom
40e5e2f372 Update 功能请求.yml 2025-10-06 14:15:34 +08:00
dom
138739781c Update bug-反馈.yml 2025-10-06 14:14:23 +08:00
dom
355d897ef0 Update 功能请求.yml 2025-10-06 14:10:04 +08:00
dom
a06aef2b25 Update bug-反馈.yml 2025-10-06 14:08:19 +08:00
bggRGjQaUbCoE
6ef9a24ed1 opt play btn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-05 15:03:46 +08:00
bggRGjQaUbCoE
4df2bb0073 opt update
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-05 14:34:57 +08:00
bggRGjQaUbCoE
f93753ccfd tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-05 14:11:26 +08:00
bggRGjQaUbCoE
52373dc540 dyn uplist
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-05 12:06:46 +08:00
bggRGjQaUbCoE
203a997583 opt exit desktop pip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-05 11:10:16 +08:00
bggRGjQaUbCoE
b22a406471 opt trackpad pan
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-05 10:31:37 +08:00
bggRGjQaUbCoE
a441759eb6 check live playurl
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-05 10:31:24 +08:00
bggRGjQaUbCoE
9057401b16 opt video progress indicator
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 21:03:12 +08:00
bggRGjQaUbCoE
6d0017c256 opt queryBySort
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 20:23:58 +08:00
dom
12b27b1d8d Update 功能请求.yml 2025-10-04 19:52:45 +08:00
dom
884bb53d6f Update bug-反馈.yml 2025-10-04 19:52:16 +08:00
bggRGjQaUbCoE
aa356b5376 global escape
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 18:19:02 +08:00
bggRGjQaUbCoE
2aa9b46433 handle trackpad pan
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 17:51:48 +08:00
Axiaobo
42f5a42dd9 build windows setup (#1454)
* modified:   .github/workflows/win.yml
	new file:   windows/Inno_Setup.iss

* modified:   windows/Inno_Setup.iss

* modified:   .github/workflows/win.yml
	new file:   distribute_options.yaml
	deleted:    windows/Inno_Setup.iss
	new file:   windows/packaging/exe/make_config.yaml

* modified:   windows/packaging/exe/make_config.yaml

* modified:   .github/workflows/win.yml

* modified:   .github/workflows/win.yml

* modified:   .github/workflows/win.yml

* modified:   .github/workflows/win.yml

* modified:   .github/workflows/win.yml

* modified:   .github/workflows/win.yml
	new file:   windows/packaging/exe/ChineseSimplified.isl

* modified:   .github/workflows/win.yml

* modified:   .github/workflows/win.yml

* modified:   .github/workflows/win.yml

* fix

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 14:19:29 +08:00
bggRGjQaUbCoE
74f0fb471c fix thumbGlowColor
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 12:38:23 +08:00
bggRGjQaUbCoE
c31e772a63 opt progress bar
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 12:32:32 +08:00
bggRGjQaUbCoE
32f6d97256 opt play
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 11:17:12 +08:00
bggRGjQaUbCoE
a28db0dd98 remove videoRelation from recommend
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 11:07:14 +08:00
bggRGjQaUbCoE
aba9493ae0 fix #1429
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 10:58:37 +08:00
bggRGjQaUbCoE
4973176868 fix #1448
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 10:20:14 +08:00
bggRGjQaUbCoE
a000e2262c upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 09:49:46 +08:00
My-Responsitories
a5715868b3 tweaks (#1444)
* opt: proxy

* opt: calcWindowPosition

* fix: height depend on svg

* bump

* fix

* ci: cache linux

* string systemProxyPort

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-04 09:44:41 +08:00
bggRGjQaUbCoE
a928e48159 opt fullscreen
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 21:39:55 +08:00
bggRGjQaUbCoE
16c152d306 opt fullscreen
Closes #1442

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 21:18:29 +08:00
bggRGjQaUbCoE
5747dee03d opt mouse/keyboard event
Closes #1443

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 20:38:24 +08:00
bggRGjQaUbCoE
06c545acd4 fix #1441
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 20:01:24 +08:00
bggRGjQaUbCoE
54c3c314e1 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 19:56:18 +08:00
bggRGjQaUbCoE
11c4fae547 fix progress bar
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 19:00:04 +08:00
My-Responsitories
8f87d248a1 fix: like details (#1438)
* fix: like details

* check counts

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 16:46:14 +08:00
bggRGjQaUbCoE
ec37af5900 fix #1439
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 16:17:33 +08:00
bggRGjQaUbCoE
1b213793d4 opt mouse event
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 15:52:04 +08:00
bggRGjQaUbCoE
aaa8998cb1 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 15:10:11 +08:00
VillagerTom
94760a4136 tweak gitignore and vscode config (#1433)
* tweak gitignore and vscode config

* restore settings

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 11:48:28 +08:00
bggRGjQaUbCoE
bdbd6cd377 opt player gesture
Closes #1427

opt dyn/reply check

Closes #1430

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-03 11:26:36 +08:00
bggRGjQaUbCoE
d69d81912d fix #1418
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-02 18:41:55 +08:00
bggRGjQaUbCoE
198a38b103 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-02 18:41:55 +08:00
NLsdt
750e67d835 feat: add deb build (#1422) 2025-10-02 18:39:42 +08:00
bggRGjQaUbCoE
5d5adbc73f cache desktop volume
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-02 10:55:30 +08:00
bggRGjQaUbCoE
8c7db34e5a tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-02 10:35:41 +08:00
Integral
a18863f292 chore: add config file .fvmrc to specify Flutter version (#1417) 2025-10-02 10:31:07 +08:00
bggRGjQaUbCoE
15ee6a679e bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-02 10:03:30 +08:00
bggRGjQaUbCoE
4dfeb284e7 update proto
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-02 10:03:18 +08:00
bggRGjQaUbCoE
eae075c380 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-02 10:02:49 +08:00
bggRGjQaUbCoE
d9bff6237d opt play all
Closes #1383

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-01 23:07:30 +08:00
bggRGjQaUbCoE
35df23194f fix player listener
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-01 22:44:14 +08:00
bggRGjQaUbCoE
12a68257a3 fix typo
Closes #1406

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-01 21:51:03 +08:00
bggRGjQaUbCoE
022108607f tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-01 21:30:27 +08:00
My-Responsitories
4e15422d2d fix: search (#1412) 2025-10-01 13:29:08 +00:00
bggRGjQaUbCoE
e1944b0c8d opt viewpoint
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-01 20:06:15 +08:00
bggRGjQaUbCoE
0fd3f3ffd1 upgrade windows mpv
Closes #1341

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-01 19:23:16 +08:00
bggRGjQaUbCoE
ed9be72172 fix calcWindowPosition
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-01 13:17:12 +08:00
bggRGjQaUbCoE
5d95e624db fix #1395
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-10-01 12:56:37 +08:00
bggRGjQaUbCoE
929c51e059 skip segments with keyboard
Closes #1379

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-30 22:20:58 +08:00
bggRGjQaUbCoE
15b05cc454 fix #1390
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-30 20:13:18 +08:00
bggRGjQaUbCoE
260742dc4b disable RichTextField undo
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-30 16:59:05 +08:00
bggRGjQaUbCoE
d833f3651c fix close
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-30 15:20:42 +08:00
Integral
698e11885a fix: prevent running multiple app instances on Linux (#1385) 2025-09-30 13:58:16 +08:00
bggRGjQaUbCoE
c103551f6a opt gesture
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-30 13:54:44 +08:00
bggRGjQaUbCoE
299ee09749 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-30 13:03:48 +08:00
bggRGjQaUbCoE
06b258cff1 build
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-30 13:03:48 +08:00
bggRGjQaUbCoE
be03909fdc opt gesture
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-30 13:03:48 +08:00
My-Responsitories
19f7720fb2 fix: type cast (#1384) 2025-09-30 04:37:15 +00:00
My-Responsitories
89e6d5c160 tweaks (#1381)
* opt: boundary

* opt: subtitle

* tweaks
2025-09-29 14:13:02 +00:00
bggRGjQaUbCoE
1d723b704b opt video gesture
Closes #1374

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-29 15:44:39 +08:00
My-Responsitories
05636b33c0 fix: loudnorm out of range (#1371) 2025-09-29 06:02:37 +00:00
bggRGjQaUbCoE
2817c8f5b1 opt set windows brightness
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-29 13:20:57 +08:00
bggRGjQaUbCoE
fe0c636ad6 custom show window title bar
Closes #1362

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-29 13:20:41 +08:00
bggRGjQaUbCoE
5465492d70 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 23:07:49 +08:00
bggRGjQaUbCoE
862a9fa731 opt push live dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 23:07:43 +08:00
bggRGjQaUbCoE
0aebadb005 scroll to update volume
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 22:18:29 +08:00
bggRGjQaUbCoE
24be7a9cf2 opt handle mouse back
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 22:18:29 +08:00
Integral
9d5f4ad977 docs(README): add Linux support status (#1364) 2025-09-28 22:16:43 +08:00
My-Responsitories
22c57bf468 feat: loudnorm (#1358)
* feat: loudnorm

* fix

* fix: android only

* fix: toString
2025-09-28 22:16:33 +08:00
bggRGjQaUbCoE
046412b709 fix image preview
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 18:11:37 +08:00
bggRGjQaUbCoE
b3622ef61d opt refreshDisplacement
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 17:56:14 +08:00
bggRGjQaUbCoE
138b7935f3 opt sub reply
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 17:51:44 +08:00
bggRGjQaUbCoE
328034f3ed opt handle mouse back
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 17:46:52 +08:00
bggRGjQaUbCoE
e1f748d7e4 opt subtitle
Closes #1357

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 17:39:58 +08:00
bggRGjQaUbCoE
5f8dc76891 opt mouse control
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 17:39:58 +08:00
bggRGjQaUbCoE
2031604ea2 Update README.md
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 16:37:38 +08:00
bggRGjQaUbCoE
efbf392677 opt video title
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 15:22:08 +08:00
bggRGjQaUbCoE
fb8c5f50ba drag to refresh
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 15:11:34 +08:00
bggRGjQaUbCoE
09920f9fb5 mouse back
Closes #1317

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 14:59:34 +08:00
dom
1e2618a33f mac release 2025-09-28 13:37:54 +08:00
bggRGjQaUbCoE
fb79fd9b9d fix #1326
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 12:44:53 +08:00
bggRGjQaUbCoE
8f65a5d202 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-28 12:30:41 +08:00
bggRGjQaUbCoE
b32c1871ae opt filter dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-27 21:08:39 +08:00
bggRGjQaUbCoE
8e26a7bc9d tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-27 21:08:39 +08:00
bggRGjQaUbCoE
2333736a72 show article heading
Closes #1338

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-27 20:27:24 +08:00
bggRGjQaUbCoE
7fedfb8963 pause on minimize
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-27 20:26:57 +08:00
bggRGjQaUbCoE
670f788558 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-27 20:26:47 +08:00
bggRGjQaUbCoE
c7e3d9dbc1 build
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-27 20:25:34 +08:00
bggRGjQaUbCoE
0ebb2afe39 fix #1343
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-27 11:47:14 +08:00
My-Responsitories
e3e6bb0e39 feat: webview geetest (#1342)
* feat: webview geetest

* opt: geetest

* fix: linux

* remove pwd mobile check

* fix linux check
2025-09-27 10:57:41 +08:00
bggRGjQaUbCoE
ee8af925be fix win cookie manage
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 20:27:47 +08:00
bggRGjQaUbCoE
34bdfe1641 fix #1337
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 20:03:28 +08:00
bggRGjQaUbCoE
d33e2071b6 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 20:00:54 +08:00
bggRGjQaUbCoE
59fd89ae5d windows webview
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 18:13:29 +08:00
bggRGjQaUbCoE
93e64a0988 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 12:57:12 +08:00
bggRGjQaUbCoE
86a79a9733 opt in-app fullscreen
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 10:29:33 +08:00
NLsdt
d961b6d7a9 chore: add linux build CI file (#1332)
* feat: add linux build file

* update

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 10:13:53 +08:00
bggRGjQaUbCoE
a799b15155 opt image crop
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 10:01:25 +08:00
bggRGjQaUbCoE
33c8d69a58 opt scrollBehavior
Closes #1328

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-26 09:47:20 +08:00
NLsdt
7637c44645 linux check (#1331) 2025-09-26 09:46:47 +08:00
My-Responsitories
5fd3d32200 feat: inapp fullscreen (#1330) 2025-09-25 16:18:11 +00:00
My-Responsitories
4ae3bd2845 tweak (#1325)
* tweak

* opt: async

* tweak

* opt: PopularSeries tile

* tweak

* opt: sc

* mod: more account type

* tweak

* opt: qrcode

* tweak

* partial revert: opt: sc

* fix

* fix

* mod: window enqueue
2025-09-26 00:02:55 +08:00
bggRGjQaUbCoE
67c25bd130 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-25 13:48:30 +08:00
bggRGjQaUbCoE
05cd631439 opt update check
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-25 11:32:06 +08:00
bggRGjQaUbCoE
000fa9fe5c upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-25 11:01:02 +08:00
bggRGjQaUbCoE
61bc4ce5b1 opt msg item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-25 10:58:26 +08:00
bggRGjQaUbCoE
11fbd2ebed fix member video jump
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-24 14:22:08 +08:00
bggRGjQaUbCoE
6ced89f30b seek from ugc intro
Closes #1303

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-24 11:13:41 +08:00
bggRGjQaUbCoE
ec1bdb243f fix #1300
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-24 10:20:23 +08:00
My-Responsitories
1345fd36e4 opt: account (#1306)
* opt: account

* opt: account

* opt: live api

* opt: buvid

* Revert "opt: buvid"

This reverts commit da1ea68f8b.

* tweak
2025-09-23 15:58:40 +08:00
bggRGjQaUbCoE
6b4fb0d611 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-23 14:59:53 +08:00
bggRGjQaUbCoE
b9eaa368b1 opt progress bar
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-23 11:47:50 +08:00
bggRGjQaUbCoE
66752093e4 bottom sheet patch
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-22 13:11:51 +08:00
bggRGjQaUbCoE
4ca9dfecb4 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-22 12:48:48 +08:00
bggRGjQaUbCoE
2efb04f77e opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-21 21:18:35 +08:00
bggRGjQaUbCoE
f4e3484b01 opt video header
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-21 13:44:27 +08:00
bggRGjQaUbCoE
9f715ddd5b opt player keyboard event
opt triple

opt desktop pip

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-21 13:18:51 +08:00
bggRGjQaUbCoE
787be7ac11 opt switch style
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-20 21:59:13 +08:00
bggRGjQaUbCoE
c54d77f393 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-20 17:37:51 +08:00
My-Responsitories
96539cc64c feat: OrderedMultiSelectDialog (#1290)
* tweak

* feat: OrderedMultiSelectDialog
2025-09-20 09:24:45 +00:00
bggRGjQaUbCoE
96586f130f opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-20 16:27:08 +08:00
bggRGjQaUbCoE
36de899a35 desktop pip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-20 15:31:05 +08:00
bggRGjQaUbCoE
0745d83e4b feat: ai translate
Closes #1285

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-20 14:10:31 +08:00
bggRGjQaUbCoE
9b171e04be opt player
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-20 13:16:35 +08:00
bggRGjQaUbCoE
d62d0eddc2 feat: popular series/precious
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-20 13:16:35 +08:00
bggRGjQaUbCoE
51c605f5d0 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-20 13:16:29 +08:00
Kofua
099c7b4dff fix small black flicker window on startup for macOS (#1287) 2025-09-20 11:08:33 +08:00
bggRGjQaUbCoE
6559aa767d opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-19 12:21:20 +08:00
bggRGjQaUbCoE
c3bcd323fb fix reset sub/dm settings
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-19 12:19:23 +08:00
bggRGjQaUbCoE
5ec04e3a53 opt webdav fileName
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-19 12:19:17 +08:00
bggRGjQaUbCoE
7a4098434f fix ios selectionHandleColor
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 21:02:05 +08:00
bggRGjQaUbCoE
9c552a89e1 custom keyboard control
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 18:23:24 +08:00
bggRGjQaUbCoE
2d625e0241 fix android build
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 18:08:24 +08:00
bggRGjQaUbCoE
fef6a8c22a upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 17:38:09 +08:00
bggRGjQaUbCoE
cef7e478f5 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 17:37:53 +08:00
bggRGjQaUbCoE
64e893e36f separate live dm
Closes #1217

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 17:37:53 +08:00
bggRGjQaUbCoE
a6182b20c0 opt emoji tooltip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 15:06:34 +08:00
bggRGjQaUbCoE
b2e3273dba fix #1278
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 14:31:32 +08:00
bggRGjQaUbCoE
ffd1747bb3 opt player
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 14:29:18 +08:00
bggRGjQaUbCoE
59bbe51702 opt viewpoint widget
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 13:19:45 +08:00
bggRGjQaUbCoE
1824c83cd0 opt player
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-18 12:57:17 +08:00
bggRGjQaUbCoE
f05cd0322a bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-17 21:08:06 +08:00
bggRGjQaUbCoE
e165666155 fix dyn additional panel
tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-17 21:07:55 +08:00
bggRGjQaUbCoE
b043dc38c4 opt player
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-17 17:21:49 +08:00
bggRGjQaUbCoE
d9a0db03f8 opt set window size/pos
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-17 12:24:35 +08:00
bggRGjQaUbCoE
8a3cf34cb1 cache window size/pos
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-17 11:36:34 +08:00
bggRGjQaUbCoE
470140a068 multi hwdecs
Closes #1268

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-17 11:36:34 +08:00
bggRGjQaUbCoE
720591b8fe allow desktop login by pwd
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-17 11:36:34 +08:00
My-Responsitories
349a4dfc0b feat: music search (#1270)
* tweak

* feat: music search
2025-09-16 16:33:33 +00:00
My-Responsitories
3897efd82f opt: hwdec (#1269)
* mod: more HwDecType

* opt: hwdec
2025-09-16 16:29:16 +00:00
bggRGjQaUbCoE
7ca6d2958f upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-16 11:51:53 +08:00
bggRGjQaUbCoE
efac7f7700 add hwdecs
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-16 11:51:53 +08:00
My-Responsitories
9e4a32e3e4 feat: show hwdec (#1261) 2025-09-15 15:51:42 +00:00
My-Responsitories
37fb63c3b1 tweaks (#1252)
* opt: cache

* opt: MediaListPanel

* feat: nested replyreply panel

* tweaks

* opt: abstract class

* opt: PageStorageKey

* opt: contextExt

* opt: EpisodePanel

* opt

* opt: context instead GlobalKey

* feat: jump to reply

* refa: reply_reply

* fix: jump

* fix: index

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt: keepalive

* reapply: nested replyreply

* mod: spacing

* opt: CommonSlidePageState

* fix drag bottomsheet

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt reply jump

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt reply2reply

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* reapply: jumpToReply

* fix: padding

* fix: anim

* fix some panels

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

* opt: implements Scaffold

* opt: remove keepalive

* revert: GlobalKey

* tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-15 18:45:28 +08:00
Kofua
b9a55ccbce Some tweaks for macOS target (#1260)
* fix macOS save video cover

* not hide title bar for macOS
2025-09-14 18:14:19 +08:00
bggRGjQaUbCoE
d3f4ba4b4a refa: reply2reply panel
tweaks

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-13 18:56:15 +08:00
bggRGjQaUbCoE
0f2908dbc1 opt win selection
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-13 13:52:43 +08:00
bggRGjQaUbCoE
d0c108538d opt follow page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-13 13:00:46 +08:00
bggRGjQaUbCoE
b6352a6a43 opt ui
opt video keyboard event

opt code

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-13 12:36:26 +08:00
dom
d6bff33d29 win (#1240)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-12 18:12:21 +08:00
bggRGjQaUbCoE
da17725616 opt query pgc timeline
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-10 19:56:27 +08:00
bggRGjQaUbCoE
f0f5224677 fix #1164
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-07 20:08:12 +08:00
bggRGjQaUbCoE
bd0c620097 opt playback keyboard event
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-07 19:38:18 +08:00
bggRGjQaUbCoE
7a4fc6f7e2 opt borderRadius
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-07 15:42:18 +08:00
Kofua
d6b87b48f5 add physical keyboard controls for playback (#1203) 2025-09-07 15:36:51 +08:00
Kofua
d285f00086 fix dolby videos playing (#1202) 2025-09-07 11:35:12 +08:00
bggRGjQaUbCoE
e02835ddc4 fix parse live dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-06 17:13:17 +08:00
Kofua
b6de7ef40d fix macOS target app name (#1199) 2025-09-06 16:29:48 +08:00
bggRGjQaUbCoE
594a891abd fix #1198
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-06 16:28:03 +08:00
bggRGjQaUbCoE
215ed665de deprecate rcmdDyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-06 15:05:37 +08:00
bggRGjQaUbCoE
89f72df2b9 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-06 15:00:02 +08:00
Kofua
0659ec9d8a opt ai conclusion failure toast (#1197) 2025-09-06 14:13:54 +08:00
bggRGjQaUbCoE
a74cbe215e opt pgc index
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-06 12:18:54 +08:00
bggRGjQaUbCoE
5bf09b98f4 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-06 11:43:05 +08:00
bggRGjQaUbCoE
224bd88473 fix ios volume
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-05 14:46:07 +08:00
bggRGjQaUbCoE
6e6ff369d3 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-05 11:08:12 +08:00
bggRGjQaUbCoE
7e1e42181c fixes
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-05 09:57:01 +08:00
My-Responsitories
172389b12b tweaks (#1187)
* opt: marquee

* fix: bangumi seek

* opt: post panel

* opt: remove deprecated code

* opt: singleton dynController

* fix: music scheme

* feat: MemberVideo jump keep position

* tweak
2025-09-04 12:29:02 +00:00
My-Responsitories
e8a674ca2a feat: support dynaudnorm & webp (#1186)
* feat: support dynaudnorm & webp

* Revert "remove audio_normalization"

This reverts commit 477b59ce89.

* feat: save webp

* mod: strokeWidth

* feat: webp preset

* feat: save webp select qa

* upgrade volume_controller
2025-09-04 12:09:50 +00:00
bggRGjQaUbCoE
f0828ea18c opt live
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-04 13:01:10 +08:00
bggRGjQaUbCoE
f0c4d3412d tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-04 13:01:10 +08:00
bggRGjQaUbCoE
28a58ade84 opt remove sc
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-03 20:12:50 +08:00
bggRGjQaUbCoE
04830c7789 opt dyn panel
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-03 16:45:16 +08:00
My-Responsitories
a635767561 opt: scheme 2025-09-03 13:09:14 +08:00
My-Responsitories
2b1759bd10 fix: setState 2025-09-03 13:09:14 +08:00
My-Responsitories
5a6c73b8cf fix: null aid 2025-09-03 13:09:14 +08:00
My-Responsitories
cf4ad87b20 fix action bar 2025-09-03 13:09:14 +08:00
My-Responsitories
47ad1adfdc feat: remove after save 2025-09-03 13:09:14 +08:00
My-Responsitories
f50965862d opt: type 2025-09-03 13:09:14 +08:00
My-Responsitories
0a7f18a035 mod: retry 2025-09-03 13:09:14 +08:00
bggRGjQaUbCoE
f8226fcade opt marquee
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-03 13:09:14 +08:00
My-Responsitories
498ab2818e mod: marquee use velocity 2025-09-03 13:09:14 +08:00
bggRGjQaUbCoE
8d94c0405f opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-03 13:09:08 +08:00
bggRGjQaUbCoE
80fa0240e9 feat: super chat
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-03 08:43:52 +08:00
bggRGjQaUbCoE
e6af0ef15b feat: new img grid view
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-03 08:07:26 +08:00
dom
3cbfd158e1 Update ios.yml 2025-09-03 08:07:26 +08:00
bggRGjQaUbCoE
2956b43f42 feat: member shop
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-09-03 08:07:26 +08:00
COYG⚡️
86346d568e docs: add star-history (#1185) 2025-09-02 22:51:15 +08:00
bggRGjQaUbCoE
fc6f51787b upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-29 16:37:20 +08:00
bggRGjQaUbCoE
e72203afdb fix #1173
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-29 15:31:55 +08:00
bggRGjQaUbCoE
6741333367 opt marquee
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-29 15:31:55 +08:00
bggRGjQaUbCoE
6e1bc8d0e7 fix #1169
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-29 10:41:33 +08:00
bggRGjQaUbCoE
477b59ce89 remove audio_normalization
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-28 21:37:54 +08:00
bggRGjQaUbCoE
70881ead22 opt fav intro
Closes #1159

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-28 20:34:16 +08:00
bggRGjQaUbCoE
b09a41af24 opt slide dismiss
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-28 18:03:15 +08:00
My-Responsitories
08a33d9ce5 feat: musicDetail (#1157)
* feat: musicDetail

* opt: marquee
2025-08-28 17:40:12 +08:00
bggRGjQaUbCoE
84f7f14a29 fix #1156
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-28 17:15:10 +08:00
bggRGjQaUbCoE
331c9877a3 opt view pgc
Closes #1155

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-28 16:30:19 +08:00
bggRGjQaUbCoE
ac26022da1 feat: fold dyn
Closes #1153

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-28 16:07:38 +08:00
bggRGjQaUbCoE
7a5662c6ca feat: login devices
Closes #1140

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-28 16:07:14 +08:00
bggRGjQaUbCoE
659cff875f custom show fs lock btn
Closes #1150

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-28 16:06:41 +08:00
dom
06a5c2c63b Update ios.yml 2025-08-28 13:41:10 +08:00
bggRGjQaUbCoE
077293854c opt slide dismiss
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-27 15:28:03 +08:00
bggRGjQaUbCoE
cf24f851e8 fix #1143
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-27 13:36:11 +08:00
bggRGjQaUbCoE
01a8631e00 fix typo
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-27 12:08:57 +08:00
My-Responsitories
5f8313901b tweaks (#1142)
* opt: unused layout

* mod: semantics

* opt: DanmakuMsg type

* opt: avoid cast

* opt: unnecessary_lambdas

* opt: use isEven

* opt: logger

* opt: invalid common page

* tweak

* opt: unify DynController
2025-08-27 12:01:53 +08:00
bggRGjQaUbCoE
56ffc2781f RTF slide dismiss
Closes #1135

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-27 11:19:44 +08:00
bggRGjQaUbCoE
51d7e454de tweak
Closes #1139
Closes #1141

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-27 10:49:55 +08:00
bggRGjQaUbCoE
63419d5b1c charge btn
Closes #1123

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-26 18:16:39 +08:00
bggRGjQaUbCoE
91627df804 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-26 18:16:32 +08:00
bggRGjQaUbCoE
fb8a06787b handle music playlist uri
Closes #1130

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-26 14:42:01 +08:00
bggRGjQaUbCoE
dc7fe2cb3b tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-26 14:30:33 +08:00
bggRGjQaUbCoE
1f22dcd73f bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-26 12:12:26 +08:00
bggRGjQaUbCoE
09b0f19775 opt scheme
Closes #1126

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-26 12:12:20 +08:00
bggRGjQaUbCoE
8498ea0618 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-25 20:23:10 +08:00
bggRGjQaUbCoE
a366b8a9e4 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-25 15:45:31 +08:00
bggRGjQaUbCoE
461e91239e opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-25 12:52:31 +08:00
bggRGjQaUbCoE
4bba675063 persistent buvid
Closes #1110

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 20:19:17 +08:00
bggRGjQaUbCoE
08d64be5d4 opt check reply state
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 18:14:39 +08:00
bggRGjQaUbCoE
7d30c9c66a filter dyn arc title
Closes #1075

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 17:28:18 +08:00
bggRGjQaUbCoE
fe191ef934 opt dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 14:46:10 +08:00
bggRGjQaUbCoE
db8b5f5e66 custom silent down img
Closes #1030

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 14:30:53 +08:00
bggRGjQaUbCoE
6c52db1c6c custom show fs screenshot btn
Closes #1103

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 13:59:01 +08:00
bggRGjQaUbCoE
f942b2a7ee fix #1108
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 13:30:38 +08:00
bggRGjQaUbCoE
288d554de9 opt check reply note
Closes #1095

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 09:41:39 +08:00
bggRGjQaUbCoE
a274f5ae8b opt live
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-24 09:41:19 +08:00
bggRGjQaUbCoE
ad0d9ecee0 fix #1098
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-23 22:07:26 +08:00
bggRGjQaUbCoE
ee819bb260 Revert "opt: non null (#1091)"
This reverts commit 3c34e43827.
2025-08-23 22:05:35 +08:00
My-Responsitories
b77403f03f fix: latex (#1094) 2025-08-23 12:45:19 +00:00
My-Responsitories
3c34e43827 opt: non null (#1091)
* opt: type

* opt: type 2

* opt: type 3
2025-08-23 10:25:41 +00:00
bggRGjQaUbCoE
6009668427 downgrade font_awesome_flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-23 09:50:47 +08:00
bggRGjQaUbCoE
16a3e21db4 opt qa btn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-23 09:42:08 +08:00
bggRGjQaUbCoE
d69649f1b6 fix #1088
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-23 09:11:53 +08:00
bggRGjQaUbCoE
faaffd0f30 fix #1087
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-23 09:11:47 +08:00
bggRGjQaUbCoE
a9f1e3cf09 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-23 09:03:59 +08:00
bggRGjQaUbCoE
9e72fea67c opt opus item
opt live dm

add audio qa type

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-22 20:00:52 +08:00
bggRGjQaUbCoE
8fc8bd99e5 fix #1085
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-22 17:27:35 +08:00
bggRGjQaUbCoE
4d3a74f2e0 show fullscreen qa btn
Closes #1081

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-22 15:37:37 +08:00
bggRGjQaUbCoE
272cfcb829 opt loading res
Closes #1080

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-22 11:05:16 +08:00
bggRGjQaUbCoE
c7437225eb opt fan item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-22 10:32:46 +08:00
bggRGjQaUbCoE
d4a1568b28 opt dyn jump
tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-22 10:27:42 +08:00
bggRGjQaUbCoE
824ee53025 show dyn pugv
Closes #1064

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-21 20:30:11 +08:00
bggRGjQaUbCoE
ee142e5e1d opt search
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-21 18:01:40 +08:00
bggRGjQaUbCoE
571bdb5eae opt block
Closes #1074

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-21 17:32:27 +08:00
bggRGjQaUbCoE
2e5cb324a1 opt article
Closes #1072

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-21 17:16:30 +08:00
bggRGjQaUbCoE
ed191e20b4 fix import history
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-21 15:12:40 +08:00
bggRGjQaUbCoE
ba14e56ceb fix #1061
opt `FollowingsFollowedUpper` url

Closes #1061
Closes #1062

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-21 14:51:06 +08:00
bggRGjQaUbCoE
b6ce93cbd2 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-21 10:58:48 +08:00
bggRGjQaUbCoE
76f1d0129b opt ui
Closes #1050

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-20 23:28:57 +08:00
bggRGjQaUbCoE
e096ebcbba deprecate account migration
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-19 19:34:39 +08:00
bggRGjQaUbCoE
6c8baa5be5 opt video action
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-19 18:27:22 +08:00
bggRGjQaUbCoE
4f2bfb8126 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-19 18:27:15 +08:00
bggRGjQaUbCoE
33738c90bc opt article code theme
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-18 22:51:21 +08:00
bggRGjQaUbCoE
7ff95c00d2 opt import render theme
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-18 22:37:51 +08:00
bggRGjQaUbCoE
fc4f92e0c0 set android minsdk 23
Closes #1045

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-18 22:21:28 +08:00
My-Responsitories
ed57697fdc feat: InportExportDialog (#1048) 2025-08-18 13:25:00 +00:00
bggRGjQaUbCoE
08c3789321 copy/cut rich text
Closes #1047

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-18 20:10:40 +08:00
bggRGjQaUbCoE
43fa00848d show followings_followed_upper
Closes #1033

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-18 18:31:56 +08:00
bggRGjQaUbCoE
8c38699334 opt filter dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-18 18:31:56 +08:00
bggRGjQaUbCoE
dcc5f51e6a tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-18 18:31:56 +08:00
bggRGjQaUbCoE
dc6b76812c custom video aspectRatio
Closes #1040

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-17 22:19:41 +08:00
bggRGjQaUbCoE
470545337d fix #1035
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-17 17:41:54 +08:00
bggRGjQaUbCoE
ab610e9da5 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-17 12:07:03 +08:00
bggRGjQaUbCoE
5420712bda tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-17 12:06:57 +08:00
bggRGjQaUbCoE
55733d30c5 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-16 18:34:55 +08:00
bggRGjQaUbCoE
2090fd2312 migrate gradle kts
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-16 15:59:52 +08:00
bggRGjQaUbCoE
f3bad60fb6 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-16 10:43:11 +08:00
dom
d805306d20 opt video seek preview (#1026)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-16 10:29:46 +08:00
bggRGjQaUbCoE
831a3052fa tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-16 10:27:20 +08:00
bggRGjQaUbCoE
52151765f8 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-15 11:18:17 +08:00
bggRGjQaUbCoE
422b413778 opt ui
opt req

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-15 11:18:10 +08:00
My-Responsitories
1943b65788 opt: initialScrollIndex (#1018) 2025-08-14 15:50:45 +00:00
bggRGjQaUbCoE
629be129ff opt dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-14 17:25:33 +08:00
bggRGjQaUbCoE
6ff256637a opt dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-14 17:01:33 +08:00
bggRGjQaUbCoE
34e9afd7ad tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-14 11:56:01 +08:00
bggRGjQaUbCoE
0cd57c9bb0 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-14 11:40:01 +08:00
bggRGjQaUbCoE
22d9fbddf9 fix #1015
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-14 11:29:54 +08:00
bggRGjQaUbCoE
65746ae2bd opt set dm/sub settings
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-13 20:57:46 +08:00
bggRGjQaUbCoE
685852c0a4 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-13 18:40:20 +08:00
bggRGjQaUbCoE
b2100f3872 opt live
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-13 11:25:16 +08:00
bggRGjQaUbCoE
86125d5ecd fix live dm
Closes #1007

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-13 11:04:51 +08:00
bggRGjQaUbCoE
086c93d24f opt member page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-13 10:43:19 +08:00
bggRGjQaUbCoE
aea1992f5d upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-13 10:43:19 +08:00
dom
6b38322c3b Update android.yml 2025-08-12 18:52:39 +08:00
dom
865ddad147 Update android.yml 2025-08-12 18:48:41 +08:00
dom
6709fa4d21 Update ios.yml 2025-08-12 18:48:24 +08:00
My-Responsitories
705417f65b fix: check crossAxisExtent (#1005) 2025-08-12 10:24:54 +00:00
My-Responsitories
690c4f5786 feat: grid jump to index (#1004) 2025-08-12 09:06:33 +00:00
dom
e00c176bdf Update bug-反馈.yml 2025-08-12 16:57:43 +08:00
dom
8d14f42fd8 Update bug-反馈.yml 2025-08-12 16:53:42 +08:00
dom
6688fcf3e9 Update 功能请求.yml 2025-08-12 16:53:13 +08:00
bggRGjQaUbCoE
308bd26172 opt reply check
fix check dyn

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-12 16:45:25 +08:00
bggRGjQaUbCoE
a94493705d opt video bar
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-12 15:04:52 +08:00
bggRGjQaUbCoE
e251eaf811 opt check dyn
Closes #996

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-12 13:50:36 +08:00
bggRGjQaUbCoE
1826b6a059 opt video bar
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-12 13:50:30 +08:00
bggRGjQaUbCoE
be5a1af040 handle sub url
Closes #995

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-11 21:21:57 +08:00
bggRGjQaUbCoE
17b7eb7e0f tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-11 18:35:50 +08:00
bggRGjQaUbCoE
60c25e4b65 opt live
Closes #979

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-11 16:42:00 +08:00
bggRGjQaUbCoE
2c92845af0 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-11 14:52:28 +08:00
bggRGjQaUbCoE
4a4aa569ec check reply state
Closes #990

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-11 14:06:39 +08:00
bggRGjQaUbCoE
95f1d1485d tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-11 13:56:57 +08:00
My-Responsitories
e7f27e4913 mod: account (#989) 2025-08-11 03:01:00 +00:00
My-Responsitories
dc61d9007f feat: reduce luminosity in dark mode (#988) 2025-08-11 02:57:08 +00:00
bggRGjQaUbCoE
88c2ba8059 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-10 22:27:06 +08:00
bggRGjQaUbCoE
309c871919 handle dyn RICH_TEXT_NODE_TYPE_OGV_SEASON
Closes #983

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-10 20:44:54 +08:00
bggRGjQaUbCoE
745a510ffa opt find pgc episode
tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-10 19:03:35 +08:00
bggRGjQaUbCoE
8fbc8fda3d opt player
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-10 14:59:51 +08:00
bggRGjQaUbCoE
dbde90459b opt player
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-10 13:41:31 +08:00
bggRGjQaUbCoE
b788794f4b tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-10 12:31:33 +08:00
bggRGjQaUbCoE
06b433aa60 fix change episode
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-10 11:54:04 +08:00
bggRGjQaUbCoE
6093848811 opt video/intro page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-10 11:22:41 +08:00
My-Responsitories
34c5d6812f opt: settings (#977) 2025-08-10 03:05:36 +00:00
My-Responsitories
aaad7fc6dc opt: ActionItem (#974) 2025-08-09 16:29:58 +00:00
bggRGjQaUbCoE
fac37e59aa opt action item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 21:38:06 +08:00
bggRGjQaUbCoE
11c6745fd7 opt triple mixin
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 19:25:21 +08:00
bggRGjQaUbCoE
30aa29598b opt action item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 19:19:08 +08:00
bggRGjQaUbCoE
85c72731f6 refa video action item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 19:04:35 +08:00
bggRGjQaUbCoE
27c9c266c1 opt search page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 17:39:18 +08:00
bggRGjQaUbCoE
720f3e10e8 opt video appbar
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 17:30:29 +08:00
bggRGjQaUbCoE
162a79145f opt query search rcmd
related #972

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 17:04:46 +08:00
bggRGjQaUbCoE
9e31326bf5 opt search bar
Closes #971

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 16:42:56 +08:00
My-Responsitories
e77fe2587c opt: userInfoCache (#968) 2025-08-09 05:36:48 +00:00
My-Responsitories
c75a68dacc opt: log page (#967) 2025-08-09 05:32:52 +00:00
bggRGjQaUbCoE
16fa47e8e9 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 12:12:25 +08:00
bggRGjQaUbCoE
2df6c91a3d feat: like live room
Closes #963

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 12:12:25 +08:00
bggRGjQaUbCoE
bd490b87ca opt live
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-09 12:12:19 +08:00
bggRGjQaUbCoE
597fca9fbf lint
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-08 19:30:17 +08:00
bggRGjQaUbCoE
810505ea1d tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-08 19:30:06 +08:00
bggRGjQaUbCoE
d108373c33 opt set dynpage ratio
tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-08 18:11:25 +08:00
bggRGjQaUbCoE
c0287d05be live stream retry
related #936

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-08 12:00:09 +08:00
bggRGjQaUbCoE
be998b8ee1 export settings file
Closes #950

tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-08 11:56:19 +08:00
bggRGjQaUbCoE
ef1ccabc8a show livetime
tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-07 20:33:49 +08:00
bggRGjQaUbCoE
edb5ea7a7a opt search
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-07 14:48:43 +08:00
bggRGjQaUbCoE
b4c1568869 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-07 13:49:12 +08:00
bggRGjQaUbCoE
83e25ec0bf opt sort search
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-07 12:58:25 +08:00
bggRGjQaUbCoE
6d55321699 feat: member cheese
feat: fav pugv

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-07 12:58:19 +08:00
bggRGjQaUbCoE
26a5b7b7a7 opt sync history status
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-06 21:36:11 +08:00
bggRGjQaUbCoE
f663301eae opt history account
Closes #948

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-06 21:25:50 +08:00
bggRGjQaUbCoE
eb9f3cd21c update part media item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-06 20:15:29 +08:00
bggRGjQaUbCoE
05119edacb opt live room
Closes #947

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-06 20:15:04 +08:00
bggRGjQaUbCoE
554e96c820 opt later item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-06 18:26:18 +08:00
bggRGjQaUbCoE
40a19f2766 opt pgc/pugv intro panel
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-06 17:47:53 +08:00
bggRGjQaUbCoE
b723529d7f tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-06 14:29:57 +08:00
My-Responsitories
9f33488248 revert: toSet (#941) 2025-08-05 21:36:21 +08:00
bggRGjQaUbCoE
80a4c8c24d opt change episode
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-05 21:30:52 +08:00
My-Responsitories
170b2aa6d9 opt: GroupPanel (#940)
* opt: GroupPanel

* mod: int? operator
2025-08-05 12:52:11 +00:00
bggRGjQaUbCoE
e2639b6951 opt del later view
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-05 19:08:27 +08:00
bggRGjQaUbCoE
b954c6f893 opt del later view
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-05 18:47:34 +08:00
bggRGjQaUbCoE
104d295389 opt multi del
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-05 18:15:06 +08:00
bggRGjQaUbCoE
3caa684b2e fix del history/later
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-05 16:30:48 +08:00
bggRGjQaUbCoE
af7a1a6ee9 opt context ext
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-05 15:58:48 +08:00
My-Responsitories
add519120c mod: hasLater (#938) 2025-08-05 05:45:49 +00:00
My-Responsitories
01552801f2 opt: select (#937) 2025-08-05 05:41:37 +00:00
bggRGjQaUbCoE
afb09e8a0a opt player
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-05 11:57:46 +08:00
bggRGjQaUbCoE
deb48d1ada opt to live room
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-04 18:58:48 +08:00
bggRGjQaUbCoE
cf84a92808 refa video params
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-04 17:38:10 +08:00
bggRGjQaUbCoE
26ccb92b44 Update README.md
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-04 15:02:03 +08:00
bggRGjQaUbCoE
3fa697a037 remove appbar anim
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-04 14:27:06 +08:00
qpst4
f72c13df62 Fix intent-filter for bilibili://search deep link (#934)
Fix intent-filter for bilibili://search deep link

* update

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-04 14:07:32 +08:00
My-Responsitories
7b51f15753 opt: multiSelect (#935) 2025-08-04 04:57:37 +00:00
bggRGjQaUbCoE
d246462535 fix heartbeat
Closes #929

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-04 12:23:29 +08:00
bggRGjQaUbCoE
3208661a52 opt pugv
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-04 11:44:17 +08:00
bggRGjQaUbCoE
2e614fa03c upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-03 19:03:19 +08:00
bggRGjQaUbCoE
b7f70ee0b3 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-03 19:03:13 +08:00
bggRGjQaUbCoE
cb52840bad Release 1.1.4
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-03 15:39:48 +08:00
dom
bd3d6cf34c feat: pugv (#927)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-03 15:25:29 +08:00
bggRGjQaUbCoE
cf835e330b opt change episode
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-03 10:42:26 +08:00
bggRGjQaUbCoE
14fd660ce2 opt history pause tip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-03 09:47:50 +08:00
bggRGjQaUbCoE
0a8282d3e3 opt save pgc reply
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-02 22:50:35 +08:00
bggRGjQaUbCoE
574e432e09 fix get live second list
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-02 22:03:09 +08:00
bggRGjQaUbCoE
4b9f251dae opt live room
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-02 19:53:52 +08:00
bggRGjQaUbCoE
f0e2a63d11 opt pgc
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-02 18:00:17 +08:00
bggRGjQaUbCoE
3c964787df opt intro controller
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-02 15:24:45 +08:00
bggRGjQaUbCoE
199ddc0e7e fix disable search suggestion
related #923

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 21:10:06 +08:00
bggRGjQaUbCoE
1071a29b26 opt minepage
Closes #922

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 20:31:29 +08:00
bggRGjQaUbCoE
90ce74cf91 opt level indicator
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 18:57:56 +08:00
bggRGjQaUbCoE
05bb27ee2b show search rcmd reason
Closes #921

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 18:32:55 +08:00
bggRGjQaUbCoE
53ef4219eb opt live room
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 17:13:47 +08:00
bggRGjQaUbCoE
dd5c2229b3 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 15:45:40 +08:00
bggRGjQaUbCoE
5c28376210 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 13:37:42 +08:00
bggRGjQaUbCoE
aa8eef46da common dyn page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 12:43:49 +08:00
bggRGjQaUbCoE
f7d4db6aad tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-08-01 10:20:07 +08:00
My-Responsitories
edc9a1ca7b fix: save bangumi & fav pic (#917) 2025-07-31 12:31:39 +00:00
My-Responsitories
05c9269531 opt: unify fav & coin of video & pgc (#916) 2025-07-31 12:16:42 +00:00
bggRGjQaUbCoE
e945daba3a refa query follow up
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-31 17:11:10 +08:00
bggRGjQaUbCoE
1029621b63 update blackMids
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-31 17:11:03 +08:00
bggRGjQaUbCoE
c8613fbe07 show history pause tip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-31 17:08:10 +08:00
bggRGjQaUbCoE
c4e87925cf opt vote panel
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-30 21:06:12 +08:00
bggRGjQaUbCoE
83e5095cc3 opt segment post errmsg
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-30 18:23:37 +08:00
bggRGjQaUbCoE
a57323e5a8 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-30 12:47:27 +08:00
Tong xuewen
3eb9c5b8ba Add configurable scroll threshold (#910)
* Add configurable scroll threshold

* update

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-29 23:02:05 +08:00
Tong xuewen
cf403aaf78 Move a setting from “Other settings” to “Player settings” (#909) 2025-07-29 12:20:38 +08:00
bggRGjQaUbCoE
2325814f6d tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-28 20:42:07 +08:00
bggRGjQaUbCoE
e5c86e1d2e opt webdav
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-28 19:23:38 +08:00
bggRGjQaUbCoE
26c420023f opt mine page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-28 17:49:10 +08:00
bggRGjQaUbCoE
cbb838fff8 opt mine page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-28 17:14:17 +08:00
bggRGjQaUbCoE
3c466d5748 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-28 16:54:38 +08:00
Tong xuewen
db79a03ec4 fix ios fullscreen when resuming from background (#902) 2025-07-28 16:53:17 +08:00
bggRGjQaUbCoE
65b432ed2c merge mine & media
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-28 16:44:33 +08:00
bggRGjQaUbCoE
6ca7efe8d1 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-27 12:36:43 +08:00
bggRGjQaUbCoE
916931dd11 update tmpPos on drag start
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-27 00:28:02 +08:00
bggRGjQaUbCoE
819a28c48c fix blackMids
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 23:51:08 +08:00
bggRGjQaUbCoE
f281e6e36a fix #897
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 23:36:08 +08:00
bggRGjQaUbCoE
c46058ef4d bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 21:59:32 +08:00
bggRGjQaUbCoE
39cc42d542 opt type
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 21:18:43 +08:00
bggRGjQaUbCoE
3a78ead3a6 opt type
opt ua

opt subtitle

opt playertype

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 20:11:26 +08:00
bggRGjQaUbCoE
a05ecd020b opt episode
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 18:25:44 +08:00
bggRGjQaUbCoE
e00f009a64 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 17:35:25 +08:00
bggRGjQaUbCoE
b977f5228e tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 17:07:20 +08:00
bggRGjQaUbCoE
4003ca6c4d opt share img
opt block query

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 16:43:30 +08:00
bggRGjQaUbCoE
9072d6e051 upgrade dep
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 15:13:42 +08:00
bggRGjQaUbCoE
bb36876d1e opt search
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 12:47:01 +08:00
bggRGjQaUbCoE
d17dbe139e opt uplist item
end align player duration

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-26 11:46:26 +08:00
bggRGjQaUbCoE
d567c296f8 opt video action
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-24 20:12:15 +08:00
bggRGjQaUbCoE
0c6bc9d58a refa fav video
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-24 13:09:42 +08:00
bggRGjQaUbCoE
6d48c70020 remove unused pkg
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-24 11:28:32 +08:00
bggRGjQaUbCoE
569484014e reformat
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-24 11:25:20 +08:00
bggRGjQaUbCoE
c89a39cf5c fix #887
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-24 09:14:05 +08:00
bggRGjQaUbCoE
418a1e8d39 reformat
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-23 16:47:11 +08:00
bggRGjQaUbCoE
148e0872b4 lint
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-23 16:21:50 +08:00
bggRGjQaUbCoE
b1432b5ff5 opt action item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-23 16:18:25 +08:00
bggRGjQaUbCoE
75e86952fd fix msg live status
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-23 15:56:04 +08:00
bggRGjQaUbCoE
03b095905a upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-23 12:12:30 +08:00
bggRGjQaUbCoE
77a444b896 opt ugc intro
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-23 12:12:30 +08:00
bggRGjQaUbCoE
e770e39c8f tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-23 12:12:26 +08:00
bggRGjQaUbCoE
55bed2e830 opt ugc intro
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-22 18:30:04 +08:00
bggRGjQaUbCoE
a875ff3988 refa: ugc intro
Closes #879

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-22 17:16:37 +08:00
bggRGjQaUbCoE
a4a866d3f5 fix #878
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-22 12:58:14 +08:00
bggRGjQaUbCoE
4e5c4169fa opt get sdkInt
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-22 12:19:51 +08:00
bggRGjQaUbCoE
fbf47d7485 fix #877
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-22 11:53:59 +08:00
bggRGjQaUbCoE
ba16f3d597 fix update skip type
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-22 11:01:44 +08:00
bggRGjQaUbCoE
8a62f5bbee fav order
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-21 17:49:18 +08:00
bggRGjQaUbCoE
042a7df7f3 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-21 13:55:37 +08:00
bggRGjQaUbCoE
610ed02dd4 show msg user live status
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-21 13:55:37 +08:00
bggRGjQaUbCoE
f7184aff4e show video label
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-21 13:55:37 +08:00
bggRGjQaUbCoE
473515efc5 fix query follow up
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-21 13:55:37 +08:00
bggRGjQaUbCoE
aee65b0a9c bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-21 13:55:37 +08:00
dom
e46488d11e Update 功能请求.yml 2025-07-21 13:55:23 +08:00
dom
f43bc74868 Update bug-反馈.yml 2025-07-21 13:55:13 +08:00
bggRGjQaUbCoE
f223befad6 opt live onlyPlayAudio
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-16 17:44:06 +08:00
bggRGjQaUbCoE
e0243461bb opt scheme
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-15 18:03:36 +08:00
bggRGjQaUbCoE
2877372f67 fix msg avatar
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-15 12:47:06 +08:00
bggRGjQaUbCoE
d6c12195f8 opt member tab
try-catch handle live dm

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-15 12:37:51 +08:00
bggRGjQaUbCoE
e280f6ee4a login/exp log
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-14 15:57:55 +08:00
bggRGjQaUbCoE
4275719844 opt save dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-14 12:21:17 +08:00
bggRGjQaUbCoE
f41af00b31 fix live dm
opt live/article report

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-13 12:42:22 +08:00
Fengning Zhu
10ed5f2ea4 fix: resolve fullscreen UI offset issue on some Android tablets (#873) 2025-07-13 11:47:38 +08:00
bggRGjQaUbCoE
44ba554e0e fix save reply
opt profile page

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-12 00:13:57 +08:00
bggRGjQaUbCoE
c346d586a5 opt reply item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-11 21:27:46 +08:00
bggRGjQaUbCoE
52fb332378 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-11 17:27:11 +08:00
bggRGjQaUbCoE
5f5387b941 show co/charging label
fix special dm

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-11 12:59:58 +08:00
Leung Ming
db682066ba Fix only_show_wearing (#872)
Signed-off-by: Leung Ming <165622843+leung-ming@users.noreply.github.com>
2025-07-11 11:34:58 +08:00
bggRGjQaUbCoE
3ee8c68eac show charging label
tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-10 17:32:18 +08:00
bggRGjQaUbCoE
a9ceb04d07 opt dyn post
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-10 12:46:05 +08:00
bggRGjQaUbCoE
f60a714c06 fix mention list header
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-10 12:31:09 +08:00
bggRGjQaUbCoE
e240a6caae opt scheme
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-09 23:55:08 +08:00
bggRGjQaUbCoE
829b966382 opt multi mention
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-09 19:15:34 +08:00
bggRGjQaUbCoE
58f3949a22 check reply inputDisable
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-09 19:03:24 +08:00
bggRGjQaUbCoE
dfb823c30c multi mention
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-09 18:36:21 +08:00
bggRGjQaUbCoE
b32922af8f opt mention
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-09 18:05:21 +08:00
bggRGjQaUbCoE
753e10ef20 opt emote
opt live fav state

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-09 16:15:21 +08:00
bggRGjQaUbCoE
05153fda72 opt pub page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-09 12:02:28 +08:00
bggRGjQaUbCoE
8bf55ec95a opt pm msg
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-08 18:58:55 +08:00
bggRGjQaUbCoE
d2023b1750 show auto reply tip
opt pm msg

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-08 18:40:16 +08:00
bggRGjQaUbCoE
b51c6b65a1 custom emoji tooltip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-08 17:04:49 +08:00
bggRGjQaUbCoE
e3337f1e7c fix rm top dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-08 17:04:31 +08:00
bggRGjQaUbCoE
5ff6ef8801 opt reply hint
opt mention list header

tweak

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-07 13:40:48 +08:00
bggRGjQaUbCoE
74f7c5d0ea fix video tab
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-07 13:39:24 +08:00
bggRGjQaUbCoE
b43c07bd51 opt dyn panel
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-06 22:36:54 +08:00
bggRGjQaUbCoE
7cdcd6df97 fix buvid3
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-06 22:36:54 +08:00
bggRGjQaUbCoE
7439160f03 fix imageview
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-06 12:21:18 +08:00
bggRGjQaUbCoE
b496ea4da4 opt insert rich text
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-05 13:12:39 +08:00
bggRGjQaUbCoE
0f1665bf08 fix update vote
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-04 23:17:56 +08:00
dom
83459df3b7 feat: create vote (#871)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-04 22:10:11 +08:00
bggRGjQaUbCoE
9ce84fb997 fix vote
fix filter dyn

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-04 17:36:54 +08:00
bggRGjQaUbCoE
708bf27710 remove silence endtime
deprecated

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-04 12:00:04 +08:00
bggRGjQaUbCoE
dae64e74d5 upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-03 18:07:28 +08:00
bggRGjQaUbCoE
8414c0f71f tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-03 15:56:32 +08:00
bggRGjQaUbCoE
18f5ddd937 show pgc indexShow
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-02 21:44:30 +08:00
bggRGjQaUbCoE
a231492f49 fix richtextfield
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-02 21:44:18 +08:00
bggRGjQaUbCoE
6f2570c5be feat: richtextfield
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-07-01 10:54:31 +08:00
bggRGjQaUbCoE
721bf2d59f opt dyn pgc errmsg
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-27 14:02:09 +08:00
bggRGjQaUbCoE
e5301c3cf8 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 21:54:22 +08:00
bggRGjQaUbCoE
20893ef65f opt video card
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 17:27:01 +08:00
bggRGjQaUbCoE
12c13cd25a opt jump
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 17:11:08 +08:00
bggRGjQaUbCoE
81f72e2c4a opt reply item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 14:22:57 +08:00
bggRGjQaUbCoE
d2e5e71729 bump flutter
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 12:26:27 +08:00
bggRGjQaUbCoE
158e8f7cb8 fix reply action
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 12:09:53 +08:00
6v
7886a901a3 feat: add configurable main page back behavior (#870)
* feat: add configurable main page back behavior

Add setting to control whether back button exits directly or returns to first tab

* update

---------

Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 11:40:44 +08:00
bggRGjQaUbCoE
0264a4c01f opt text
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 10:59:39 +08:00
bggRGjQaUbCoE
2eb86658b7 opt show more text
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-26 10:15:17 +08:00
bggRGjQaUbCoE
0b95476d8f opt pub textfield
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-25 15:19:45 +08:00
bggRGjQaUbCoE
27023a305d opt pub textfield
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-25 13:33:29 +08:00
bggRGjQaUbCoE
ef7cfdd92e opt pub insert text
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-25 11:38:35 +08:00
bggRGjQaUbCoE
4b067c5ed2 del at user
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-25 00:00:27 +08:00
bggRGjQaUbCoE
7be3774675 feat: at user
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-24 23:13:31 +08:00
bggRGjQaUbCoE
fcf758e290 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-24 18:08:07 +08:00
bggRGjQaUbCoE
79e30047f5 member audio
member comic

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-23 13:26:52 +08:00
bggRGjQaUbCoE
c6a377b9d4 opt req
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-23 11:37:16 +08:00
bggRGjQaUbCoE
bc3ce66322 opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-22 12:52:26 +08:00
bggRGjQaUbCoE
17568c8c27 opt item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-22 00:06:32 +08:00
bggRGjQaUbCoE
a1555826c3 opt reply item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-21 22:07:58 +08:00
bggRGjQaUbCoE
07b7c42f13 opt setting
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-21 21:07:08 +08:00
bggRGjQaUbCoE
2d66b1d8ca opt ui
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-21 20:16:26 +08:00
bggRGjQaUbCoE
604d78ad6a opt data
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-21 18:22:41 +08:00
bggRGjQaUbCoE
5f3f158932 opt filter dyn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-20 23:43:42 +08:00
bggRGjQaUbCoE
345402d2fe remove topic rcmd btn
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-20 14:39:58 +08:00
bggRGjQaUbCoE
0bc0c36f14 feat: live dm block
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-20 14:08:49 +08:00
bggRGjQaUbCoE
dcb893ed07 opt introctr
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-19 17:18:06 +08:00
bggRGjQaUbCoE
3bfb0db307 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-19 16:47:55 +08:00
bggRGjQaUbCoE
9b8d4a62fa opt item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-19 14:13:38 +08:00
bggRGjQaUbCoE
6f48a97b4b opt item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-19 13:31:12 +08:00
bggRGjQaUbCoE
5644e9a0e1 refa fav/group panel
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-19 11:07:52 +08:00
bggRGjQaUbCoE
f440edf43b feat: msg like detail
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-19 10:42:56 +08:00
bggRGjQaUbCoE
30a8b4d25c opt req
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 22:46:23 +08:00
bggRGjQaUbCoE
41245d5256 dyn pic
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 22:46:23 +08:00
bggRGjQaUbCoE
89b1a63946 opt forwarded dyn pic
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 21:13:07 +08:00
bggRGjQaUbCoE
448d7c38db show forwarded dyn pic
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 20:50:38 +08:00
bggRGjQaUbCoE
cc4100d74f upgrade deps
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 19:48:27 +08:00
bggRGjQaUbCoE
768f3e20b1 opt buildTime
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 19:48:02 +08:00
bggRGjQaUbCoE
91a1b77d83 opt live room
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 19:48:02 +08:00
bggRGjQaUbCoE
9d9784f3c2 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 13:51:16 +08:00
bggRGjQaUbCoE
6c6c4cffd2 opt fav folder sort
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-18 13:08:28 +08:00
bggRGjQaUbCoE
cb167dae29 opt member home fav
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-17 18:47:56 +08:00
bggRGjQaUbCoE
0bf9d13967 reply/dyn appeal
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-17 18:32:29 +08:00
bggRGjQaUbCoE
0963713fad opt member fav
fix parse duration

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-16 21:31:10 +08:00
bggRGjQaUbCoE
d69a996be4 remove unused code
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-16 14:19:02 +08:00
bggRGjQaUbCoE
fcdb04b728 opt msg item
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-16 13:44:23 +08:00
bggRGjQaUbCoE
a2c24fb33c feat: match info
opt dateformat

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-16 12:51:32 +08:00
bggRGjQaUbCoE
25f4ed6636 tweak
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-15 18:46:11 +08:00
bggRGjQaUbCoE
a0bed68c79 remove unused widget
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-06-15 17:54:57 +08:00
1504 changed files with 264121 additions and 126023 deletions

3
.fvmrc Normal file
View File

@@ -0,0 +1,3 @@
{
"flutter": "3.41.6"
}

View File

@@ -9,12 +9,24 @@ body:
attributes:
label: 检查清单
options:
- label: 之前没有人提交过类似或相同的 bug report。
required: true
- label: 无视上一条 => block
- label: 搜索了 [历史 issue](https://github.com/bggRGjQaUbCoE/PiliPlus/issues?q=is%3Aissue) ,并未发现相同问题
required: true
- label: 正在使用最新版本。
required: true
- label: 已排除网络问题
required: true
- label: 已排除账号问题
required: true
- label: 已排除设置问题
required: true
- type: checkboxes
id: assign
attributes:
label: Assign
options:
- label: self-assign
required: false
- type: textarea
id: version
@@ -23,14 +35,6 @@ body:
validations:
required: true
- type: textarea
id: bug
attributes:
label: 问题描述
description: 请提供一个清晰而简明的问题描述。
validations:
required: true
- type: textarea
id: steps
attributes:
@@ -47,6 +51,14 @@ body:
validations:
required: true
- type: textarea
id: actual
attributes:
label: 实际行为
description: 请描述实际的行为或结果。
validations:
required: true
- type: textarea
id: log
attributes:

View File

@@ -9,12 +9,20 @@ body:
attributes:
label: 检查清单
options:
- label: 之前没有人提交过类似或相同功能请求
required: true
- label: 无视上一条 => block
- label: 搜索了 [历史 issue](https://github.com/bggRGjQaUbCoE/PiliPlus/issues?q=is%3Aissue) ,并未发现相同功能请求
required: true
- label: 正在使用最新版本。
required: true
- label: 设置中未搜索到该功能
required: true
- type: checkboxes
id: assign
attributes:
label: Assign
options:
- label: self-assign
required: false
- type: textarea
id: desc
@@ -24,14 +32,6 @@ body:
validations:
required: true
- type: textarea
id: propose
attributes:
label: 目标
description: 请描述你希望通过这个功能实现的目标。
validations:
required: true
- type: textarea
id: solution
attributes:

View File

@@ -1,79 +0,0 @@
name: Android Release
on:
workflow_dispatch:
jobs:
android:
runs-on: ubuntu-latest
steps:
- name: 代码迁出
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 构建Java环境
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: "17"
- name: 检查缓存
uses: actions/cache@v4
id: cache-flutter
with:
path: /root/flutter-sdk # Flutter SDK 的路径
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
- name: 安装Flutter
if: steps.cache-flutter.outputs.cache-hit != 'true'
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
- name: 下载项目依赖
run: flutter pub get
- name: 更新版本号
run: |
version_name=$(yq e .version pubspec.yaml | cut -d "+" -f 1)
sed -i "s/version: .*/version: $version_name-$(git rev-parse --short HEAD)+$(git rev-list --count HEAD)/g" pubspec.yaml
- name: Write key
run: |
if [ ! -z "${{ secrets.SIGN_KEYSTORE_BASE64 }}" ]; then
echo "${{ secrets.SIGN_KEYSTORE_BASE64 }}" | base64 --decode > android/app/key.jks
echo storeFile='key.jks' >> android/key.properties
echo storePassword='${{ secrets.KEYSTORE_PASSWORD }}' >> android/key.properties
echo keyAlias='${{ secrets.KEY_ALIAS }}' >> android/key.properties
echo keyPassword='${{ secrets.KEY_PASSWORD }}' >> android/key.properties
fi
- name: flutter build apk
run: |
chmod +x lib/scripts/build.sh
lib/scripts/build.sh
flutter build apk --release --split-per-abi
- name: 上传
uses: actions/upload-artifact@v4
with:
name: app-arm64-v8a
path: |
build/app/outputs/flutter-apk/app-arm64-v8a-release.apk
- name: 上传
uses: actions/upload-artifact@v4
with:
name: app-armeabi-v7a
path: |
build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk
- name: 上传
uses: actions/upload-artifact@v4
with:
name: app-x86_64
path: |
build/app/outputs/flutter-apk/app-x86_64-release.apk

174
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,174 @@
name: Build
on:
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
paths-ignore:
- "**.md"
workflow_dispatch:
inputs:
build_android:
description: "Build Android"
required: false
default: true
type: boolean
build_ios:
description: "Build iOS"
required: false
default: true
type: boolean
build_mac:
description: "Build Mac"
required: false
default: true
type: boolean
build_win_x64:
description: "Build Win-x64"
required: false
default: true
type: boolean
build_linux_x64:
description: "Build Linux-x64"
required: false
default: true
type: boolean
tag:
description: "tag"
required: false
default: ""
type: string
jobs:
android:
if: ${{ (github.event_name == 'pull_request' && github.repository == 'bggRGjQaUbCoE/PiliPlus') || github.event.inputs.build_android == 'true' }}
name: Release Android
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: 代码迁出
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: 构建Java环境
uses: actions/setup-java@v5
with:
distribution: "zulu"
java-version: "17"
cache: "gradle"
cache-dependency-path: |
android/*.gradle*
android/**/gradle-wrapper.properties
- name: 安装Flutter
uses: subosito/flutter-action@v2
id: flutter-action
with:
channel: stable
flutter-version-file: pubspec.yaml
cache: true
- name: Apply Patch
shell: pwsh
run: lib/scripts/patch.ps1 android
continue-on-error: true
- name: Write key
if: github.event_name == 'workflow_dispatch'
run: |
if [ ! -z "${{ secrets.SIGN_KEYSTORE_BASE64 }}" ]; then
echo "${{ secrets.SIGN_KEYSTORE_BASE64 }}" | base64 --decode > android/app/key.jks
echo storeFile='key.jks' >> android/key.properties
echo storePassword='${{ secrets.KEYSTORE_PASSWORD }}' >> android/key.properties
echo keyAlias='${{ secrets.KEY_ALIAS }}' >> android/key.properties
echo keyPassword='${{ secrets.KEY_PASSWORD }}' >> android/key.properties
fi
- name: Set and Extract version
if: ${{ github.event_name == 'workflow_dispatch' }}
shell: pwsh
run: lib/scripts/build.ps1 android
- name: Flutter Build Release Apk
if: ${{ github.event_name == 'workflow_dispatch' }}
run: flutter build apk --release --split-per-abi --dart-define-from-file=pili_release.json --pub
- name: Flutter Build Dev Apk
if: ${{ github.event_name == 'pull_request' }}
run: |
flutter build apk --release --split-per-abi --android-project-arg dev=1 --pub
- name: Rename
run: |
for file in build/app/outputs/flutter-apk/app-*-release.apk; do
abi=$(echo "$file" | sed -E 's|.*app-(.*)-release\.apk|\1|')
mv "$file" "PiliPlus_android_${{ env.version }}_${abi}.apk"
done
shell: bash
- name: Release
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag != '' }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.tag }}
name: ${{ github.event.inputs.tag }}
files: PiliPlus_android_*.apk
- name: 上传
uses: actions/upload-artifact@v7
with:
archive: false
name: Android_arm64-v8a
path: PiliPlus_android_*_arm64-v8a.apk
- name: 上传
uses: actions/upload-artifact@v7
with:
archive: false
name: Android_armeabi-v7a
path: PiliPlus_android_*_armeabi-v7a.apk
- name: 上传
uses: actions/upload-artifact@v7
with:
archive: false
name: Android_x86_64
path: PiliPlus_android_*_x86_64.apk
ios:
if: ${{ (github.event_name == 'pull_request' && github.repository == 'bggRGjQaUbCoE/PiliPlus') || github.event.inputs.build_ios == 'true' }}
uses: ./.github/workflows/ios.yml
permissions: write-all
with:
tag: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag || '' }}
mac:
if: ${{ github.event.inputs.build_mac == 'true' }}
uses: ./.github/workflows/mac.yml
permissions: write-all
with:
tag: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag || '' }}
win_x64:
if: ${{ (github.event_name == 'pull_request' && github.repository == 'bggRGjQaUbCoE/PiliPlus') || github.event.inputs.build_win_x64 == 'true' }}
uses: ./.github/workflows/win_x64.yml
permissions: write-all
with:
tag: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag || '' }}
linux_x64:
if: ${{ github.event.inputs.build_linux_x64 == 'true' }}
uses: ./.github/workflows/linux_x64.yml
permissions: write-all
with:
tag: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag || '' }}

View File

@@ -1,21 +1,23 @@
name: Build for iOS
on:
workflow_dispatch:
workflow_call:
inputs:
branch:
tag:
description: "tag"
required: false
default: 'main'
default: ""
type: string
workflow_dispatch:
jobs:
build-macos-app:
name: Release IOS
runs-on: macos-latest
runs-on: macos-26
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
ref: ${{ github.event.inputs.branch }}
fetch-depth: 0
- name: Setup flutter
@@ -24,21 +26,35 @@ jobs:
channel: stable
flutter-version-file: pubspec.yaml
- name: 更新版本号
run: |
version_name=$(yq e '.version' pubspec.yaml | cut -d "+" -f 1)
sed -i '' "s/version: .*/version: $version_name+$(git rev-list --count HEAD)/" pubspec.yaml
- name: Set and Extract version
shell: pwsh
run: lib/scripts/build.ps1
- name: Apply Patch
shell: pwsh
run: lib/scripts/patch.ps1 iOS
continue-on-error: true
- name: Build iOS
run: |
chmod +x lib/scripts/build.sh
lib/scripts/build.sh
flutter build ios --release --no-codesign
flutter build ios --release --no-codesign --dart-define-from-file=pili_release.json
ln -sf ./build/ios/iphoneos Payload
zip -r9 ios-release-no-sign.ipa Payload/runner.app
# make AltSign happy...
find Payload/Runner.app/Frameworks -type d -name "*.framework" -exec codesign --force --sign - --preserve-metadata=identifier,entitlements {} \;
zip -r9 PiliPlus_ios_${{env.version}}.ipa Payload/Runner.app
- name: Release
if: ${{ github.event.inputs.tag != '' }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.tag }}
name: ${{ github.event.inputs.tag }}
files: |
PiliPlus_ios_*.ipa
- name: Upload ios release
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: ios-release
path: ios-release-no-sign.ipa
archive: false
name: iOS-release
path: PiliPlus_ios_*.ipa

269
.github/workflows/linux_x64.yml vendored Normal file
View File

@@ -0,0 +1,269 @@
name: Build for Linux x64
on:
workflow_call:
inputs:
tag:
description: "tag"
required: false
default: ""
type: string
workflow_dispatch:
jobs:
build-linux-app:
name: Release Linux x64
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake libgtk-3-dev ninja-build libayatana-appindicator3-dev unzip webkit2gtk-4.1 libasound2-dev rpm patchelf
sudo apt-get install -y gcc g++ autoconf automake debhelper glslang-dev ladspa-sdk xutils-dev libasound2-dev \
libarchive-dev libbluray-dev libbs2b-dev libcaca-dev libcdio-paranoia-dev libdrm-dev \
libdav1d-dev libdvdnav-dev libegl1-mesa-dev libepoxy-dev libfontconfig-dev libfreetype6-dev \
libfribidi-dev libgl1-mesa-dev libgbm-dev libgme-dev libgsm1-dev libharfbuzz-dev libjpeg-dev \
libbrotli-dev liblcms2-dev libmodplug-dev libmp3lame-dev libopenal-dev \
libopus-dev libopencore-amrnb-dev libopencore-amrwb-dev libpulse-dev librtmp-dev \
libsdl2-dev libsixel-dev libssh-dev libsoxr-dev libspeex-dev libtool \
libv4l-dev libva-dev libvdpau-dev libvorbis-dev libvo-amrwbenc-dev \
libunwind-dev libvpx-dev libwayland-dev libx11-dev libxext-dev \
libxkbcommon-dev libxrandr-dev libxss-dev libxv-dev libxvidcore-dev \
linux-libc-dev nasm ninja-build pkg-config python3 python3-docutils wayland-protocols \
x11proto-core-dev zlib1g-dev libfdk-aac-dev libtheora-dev libwebp-dev \
unixodbc-dev libpq-dev libxxhash-dev libaom-dev \
libgtk-3-0 libblkid1 liblzma5 libmpv-dev
shell: bash
- name: Setup flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
cache: true
- name: Set and Extract version
shell: pwsh
run: lib/scripts/build.ps1
- name: Apply Patch
shell: pwsh
run: lib/scripts/patch.ps1 Linux
continue-on-error: true
#TODO: deb and rpm packages need to be build
- name: Build Linux
run: flutter build linux --release -v --pub --dart-define-from-file=pili_release.json
- name: Package .tar.gz
run: tar -zcvf PiliPlus_linux_${{ env.version }}_amd64.tar.gz -C build/linux/x64/release/bundle .
- name: Packege deb
run: |
printf "建立构建目录...\n"
mkdir "PiliPlus_linux_${{ env.version }}_amd64"
pushd "PiliPlus_linux_${{ env.version }}_amd64"
mkdir -p opt/PiliPlus
mkdir -p usr/share/applications
mkdir -p usr/share/icons/hicolor/512x512/apps
printf "复制文件...\n"
cp -r ../build/linux/x64/release/bundle/* opt/PiliPlus
cp -r ../assets/linux/DEBIAN .
cp ../assets/linux/com.example.piliplus.desktop usr/share/applications
cp ../assets/images/logo/logo.png usr/share/icons/hicolor/512x512/apps/piliplus.png
printf "修改控制文件...\n"
# 替换版本号
sed -i "2s/version_need_change/${{ env.version }}/g" DEBIAN/control
# 计算安装大小并替换
SIZE_KB=$(du -s -b --apparent-size . | awk '{print int($1)}')
SIZE_KB=$(($SIZE_KB - $(du -s -b --apparent-size DEBIAN | awk '{print int($1)}')))
SIZE_KB=$(echo $SIZE_KB | awk '{print int($1/1024 + 0.999)}')
printf "\t安装大小: %s KB\n" "$SIZE_KB"
sed -i "9s/size_need_change/${SIZE_KB}/g" DEBIAN/control
printf "生成并写入 md5sums ...\n"
md5sum opt/PiliPlus/piliplus >> DEBIAN/md5sums
md5sum opt/PiliPlus/lib/* >> DEBIAN/md5sums
md5sum opt/PiliPlus/data/icudtl.dat >> DEBIAN/md5sums
printf "设置权限...\n"
chmod 0644 DEBIAN/control
chmod 0644 DEBIAN/md5sums
chmod 0755 DEBIAN/postinst
chmod 0755 DEBIAN/postrm
chmod 0755 DEBIAN/prerm
printf "打包 deb 文件...\n"
popd
dpkg-deb --build --verbose --root-owner-group "PiliPlus_linux_${{ env.version }}_amd64"
printf "完成: PiliPlus_linux_%s_amd64.deb\n" "${{ env.version }}"
shell: bash
- name: Packege rpm
run: |
printf "建立 RPM 构建目录...\n"
RPM_BUILD_ROOT="$PWD/rpm_build"
mkdir -p "$RPM_BUILD_ROOT/BUILD" "$RPM_BUILD_ROOT/RPMS" "$RPM_BUILD_ROOT/SOURCES" "$RPM_BUILD_ROOT/SPECS" "$RPM_BUILD_ROOT/SRPMS"
printf "准备源码归档(仅包含运行时与元数据)...\n"
DATE="$(date '+%a %b %d %Y')"
SRC_DIR="$PWD/piliplus-${{ env.version }}"
mkdir -p "$SRC_DIR/bundle" "$SRC_DIR/assets"
cp -r build/linux/x64/release/bundle/* "$SRC_DIR/bundle/"
cp assets/linux/com.example.piliplus.desktop "$SRC_DIR/assets/com.example.piliplus.desktop"
cp assets/images/logo/logo.png "$SRC_DIR/assets/piliplus.png"
tar -zcvf "$RPM_BUILD_ROOT/SOURCES/piliplus-${{ env.version }}.tar.gz" -C "$PWD" "piliplus-${{ env.version }}"
printf "生成 spec 文件...\n"
cat > "$RPM_BUILD_ROOT/SPECS/piliplus.spec" <<EOF
Name: piliplus
Version: ${{ env.version }}
Release: 1%{?dist}
Summary: PiliPlus Linux Version
License: GPL-3.0
Source0: piliplus-${{ env.version }}.tar.gz
Requires: desktop-file-utils, hicolor-icon-theme
%description
使用 Flutter 开发的 BiliBili 第三方客户端
%prep
%setup -q -n piliplus-${{ env.version }}
%build
%install
mkdir -p %{buildroot}/opt/PiliPlus
cp -r bundle/* %{buildroot}/opt/PiliPlus/
# 二进制权限与命令行入口
chmod 755 %{buildroot}/opt/PiliPlus/piliplus
mkdir -p %{buildroot}/usr/bin
ln -sf /opt/PiliPlus/piliplus %{buildroot}/usr/bin/piliplus
# 桌面集成
mkdir -p %{buildroot}/usr/share/applications
install -m 644 assets/com.example.piliplus.desktop %{buildroot}/usr/share/applications/com.example.piliplus.desktop
mkdir -p %{buildroot}/usr/share/icons/hicolor/512x512/apps
install -m 644 assets/piliplus.png %{buildroot}/usr/share/icons/hicolor/512x512/apps/piliplus.png
%post
update-desktop-database -q || true
gtk-update-icon-cache -q -t -f %{_datadir}/icons/hicolor || true
%postun
update-desktop-database -q || true
gtk-update-icon-cache -q -t -f %{_datadir}/icons/hicolor || true
%files
/opt/PiliPlus
/usr/bin/piliplus
/usr/share/applications/com.example.piliplus.desktop
/usr/share/icons/hicolor/512x512/apps/piliplus.png
%changelog
* DATE - ${{ env.version }}-1
- Initial RPM release
EOF
sed -i "s/DATE/${DATE}/g" "$RPM_BUILD_ROOT/SPECS/piliplus.spec"
printf "构建 RPM 包...\n"
rpmbuild --define "_topdir $RPM_BUILD_ROOT" -bb "$RPM_BUILD_ROOT/SPECS/piliplus.spec"
printf "移动生成的 RPM...\n"
find "$RPM_BUILD_ROOT/RPMS" -name "*.rpm" -exec mv {} "PiliPlus_linux_${{ env.version }}_amd64.rpm" \;
printf "完成: PiliPlus_linux_%s_amd64.rpm\n" "${{ env.version }}"
shell: bash
- name: Package AppImage
run: |
printf "下载 appimagetool...\n"
wget -q https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
printf "建立 AppDir 目录结构...\n"
APPDIR="PiliPlus.AppDir"
mkdir -p "$APPDIR/usr/bin"
mkdir -p "$APPDIR/usr/lib"
mkdir -p "$APPDIR/usr/share/applications"
mkdir -p "$APPDIR/usr/share/icons/hicolor/512x512/apps"
printf "复制应用文件...\n"
cp -r build/linux/x64/release/bundle/* "$APPDIR/usr/bin/"
printf "复制桌面文件和图标...\n"
cp assets/linux/com.example.piliplus.desktop "$APPDIR/com.example.piliplus.desktop"
cp assets/linux/com.example.piliplus.desktop "$APPDIR/usr/share/applications/com.example.piliplus.desktop"
cp assets/images/logo/logo.png "$APPDIR/piliplus.png"
cp assets/images/logo/logo.png "$APPDIR/usr/share/icons/hicolor/512x512/apps/piliplus.png"
printf "创建 AppRun 启动脚本...\n"
cat > "$APPDIR/AppRun" <<'APPRUN_EOF'
#!/bin/bash
SELF=$(readlink -f "$0")
HERE=${SELF%/*}
export PATH="${HERE}/usr/bin:${PATH}"
export LD_LIBRARY_PATH="${HERE}/usr/lib:${LD_LIBRARY_PATH}"
exec "${HERE}/usr/bin/piliplus" "$@"
APPRUN_EOF
chmod +x "$APPDIR/AppRun"
printf "修改桌面文件中的 Exec 路径...\n"
sed -i 's|Exec=piliplus|Exec=piliplus|g' "$APPDIR/com.example.piliplus.desktop"
sed -i 's|Icon=piliplus|Icon=piliplus|g' "$APPDIR/com.example.piliplus.desktop"
printf "打包 AppImage...\n"
ARCH=x86_64 ./appimagetool-x86_64.AppImage "$APPDIR" "PiliPlus_linux_${{ env.version }}_amd64.AppImage"
printf "完成: PiliPlus_linux_%s_amd64.AppImage\n" "${{ env.version }}"
shell: bash
- name: Release
if: ${{ github.event.inputs.tag != '' }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.tag }}
name: ${{ github.event.inputs.tag }}
files: |
PiliPlus_linux_*.tar.gz
PiliPlus_linux_*.deb
PiliPlus_linux_*.rpm
PiliPlus_linux_*.AppImage
- name: Upload linux targz package
uses: actions/upload-artifact@v7
with:
archive: false
name: Linux_targz_amd64_packege
path: PiliPlus_linux_*.tar.gz
- name: Upload linux deb package
uses: actions/upload-artifact@v7
with:
archive: false
name: Linux_deb_amd64_package
path: PiliPlus_linux_*.deb
- name: Upload linux rpm package
uses: actions/upload-artifact@v7
with:
archive: false
name: Linux_rpm_amd64_package
path: PiliPlus_linux_*.rpm
- name: Upload linux AppImage package
uses: actions/upload-artifact@v7
with:
archive: false
name: Linux_AppImage_amd64_package
path: PiliPlus_linux_*.AppImage

64
.github/workflows/mac.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
name: Build for Mac
on:
workflow_call:
inputs:
tag:
description: "tag"
required: false
default: ""
type: string
workflow_dispatch:
jobs:
build-mac-app:
name: Release Mac
runs-on: macos-26
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
- name: Set and Extract version
shell: pwsh
run: lib/scripts/build.ps1
- name: Apply Patch
shell: pwsh
run: lib/scripts/patch.ps1 macOS
continue-on-error: true
- name: Build Mac
run: flutter build macos --release --dart-define-from-file=pili_release.json
- name: Prepare Upload
run: |
npm install --global create-dmg
create-dmg build/macos/Build/Products/Release/PiliPlus.app || true
continue-on-error: true
- name: Rename DMG
run: mv PiliPlus*.dmg PiliPlus_macos_${{ env.version }}.dmg
- name: Release
if: ${{ github.event.inputs.tag != '' }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.tag }}
name: ${{ github.event.inputs.tag }}
files: |
PiliPlus_macos_*.dmg
- name: Upload macos release
uses: actions/upload-artifact@v7
with:
archive: false
name: macOS-release
path: PiliPlus_macos_*.dmg

86
.github/workflows/win_x64.yml vendored Normal file
View File

@@ -0,0 +1,86 @@
name: Build for Windows x64
on:
workflow_call:
inputs:
tag:
description: "tag"
required: false
default: ""
type: string
workflow_dispatch:
jobs:
build-windows-app:
name: Release Windows x64
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
- name: Apply Patch
shell: pwsh
run: lib/scripts/patch.ps1 windows
continue-on-error: true
- name: Add fastforge and Inno Setup
run: |
dart pub global activate fastforge
choco install innosetup
- name: Add Chinese language file for Inno Setup
run: |
Copy-Item "windows/packaging/exe/ChineseSimplified.isl" "C:\Program Files (x86)\Inno Setup 6\Languages\ChineseSimplified.isl"
shell: pwsh
- name: Set and Extract version
shell: pwsh
run: lib/scripts/build.ps1
- name: Build Windows
run: |
fastforge package --platform windows --targets exe --flutter-build-args="dart-define-from-file=pili_release.json"
- name: Prepare Upload
run: |
mkdir -p Release/PiliPlus-Win
mkdir -p PiliPlus-Win-Setup
mv build/windows/x64/runner/Release/* Release/PiliPlus-Win/
mv dist/**/*.exe PiliPlus-Win-Setup/PiliPlus_windows_${{env.version}}_x64_setup.exe
- name: Compress
run: |
Compress-Archive -Path "Release/PiliPlus-Win" -DestinationPath "PiliPlus_windows_${{env.version}}_x64_portable.zip"
shell: pwsh
- name: Release
if: ${{ github.event.inputs.tag != '' }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.tag }}
name: ${{ github.event.inputs.tag }}
files: |
PiliPlus_windows_*.zip
PiliPlus-Win-Setup/PiliPlus_windows_*.exe
- name: Upload windows file release
uses: actions/upload-artifact@v7
with:
archive: false
name: Windows-file-x64-release
path: PiliPlus_windows_*.zip
- name: Upload windows setup release
uses: actions/upload-artifact@v7
with:
archive: false
name: Windows-setup-x64-release
path: PiliPlus-Win-Setup/PiliPlus_windows_*.exe

15
.gitignore vendored
View File

@@ -19,7 +19,7 @@ migrate_working_dir/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
.vscode/
# Flutter repo-specific
/bin/cache/
@@ -134,7 +134,16 @@ app.*.symbols
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
!/dev/ci/**/Gemfile.lock
!.vscode/settings.json
/lib/build_config.dart
!.vscode/launch.json
!.vscode/tasks.json
devtools_options.yaml
# FVM Version Cache
.fvm/
pili_release.json
dist
test*.dart

8
.vscode/launch.json vendored
View File

@@ -1,22 +1,22 @@
{
// 使用 IntelliSense 了解相关属性。
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "piliplus",
"name": "PiliPlus",
"request": "launch",
"type": "dart"
},
{
"name": "piliplus (profile mode)",
"name": "PiliPlus (profile mode)",
"request": "launch",
"type": "dart",
"flutterMode": "profile"
},
{
"name": "piliplus (release mode)",
"name": "PiliPlus (release mode)",
"request": "launch",
"type": "dart",
"flutterMode": "release"

View File

@@ -22,22 +22,18 @@
<br/>
</div>
## 开发环境
```bash
[] Flutter (Channel stable, 3.24.0, on Microsoft Windows [版本 10.0.19045.4046], locale zh-CN)
[] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[] Xcode - develop for iOS and macOS (Xcode 15.1)
[] Chrome - develop for the web
[] Android Studio (version 2022.3)
[] VS Code (version 1.85.1)
[] Connected device (3 available)
[] Network resources
```
<br/>
## 适配平台
- [x] Android
- [x] iOS
- [x] Pad
- [x] Windows
- [x] Linux
[![Packaging status](https://repology.org/badge/vertical-allrepos/piliplus.svg)](https://repology.org/project/piliplus/versions)
## refactor
@@ -47,6 +43,20 @@
## feat
- [x] 编辑动态
- [x] DLNA 投屏
- [x] 离线缓存/播放
- [x] 移动端支持点击弹幕悬停,点赞、复制、举报 by [@My-Responsitories](https://github.com/My-Responsitories)
- [x] 播放音频
- [x] 跳过番剧片头/片尾
- [x] 安卓端 `loudnorm` 适配 by [@My-Responsitories](https://github.com/My-Responsitories)
- [x] Win/Mac 支持极验、短信登录 by [@My-Responsitories](https://github.com/My-Responsitories)
- [x] 视频截取动图 by [@My-Responsitories](https://github.com/My-Responsitories)
- [x] AI 原声翻译
- [x] SuperChat
- [x] 播放课堂视频
- [x] 发起投票
- [x] 发布动态/评论支持`富文本编辑`/`表情显示`/`@用户`
- [x] 修改消息设置
- [x] 修改聊天设置
- [x] 展示折叠消息
@@ -132,11 +142,6 @@
## 功能
目前着重移动端(Android、iOS)和Pad端暂时没有适配桌面端、手表端等
<br/>
- [x] 推荐视频列表(app端)
- [x] 最热视频列表
- [x] 热门直播
@@ -149,7 +154,7 @@
- [x] 粉丝、关注用户、拉黑用户查看
- [x] 用户主页查看
- [x] 关注/取关用户
- [ ] 离线缓存
- [x] 离线缓存
- [x] 稍后再看
- [x] 观看记录
- [x] 我的收藏
@@ -214,8 +219,8 @@
## 声明
此项目PiliPlus是个人为了兴趣而开发, 仅用于学习和测试请于下载后24小时内删除。
所用API皆从官方网站收集, 不提供任何破解内容。
此项目PiliPlus是个人为了兴趣而开发仅用于学习和测试请于下载后24小时内删除。
所用API皆从官方网站收集不提供任何破解内容。
在此致敬原作者:[guozhigq/pilipala](https://github.com/guozhigq/pilipala)
在此致敬上游作者:[orz12/PiliPalaX](https://github.com/orz12/PiliPalaX)
本仓库做了更激进的修改,感谢原作者的开源精神。
@@ -236,3 +241,13 @@
<br/>
<br/>
<br/>
## Star History
<a href="https://www.star-history.com/#bggRGjQaUbCoE/PiliPlus&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=bggRGjQaUbCoE/PiliPlus&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=bggRGjQaUbCoE/PiliPlus&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=bggRGjQaUbCoE/PiliPlus&type=Date" />
</picture>
</a>

View File

@@ -9,6 +9,15 @@
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- lib/grpc/bilibili/**
# - lib/grpc/google/**
# - lib/common/widgets/flutter/**
formatter:
trailing_commas: preserve
linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
@@ -27,7 +36,6 @@ linter:
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
# - always_specify_types
# - avoid_positional_boolean_parameters
# - use_null_aware_elements
- always_declare_return_types
- always_use_package_imports
- avoid_empty_else
@@ -53,5 +61,22 @@ linter:
- use_colored_box
- use_decorated_box
- use_named_constants
- use_null_aware_elements
- unnecessary_lambdas
- use_is_even_rather_than_modulo
- unnecessary_async
- unnecessary_await_in_return
- unnecessary_getters_setters
- prefer_const_literals_to_create_immutables
- no_literal_bool_comparisons
- use_truncating_division
- use_string_buffers
- unnecessary_statements
- unnecessary_nullable_for_final_variable_declarations
- tighten_type_of_initializing_formals
- prefer_void_to_null
- prefer_spread_collections
- unnecessary_to_list_in_spreads
- prefer_for_elements_to_map_fromIterable
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options

3
android/.gitignore vendored
View File

@@ -11,3 +11,6 @@ GeneratedPluginRegistrant.java
key.properties
**/*.keystore
**/*.jks
/build
/.kotlin

View File

@@ -1,110 +0,0 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
def keystorePropertiesFile = rootProject.file('key.properties')
def keystoreProperties = new Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
def _filePath = System.getenv("KEYSTORE") ?: keystoreProperties["storeFile"]
def _storeFile = _filePath != null ? file(_filePath) : null
def _storePassword = System.getenv("KEYSTORE_PASSWORD") ?: keystoreProperties["storePassword"]
def _keyAlias = System.getenv("KEY_ALIAS") ?: keystoreProperties["keyAlias"]
def _keyPassword = System.getenv("KEY_PASSWORD") ?: keystoreProperties["keyPassword"]
android {
compileSdkVersion flutter.compileSdkVersion
namespace 'com.example.piliplus'
ndkVersion flutter.ndkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.piliplus"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
minSdkVersion flutter.minSdkVersion
multiDexEnabled true
}
signingConfigs {
// 添加签名配置
if(_storeFile != null) {
release {
// 配置密钥库文件的位置、别名、密码等信息
storeFile _storeFile
storePassword _storePassword
keyAlias _keyAlias
keyPassword _keyPassword
v1SigningEnabled true
v2SigningEnabled true
}
}
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig _storeFile != null ? signingConfigs.release : signingConfigs.debug
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
debug {
applicationIdSuffix ".debug"
}
}
project.android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.versionCodeOverride = variant.versionCode
}
}
}
flutter {
source '../..'
}
dependencies {
}

View File

@@ -0,0 +1,87 @@
import com.android.build.gradle.internal.api.ApkVariantOutputImpl
import org.jetbrains.kotlin.konan.properties.Properties
plugins {
id("com.android.application")
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
}
android {
namespace = "com.example.piliplus"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
defaultConfig {
applicationId = "com.example.piliplus"
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
packagingOptions.jniLibs.useLegacyPackaging = true
val keyProperties = Properties().also {
val properties = rootProject.file("key.properties")
if (properties.exists())
it.load(properties.inputStream())
}
val config = keyProperties.getProperty("storeFile")?.let {
signingConfigs.create("release") {
storeFile = file(it)
storePassword = keyProperties.getProperty("storePassword")
keyAlias = keyProperties.getProperty("keyAlias")
keyPassword = keyProperties.getProperty("keyPassword")
enableV1Signing = true
enableV2Signing = true
}
}
buildTypes {
all {
signingConfig = config ?: signingConfigs["debug"]
}
release {
if (project.hasProperty("dev")) {
applicationIdSuffix = ".dev"
resValue(
type = "string",
name = "app_name",
value = "PiliPlus dev",
)
}
// proguardFiles(
// getDefaultProguardFile("proguard-android-optimize.txt"),
// "proguard-rules.pro"
// )
}
debug {
applicationIdSuffix = ".debug"
}
}
applicationVariants.all {
val variant = this
variant.outputs.forEach { output ->
(output as ApkVariantOutputImpl).versionCodeOverride = flutter.versionCode
}
}
}
flutter {
source = "../.."
}

View File

@@ -1 +1,3 @@
-keep class com.yalantis.ucrop.util.RectUtils { *; }
-dontwarn javax.annotation.Nullable
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.OpenSSLProvider

View File

@@ -0,0 +1,3 @@
<resources>
<string name="app_name">PiliPlus debug</string>
</resources>

View File

@@ -36,11 +36,11 @@
</queries>
<application
android:label="PiliPlus"
android:label="@string/app_name"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
xmlns:tools="http://schemas.android.com/tools"
android:enableOnBackInvokedCallback="true"
android:enableOnBackInvokedCallback="false"
android:allowBackup="false"
android:fullBackupContent="false"
tools:replace="android:allowBackup">
@@ -109,11 +109,13 @@
<data android:host="uper" />
<data android:host="article"
android:pathPattern="/readlist" />
<data android:host="opus" />
<data android:host="advertise" android:path="/home" />
<data android:host="clip" />
<data android:host="search" />
<data android:host="search" android:pathPattern=".*" />
<data android:host="stardust-search" />
<data android:host="music" />
<data android:host="cheese" />
<data android:host="bangumi"
android:pathPattern="/season.*" />
<data android:host="bangumi" android:pathPattern="/.*" />
@@ -145,7 +147,6 @@
<data android:host="video" />
<data android:host="story" />
<data android:host="podcast" />
<data android:host="search" />
<data android:host="main" android:path="/favorite" />
<data android:host="pgc" android:path="/theater/match" />
<data android:host="pgc" android:path="/theater/square" />
@@ -160,7 +161,6 @@
<data android:host="history" />
<data android:host="charge" android:path="/rank" />
<data android:host="assistant" />
<data android:host="assistant" />
<data android:host="feedback" />
<data android:host="auth" android:path="/launch" />
</intent-filter>
@@ -177,7 +177,6 @@
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Ucrop.CropTheme"/>
<receiver
@@ -211,4 +210,5 @@
-->
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
</manifest>

View File

@@ -1,116 +0,0 @@
package com.example.piliplus
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import com.ryanheise.audioservice.AudioServiceActivity
import android.content.ComponentName
import android.content.Intent
import android.content.res.Configuration
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.view.WindowManager.LayoutParams
import kotlin.system.exitProcess
class MainActivity : AudioServiceActivity() {
private lateinit var methodChannel: MethodChannel
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
methodChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "PiliPlus")
methodChannel.setMethodCallHandler { call, result ->
if (call.method == "back") {
back()
} else if (call.method == "biliSendCommAntifraud") {
try {
val action = call.argument<Int>("action") ?: 0
val oid = call.argument<Number>("oid") ?: 0L
val type = call.argument<Int>("type") ?: 0
val rpid = call.argument<Number>("rpid") ?: 0L
val root = call.argument<Number>("root") ?: 0L
val parent = call.argument<Number>("parent") ?: 0L
val ctime = call.argument<Number>("ctime") ?: 0L
val commentText = call.argument<String>("comment_text") ?: ""
val pictures = call.argument<String?>("pictures")
val sourceId = call.argument<String>("source_id") ?: ""
val uid = call.argument<Number>("uid") ?: 0L
val cookies = call.argument<List<String>>("cookies") ?: emptyList<String>()
val intent = Intent().apply {
component = ComponentName("icu.freedomIntrovert.biliSendCommAntifraud", "icu.freedomIntrovert.biliSendCommAntifraud.ByXposedLaunchedActivity")
putExtra("action", action)
putExtra("oid", oid.toLong())
putExtra("type", type)
putExtra("rpid", rpid.toLong())
putExtra("root", root.toLong())
putExtra("parent", parent.toLong())
putExtra("ctime", ctime.toLong())
putExtra("comment_text", commentText)
if(pictures != null)
putExtra("pictures", pictures)
putExtra("source_id", sourceId)
putExtra("uid", uid.toLong())
putStringArrayListExtra("cookies", ArrayList(cookies))
}
startActivity(intent)
} catch (e: Exception) {}
} else if (call.method == "linkVerifySettings") {
try {
val intent = Intent(android.provider.Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS,
Uri.parse("package:" + context.packageName))
context.startActivity(intent)
} catch (t: Throwable) {
try {
val intent = Intent("android.intent.action.MAIN", Uri.parse("package:" + context.packageName))
intent.setClassName("com.android.settings", "com.android.settings.applications.InstalledAppOpenByDefaultActivity")
context.startActivity(intent)
} catch (t2: Throwable) {
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.parse("package:" + context.packageName))
context.startActivity(intent)
}
}
} else {
result.notImplemented()
}
}
}
private fun back() {
val intent = Intent(Intent.ACTION_MAIN).apply {
addCategory(Intent.CATEGORY_HOME)
flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
startActivity(intent)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
window.attributes.layoutInDisplayCutoutMode =
LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
}
}
override fun onDestroy() {
super.onDestroy()
android.os.Process.killProcess(android.os.Process.myPid())
exitProcess(0)
}
override fun onUserLeaveHint() {
super.onUserLeaveHint()
methodChannel.invokeMethod("onUserLeaveHint", null)
}
override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean, newConfig: Configuration?) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
MethodChannel(
flutterEngine!!.getDartExecutor()!!.getBinaryMessenger(),
"floating"
).invokeMethod("onPipChanged", isInPictureInPictureMode)
}
}

View File

@@ -0,0 +1,179 @@
package com.example.piliplus
import android.app.PictureInPictureParams
import android.app.SearchManager
import android.content.ComponentName
import android.content.Intent
import android.content.pm.PackageManager
import android.content.res.Configuration
import android.os.Build
import android.os.Bundle
import android.provider.MediaStore
import android.provider.Settings
import android.view.WindowManager.LayoutParams
import androidx.core.net.toUri
import com.ryanheise.audioservice.AudioServiceActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import kotlin.system.exitProcess
class MainActivity : AudioServiceActivity() {
private lateinit var methodChannel: MethodChannel
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
methodChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "PiliPlus")
methodChannel.setMethodCallHandler { call, result ->
when (call.method) {
"back" -> back();
"biliSendCommAntifraud" -> {
try {
val action = call.argument<Int>("action") ?: 0
val oid = call.argument<Number>("oid") ?: 0L
val type = call.argument<Int>("type") ?: 0
val rpid = call.argument<Number>("rpid") ?: 0L
val root = call.argument<Number>("root") ?: 0L
val parent = call.argument<Number>("parent") ?: 0L
val ctime = call.argument<Number>("ctime") ?: 0L
val commentText = call.argument<String>("comment_text") ?: ""
val pictures = call.argument<String?>("pictures")
val sourceId = call.argument<String>("source_id") ?: ""
val uid = call.argument<Number>("uid") ?: 0L
val cookies = call.argument<List<String>>("cookies") ?: emptyList<String>()
val intent = Intent().apply {
component = ComponentName(
"icu.freedomIntrovert.biliSendCommAntifraud",
"icu.freedomIntrovert.biliSendCommAntifraud.ByXposedLaunchedActivity"
)
putExtra("action", action)
putExtra("oid", oid.toLong())
putExtra("type", type)
putExtra("rpid", rpid.toLong())
putExtra("root", root.toLong())
putExtra("parent", parent.toLong())
putExtra("ctime", ctime.toLong())
putExtra("comment_text", commentText)
if (pictures != null)
putExtra("pictures", pictures)
putExtra("source_id", sourceId)
putExtra("uid", uid.toLong())
putStringArrayListExtra("cookies", ArrayList(cookies))
}
startActivity(intent)
} catch (_: Exception) {
}
}
"linkVerifySettings" -> {
val uri = ("package:" + context.packageName).toUri()
try {
val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
Intent(Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS, uri)
} else {
Intent("android.intent.action.MAIN", uri).setClassName(
"com.android.settings",
"com.android.settings.applications.InstalledAppOpenByDefaultActivity"
)
}
context.startActivity(intent)
} catch (_: Throwable) {
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, uri)
context.startActivity(intent)
}
}
"music" -> {
val title = call.argument<String>("title")
val intent = Intent(MediaStore.INTENT_ACTION_MEDIA_SEARCH).apply {
putExtra(SearchManager.QUERY, title)
putExtra(MediaStore.EXTRA_MEDIA_TITLE, title)
call.argument<String?>("artist")
?.let { putExtra(MediaStore.EXTRA_MEDIA_ARTIST, it) }
call.argument<String?>("album")
?.let { putExtra(MediaStore.EXTRA_MEDIA_ALBUM, it) }
addCategory(Intent.CATEGORY_DEFAULT)
}
try {
if (packageManager.resolveActivity(
intent,
PackageManager.MATCH_DEFAULT_ONLY
) != null
) {
startActivity(intent)
result.success(true)
return@setMethodCallHandler
}
} catch (_: Throwable) {
}
try {
intent.action = MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH
if (packageManager.resolveActivity(
intent,
PackageManager.MATCH_DEFAULT_ONLY
) != null
) {
startActivity(intent)
result.success(true)
return@setMethodCallHandler
}
} catch (_: Throwable) {
}
result.success(false)
}
"setPipAutoEnterEnabled" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val params = PictureInPictureParams.Builder()
.setAutoEnterEnabled(call.argument<Boolean>("autoEnable") ?: false)
.build()
setPictureInPictureParams(params)
}
}
else -> result.notImplemented()
}
}
}
private fun back() {
val intent = Intent(Intent.ACTION_MAIN).apply {
addCategory(Intent.CATEGORY_HOME)
flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
startActivity(intent)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
window.attributes.layoutInDisplayCutoutMode =
LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
}
}
override fun onDestroy() {
stopService(Intent(this, com.ryanheise.audioservice.AudioService::class.java))
super.onDestroy()
android.os.Process.killProcess(android.os.Process.myPid())
exitProcess(0)
}
override fun onUserLeaveHint() {
super.onUserLeaveHint()
methodChannel.invokeMethod("onUserLeaveHint", null)
}
override fun onPictureInPictureModeChanged(
isInPictureInPictureMode: Boolean,
newConfig: Configuration?
) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
MethodChannel(
flutterEngine!!.dartExecutor.binaryMessenger,
"floating"
).invokeMethod("onPipChanged", isInPictureInPictureMode)
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Ucrop.CropTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
</style>
</resources>

View File

@@ -0,0 +1,3 @@
<resources>
<string name="app_name">PiliPlus</string>
</resources>

View File

@@ -1,59 +0,0 @@
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
afterEvaluate { project ->
if (project.hasProperty('android')) {
project.android {
if (namespace == null) {
namespace project.group
}
}
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions {
jvmTarget = '17'
}
}
}
Integer pluginCompileSdk = project.android.compileSdk
if (pluginCompileSdk != null) {
if (pluginCompileSdk < 31) {
project.logger.error(
"Warning: Overriding compileSdk version in Flutter plugin: "
+ project.name
+ " from "
+ pluginCompileSdk
+ " to 31 (to work around https://issuetracker.google.com/issues/199180389)."
+ "\nIf there is not a new version of " + project.name + ", consider filing an issue against "
+ project.name
+ " to increase their compileSdk to the latest (otherwise try updating to the latest version)."
)
project.android {
compileSdk 31
}
}
}
}
}
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}

67
android/build.gradle.kts Normal file
View File

@@ -0,0 +1,67 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
allprojects {
repositories {
google()
mavenCentral()
}
}
val newBuildDir: Directory =
rootProject.layout.buildDirectory
.dir("../../build")
.get()
rootProject.layout.buildDirectory.value(newBuildDir)
subprojects {
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
project.layout.buildDirectory.value(newSubprojectBuildDir)
}
subprojects {
afterEvaluate {
if (project.extensions.findByName("android") != null) {
val androidExtension =
project.extensions.getByName("android") as com.android.build.gradle.BaseExtension
if (androidExtension.namespace == null) {
androidExtension.namespace = project.group.toString()
}
androidExtension.compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
project.tasks.withType<KotlinCompile>().configureEach {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
val pluginCompileSdkStr = androidExtension.compileSdkVersion
val pluginCompileSdk = pluginCompileSdkStr
?.removePrefix("android-")
?.toIntOrNull()
if (pluginCompileSdk != null && pluginCompileSdk < 31) {
project.logger.error(
"Warning: Overriding compileSdk version in Flutter plugin: ${project.name} " +
"from $pluginCompileSdk to 31 (to work around https://issuetracker.google.com/issues/199180389).\n" +
"If there is not a new version of ${project.name}, consider filing an issue against ${project.name} " +
"to increase their compileSdk to the latest (otherwise try updating to the latest version)."
)
androidExtension.setCompileSdkVersion(31)
}
}
project.buildDir = File(rootProject.buildDir, project.name)
}
}
subprojects {
project.evaluationDependsOn(":app")
}
tasks.register<Delete>("clean") {
delete(rootProject.layout.buildDirectory)
}

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

View File

@@ -1,25 +0,0 @@
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version '8.4.1' apply false
id "org.jetbrains.kotlin.android" version "1.9.22" apply false
}
include ":app"

View File

@@ -0,0 +1,26 @@
pluginManagement {
val flutterSdkPath =
run {
val properties = java.util.Properties()
file("local.properties").inputStream().use { properties.load(it) }
val flutterSdkPath = properties.getProperty("flutter.sdk")
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
flutterSdkPath
}
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.12.1" apply false
id("org.jetbrains.kotlin.android") version "2.2.20" apply false
}
include(":app")

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

BIN
assets/images/loading.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

View File

@@ -0,0 +1,16 @@
Package: PiliPlus
Version: version_need_change
Maintainer: gh-MzA4Nzk <githubaccount2333@proton.me>
Original-Maintainer: bggRGjQaUbCoE <githubaccount56556@proton.me>
Section: x11
Priority: optional
Architecture: amd64
Essential: no
Installed-Size: size_need_change
Description: third-party Bilibili client developed in Flutter
Homepage: https://github.com/bggRGjQaUbCoE/PiliPlus
Depends: libgtk-3-0t64,
libmpv2,
gir1.2-ayatanaappindicator3-0.1,
libayatana-appindicator3-1

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
ln -sf /opt/PiliPlus/piliplus /usr/bin/piliplus
chmod +x /usr/bin/piliplus
if [ $1 == "configure" ] && [ -x /usr/bin/update-mime-database ]; then
echo "updating mime database..."
update-mime-database /usr/share/mime || true
fi
if [ $1 == "configure" ] && [ -x /usr/bin/gtk-update-icon-cache ]; then
echo "updating icon cache..."
gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor || true
fi
if [ $1 == "configure" ] && [ -x /usr/bin/update-desktop-database ]; then
echo "configure desktop database..."
update-desktop-database -q /usr/share/applications || true
fi
exit 0

View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
rm /usr/bin/piliplus
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
if [ -x /usr/bin/update-desktop-database ]; then
echo "updating desktop database..."
update-desktop-database -q /usr/share/applications || true
fi
if [ -x /usr/bin/gtk-update-icon-cache ]; then
echo "updating icon cache..."
gtk-update-icon-cache -q -t /usr/share/icons/hicolor || true
fi
if [ -x /usr/bin/update-mime-database ]; then
echo "updating mime database..."
update-mime-database /usr/share/mime || true
fi
fi
if [ $1 = "purge" ]; then
echo "Removing user data..."
rm -rf /home/*/.local/share/com.example.PiliPlus || true
rm -rf /root/.local/share/com.example.PiliPlus || true
fi
exit 0

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
echo "Stopping PiliPlus if running..."
pkill -x piliplus || true
fi
exit 0

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Name=PiliPlus
Comment=A third-party Bilibili Client developed in Flutter
Comment[zh_CN]=使用 Flutter 开发的 BiliBili 第三方客户端
Exec=piliplus
Icon=piliplus
Terminal=false
StartupWMClass=com.example.piliplus
Categories=Video;AudioVideo;Player;

View File

@@ -1,11 +0,0 @@
## 1.0.0
### 初始版本
+ 直播、推荐、动态功能
+ 投稿、番剧播放功能
+ 播放器手势支持
+ 画质、音质、解码格式支持
+ 点赞、投币、收藏功能
+ 关注/取关、用户主页功能
+ 评论功能
+ 历史记录、稍后再看功能

View File

@@ -1,7 +0,0 @@
## 1.0.1
### 修复
+ 升级播放器依赖
+ android平台 AV1格式视频支持
+ 视频全屏功能

View File

@@ -1,4 +0,0 @@
## 1.0.10
### 修复
+ 长按倍速抬起后未恢复默认倍速

View File

@@ -1,26 +0,0 @@
## 1.0.11
### 新功能
+ 适配了原生媒体通知栏 @Daydreamer-riri
+ 视频主题图标 @Daydreamer-riri
+ 关闭软件后自动画中画播放
+ UP主分组管理
+ md2样式底栏
+
### 修复
+ 历史记录记忆播放
+ 部分类型视频连播
+ 播放速度选择框不支持返回手势
+ 播放速度选择框不支持返回手势
+ 视频播放速度总是显示1.0X
+ 评论页面计数错误
+ 退出视频还有声音
### 优化
+ 视频加载速度
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,11 +0,0 @@
## 1.0.12
### 修复
+ iOS端视频播放时没有声音
+ 超过6分钟弹幕不显示
+ 视频详情页网络异常
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,22 +0,0 @@
## 1.0.13
### 新功能
+ 视频详情页稍后再看
+ 发送弹幕 感谢@orz12
+ 消息展示
+ up主页显示获赞数
+ up主页显示合集
+ 视频详情页「ai总结」增加开关
### 修复
+ 首页推荐问题(需要重新登录)
+ 长按倍速逻辑
+ 视频详情页网络异常
### 优化
+ 设置面板样式 感谢@GuMengYu @KoolShow
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,28 +0,0 @@
## 1.0.14
圣诞节快乐~ 🎉
大部分内容由@orz12提供,感谢👏
### 修复
+ 全屏弹幕消失
+ iOS全屏/退出全屏视频暂停
+ 个人主页关注状态
+ 视频合集向下滑动UI问题
+ 媒体库滑动底栏不隐藏
+ 个人主页动态加载问题 * 2
+ 未登录状态访问个人主页异常
+ 视频搜索标题特殊字符转义
+ iOS闪退
+ 消息页面夜间模式异常
+ 消息页面含有撤回消息时异常
+ 弹幕速度
### 优化
+ 全屏播放方案优化
+ 弹幕加载逻辑优化
+ 点赞、投币逻辑优化
+ 进度条及播放时间渲染优化
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,22 +0,0 @@
## 1.0.15
元旦快乐~ 🎉
### 功能
+ 转发动态评论展示
+ 推荐、最热、收藏视频增肌日期显示
### 修复
+ 全屏播放相关问题
+ 评论区@用户展示问题
+ 登录状态闪退问题
+ pip意外触发问题
+ 动态页tab切换样式问题
### 优化
+ 首页默认使用web端推荐
+ 取消iOS路由切换效果
+ 视频分享中添加Up主
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,15 +0,0 @@
## 1.0.16
### 功能
+ toast 背景支持透明度调节
### 修复
+ web端推荐未展示【已关注】
+ up主动态页异常
+ 未打开自动播放时,视频详情页异常
+ 视频暂停状态取消自动ip
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,39 +0,0 @@
## 1.0.17
### 功能
+ 视频全屏时隐藏进度条
+ 动态内容增加投稿跳转
+ 未开启自动播放时点击封面播放
+ 弹幕发送标识
+ 定时关闭
+ 推荐视频卡片拉黑up功能
+ 首页tabbar编辑排序
### 修复
+ 连续跳转搜索页未刷新
+ 搜索结果为空时页面异常
+ 评论区链接解析
+ 视频全屏状态栏背景色
+ 私信对话气泡位置
+ 设置up关注分组样式
+ 每次推荐请求数据相同
+ iOS代理网络异常
+ 双击切换播放状态无声
+ 设置自定义倍速白屏
+ 免登录查看1080p
### 优化
+ 首页web端推荐观看数展示
+ 首页web端推荐接口更新
+ 首页样式
+ 搜索页跳转
+ 弹幕资源优化
+ 图片渲染占用内存优化(部分)
+ 两次返回退出应用
+ schame 补充
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,16 +0,0 @@
## 1.0.18
### 功能
### 修复
### 优化
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,15 +0,0 @@
## 1.0.19
### 修复
+ 视频404、评论加载错误
+ bvav转换
### 优化
+ 视频详情页内存占用
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,19 +0,0 @@
## 1.0.2
### 新功能
+ 自动检查更新
+ 封面图片保存
+ 动态跳转番剧
+ 历史记录番剧记忆播放
+ 一键清空稍后再看
### 修复
+ 切换分P cid未切换
+ cookie存储问题
+ 登录/退出登录问题
### 优化
+ 页面空/异常状态样式
+ 退出登录提示
+ 请求节流
+ 全屏播放

View File

@@ -1,19 +0,0 @@
## 1.0.3
建议卸载1.0.2版本,重新安装
### 新功能
+ 底部播放进度条设置
+ 复制图片链接
### 修复
+ 用户数据格式修改
+ video Fit
+ 没有audio 资源的视频异常
+ 评论区域图片无法点击
+ 视频进度条拖动问题
### 优化
+ 页面空/异常状态样式
+ 部分页面样式
+ 图片预览页面样式

View File

@@ -1,21 +0,0 @@
## 1.0.4
### 新功能
+ 热搜刷新
+ 视频搜索排序、筛选
+ app字体大小自定义
+ app主题色自定义
+ 「课堂」类动态渲染
### 修复
+ 搜索词联想richText渲染异常
+ 部分动态点赞异常
+ 默认视频解码格式
+ 搜索页面返回搜索词未清空
+ 动态详情评论加载异常
+ 动态页面下拉刷新数据异常
### 优化
+ 一些样式修改
+ 取消热搜词缓存

View File

@@ -1,30 +0,0 @@
## 1.0.5
主要是bug修复跟一部分小功能弹幕功能需要下一版。
问题反馈请前往QQ频道或提交issues。
感谢🙏酷友「无力感*」「斤斤计较呀」「Pseudopamine」
### 新功能
+ 高帧率支持
+ 默认评论排序设置
+ 默认动态类别设置
+ 动态合集查看
+ 同时观看人数
+ iOS路由切换效果
### 修复
+ 收藏夹翻页
+ 首页搜索框频繁点击消失
+ 评论排序切换空白
+ 快速返回首页
+ 重复进入个人中心页面数据未刷新
+ 动态goods数据异常
+ 大会员切换番剧
+ 高画质codes匹配
### 优化
+ 倍速选择
+ 播放器亮度记忆
+ 下载对应版本apk

View File

@@ -1,34 +0,0 @@
## 1.0.6
问题反馈、功能建议请查看「关于」页面。
### 新功能
+ 首页单列布局
+ 首页推荐展示播放量、弹幕数
+ 简单弹幕功能实现(持续开发中...
+ 评论区搜索关键词开关 issues#46
+ 热搜榜隐藏功能 issues#35
+ 自动全屏 issues#37
+ 快速收藏功能
+ 双击快进/快退开关
+ 评论链接跳转视频
+ 支持移除单个稍后再看
+ app scheme外链跳转
### 修复
+ 杜比、无损音频切换
+ 收藏夹展示 issues#42
+ 搜索建议次 issues#47
### 优化
+ 倍速选择优化
+ 导航条沉浸
+ 取消Hero动画
+ 视频锁定逻辑
+ 登录逻辑优化
+ 图片预览样式
+ +评论区用户点击范围
+ 关注、粉丝页面优化
+ 关闭自动播放时播放器初始化逻辑

View File

@@ -1,22 +0,0 @@
## 1.0.7
默认倍速、直播弹幕、专栏等功能开发中
### 新功能
+ 弹幕设置、屏蔽功能
+ 不是很完美的后台播放功能
+ 不是很完美的画中画(pip)功能Android端
### 修复
+ 动态页面加载异常
+ 网络异常时页面空白
+ 竖屏全屏状态栏问题
+ iOS端代理请求异常
### 优化
+ 图片预览
+ 全屏播放时自动旋转
+ 转发内容增加视频标题
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,24 +0,0 @@
## 1.0.8
直播弹幕、循环播放等功能开发中
### 新功能
+ 用户拉黑功能
+ gif图片保存
+ 删除已看历史记录
### 修复
+ 弹幕数量较少
+ 弹幕屏蔽设置自动记忆
+ 动态页面渲染
+ 用户主页数据错乱
+ 大家都在搜空白
+ 默认自动全屏,顶部操作栏丢失
### 优化
+ 全屏状态栏区域显示优化
+ 图片保存至PiliPala文件夹
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

View File

@@ -1,28 +0,0 @@
## 1.0.9
### 新功能
+ 自定义倍速、默认倍速
+ 历史记录搜索
+ 收藏夹搜索
+ 历史记录多选删除
+ 视频循环播放
+ 免登录看1080P
+ 评论区视频链接跳转
+ up主分组
+ up主投稿搜索
### 修复
+ 搜索视频标题乱码
+ 屏幕帧率
+ 动态页面渲染
### 优化
+ 快进手势
+ 视频简介链接匹配
+ 视频全屏时安全区域
更多更新日志可在Github上查看
问题反馈、功能建议请查看「关于」页面。

1
distribute_options.yaml Normal file
View File

@@ -0,0 +1 @@
output: dist/

View File

@@ -1,10 +0,0 @@
PiliPlus is a third-party Bilibili client developed in Flutter,
fork from PiliPalaX (https://github.com/orz12/PiliPalaX).
Top Features:
* List of recommended videos
* List of hottest videos
* Popular live streams
* List of bangumis
* Block videos from blacklisted users

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 526 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -1 +0,0 @@
A third-party Bilibili client developed in Flutter

View File

@@ -1 +0,0 @@
PiliPlus

View File

@@ -1,10 +0,0 @@
PiliPlus 是使用 Flutter 开发的 BiliBili 第三方客户端,
是由PiliPalaX仓库fork并进行了差异化开发的版本
主要功能:
* 推荐视频列表
* 最热视频列表
* 热门直播
* 番剧列表
* 屏蔽黑名单内用户视频

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 526 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -1 +0,0 @@
使用 Flutter 开发的 BiliBili 第三方客户端

View File

@@ -1 +0,0 @@
PiliPlus

View File

@@ -20,7 +20,5 @@
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>11.0</string>
</dict>
</plist>

View File

@@ -1,131 +1,197 @@
PODS:
- appscheme (1.0.4):
- app_links (7.0.0):
- Flutter
- audio_service (0.0.1):
- Flutter
- FlutterMacOS
- audio_session (0.0.1):
- Flutter
- auto_orientation (0.0.1):
- Flutter
- battery_plus (1.0.0):
- Flutter
- chat_bottom_container (0.0.1):
- Flutter
- connectivity_plus (0.0.1):
- Flutter
- ReachabilitySwift
- device_info_plus (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.9):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.9)
- DKImagePickerController/PhotoGallery (4.3.9):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.9)
- DKPhotoGallery (0.0.19):
- DKPhotoGallery/Core (= 0.0.19)
- DKPhotoGallery/Model (= 0.0.19)
- DKPhotoGallery/Preview (= 0.0.19)
- DKPhotoGallery/Resource (= 0.0.19)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.19):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.19):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Flutter (1.0.0)
- flutter_inappwebview_ios (0.0.1):
- Flutter
- flutter_inappwebview_ios/Core (= 0.0.1)
- OrderedSet (~> 6.0.3)
- flutter_inappwebview_ios/Core (0.0.1):
- Flutter
- OrderedSet (~> 6.0.3)
- flutter_mailer (0.0.1):
- Flutter
- flutter_native_splash (2.4.3):
- Flutter
- flutter_volume_controller (0.0.1):
- Flutter
- fluttertoast (0.0.2):
- Flutter
- Toast
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- gt3_flutter_plugin (0.0.8):
- gt3_flutter_plugin (0.0.9):
- Flutter
- GT3Captcha-iOS
- GT3Captcha-iOS (0.15.8.3)
- image_cropper (0.0.5):
- Flutter
- TOCropViewController (~> 3.1.1)
- image_picker_ios (0.0.1):
- Flutter
- live_photo_maker (0.0.3):
- Flutter
- media_kit_libs_ios_video (1.0.4):
- Flutter
- media_kit_native_event_loop (1.0.0):
- Flutter
- media_kit_video (0.0.1):
- Flutter
- OrderedSet (6.0.3)
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
- permission_handler_apple (9.3.0):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.1.1):
- Flutter
- ReachabilitySwift (5.0.0)
- saver_gallery (0.0.1):
- Flutter
- screen_brightness_ios (0.1.0):
- Flutter
- SDWebImage (5.21.3):
- SDWebImage/Core (= 5.21.3)
- SDWebImage/Core (5.21.3)
- share_plus (0.0.1):
- Flutter
- sqflite (0.0.3):
- shared_preferences_foundation (0.0.1):
- Flutter
- FMDB (>= 2.7.5)
- status_bar_control (3.2.1):
- FlutterMacOS
- sqflite_darwin (0.0.4):
- Flutter
- system_proxy (0.0.1):
- Flutter
- Toast (4.1.0)
- FlutterMacOS
- SwiftyGif (5.4.5)
- TOCropViewController (3.1.1)
- url_launcher_ios (0.0.1):
- Flutter
- volume_controller (0.0.1):
- Flutter
- wakelock_plus (0.0.1):
- Flutter
- webview_cookie_manager (0.0.1):
- Flutter
- webview_flutter_wkwebview (0.0.1):
- Flutter
DEPENDENCIES:
- appscheme (from `.symlinks/plugins/appscheme/ios`)
- audio_service (from `.symlinks/plugins/audio_service/ios`)
- app_links (from `.symlinks/plugins/app_links/ios`)
- audio_service (from `.symlinks/plugins/audio_service/darwin`)
- audio_session (from `.symlinks/plugins/audio_session/ios`)
- auto_orientation (from `.symlinks/plugins/auto_orientation/ios`)
- battery_plus (from `.symlinks/plugins/battery_plus/ios`)
- chat_bottom_container (from `.symlinks/plugins/chat_bottom_container/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`)
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
- flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- flutter_volume_controller (from `.symlinks/plugins/flutter_volume_controller/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- gt3_flutter_plugin (from `.symlinks/plugins/gt3_flutter_plugin/ios`)
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- live_photo_maker (from `.symlinks/plugins/live_photo_maker/ios`)
- media_kit_libs_ios_video (from `.symlinks/plugins/media_kit_libs_ios_video/ios`)
- media_kit_native_event_loop (from `.symlinks/plugins/media_kit_native_event_loop/ios`)
- media_kit_video (from `.symlinks/plugins/media_kit_video/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- saver_gallery (from `.symlinks/plugins/saver_gallery/ios`)
- screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`)
- share_plus (from `.symlinks/plugins/share_plus/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- status_bar_control (from `.symlinks/plugins/status_bar_control/ios`)
- system_proxy (from `.symlinks/plugins/system_proxy/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- volume_controller (from `.symlinks/plugins/volume_controller/ios`)
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
- webview_cookie_manager (from `.symlinks/plugins/webview_cookie_manager/ios`)
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
SPEC REPOS:
trunk:
- FMDB
- DKImagePickerController
- DKPhotoGallery
- GT3Captcha-iOS
- ReachabilitySwift
- Toast
- OrderedSet
- SDWebImage
- SwiftyGif
- TOCropViewController
EXTERNAL SOURCES:
appscheme:
:path: ".symlinks/plugins/appscheme/ios"
app_links:
:path: ".symlinks/plugins/app_links/ios"
audio_service:
:path: ".symlinks/plugins/audio_service/ios"
:path: ".symlinks/plugins/audio_service/darwin"
audio_session:
:path: ".symlinks/plugins/audio_session/ios"
auto_orientation:
:path: ".symlinks/plugins/auto_orientation/ios"
battery_plus:
:path: ".symlinks/plugins/battery_plus/ios"
chat_bottom_container:
:path: ".symlinks/plugins/chat_bottom_container/ios"
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/ios"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
Flutter:
:path: Flutter
flutter_inappwebview_ios:
:path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
flutter_mailer:
:path: ".symlinks/plugins/flutter_mailer/ios"
flutter_native_splash:
:path: ".symlinks/plugins/flutter_native_splash/ios"
flutter_volume_controller:
:path: ".symlinks/plugins/flutter_volume_controller/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
gt3_flutter_plugin:
:path: ".symlinks/plugins/gt3_flutter_plugin/ios"
image_cropper:
:path: ".symlinks/plugins/image_cropper/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
live_photo_maker:
:path: ".symlinks/plugins/live_photo_maker/ios"
media_kit_libs_ios_video:
:path: ".symlinks/plugins/media_kit_libs_ios_video/ios"
media_kit_native_event_loop:
@@ -134,8 +200,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/media_kit_video/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
saver_gallery:
@@ -144,57 +208,55 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/screen_brightness_ios/ios"
share_plus:
:path: ".symlinks/plugins/share_plus/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
status_bar_control:
:path: ".symlinks/plugins/status_bar_control/ios"
system_proxy:
:path: ".symlinks/plugins/system_proxy/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
sqflite_darwin:
:path: ".symlinks/plugins/sqflite_darwin/darwin"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
volume_controller:
:path: ".symlinks/plugins/volume_controller/ios"
wakelock_plus:
:path: ".symlinks/plugins/wakelock_plus/ios"
webview_cookie_manager:
:path: ".symlinks/plugins/webview_cookie_manager/ios"
webview_flutter_wkwebview:
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
SPEC CHECKSUMS:
appscheme: b1c3f8862331cb20430cf9e0e4af85dbc1572ad8
audio_service: f509d65da41b9521a61f1c404dd58651f265a567
audio_session: 4f3e461722055d21515cf3261b64c973c062f345
auto_orientation: 102ed811a5938d52c86520ddd7ecd3a126b5d39d
connectivity_plus: 07c49e96d7fc92bc9920617b83238c4d178b446a
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83
flutter_volume_controller: e4d5832f08008180f76e30faf671ffd5a425e529
fluttertoast: 31b00dabfa7fb7bacd9e7dbee580d7a2ff4bf265
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
gt3_flutter_plugin: bfa1f26e9a09dc00401514be5ed437f964cabf23
app_links: a754cbec3c255bd4bbb4d236ecc06f28cd9a7ce8
audio_service: aa99a6ba2ae7565996015322b0bb024e1d25c6fd
audio_session: 9bb7f6c970f21241b19f5a3658097ae459681ba0
auto_orientation: a1600c9ed72e6e96982fb4e1214463343342432a
battery_plus: b42253f6d2dde71712f8c36fef456d99121c5977
chat_bottom_container: f1eb8323db77a87db50f361142c679f11e892d1b
connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd
device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99
flutter_mailer: 3a8cd4f36c960fb04528d5471097270c19fec1c4
flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf
flutter_volume_controller: c2be490cb0487e8b88d0d9fc2b7e1c139a4ebccb
fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1
gt3_flutter_plugin: 37090e5fa66ff2a52939eb9d208fc36fa49d36e5
GT3Captcha-iOS: 5e3b1077834d8a9d6f4d64a447a30af3e14affe6
media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1
media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a
media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e
package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
saver_gallery: 2b4e584106fde2407ab51560f3851564963e6b78
screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625
share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5
sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a
status_bar_control: 7c84146799e6a076315cc1550f78ef53aae3e446
system_proxy: bec1a5c5af67dd3e3ebf43979400a8756c04cc44
Toast: ec33c32b8688982cecc6348adeae667c1b9938da
url_launcher_ios: bf5ce03e0e2088bad9cc378ea97fa0ed5b49673b
volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9
wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47
webview_cookie_manager: eaf920722b493bd0f7611b5484771ca53fed03f7
webview_flutter_wkwebview: 2e2d318f21a5e036e2c3f26171342e95908bd60a
image_cropper: e405d3e44183f8e8edbec2e49b01ff9c819c7ac8
image_picker_ios: e0ece4aa2a75771a7de3fa735d26d90817041326
live_photo_maker: 29280ca88323bd5a33aafd00d98624d5cf522176
media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854
media_kit_native_event_loop: 5fba1a849a6c87a34985f1e178a0de5bd444a0cf
media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
saver_gallery: af2d0c762dafda254e0ad025ef0dabd6506cd490
screen_brightness_ios: 9953fd7da5bd480f1a93990daeec2eb42d4f3b52
SDWebImage: 16309af6d214ba3f77a7c6f6fdda888cb313a50a
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
TOCropViewController: 9002a9b12d8104d7478cdc306d80f0efea7fe2c5
url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b
wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556
PODFILE CHECKSUM: 637cd290bed23275b5f5ffcc7eb1e73d0a5fb2be
PODFILE CHECKSUM: f62db4fb414ebdecb264109948f76dfef35fdc3d
COCOAPODS: 1.14.3
COCOAPODS: 1.16.2

View File

@@ -156,7 +156,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1430;
LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1510"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -48,6 +48,7 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
enableGPUValidationMode = "1"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">

View File

@@ -1,14 +1,17 @@
import UIKit
import Flutter
import UIKit
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
@main
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
application.applicationSupportsShakeToEdit = false // Disable shake to undo
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
}
}

View File

@@ -2,6 +2,27 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneClassName</key>
<string>UIWindowScene</string>
<key>UISceneDelegateClassName</key>
<string>FlutterSceneDelegate</string>
<key>UISceneConfigurationName</key>
<string>flutter</string>
<key>UISceneStoryboardFile</key>
<string>Main</string>
</dict>
</array>
</dict>
</dict>
<key>FlutterDeepLinkingEnabled</key>
<false/>
<key>CFBundleDevelopmentRegion</key>
@@ -110,5 +131,13 @@
</array>
<key>UIStatusBarHidden</key>
<false/>
<key>NSLocalNetworkUsageDescription</key>
<string>需要访问本地网络以发现和连接 DLNA 投屏设备</string>
<key>NSBonjourServices</key>
<array>
<string>_ssdp._udp</string>
<string>_upnp._tcp</string>
<string>_http._tcp</string>
</array>
</dict>
</plist>

16
lib/build_config.dart Normal file
View File

@@ -0,0 +1,16 @@
abstract final class BuildConfig {
static const int versionCode = int.fromEnvironment(
'pili.code',
defaultValue: 1,
);
static const String versionName = String.fromEnvironment(
'pili.name',
defaultValue: 'SNAPSHOT',
);
static const int buildTime = int.fromEnvironment('pili.time');
static const String commitHash = String.fromEnvironment(
'pili.hash',
defaultValue: 'N/A',
);
}

56
lib/common/assets.dart Normal file
View File

@@ -0,0 +1,56 @@
abstract final class Assets {
static const digitalNum = 'digital_id_num';
static const logo = 'assets/images/logo/logo.png';
static const logo2 = 'assets/images/logo/logo_2.png';
static const logoIco = 'assets/images/logo/ico/app_icon.ico';
static const logoLarge = 'assets/images/logo/desktop/logo_large.png';
static const vipIcon = 'assets/images/big-vip.png';
static const avatarPlaceHolder = 'assets/images/noface.jpeg';
static const loading = 'assets/images/loading.png';
static const buffering = 'assets/images/loading.webp';
static const play = 'assets/images/play.png';
static const topicHeader = 'assets/images/topic-header-bg.png';
static const trendingBanner = 'assets/images/trending_banner.png';
static const ai = 'assets/images/ai.png';
static const livingChart = 'assets/images/live.gif';
static const livingStatic = 'assets/images/live.png';
static const livingRect = 'assets/images/live/live.gif';
static const livingBackground = 'assets/images/live/default_bg.webp';
static const thunder1 = 'assets/images/paycoins/ic_thunder_1.png';
static const thunder2 = 'assets/images/paycoins/ic_thunder_2.png';
static const thunder3 = 'assets/images/paycoins/ic_thunder_3.png';
static const notEnough = 'assets/images/paycoins/ic_22_not_enough_pay.png';
static const mario = 'assets/images/paycoins/ic_22_mario.png';
static const gunSister = 'assets/images/paycoins/ic_22_gun_sister.png';
static const payBox = 'assets/images/paycoins/ic_pay_coins_box.png';
static const coinsOne = 'assets/images/paycoins/ic_coins_one.png';
static const coinsTwo = 'assets/images/paycoins/ic_coins_two.png';
static const left = 'assets/images/paycoins/ic_left.png';
static const leftDisable = 'assets/images/paycoins/ic_left_disable.png';
static const right = 'assets/images/paycoins/ic_right.png';
static const rightDisable = 'assets/images/paycoins/ic_right_disable.png';
static const panelClose = 'assets/images/paycoins/ic_panel_close.png';
static const List<String> mpvAnime4KShaders = [
'Anime4K_Clamp_Highlights.glsl',
'Anime4K_Restore_CNN_VL.glsl',
'Anime4K_Upscale_CNN_x2_VL.glsl',
'Anime4K_AutoDownscalePre_x2.glsl',
'Anime4K_AutoDownscalePre_x4.glsl',
'Anime4K_Upscale_CNN_x2_M.glsl',
];
static const mpvAnime4KShadersLite = [
'Anime4K_Clamp_Highlights.glsl',
'Anime4K_Restore_CNN_M.glsl',
'Anime4K_Restore_CNN_S.glsl',
'Anime4K_Upscale_CNN_x2_M.glsl',
'Anime4K_AutoDownscalePre_x2.glsl',
'Anime4K_AutoDownscalePre_x4.glsl',
'Anime4K_Upscale_CNN_x2_S.glsl',
];
}

View File

@@ -1,279 +1,44 @@
import 'package:flutter/material.dart';
abstract final class Constants {
static const appName = 'PiliPlus';
static const sourceCodeUrl = 'https://github.com/bggRGjQaUbCoE/PiliPlus';
class StyleString {
static const double cardSpace = 8;
static const double safeSpace = 12;
static const BorderRadius mdRadius = BorderRadius.all(imgRadius);
static const Radius imgRadius = Radius.circular(10);
static const double aspectRatio = 16 / 10;
}
class Constants {
// 27eb53fc9058f8c3 移动端 Android
// 4409e2ce8ffd12b8 HD版
static const String appKey = 'dfca71928277209b';
// 59b43e04ad6965f34319062b478f83dd TV端
static const String appSec = 'b5475a8825547a4fc26c7d518eaaa02e';
static const String thirdSign = '04224646d1fea004e79606d3b038c84a';
static const String thirdApi =
'https://www.mcbbs.net/template/mcbbs/image/special_photo_bg.png';
// static const String thirdSign = '04224646d1fea004e79606d3b038c84a';
// static const String thirdApi =
// 'https://www.mcbbs.net/template/mcbbs/image/special_photo_bg.png';
static const String traceId =
'11111111111111111111111111111111:1111111111111111:0:0';
static const String userAgent =
'Mozilla/5.0 BiliDroid/1.46.2 (bbcallen@gmail.com) os/android model/vivo mobi_app/android_hd build/2001100 channel/yingyongbao innerVer/2001100 osVer/14 network/2';
'Mozilla/5.0 BiliDroid/2.0.1 (bbcallen@gmail.com) os/android model/android_hd mobi_app/android_hd build/2001100 channel/master innerVer/2001100 osVer/15 network/2';
static const String statistics =
'{"appId":5,"platform":3,"version":"1.46.2","abtest":""}';
'{"appId":5,"platform":3,"version":"2.0.1","abtest":""}';
// 请求时会自动encodeComponent
// app
static const String userAgentApp =
'Mozilla/5.0 BiliDroid/8.43.0 (bbcallen@gmail.com) os/android model/android mobi_app/android build/8430300 channel/bili innerVer/8430300 osVer/15 network/2';
static const String statisticsApp =
'{"appId":5,"platform":3,"version":"8.43.0","abtest":""}';
'Mozilla/5.0 BiliDroid/8.43.0 (bbcallen@gmail.com) os/android model/android mobi_app/android build/8430300 channel/master innerVer/8430300 osVer/15 network/2';
static const urlPattern =
r'https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]';
static const String statisticsApp =
'{"appId":1,"platform":3,"version":"8.43.0","abtest":""}';
static const baseHeaders = {
// 'referer': HttpString.baseUrl,
'env': 'prod',
'app-key': 'android64',
'x-bili-aurora-zone': 'sh001',
};
static final urlRegex = RegExp(
r'https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]',
);
static const goodsUrlPrefix = "https://gaoneng.bilibili.com/tetris";
// 超分辨率滤镜
static const List<String> mpvAnime4KShaders = [
'Anime4K_Clamp_Highlights.glsl',
'Anime4K_Restore_CNN_VL.glsl',
'Anime4K_Upscale_CNN_x2_VL.glsl',
'Anime4K_AutoDownscalePre_x2.glsl',
'Anime4K_AutoDownscalePre_x4.glsl',
'Anime4K_Upscale_CNN_x2_M.glsl'
];
// 超分辨率滤镜 (轻量)
static const mpvAnime4KShadersLite = [
'Anime4K_Clamp_Highlights.glsl',
'Anime4K_Restore_CNN_M.glsl',
'Anime4K_Restore_CNN_S.glsl',
'Anime4K_Upscale_CNN_x2_M.glsl',
'Anime4K_AutoDownscalePre_x2.glsl',
'Anime4K_AutoDownscalePre_x4.glsl',
'Anime4K_Upscale_CNN_x2_S.glsl'
];
//内容来自 https://passport.bilibili.com/web/generic/country/list
static List<Map<String, dynamic>> get internationalDialingPrefix => [
{"id": 1, "cname": "中国大陆", "country_id": "86"},
{"id": 5, "cname": "中国香港特别行政区", "country_id": "852"},
{"id": 2, "cname": "中国澳门特别行政区", "country_id": "853"},
{"id": 3, "cname": "中国台湾", "country_id": "886"},
{"id": 4, "cname": "美国", "country_id": "1"},
{"id": 6, "cname": "比利时", "country_id": "32"},
{"id": 7, "cname": "澳大利亚", "country_id": "61"},
{"id": 8, "cname": "法国", "country_id": "33"},
{"id": 9, "cname": "加拿大", "country_id": "1"},
{"id": 10, "cname": "日本", "country_id": "81"},
{"id": 11, "cname": "新加坡", "country_id": "65"},
{"id": 12, "cname": "韩国", "country_id": "82"},
{"id": 13, "cname": "马来西亚", "country_id": "60"},
{"id": 14, "cname": "英国", "country_id": "44"},
{"id": 15, "cname": "意大利", "country_id": "39"},
{"id": 16, "cname": "德国", "country_id": "49"},
{"id": 18, "cname": "俄罗斯", "country_id": "7"},
{"id": 19, "cname": "新西兰", "country_id": "64"}, //common:1-19
{"id": 153, "cname": "瓦利斯群岛和富图纳群岛", "country_id": "1681"},
{"id": 152, "cname": "葡萄牙", "country_id": "351"},
{"id": 151, "cname": "帕劳", "country_id": "680"},
{"id": 150, "cname": "诺福克岛", "country_id": "672"},
{"id": 149, "cname": "挪威", "country_id": "47"},
{"id": 148, "cname": "纽埃岛", "country_id": "683"},
{"id": 147, "cname": "尼日利亚", "country_id": "234"},
{"id": 146, "cname": "尼日尔", "country_id": "227"},
{"id": 145, "cname": "尼加拉瓜", "country_id": "505"},
{"id": 144, "cname": "尼泊尔", "country_id": "977"},
{"id": 143, "cname": "瑙鲁", "country_id": "674"},
{"id": 154, "cname": "格鲁吉亚", "country_id": "995"},
{"id": 155, "cname": "瑞典", "country_id": "46"},
{"id": 165, "cname": "沙特阿拉伯", "country_id": "966"},
{"id": 164, "cname": "桑给巴尔岛", "country_id": "259"},
{"id": 163, "cname": "塞舌尔共和国", "country_id": "248"},
{"id": 162, "cname": "塞浦路斯", "country_id": "357"},
{"id": 161, "cname": "塞内加尔", "country_id": "221"},
{"id": 160, "cname": "塞拉利昂", "country_id": "232"},
{"id": 159, "cname": "萨摩亚,东部", "country_id": "684"},
{"id": 158, "cname": "萨摩亚,西部", "country_id": "685"},
{"id": 157, "cname": "萨尔瓦多", "country_id": "503"},
{"id": 156, "cname": "瑞士", "country_id": "41"},
{"id": 166, "cname": "圣多美和普林西比", "country_id": "239"},
{"id": 142, "cname": "塞尔维亚", "country_id": "381"},
{"id": 141, "cname": "南非", "country_id": "27"},
{"id": 128, "cname": "毛里塔尼亚", "country_id": "222"},
{"id": 127, "cname": "毛里求斯", "country_id": "230"},
{"id": 126, "cname": "马歇尔岛", "country_id": "692"},
{"id": 125, "cname": "马提尼克岛", "country_id": "596"},
{"id": 124, "cname": "马其顿", "country_id": "389"},
{"id": 123, "cname": "马里亚纳岛", "country_id": "1670"},
{"id": 122, "cname": "马里", "country_id": "223"},
{"id": 121, "cname": "马拉维", "country_id": "265"},
{"id": 120, "cname": "马耳他", "country_id": "356"},
{"id": 119, "cname": "马尔代夫", "country_id": "960"},
{"id": 129, "cname": "蒙古", "country_id": "976"},
{"id": 130, "cname": "蒙特塞拉特岛", "country_id": "1664"},
{"id": 140, "cname": "纳米比亚", "country_id": "264"},
{"id": 139, "cname": "墨西哥", "country_id": "52"},
{"id": 138, "cname": "莫桑比克", "country_id": "258"},
{"id": 137, "cname": "摩纳哥", "country_id": "377"},
{"id": 136, "cname": "摩洛哥", "country_id": "212"},
{"id": 135, "cname": "摩尔多瓦", "country_id": "373"},
{"id": 134, "cname": "缅甸", "country_id": "95"},
{"id": 133, "cname": "密克罗尼西亚", "country_id": "691"},
{"id": 132, "cname": "秘鲁", "country_id": "51"},
{"id": 131, "cname": "孟加拉国", "country_id": "880"},
{"id": 118, "cname": "马达加斯加", "country_id": "261"},
{"id": 167, "cname": "圣卢西亚", "country_id": "1784"},
{"id": 216, "cname": "智利", "country_id": "56"},
{"id": 203, "cname": "牙买加", "country_id": "1876"},
{"id": 202, "cname": "叙利亚", "country_id": "963"},
{"id": 201, "cname": "匈牙利", "country_id": "36"},
{"id": 200, "cname": "科特迪瓦", "country_id": "225"},
{"id": 199, "cname": "希腊", "country_id": "30"},
{"id": 198, "cname": "西班牙", "country_id": "34"},
{"id": 197, "cname": "乌兹别克斯坦", "country_id": "998"},
{"id": 196, "cname": "乌拉圭", "country_id": "598"},
{"id": 195, "cname": "乌克兰", "country_id": "380"},
{"id": 194, "cname": "乌干达", "country_id": "256"},
{"id": 204, "cname": "亚美尼亚", "country_id": "374"},
{"id": 205, "cname": "也门", "country_id": "967"},
{"id": 215, "cname": "直布罗陀", "country_id": "350"},
{"id": 214, "cname": "乍得", "country_id": "235"},
{"id": 213, "cname": "赞比亚", "country_id": "260"},
{"id": 212, "cname": "越南", "country_id": "84"},
{"id": 211, "cname": "约旦", "country_id": "962"},
{"id": 210, "cname": "印尼", "country_id": "62"},
{"id": 209, "cname": "印度", "country_id": "91"},
{"id": 208, "cname": "以色列", "country_id": "972"},
{"id": 207, "cname": "伊朗", "country_id": "98"},
{"id": 206, "cname": "伊拉克", "country_id": "964"},
{"id": 193, "cname": "文莱", "country_id": "673"},
{"id": 192, "cname": "委内瑞拉", "country_id": "58"},
{"id": 191, "cname": "维珍群岛(英属)", "country_id": "1284"},
{"id": 178, "cname": "泰国", "country_id": "66"},
{"id": 177, "cname": "索马里", "country_id": "252"},
{"id": 176, "cname": "所罗门群岛", "country_id": "677"},
{"id": 175, "cname": "苏里南", "country_id": "597"},
{"id": 174, "cname": "苏丹", "country_id": "249"},
{"id": 173, "cname": "斯威士兰", "country_id": "268"},
{"id": 172, "cname": "斯洛文尼亚", "country_id": "386"},
{"id": 171, "cname": "斯洛伐克", "country_id": "421"},
{"id": 170, "cname": "斯里兰卡", "country_id": "94"},
{"id": 169, "cname": "圣皮埃尔和密克隆群岛", "country_id": "508"},
{"id": 179, "cname": "坦桑尼亚", "country_id": "255"},
{"id": 180, "cname": "汤加", "country_id": "676"},
{"id": 190, "cname": "维珍群岛(美属)", "country_id": "1340"},
{"id": 189, "cname": "瓦努阿图", "country_id": "678"},
{"id": 188, "cname": "托克劳岛", "country_id": "690"},
{"id": 187, "cname": "土库曼斯坦", "country_id": "993"},
{"id": 186, "cname": "土耳其", "country_id": "90"},
{"id": 185, "cname": "图瓦卢", "country_id": "688"},
{"id": 184, "cname": "突尼斯", "country_id": "216"},
{"id": 183, "cname": "阿森松岛", "country_id": "247"},
{"id": 182, "cname": "特立尼达和多巴哥", "country_id": "1868"},
{"id": 181, "cname": "特克斯和凯科斯", "country_id": "1649"},
{"id": 168, "cname": "圣马力诺", "country_id": "378"},
{"id": 67, "cname": "法属圭亚那", "country_id": "594"},
{"id": 54, "cname": "不丹", "country_id": "975"},
{"id": 53, "cname": "博茨瓦纳", "country_id": "267"},
{"id": 52, "cname": "伯利兹", "country_id": "501"},
{"id": 51, "cname": "玻利维亚", "country_id": "591"},
{"id": 50, "cname": "波兰", "country_id": "48"},
{"id": 49, "cname": "波黑", "country_id": "387"},
{"id": 48, "cname": "波多黎各", "country_id": "1787"},
{"id": 47, "cname": "冰岛", "country_id": "354"},
{"id": 46, "cname": "贝宁", "country_id": "229"},
{"id": 45, "cname": "保加利亚", "country_id": "359"},
{"id": 55, "cname": "布基纳法索", "country_id": "226"},
{"id": 56, "cname": "布隆迪", "country_id": "257"},
{"id": 66, "cname": "法属波利尼西亚", "country_id": "689"},
{"id": 65, "cname": "法罗岛", "country_id": "298"},
{"id": 64, "cname": "厄立特里亚", "country_id": "291"},
{"id": 63, "cname": "厄瓜多尔", "country_id": "593"},
{"id": 62, "cname": "多米尼加代表", "country_id": "1809"},
{"id": 61, "cname": "多米尼加", "country_id": "1767"},
{"id": 60, "cname": "多哥", "country_id": "228"},
{"id": 59, "cname": "迪戈加西亚岛", "country_id": "246"},
{"id": 58, "cname": "丹麦", "country_id": "45"},
{"id": 57, "cname": "赤道几内亚", "country_id": "240"},
{"id": 44, "cname": "百慕大群岛", "country_id": "1441"},
{"id": 43, "cname": "白俄罗斯", "country_id": "375"},
{"id": 42, "cname": "巴西", "country_id": "55"},
{"id": 29, "cname": "爱尔兰", "country_id": "353"},
{"id": 28, "cname": "埃塞俄比亚", "country_id": "251"},
{"id": 27, "cname": "埃及", "country_id": "20"},
{"id": 26, "cname": "阿塞拜疆", "country_id": "994"},
{"id": 25, "cname": "阿曼", "country_id": "968"},
{"id": 24, "cname": "阿联酋", "country_id": "971"},
{"id": 23, "cname": "阿根廷", "country_id": "54"},
{"id": 22, "cname": "阿富汗", "country_id": "93"},
{"id": 21, "cname": "阿尔及利亚", "country_id": "213"},
{"id": 20, "cname": "阿尔巴尼亚", "country_id": "355"},
{"id": 30, "cname": "爱沙尼亚", "country_id": "372"},
{"id": 31, "cname": "安道尔", "country_id": "376"},
{"id": 41, "cname": "巴拿马", "country_id": "507"},
{"id": 40, "cname": "巴林", "country_id": "973"},
{"id": 39, "cname": "巴拉圭", "country_id": "595"},
{"id": 38, "cname": "巴基斯坦", "country_id": "92"},
{"id": 37, "cname": "巴哈马群岛", "country_id": "1242"},
{"id": 36, "cname": "巴布亚新几内亚", "country_id": "675"},
{"id": 35, "cname": "巴巴多斯", "country_id": "1246"},
{"id": 34, "cname": "奥地利", "country_id": "43"},
{"id": 33, "cname": "安提瓜岛和巴布达", "country_id": "1268"},
{"id": 32, "cname": "安哥拉", "country_id": "244"},
{"id": 68, "cname": "非洲中部", "country_id": "236"},
{"id": 117, "cname": "罗马尼亚", "country_id": "40"},
{"id": 104, "cname": "科威特", "country_id": "965"},
{"id": 103, "cname": "科摩罗", "country_id": "269"},
{"id": 102, "cname": "开曼群岛", "country_id": "1345"},
{"id": 101, "cname": "卡塔尔", "country_id": "974"},
{"id": 100, "cname": "喀麦隆", "country_id": "237"},
{"id": 99, "cname": "聚会岛", "country_id": "262"},
{"id": 98, "cname": "津巴布韦", "country_id": "263"},
{"id": 97, "cname": "捷克", "country_id": "420"},
{"id": 96, "cname": "柬埔寨", "country_id": "855"},
{"id": 95, "cname": "加蓬", "country_id": "241"},
{"id": 105, "cname": "克罗地亚", "country_id": "385"},
{"id": 106, "cname": "肯尼亚", "country_id": "254"},
{"id": 116, "cname": "卢旺达", "country_id": "250"},
{"id": 115, "cname": "卢森堡", "country_id": "352"},
{"id": 114, "cname": "利比亚", "country_id": "218"},
{"id": 113, "cname": "利比里亚", "country_id": "231"},
{"id": 112, "cname": "立陶宛", "country_id": "370"},
{"id": 111, "cname": "黎巴嫩", "country_id": "961"},
{"id": 110, "cname": "老挝", "country_id": "856"},
{"id": 109, "cname": "莱索托", "country_id": "266"},
{"id": 108, "cname": "拉脱维亚", "country_id": "371"},
{"id": 107, "cname": "库克岛", "country_id": "682"},
{"id": 94, "cname": "加纳", "country_id": "233"},
{"id": 93, "cname": "几内亚比绍", "country_id": "245"},
{"id": 92, "cname": "几内亚", "country_id": "224"},
{"id": 79, "cname": "格林纳达", "country_id": "1473"},
{"id": 78, "cname": "哥斯达黎加", "country_id": "506"},
{"id": 77, "cname": "哥伦比亚", "country_id": "57"},
{"id": 76, "cname": "刚果(金)", "country_id": "243"},
{"id": 75, "cname": "刚果", "country_id": "242"},
{"id": 74, "cname": "冈比亚", "country_id": "220"},
{"id": 73, "cname": "福克兰岛", "country_id": "500"},
{"id": 72, "cname": "佛得角", "country_id": "238"},
{"id": 71, "cname": "芬兰", "country_id": "358"},
{"id": 70, "cname": "斐济", "country_id": "679"},
{"id": 80, "cname": "格陵兰岛", "country_id": "299"},
{"id": 81, "cname": "古巴", "country_id": "53"},
{"id": 91, "cname": "吉尔吉斯斯坦", "country_id": "996"},
{"id": 90, "cname": "吉布提", "country_id": "253"},
{"id": 89, "cname": "基里巴斯", "country_id": "686"},
{"id": 88, "cname": "维克岛", "country_id": "1808"},
{"id": 87, "cname": "洪都拉斯", "country_id": "504"},
{"id": 86, "cname": "荷兰", "country_id": "31"},
{"id": 85, "cname": "朝鲜", "country_id": "850"},
{"id": 84, "cname": "海地", "country_id": "509"},
{"id": 83, "cname": "关岛", "country_id": "1671"},
{"id": 82, "cname": "瓜德罗普岛", "country_id": "590"},
{"id": 69, "cname": "菲律宾", "country_id": "63"}
];
// 'itemOpusStyle,opusBigCover,onlyfansVote,endFooterHidden,decorationCard,onlyfansAssetsV2,ugcDelete,onlyfansQaCard,editable,opusPrivateVisible,avatarAutoTheme,sunflowerStyle,cardsEnhance,eva3CardOpus,eva3CardVideo,eva3CardComment,eva3CardVote,eva3CardUser'
static const dynFeatures = 'itemOpusStyle,listOnlyfans,onlyfansQaCard';
}

220
lib/common/dial_prefix.dart Normal file
View File

@@ -0,0 +1,220 @@
abstract final class Login {
//内容来自 https://passport.bilibili.com/web/generic/country/list
static const dialPrefix = [
(id: 1, cname: "中国大陆", countryId: 86),
(id: 5, cname: "中国香港特别行政区", countryId: 852),
(id: 2, cname: "中国澳门特别行政区", countryId: 853),
(id: 3, cname: "中国台湾", countryId: 886),
(id: 4, cname: "美国", countryId: 1),
(id: 6, cname: "比利时", countryId: 32),
(id: 7, cname: "澳大利亚", countryId: 61),
(id: 8, cname: "法国", countryId: 33),
(id: 9, cname: "加拿大", countryId: 1),
(id: 10, cname: "日本", countryId: 81),
(id: 11, cname: "新加坡", countryId: 65),
(id: 12, cname: "韩国", countryId: 82),
(id: 13, cname: "马来西亚", countryId: 60),
(id: 14, cname: "英国", countryId: 44),
(id: 15, cname: "意大利", countryId: 39),
(id: 16, cname: "德国", countryId: 49),
(id: 18, cname: "俄罗斯", countryId: 7),
(id: 19, cname: "新西兰", countryId: 64),
(id: 153, cname: "瓦利斯群岛和富图纳群岛", countryId: 1681),
(id: 152, cname: "葡萄牙", countryId: 351),
(id: 151, cname: "帕劳", countryId: 680),
(id: 150, cname: "诺福克岛", countryId: 672),
(id: 149, cname: "挪威", countryId: 47),
(id: 148, cname: "纽埃岛", countryId: 683),
(id: 147, cname: "尼日利亚", countryId: 234),
(id: 146, cname: "尼日尔", countryId: 227),
(id: 145, cname: "尼加拉瓜", countryId: 505),
(id: 144, cname: "尼泊尔", countryId: 977),
(id: 143, cname: "瑙鲁", countryId: 674),
(id: 154, cname: "格鲁吉亚", countryId: 995),
(id: 155, cname: "瑞典", countryId: 46),
(id: 165, cname: "沙特阿拉伯", countryId: 966),
(id: 164, cname: "桑给巴尔岛", countryId: 259),
(id: 163, cname: "塞舌尔共和国", countryId: 248),
(id: 162, cname: "塞浦路斯", countryId: 357),
(id: 161, cname: "塞内加尔", countryId: 221),
(id: 160, cname: "塞拉利昂", countryId: 232),
(id: 159, cname: "萨摩亚,东部", countryId: 684),
(id: 158, cname: "萨摩亚,西部", countryId: 685),
(id: 157, cname: "萨尔瓦多", countryId: 503),
(id: 156, cname: "瑞士", countryId: 41),
(id: 166, cname: "圣多美和普林西比", countryId: 239),
(id: 142, cname: "塞尔维亚", countryId: 381),
(id: 141, cname: "南非", countryId: 27),
(id: 128, cname: "毛里塔尼亚", countryId: 222),
(id: 127, cname: "毛里求斯", countryId: 230),
(id: 126, cname: "马歇尔岛", countryId: 692),
(id: 125, cname: "马提尼克岛", countryId: 596),
(id: 124, cname: "马其顿", countryId: 389),
(id: 123, cname: "马里亚纳岛", countryId: 1670),
(id: 122, cname: "马里", countryId: 223),
(id: 121, cname: "马拉维", countryId: 265),
(id: 120, cname: "马耳他", countryId: 356),
(id: 119, cname: "马尔代夫", countryId: 960),
(id: 129, cname: "蒙古", countryId: 976),
(id: 130, cname: "蒙特塞拉特岛", countryId: 1664),
(id: 140, cname: "纳米比亚", countryId: 264),
(id: 139, cname: "墨西哥", countryId: 52),
(id: 138, cname: "莫桑比克", countryId: 258),
(id: 137, cname: "摩纳哥", countryId: 377),
(id: 136, cname: "摩洛哥", countryId: 212),
(id: 135, cname: "摩尔多瓦", countryId: 373),
(id: 134, cname: "缅甸", countryId: 95),
(id: 133, cname: "密克罗尼西亚", countryId: 691),
(id: 132, cname: "秘鲁", countryId: 51),
(id: 131, cname: "孟加拉国", countryId: 880),
(id: 118, cname: "马达加斯加", countryId: 261),
(id: 167, cname: "圣卢西亚", countryId: 1784),
(id: 216, cname: "智利", countryId: 56),
(id: 203, cname: "牙买加", countryId: 1876),
(id: 202, cname: "叙利亚", countryId: 963),
(id: 201, cname: "匈牙利", countryId: 36),
(id: 200, cname: "科特迪瓦", countryId: 225),
(id: 199, cname: "希腊", countryId: 30),
(id: 198, cname: "西班牙", countryId: 34),
(id: 197, cname: "乌兹别克斯坦", countryId: 998),
(id: 196, cname: "乌拉圭", countryId: 598),
(id: 195, cname: "乌克兰", countryId: 380),
(id: 194, cname: "乌干达", countryId: 256),
(id: 204, cname: "亚美尼亚", countryId: 374),
(id: 205, cname: "也门", countryId: 967),
(id: 215, cname: "直布罗陀", countryId: 350),
(id: 214, cname: "乍得", countryId: 235),
(id: 213, cname: "赞比亚", countryId: 260),
(id: 212, cname: "越南", countryId: 84),
(id: 211, cname: "约旦", countryId: 962),
(id: 210, cname: "印尼", countryId: 62),
(id: 209, cname: "印度", countryId: 91),
(id: 208, cname: "以色列", countryId: 972),
(id: 207, cname: "伊朗", countryId: 98),
(id: 206, cname: "伊拉克", countryId: 964),
(id: 193, cname: "文莱", countryId: 673),
(id: 192, cname: "委内瑞拉", countryId: 58),
(id: 191, cname: "维珍群岛(英属)", countryId: 1284),
(id: 178, cname: "泰国", countryId: 66),
(id: 177, cname: "索马里", countryId: 252),
(id: 176, cname: "所罗门群岛", countryId: 677),
(id: 175, cname: "苏里南", countryId: 597),
(id: 174, cname: "苏丹", countryId: 249),
(id: 173, cname: "斯威士兰", countryId: 268),
(id: 172, cname: "斯洛文尼亚", countryId: 386),
(id: 171, cname: "斯洛伐克", countryId: 421),
(id: 170, cname: "斯里兰卡", countryId: 94),
(id: 169, cname: "圣皮埃尔和密克隆群岛", countryId: 508),
(id: 179, cname: "坦桑尼亚", countryId: 255),
(id: 180, cname: "汤加", countryId: 676),
(id: 190, cname: "维珍群岛(美属)", countryId: 1340),
(id: 189, cname: "瓦努阿图", countryId: 678),
(id: 188, cname: "托克劳岛", countryId: 690),
(id: 187, cname: "土库曼斯坦", countryId: 993),
(id: 186, cname: "土耳其", countryId: 90),
(id: 185, cname: "图瓦卢", countryId: 688),
(id: 184, cname: "突尼斯", countryId: 216),
(id: 183, cname: "阿森松岛", countryId: 247),
(id: 182, cname: "特立尼达和多巴哥", countryId: 1868),
(id: 181, cname: "特克斯和凯科斯", countryId: 1649),
(id: 168, cname: "圣马力诺", countryId: 378),
(id: 67, cname: "法属圭亚那", countryId: 594),
(id: 54, cname: "不丹", countryId: 975),
(id: 53, cname: "博茨瓦纳", countryId: 267),
(id: 52, cname: "伯利兹", countryId: 501),
(id: 51, cname: "玻利维亚", countryId: 591),
(id: 50, cname: "波兰", countryId: 48),
(id: 49, cname: "波黑", countryId: 387),
(id: 48, cname: "波多黎各", countryId: 1787),
(id: 47, cname: "冰岛", countryId: 354),
(id: 46, cname: "贝宁", countryId: 229),
(id: 45, cname: "保加利亚", countryId: 359),
(id: 55, cname: "布基纳法索", countryId: 226),
(id: 56, cname: "布隆迪", countryId: 257),
(id: 66, cname: "法属波利尼西亚", countryId: 689),
(id: 65, cname: "法罗岛", countryId: 298),
(id: 64, cname: "厄立特里亚", countryId: 291),
(id: 63, cname: "厄瓜多尔", countryId: 593),
(id: 62, cname: "多米尼加代表", countryId: 1809),
(id: 61, cname: "多米尼加", countryId: 1767),
(id: 60, cname: "多哥", countryId: 228),
(id: 59, cname: "迪戈加西亚岛", countryId: 246),
(id: 58, cname: "丹麦", countryId: 45),
(id: 57, cname: "赤道几内亚", countryId: 240),
(id: 44, cname: "百慕大群岛", countryId: 1441),
(id: 43, cname: "白俄罗斯", countryId: 375),
(id: 42, cname: "巴西", countryId: 55),
(id: 29, cname: "爱尔兰", countryId: 353),
(id: 28, cname: "埃塞俄比亚", countryId: 251),
(id: 27, cname: "埃及", countryId: 20),
(id: 26, cname: "阿塞拜疆", countryId: 994),
(id: 25, cname: "阿曼", countryId: 968),
(id: 24, cname: "阿联酋", countryId: 971),
(id: 23, cname: "阿根廷", countryId: 54),
(id: 22, cname: "阿富汗", countryId: 93),
(id: 21, cname: "阿尔及利亚", countryId: 213),
(id: 20, cname: "阿尔巴尼亚", countryId: 355),
(id: 30, cname: "爱沙尼亚", countryId: 372),
(id: 31, cname: "安道尔", countryId: 376),
(id: 41, cname: "巴拿马", countryId: 507),
(id: 40, cname: "巴林", countryId: 973),
(id: 39, cname: "巴拉圭", countryId: 595),
(id: 38, cname: "巴基斯坦", countryId: 92),
(id: 37, cname: "巴哈马群岛", countryId: 1242),
(id: 36, cname: "巴布亚新几内亚", countryId: 675),
(id: 35, cname: "巴巴多斯", countryId: 1246),
(id: 34, cname: "奥地利", countryId: 43),
(id: 33, cname: "安提瓜岛和巴布达", countryId: 1268),
(id: 32, cname: "安哥拉", countryId: 244),
(id: 68, cname: "非洲中部", countryId: 236),
(id: 117, cname: "罗马尼亚", countryId: 40),
(id: 104, cname: "科威特", countryId: 965),
(id: 103, cname: "科摩罗", countryId: 269),
(id: 102, cname: "开曼群岛", countryId: 1345),
(id: 101, cname: "卡塔尔", countryId: 974),
(id: 100, cname: "喀麦隆", countryId: 237),
(id: 99, cname: "聚会岛", countryId: 262),
(id: 98, cname: "津巴布韦", countryId: 263),
(id: 97, cname: "捷克", countryId: 420),
(id: 96, cname: "柬埔寨", countryId: 855),
(id: 95, cname: "加蓬", countryId: 241),
(id: 105, cname: "克罗地亚", countryId: 385),
(id: 106, cname: "肯尼亚", countryId: 254),
(id: 116, cname: "卢旺达", countryId: 250),
(id: 115, cname: "卢森堡", countryId: 352),
(id: 114, cname: "利比亚", countryId: 218),
(id: 113, cname: "利比里亚", countryId: 231),
(id: 112, cname: "立陶宛", countryId: 370),
(id: 111, cname: "黎巴嫩", countryId: 961),
(id: 110, cname: "老挝", countryId: 856),
(id: 109, cname: "莱索托", countryId: 266),
(id: 108, cname: "拉脱维亚", countryId: 371),
(id: 107, cname: "库克岛", countryId: 682),
(id: 94, cname: "加纳", countryId: 233),
(id: 93, cname: "几内亚比绍", countryId: 245),
(id: 92, cname: "几内亚", countryId: 224),
(id: 79, cname: "格林纳达", countryId: 1473),
(id: 78, cname: "哥斯达黎加", countryId: 506),
(id: 77, cname: "哥伦比亚", countryId: 57),
(id: 76, cname: "刚果(金)", countryId: 243),
(id: 75, cname: "刚果", countryId: 242),
(id: 74, cname: "冈比亚", countryId: 220),
(id: 73, cname: "福克兰岛", countryId: 500),
(id: 72, cname: "佛得角", countryId: 238),
(id: 71, cname: "芬兰", countryId: 358),
(id: 70, cname: "斐济", countryId: 679),
(id: 80, cname: "格陵兰岛", countryId: 299),
(id: 81, cname: "古巴", countryId: 53),
(id: 91, cname: "吉尔吉斯斯坦", countryId: 996),
(id: 90, cname: "吉布提", countryId: 253),
(id: 89, cname: "基里巴斯", countryId: 686),
(id: 88, cname: "维克岛", countryId: 1808),
(id: 87, cname: "洪都拉斯", countryId: 504),
(id: 86, cname: "荷兰", countryId: 31),
(id: 85, cname: "朝鲜", countryId: 850),
(id: 84, cname: "海地", countryId: 509),
(id: 83, cname: "关岛", countryId: 1671),
(id: 82, cname: "瓜德罗普岛", countryId: 590),
(id: 69, cname: "菲律宾", countryId: 63),
];
}

View File

@@ -1,4 +1,5 @@
import 'package:PiliPlus/common/skeleton/skeleton.dart';
import 'package:PiliPlus/utils/global_data.dart';
import 'package:flutter/material.dart';
class DynamicCardSkeleton extends StatelessWidget {
@@ -8,6 +9,13 @@ class DynamicCardSkeleton extends StatelessWidget {
Widget build(BuildContext context) {
final ThemeData theme = Theme.of(context);
final color = theme.colorScheme.onInverseSurface;
final buttonStyle = TextButton.styleFrom(
tapTargetSize: .padded,
padding: const .symmetric(horizontal: 15),
foregroundColor: theme.colorScheme.outline.withValues(
alpha: 0.2,
),
);
return Skeleton(
child: Container(
padding: const EdgeInsets.only(left: 12, right: 12, top: 12),
@@ -20,6 +28,7 @@ class DynamicCardSkeleton extends StatelessWidget {
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
@@ -47,74 +56,57 @@ class DynamicCardSkeleton extends StatelessWidget {
height: 11,
),
],
)
),
],
),
const SizedBox(height: 10),
Container(
color: color,
width: double.infinity,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
Container(
color: color,
width: double.infinity,
margin: const EdgeInsets.only(top: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
color: color,
width: double.infinity,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
Container(
color: color,
width: double.infinity,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
Container(
color: color,
width: 300,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
Container(
color: color,
width: 250,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
Container(
color: color,
width: 100,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
],
),
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
const Spacer(),
Container(
color: color,
width: 300,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
Container(
color: color,
width: 250,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
Container(
color: color,
width: 100,
height: 13,
margin: const EdgeInsets.only(bottom: 7),
),
if (GlobalData().dynamicsWaterfallFlow) const Spacer(),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
for (var i = 0; i < 3; i++)
TextButton.icon(
onPressed: () {},
icon: const Icon(
Icons.radio_button_unchecked_outlined,
size: 20,
),
style: TextButton.styleFrom(
padding: const EdgeInsets.fromLTRB(15, 0, 15, 0),
foregroundColor:
theme.colorScheme.outline.withValues(alpha: 0.2),
),
label: Text(
i == 0
? '转发'
: i == 1
? '评论'
: '点赞',
children: const ['转发', '评论', '点赞']
.map(
(e) => TextButton.icon(
onPressed: () {},
icon: const Icon(
Icons.radio_button_unchecked_outlined,
size: 20,
),
style: buttonStyle,
label: Text(e),
),
)
],
)
.toList(),
),
],
),
),

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/skeleton/skeleton.dart';
import 'package:flutter/material.dart';
import 'package:PiliPlus/common/style.dart';
import 'package:PiliPlus/common/widgets/flutter/layout_builder.dart';
import 'package:flutter/material.dart' hide LayoutBuilder;
class FavPgcItemSkeleton extends StatelessWidget {
const FavPgcItemSkeleton({super.key});
@@ -11,11 +12,10 @@ class FavPgcItemSkeleton extends StatelessWidget {
return Skeleton(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: StyleString.safeSpace,
horizontal: Style.safeSpace,
vertical: 5,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AspectRatio(

View File

@@ -1,5 +1,5 @@
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/skeleton/skeleton.dart';
import 'package:PiliPlus/common/style.dart';
import 'package:flutter/material.dart';
class MediaPgcSkeleton extends StatefulWidget {
@@ -15,8 +15,10 @@ class _MediaPgcSkeletonState extends State<MediaPgcSkeleton> {
Color bgColor = Theme.of(context).colorScheme.onInverseSurface;
return Skeleton(
child: Padding(
padding: const EdgeInsets.fromLTRB(
StyleString.safeSpace, 7, StyleString.safeSpace, 7),
padding: const .symmetric(
horizontal: Style.safeSpace,
vertical: 7,
),
child: Row(
children: [
Container(
@@ -62,8 +64,9 @@ class _MediaPgcSkeletonState extends State<MediaPgcSkeleton> {
width: 90,
height: 35,
decoration: BoxDecoration(
borderRadius:
const BorderRadius.all(Radius.circular(20)),
borderRadius: const BorderRadius.all(
Radius.circular(20),
),
color: bgColor,
),
),

View File

@@ -11,7 +11,7 @@ class Skeleton extends StatelessWidget {
@override
Widget build(BuildContext context) {
final color = Theme.of(context).colorScheme.surface.withAlpha(10);
var shimmerGradient = LinearGradient(
final shimmerGradient = LinearGradient(
colors: [
Colors.transparent,
color,
@@ -62,7 +62,6 @@ class ShimmerState extends State<Shimmer> with SingleTickerProviderStateMixin {
@override
void initState() {
super.initState();
_shimmerController = AnimationController.unbounded(vsync: this)
..repeat(min: -0.5, max: 1.5, period: const Duration(milliseconds: 1000));
}
@@ -74,14 +73,14 @@ class ShimmerState extends State<Shimmer> with SingleTickerProviderStateMixin {
}
LinearGradient get gradient => LinearGradient(
colors: widget.linearGradient.colors,
stops: widget.linearGradient.stops,
begin: widget.linearGradient.begin,
end: widget.linearGradient.end,
transform: _SlidingGradientTransform(
slidePercent: _shimmerController.value,
),
);
colors: widget.linearGradient.colors,
stops: widget.linearGradient.stops,
begin: widget.linearGradient.begin,
end: widget.linearGradient.end,
transform: _SlidingGradientTransform(
slidePercent: _shimmerController.value,
),
);
bool get isSized =>
(context.findRenderObject() as RenderBox?)?.hasSize ?? false;

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/common/skeleton/skeleton.dart';
import 'package:PiliPlus/common/widgets/flutter/layout_builder.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart' hide LayoutBuilder;
class SpaceOpusSkeleton extends StatelessWidget {
const SpaceOpusSkeleton({super.key});
@@ -20,7 +21,8 @@ class SpaceOpusSkeleton extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: (0.68 + 0.82 * Utils.random.nextDouble()) *
height:
(0.68 + 0.82 * Utils.random.nextDouble()) *
constraints.maxWidth,
color: surface,
),
@@ -33,8 +35,11 @@ class SpaceOpusSkeleton extends StatelessWidget {
Container(
height: 10,
color: surface,
margin:
const EdgeInsets.only(left: 10, right: 10, bottom: 10),
margin: const EdgeInsets.only(
left: 10,
right: 10,
bottom: 10,
),
width: constraints.maxWidth,
),
],

Some files were not shown because too many files have changed in this diff Show More