Merge pull request #2513 from the1812/preview-backup

Update to v1.12.22
This commit is contained in:
Grant Howard 2021-11-13 18:38:08 +08:00 committed by GitHub
commit f1ab4434ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 727 additions and 383 deletions

View File

@ -171,7 +171,4 @@ UWP 版 Edge 已经不再支持了(就是 Windows 10 自带的那个), 请使用
## [Steam CSS](https://github.com/the1812/SteamCSS)
为 [Steam](https://store.steampowered.com/) 的库和内置浏览器插入一段自定义的 CSS, 用于更换字体等
## [Popcap Patches](https://github.com/the1812/Popcap-Patches)
Popcap游戏3D加速补丁制作器, 可修复宝石迷阵, 祖玛等游戏
----

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -18,7 +18,28 @@
<!-- | 2020.10.16 17:16:05 | 匿名 (要求不列出) | \ | \ | -->
| 时间 | 用户名 | 单号后4位 | 金额 |
| ------------------- | ------------- | --------- | ------ |
| ------------------- | ------------- | --------- | ------- |
| 2021.11.11 19:28:02 | Z*F | 6057 | ¥0.66 |
| 2021.11.11 09:08:24 | 夜幕轻语 | 6804 | ¥10.00 |
| 2021.11.08 00:11:08 | Lucky9 | 6342 | ¥10.00 |
| 2021.11.07 17:13:52 | *宇 | 8445 | ¥1.00 |
| 2021.11.05 08:14:53 | *睿 | 2939 | ¥7.00 |
| 2021.11.04 19:32:11 | 绝逝 | 2164 | ¥10.00 |
| 2021.11.04 16:24:33 | *乐 | 5009 | ¥2.33 |
| 2021.11.03 22:03:32 | *阳 | 6521 | ¥0.01 |
| 2021.11.03 11:10:26 | D*J | 5584 | ¥8.88 |
| 2021.11.02 15:31:03 | *凪 | 3555 | ¥2.50 |
| 2021.11.01 17:12:22 | *伟 | 6435 | ¥30.00 |
| 2021.11.01 13:04:05 | 七番目の我 | 3117 | ¥198.00 |
| 2021.10.22 20:26:59 | *翰 | 0005 | ¥5.00 |
| 2021.10.22 20:26:39 | *翰 | 3725 | ¥5.00 |
| 2021.10.19 12:32:21 | 匿名 | 5970 | ¥5.99 |
| 2021.10.14 18:55:28 | 匿名 | 1703 | ¥20.00 |
| 2021.10.09 19:21:00 | 黄*n | 4578 | ¥2.00 |
| 2021.10.09 19:13:57 | *冰 | 3196 | ¥10.00 |
| 2021.10.03 00:53:29 | Starry-OvO | 6392 | ¥16.66 |
| 2021.10.03 13:11:25 | *和 | 6520 | ¥5.20 |
| 2021.09.29 20:43:17 | 匿名 | 5533 | ¥2.33 |
| 2021.09.25 13:56:04 | T*n | 3051 | ¥2.55 |
| 2021.09.24 12:03:07 | ** | 7134 | ¥1.66 |
| 2021.09.23 15:46:45 | *涛 | 6217 | ¥1.00 |
@ -83,7 +104,7 @@
| 2021.05.12 16:30:46 | *卓 | 5907 | ¥5.00 |
| 2021.05.10 16:41:25 | *波 | 7229 | ¥20.00 |
| 2021.05.10 09:36:30 | *白 | 1262 | ¥10.00 |
| 2021.05.09 00:59:51 | *我 | 3264 | ¥20.00 |
| 2021.05.09 00:59:51 | 七番目の我 | 3264 | ¥20.00 |
| 2021.05.07 23:07:16 | *宜 | 0225 | ¥0.29 |
| 2021.05.07 10:20:08 | s*e | 6521 | ¥6.66 |
| 2021.05.04 11:47:01 | *大 | 7776 | ¥12.00 |

View File

@ -1 +1 @@
(()=>(e,t)=>{const n=async()=>{const e=await SpinQuery.select(".bpx-player-container");if(!e){console.warn("[bpx player polyfill] bpxContainer not found");return}Observer.attributes(e,(()=>{const t=e.getAttribute("data-screen");document.body.classList.toggle("player-mode-webfullscreen",t==="full"||t==="web");document.body.classList.toggle("player-mode-widescreen",t==="wide")}))};const o=async()=>{const e=await SpinQuery.select((()=>unsafeWindow.$pbp));if(!e){console.warn("[bpx player polyfill] pbp not found");return}const t={aid:e.options.aid.toString(),cid:e.options.cid.toString(),bvid:e.options.bvid};if(Object.values(t).some((e=>e===""||parseInt(e)<=0))){console.warn("[bpx player polyfill] invalid pbp data")}Object.assign(unsafeWindow,t)};const i=async()=>{if(!document.URL.startsWith("https://www.bilibili.com/bangumi/play/")){return}n();o()};return{export:{bpxPlayerPolyfill:i}}})();
(()=>(e,t)=>{const n=async()=>{const e=await SpinQuery.select(".bpx-player-container");if(!e){console.warn("[bpx player polyfill] bpxContainer not found");return}Observer.attributes(e,(()=>{const t=e.getAttribute("data-screen");document.body.classList.toggle("player-mode-webfullscreen",t==="full"||t==="web");t==="wide"?document.body.classList.add("player-mode-widescreen"):""}))};const o=async()=>{const e=await SpinQuery.select((()=>unsafeWindow.$pbp));if(!e){console.warn("[bpx player polyfill] pbp not found");return}const t={aid:e.options.aid.toString(),cid:e.options.cid.toString(),bvid:e.options.bvid};if(Object.values(t).some((e=>e===""||parseInt(e)<=0))){console.warn("[bpx player polyfill] invalid pbp data")}Object.assign(unsafeWindow,t)};const i=async()=>{if(!document.URL.startsWith("https://www.bilibili.com/bangumi/play/")){return}n();o()};return{export:{bpxPlayerPolyfill:i}}})();

View File

@ -23,7 +23,7 @@
"blackboard.vue.min.js": "3AA5E607BBB54CC8302741EFDBB03D43CBEEA1DC045A17E9F72C524862033CB2",
"blur-video-control.min.css": "B72FA7AD198ED1C9A9620A83881441F96F9FF3083ED12203A324B9753A7CCFFD",
"blur-video-control.min.js": "F5C4C5E45BEB5BB671788FB72677FE121D6834C775912D7B1BCFE4A4EAFA599A",
"bpx-player-adaptor.min.js": "CCB4037F9925C7605AB54BE1FD7A9E48BE2493FEE1633E40AE79DF520AAAF3F6",
"bpx-player-adaptor.min.js": "4CF00DB19BCD71686B816D6DCB78770169630862181CEA6D6F393F2E2C0C59A5",
"bvid-convert.min.css": "5405081513C4B5B7CD0E0C1B021CAD25EFA63CA03AD70CD8FA6F62F116BB8D96",
"bvid-convert.min.js": "AD6703BE3ABDC91DD4968B853474834B879B33A21DE4D3570C83D4BDF845020E",
"category-regions.min.js": "BD33FB46292CE98B5961E8C4F1A2BF2E6500E1EA425373E64D2139C3356E184F",
@ -46,7 +46,7 @@
"custom-control-background.min.js": "483F57DDD56F5B3A77C9CB35EB7CA191BF34CB6B3EEF5E12A4C10A42ADE563A2",
"custom-navbar.min.css": "3ADECA5A15ABD723ADE914BECC5D351A2ACA672A1C02CEA89C3F6AB0044B8A87",
"custom-navbar.min.html": "1F95ABCE9F19727CAF3B48C40E517EA4C2F602E9C2A73BD822B56BF91AB3F631",
"custom-navbar.min.js": "F82FC5A3A7A794A0F77433DDA5AFADD9B4C72CE97073EC707EF146F040D504E7",
"custom-navbar.min.js": "EFA569755E0D45AE866FB59D9AD91C90C2DD720D1D61A8A46DC89597539379F2",
"custom-navbar-activities.min.js": "A7AB41C75EFEF45F3186D5A110629FA98F16C552E3B6F58BA0A735CB86E58547",
"custom-navbar-blank.min.js": "E8F08DA7CD2C67F9D064B959A64CFC6658103DBCBE2B9B58D978A1742E02D829",
"custom-navbar-category.min.js": "F5E2A5D316D372BF43769D20095C4700A3A3E5F63CE3607F17030AF0784F1D34",
@ -70,8 +70,8 @@
"danmaku-segment.min.js": "43CC3236AFABA89BD0AE24D640809BE333772824E3994541AFC3CDDD9F881613",
"danmaku-send-bar.min.css": "F309FC17E7657BAA676D446458750D8069051617B44DD3D1457B4A9C519B2ED1",
"danmaku-send-bar.min.js": "7F694676C4A4EA608C02981C2ABC27945270CC89C89F2F1FB66FD01327DD9066",
"dark.min.css": "6BAECA6516337A697B614422A6619D1E018B5A67B2170C9C3A6EB042D4947715",
"dark.user.css": "50E546B4C7419DC7D89EAE1CE419653F0F7E4C605FDACED8D23BDC5E926EB6C9",
"dark.min.css": "7EE62AEF281D05A54D7744EF3123A088F74F61094AAC52083CFEA9BC56A4C6C9",
"dark.user.css": "450A7FCCF8A53E235A79156534178F36E1DD5DB28FFD8A2D296A0A4713114151",
"dark-color-scheme.min.js": "7C89C14ACEE44CCE2E402A63768A3B53251B4B1D82675DD85532AABB8F2082FA",
"dark-important.min.css": "29FAC0857FB4BDF4EAD24582D4984471E80FC83EF9BD9A108B17D5AC5617DE75",
"dark-navbar.min.css": "7FAD547E326B768904B3739C978DF86FFDDD5E5064FB8F490710D197CCC3018B",
@ -82,7 +82,7 @@
"default-danmaku-settings.min.js": "901EA05F842932F436F0ABEAC99802D286575F9033CE078AA246FD1453B98998",
"default-live-quality.min.js": "3DE4EC96DE1CB7F187E61B7045EC14EBBF74B1853A990B4FE32372F27D47F4E4",
"default-player-layout.min.js": "2F018C09DCCB9D0DD671ED4868A1EAC365D63CC51618EE076598C6624E3BEA7E",
"default-player-mode.min.js": "76BBFE1C953134B744ADB70038C0EAA0DD53291B1879555A7513CBDB4411365D",
"default-player-mode.min.js": "BADF20A85479C6F33217A4D7F5045B5E4E700B1308BB4B8C0A50B8249D837F49",
"default-video-quality.min.js": "20C0F41F683D685CCD22BD91F0EB4C2227146DD5586EB65388EE8FA97F46F7D2",
"default-video-speed.min.js": "720B588D410C267C1EE411927C9FC9FBBAE693A6938134416962E7B5A0682D25",
"disable-danmaku-highlights.min.js": "1F8C7267B7015ABB737D2457FCCC2E48CC31364E63ACF330770D61B152C9ABC6",
@ -106,9 +106,9 @@
"extend-feeds-live.min.js": "CACEC3C5DE877639BBD2DC6BC5A4C4FFDD160B32C338DA1824F68E1985139F83",
"extend-video-speed.min.js": "5654150CB792C7413C3FBFAE22477DB2E85EEF55611A0F01B64128214DBDB390",
"favorites-redirect.min.js": "9DB5FF294C7A49AD9341201C1FA0C8D7EBE7BFC1424DD74C4B796D1F0E24CFD1",
"feeds-apis.min.js": "5265857A2834C53C9373EA45BCE71B240EA2ABF9CA23303E09DB600B4C38C8D4",
"feeds-apis.min.js": "5235CD8F427A37B3F4458BFEA1B5393881B355C7EE739A0E8AB998B69DA67563",
"feeds-filter.min.js": "CF558BFD3860AC3E11757FFFF6A8AABE70DF7DFA1D1077684A1BF08868C649DB",
"feeds-filter-card.vue.min.js": "C57D50BF9C6661827B898B238539A8AAC86314A040A15780FD77B33C18E4E83F",
"feeds-filter-card.vue.min.js": "D8080737F9D222A141B547986B7EE8C88D1FAC4EFA47AD4289522B52F54989DB",
"feeds-image-exporter.min.js": "97392AFED64DEB5115ACDAE01BF97D41C32A68E431154269E1ADF40F66FA9B4B",
"feeds-translate.min.css": "40DEBECA26B25286F8D887810F3AB4DF6CF58D401ADDF545C0CFE32386479E0A",
"feeds-translate.min.js": "D94ECE12B5E72A08B36910A9C699E274ED7C60554136962F8B3BB7CAEDEA8EE8",
@ -120,9 +120,9 @@
"fix-fullscreen.min.js": "0C94A778CDAAECC0C97D36833C94B3AB87D562C5AAB23EFFE20241EB53FBA317",
"fold-comment.min.css": "DC2BD559553EA58FC438DB083783135897BF691D7CA59D436550C2F364F7D525",
"fold-comment.min.js": "C9826C7091AF5216FEA14DEF272F967685A0399EFBAEBEF01FFA93EC06514855",
"frame-playback.min.css": "41833B3549FCE8C12707B4793F6D7F909C84FA48FB48CB538B10B63888E22489",
"frame-playback.min.html": "43435667A589D3F2A55AB363E0AAE31509A8E3BAC5E3B8875D7F3A62ABDB6D7D",
"frame-playback.min.js": "9ABF8E0AB7E5DE5D321F227310BA2DA79783C2D0E215BC461CAE2E9337C31123",
"frame-playback.min.css": "DFA2EDCA1A66F6E16D694FB82E86468B6DABDD15E124473B2D15E779E6EBA9A5",
"frame-playback.min.html": "16D3B459911BA6810CFCA7B0356E79ADD5EC579910C8E14BED74619D0997CF8A",
"frame-playback.min.js": "F1F0F4131F4D3BEAD3E396D76374530B43FF58C92DFA0E137C11640C0D05D663",
"full-activity-content.min.js": "996BD62D7633175DCA46E94F50C4ED48ED81D17C28B5C9DE1B3BA4C1D5F2B8F2",
"full-page-title.min.css": "F498775B5E2983BAD5331C5F3A383EE4A18BE27A44F6BEC53B2E780E95237ACD",
"full-page-title.min.js": "F82215B10EFDFFEDC2C0A2A29546754C1EFAC72C47712F7D35B72D1160A6DCB2",
@ -138,7 +138,7 @@
"haruna-scale.min.js": "2410662D47006D2AC49FE43DEB85F8D2C1B6F6D353DD767C2F11F7802A81F605",
"hide-bangumi-reviews.min.js": "0E8D100A27D523008041BAF95B7809855B505F4C02D4EE32CC62917528E46DBE",
"hide-bangumi-sponsors.min.js": "61CF35F5F1DDD9BA068196E4D02C8F206178D58A6DFD43DE5024A7AE50A2029D",
"hide-banner.min.css": "FB801F7DD61622B0DFD1AD48AC6B3A5CC649D6A949E677423D957D7BC9FCE762",
"hide-banner.min.css": "BA9733218C61A6B9E38DF568C236C07464A42A39626578F167DB8E8D2A157F23",
"hide-banner.min.js": "1FC0511F83C87E07F2BDE94A10D7AB2F7067E77AC93261D563BB699BECFB035D",
"hide-category.min.css": "2EB4AB96C9EA12E91910AB3F1EAAFD76CFED77890CF2138232388415E1418C46",
"hide-category.min.js": "343424E56C09D06ECC9CEFEF79B8F780B7E1D9082F1878CF3D35ADD33FA294D6",
@ -187,18 +187,18 @@
"no-banner.min.css": "DA096F94E7FA26992F3F71245E704D69A1C222D0ADA6F1990FA5D948507CE15F",
"no-live-autoplay.min.js": "31917BE96EE9B8F8AC7E5FA17465AC8873ED7BB48AC3A44F4374E79C85363B70",
"no-mini-video-autoplay.min.js": "D0738ED56C685C3B02F39C0D1A0694ACE71A07397A59C6FE37CD9BC496592462",
"notify-new-version.min.js": "08A418212A8078EE83864E3AED782D597DE8E41AA2E4DD4B7D6FBBF83696B627",
"notify-new-version.min.js": "E80289A106797A7EC17C2293FBEC1B34C79B65BBF6156282FFCFE3522FA7875E",
"online-info-row.vue.min.js": "A1BE0481CEE968FE2239B05B9473751B4E9931BE5EF40D677E46B3C0ED43C974",
"outer-watchlater.min.css": "BB56A80224F7B37869C17C976C301623C47BBCCDB18F7E009A4F97B6C685C0DC",
"outer-watchlater.min.js": "5FC13134BBC69E8A1061A33D4BE6ED24508A8093D569B1CF33680AF2DE1BF86E",
"override-navbar.min.css": "E5AA612841281169CA367A238FB934F807900A385CE2298B7352FF3CA4623757",
"override-navbar.min.js": "0FF50371A02F47EE384515544EB87D34CEE2DB449B9B864B5627A9645F921DAB",
"pako-inflate.min.js": "1B89766B342D4A561B0CF7D5A68B2900B6D1772E507EEB1AF56FA7CABE40BCEC",
"player-agent.min.js": "FCD128055BD5414ED97B49E44000D6EE74C1FA181582C1BD7E433BAD5F1B05C0",
"player-agent.min.js": "84B45B3C687A189A2523257BD95BA046E784D2EC1BF5AE63F7465227A6D69DBD",
"player-context-menu.min.js": "D84439ABC219CBCDF4C431DAA73E799265485F3C5C07AE57F9A251C7CF967E4A",
"player-focus.min.js": "9A290D6749E68A4A88563983413A296BFA9B5C18B978F9CF80799196AEC0F9EE",
"player-on-top.min.js": "0D9AA8561E97A6FFCEABDA206B6A57EB87C1B3EF5D0D53EDABA3ED5EFB0DF687",
"player-ready.min.js": "70BEB550AE9AC35436ECCC0BAA21BF9C8C45C815EFC8028D03AFB58910863C9C",
"player-ready.min.js": "991AFD42587163977DAA57325F93B11E6C8A605CDACC6D5A5F3593B723B6AD21",
"player-shadow.min.js": "36F509FF2C19FBF1322B798E0321F62CF8BF171C34FD48E2A6F5D387B5DDFD82",
"quality-errors.min.js": "A691A407FC4F80C6B2D243CBFADC636FCFFC4DC35B9E305AEF4184AD3ECFC56B",
"quick-favorite.min.css": "7829AE09EC0F9057C3970CDF4CEADC76A86269C1DA714E7BC64E6D783621076B",
@ -216,8 +216,8 @@
"remove-watermark.min.js": "261CB4D9DE5A2B565F9FE540741775C5A85CC4622A4F31F48F3D7BBAF5B46EB3",
"reorder.min.js": "ECB93247175BCC5B9C689307680167B6C0C753F16265B6934A24020960866293",
"restore-floors.min.js": "8110AC44E378163F8966BDED29F31E683AD2E05F22B4C21EB4EBB3B854577F25",
"screenshot.min.css": "F1F3766B19BF5384AF4146C7522C08C963DB2209389820ACB14B2C8224054AEE",
"screenshot.min.js": "E2CBCF22C30A356C0C54DBE2294E7FCE2939552251CBBBDC8033BA3F6DF8836F",
"screenshot.min.css": "FDC0FCE6BE0109792BF3152C9D13EF10BFCED20DE680AE2DE6AEA6E59C07722A",
"screenshot.min.js": "B780CFDE3BF26058691E2F883E2149DDB33AE66DE78F44F1C2E9D8084A0953AB",
"scrollbar.min.css": "E17BDD4F223F7992A1AF279D7EBA58D9FBB51217F45964C79E30DC2ACBC15B46",
"scroll-out-player.min.js": "B68B23E79E164E1B33EEABD1D58AB478896409567E629C44A79E1AFF5D21AD7C",
"search.vue.min.js": "A3F4445026C3094C38EA4753BF7F22A8CD8D29D47CB2526BF3D88A29CC1EDD11",
@ -234,7 +234,7 @@
"show-cover-before-play.min.css": "E4050D66F8014029270CB5A4DEFDE2F847B095BA9ED4274BFED3E131B737B06D",
"show-cover-before-play.min.js": "59A0FB3D33643BAA3E11813ABF290B26F286CC4FF19EE0089A90DFE3FE768BCF",
"show-dead-video-title.min.js": "5B968442E71F947F70C57C9FDA083935200CBA9B1038131F1587E70A2B723798",
"simple-home.vue.min.js": "EFF4A221F6A94B3AA6FEACF840699B691017B771E532C17963194C21C11DD488",
"simple-home.vue.min.js": "DBD5E67110994DD45C9BA6E9E8757911E10123841DE0C98F38C44B8DC7B7B089",
"simple-home-bangumi-category.vue.min.js": "5E0DBCA5694737CA6FFFEABB28B3FA29716C62355D8FBF14D86C4810BCF53E91",
"simple-home-categories.vue.min.js": "D7E57894EF71600A35A71914AD19DF0BE80331D1214A3E403076FCB21594F47C",
"simple-home-feeds.vue.min.js": "5217FE9FCE4C7434BED5FFCEE352935E572F6D950379D4FBF01E4F2AEB9BF8DD",
@ -242,7 +242,7 @@
"simplify-home.min.css": "80191DE93D093D6F10A49145F39C14211120F2ED1C73F7CA40D63760EFFA3C73",
"simplify-home.min.js": "1E19F28B357C24B9B7F53ADC782DD6D4EEED6751EA879984D967C5FB4C925A9D",
"simplify-home.vue.min.js": "D240B92014227534732CBE098C0BE4801C7ADCA6A6956F7CA8B1D428C419E4E0",
"simplify-liveroom.min.css": "270C1FEFD6DDDF65959752C6092761477149E74561C9D40927EADC1657CE6515",
"simplify-liveroom.min.css": "2BFE04AB0E3C87692505BA915163468596ECCDBB1FF38CE31932EF67F635C90B",
"simplify-liveroom.min.js": "5D3D3D008C7E5D79E6E08F31D0CFB183A2F90E2749AE31BE1CA75B52D63A1A6B",
"skip-charge-list.min.css": "D3C988CE131CEBFAC8A60360529C83EC4AE1B9EA122F9A6924F19963E25A4FE9",
"skip-charge-list.min.js": "3F89374310F5F7BD66E782C629FEE09FA9E5E15076F17075E871F0E984656157",
@ -277,7 +277,7 @@
"video-speed-common.min.js": "1F8A81026E35390558C8D11EBCDC5455319D83B65EF16F54FD2AD4335E40CFD6",
"video-speed-controller.min.js": "07DEB5145EEF3C1899CA865E2458C94BF3B4AC9CDDBE542EDD03B0E10D0535D0",
"video-story.min.js": "DC3811422EE8696E12408E3CA6AD2E3D7068AAC1B0E3577A40C5613BAD5C6467",
"view-cover.min.js": "436B4D6408F375E822BA12CE31FF82CA7ECDF565A2D74AD26FF39DDA342C2C13",
"view-cover.min.js": "F130EEF94C7CA22FF80B9E3BA6D0333C5CA00434508BB5A7F1AF13F3F29A7F2E",
"volume-overdrive.min.js": "10FDFBC393D785195039FD7A66E5E5D3E62BC0E7AC142DC8074CA84A226A48EE",
"watchlater.min.js": "A3965AADCB9D2B45AE67FBFD89EA1B37E2855B41B0D690E6EB6B21D7A7FC2449",
"watchlater-api.min.js": "B3845A5E25C937ADD799584C791BAE53F0051D54EAB9DFA08ABBEB91055C7175",

Binary file not shown.

File diff suppressed because one or more lines are too long

2
min/dark.min.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>(e,t)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}const a=[{name:"常规",action:()=>{}},{name:"宽屏",action:async()=>{const{playerAgent:e}=await t.importAsync("player-agent");await e.widescreen()}},{name:"网页全屏",action:async()=>{const{playerAgent:e}=await t.importAsync("player-agent");await e.webFullscreen()}},{name:"全屏",action:async()=>{const{playerAgent:e}=await t.importAsync("player-agent");const a=await SpinQuery.condition((()=>document.querySelector(e.query.video.element.selector)),(e=>e!==null&&e.readyState===4&&document.readyState==="complete"&&document.hasFocus()));if(a===null){console.warn("[默认播放器模式] 未能应用全屏模式, 等待超时.");return}await e.fullscreen()}}];let n=()=>{};let i=()=>{};async function r(){const{playerAgent:a}=await t.importAsync("player-agent");if(e.autoLightOff){await SpinQuery.unsafeJquery();const e=await a.query.control.buttons.settings();if(!e){return}e.mouseover().mouseout();const t=async e=>{const t=await SpinQuery.select(".bilibili-player-video-btn-setting-right-others-content-lightoff .bui-checkbox-input");t.checked=e;raiseEvent(t,"change")};n=()=>t(true);i=()=>t(false)}}async function o(){await r();const{playerReady:o}=await t.importAsync("player-ready");const{playerAgent:s}=await t.importAsync("player-agent");await o();const c=await s.query.video.element();if(!c){return}const l=a.find((t=>t.name===e.defaultPlayerMode));const y=async()=>{const e=await s.query.bilibiliPlayer();const t=e.getAttribute("data-screen");const a=!e.className.includes("mode-")&&(t===null||t==="normal");if(l&&a){l.action()}};const u=_.get(JSON.parse(localStorage.getItem("bilibili_player_settings")),"video_status.autoplay",false);if(e.applyPlayerModeOnPlay&&!u){c.addEventListener("play",y,{once:true})}else{y()}if(u){n()}c.addEventListener("ended",i);c.addEventListener("pause",i);c.addEventListener("play",n)}Observer.videoChange(o)})();
(()=>(e,t)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}const a=["https://www.bilibili.com/video/","https://www.bilibili.com/watchlater/","https://www.bilibili.com/medialist/play/","https://www.bilibili.com/bangumi/play/"];if(!a.some((e=>document.URL.startsWith(e)))){return}const n=[{name:"常规",action:()=>{}},{name:"宽屏",action:async()=>{const{playerAgent:e}=await t.importAsync("player-agent");await e.widescreen()}},{name:"网页全屏",action:async()=>{const{playerAgent:e}=await t.importAsync("player-agent");await e.webFullscreen()}},{name:"全屏",action:async()=>{const{playerAgent:e}=await t.importAsync("player-agent");const a=await SpinQuery.condition((()=>document.querySelector(e.query.video.element.selector)),(e=>e!==null&&e.readyState===4&&document.readyState==="complete"&&document.hasFocus()));if(a===null){console.warn("[默认播放器模式] 未能应用全屏模式, 等待超时.");return}await e.fullscreen()}}];let i=()=>{};let o=()=>{};async function s(){const{playerAgent:a}=await t.importAsync("player-agent");if(e.autoLightOff){await SpinQuery.unsafeJquery();const e=await a.query.control.buttons.settings();if(!e){return}e.mouseover().mouseout();const t=async e=>{const t=await SpinQuery.select(".bilibili-player-video-btn-setting-right-others-content-lightoff .bui-checkbox-input");t.checked=e;raiseEvent(t,"change")};i=()=>t(true);o=()=>t(false)}}async function r(){await s();const{playerReady:a}=await t.importAsync("player-ready");const{playerAgent:r}=await t.importAsync("player-agent");await a();Observer.videoChange((async()=>{const e=await r.query.video.element();if(!e){return}if(d){i()}e.addEventListener("ended",o);e.addEventListener("pause",o);e.addEventListener("play",i)}));const c=await r.query.video.element();if(!c){return}const l=n.find((t=>t.name===e.defaultPlayerMode));const y=async()=>{const e=!dq("body[class*=player-mode-]");if(l&&e){l.action()}};const d=_.get(JSON.parse(localStorage.getItem("bilibili_player_settings")),"video_status.autoplay",false);if(e.applyPlayerModeOnPlay&&!d){c.addEventListener("play",y,{once:true})}else{y()}}r()})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
.frame-playback{display:none!important;position:relative;height:100%;align-items:center;padding:0 2px;margin-left:2px;cursor:pointer}.frame-playback span{height:100%}.bilibili-player-video-control-bottom .frame-playback,.squirtle-controller-wrap .frame-playback{display:flex!important}.frame-playback .player-tooltips.active{transition-duration:.15s;transition-delay:.15s;position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(calc(-100% - 4px));opacity:0}.frame-playback:hover .player-tooltips{opacity:1;transform:translateX(-50%) translateY(calc(-100% - 19px))}.frame-playback.touch:hover .player-tooltips{transform:translateX(-50%) translateY(calc(-100% - 12px))}.frame-playback.touch{padding:0 4px;margin-left:4px}.frame-playback.touch span{display:flex;align-items:center}.frame-playback i{color:#fff;display:block;line-height:1;transition:.4s cubic-bezier(.18,.89,.32,1.28);opacity:.9}.frame-playback:not(.touch) i{margin-top:-2px}.bilibili-player.mode-fullscreen .frame-playback,.bilibili-player.mode-webfullscreen .frame-playback{margin-left:4px;padding:0 4px}.bilibili-player.mode-fullscreen .frame-playback span,.bilibili-player.mode-webfullscreen .frame-playback span{transform:scale(1.2)}.bilibili-player.mode-fullscreen .frame-playback:not(.touch) i,.bilibili-player.mode-webfullscreen .frame-playback:not(.touch) i{margin-top:1px;line-height:inherit}.bilibili-player.mode-fullscreen .frame-playback.touch,.bilibili-player.mode-webfullscreen .frame-playback.touch{margin-left:6px}.frame-playback.next-frame i,.frame-playback.prev-frame i{transform:scale(1.3)}.frame-playback.next-frame:hover i,.frame-playback.prev-frame:hover i{transform:scale(1.4);opacity:1}.frame-playback.next-frame:active i,.frame-playback.prev-frame:active i{transform:scale(1.25);opacity:1}
.frame-playback{display:none!important;position:relative;height:100%;align-items:center;padding:0 2px;margin-left:2px;cursor:pointer}.frame-playback span{height:100%}.player-fullscreen-fix .squirtle-controller-wrap .frame-playback span,.player-mode-webfullscreen .squirtle-controller-wrap .frame-playback span{height:auto;align-self:center}.bilibili-player-video-control-bottom .frame-playback,.squirtle-controller-wrap .frame-playback{display:flex!important}.frame-playback .player-tooltips.active{transition-duration:.15s;transition-delay:.15s;position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(calc(-100% - 4px));opacity:0;pointer-events:none;visibility:visible;white-space:nowrap}.frame-playback:hover .player-tooltips{opacity:1;transform:translateX(-50%) translateY(calc(-100% - 19px))}.frame-playback.touch:hover .player-tooltips{transform:translateX(-50%) translateY(calc(-100% - 12px))}.frame-playback.touch{padding:0 4px;margin-left:4px}.frame-playback.touch span{display:flex;align-items:center}.frame-playback i{color:#fff;display:block;line-height:1;transition:.4s cubic-bezier(.18,.89,.32,1.28);opacity:.9}.frame-playback:not(.touch) i{margin-top:-2px}.player-fullscreen-fix .frame-playback,.player-mode-webfullscreen .frame-playback{margin-left:4px;padding:0 4px}.player-fullscreen-fix .frame-playback span,.player-mode-webfullscreen .frame-playback span{transform:scale(1.2)}.player-fullscreen-fix .frame-playback:not(.touch) i,.player-mode-webfullscreen .frame-playback:not(.touch) i{margin-top:1px;line-height:inherit}.player-fullscreen-fix .frame-playback.touch,.player-mode-webfullscreen .frame-playback.touch{margin-left:6px}.frame-playback.next-frame i,.frame-playback.prev-frame i{transform:scale(1.3)}.frame-playback.next-frame:hover i,.frame-playback.prev-frame:hover i{transform:scale(1.4);opacity:1}.frame-playback.next-frame:active i,.frame-playback.prev-frame:active i{transform:scale(1.25);opacity:1}

View File

@ -1 +1 @@
<div class="frame-playback prev-frame"><span><i class="mdi mdi-chevron-left mdi-24px"></i></span><div class="player-tooltips tip top-center animation active"><div class=tooltip>上一帧</div></div></div><div class="frame-playback next-frame"><span><i class="mdi mdi-chevron-right mdi-24px"></i></span><div class="player-tooltips tip top-center animation active"><div class=tooltip>下一帧</div></div></div>
<div class="frame-playback prev-frame"><span><i class="mdi mdi-chevron-left mdi-24px"></i></span><div class="player-tooltips bpx-player-tooltip-item tip top-center animation active"><div class=tooltip>上一帧</div></div></div><div class="frame-playback next-frame"><span><i class="mdi mdi-chevron-right mdi-24px"></i></span><div class="player-tooltips bpx-player-tooltip-item tip top-center animation active"><div class=tooltip>下一帧</div></div></div>

View File

@ -1 +1 @@
(()=>(e,t)=>{const r=t.import("framePlaybackHtml");t.applyStyle("framePlaybackStyle");const l=async()=>{if(e.videoScreenshot){const e=await SpinQuery.select(".video-take-screenshot");if(e===null||document.querySelector(".frame-playback")){return}e.insertAdjacentHTML("afterend",r)}else{const e=await SpinQuery.select(".bilibili-player-video-time");if(e===null||document.querySelector(".frame-playback")){return}e.insertAdjacentHTML("afterend",r)}let t=0;const l=e=>()=>{const r=dq("video");unsafeWindow.player.seek(r.currentTime+(e?1:-1)*t,r.paused)};const a=l(false);const i=l(true);Observer.attributesSubtree(".bilibili-player-video-quality-menu ul.bui-select-list",(()=>{const e=document.querySelector(".bilibili-player-video-quality-menu .bui-select-item-active");const r=e?parseInt(e.getAttribute("data-value")):0;const l=(()=>{switch(r){case 116:case 74:return 6e4/1001;default:return 3e4/1001}})();t=1/l}));document.querySelector(".prev-frame").addEventListener("click",a);document.querySelector(".next-frame").addEventListener("click",i);if(e.touchVideoPlayer){document.querySelectorAll(".frame-playback").forEach((e=>e.classList.add("touch")))}};Observer.videoChange(l);return{reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .frame-playback").forEach((e=>e.setAttribute("style","display: flex !important"))),unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .frame-playback").forEach((e=>e.setAttribute("style","display: none !important")))}})();
(()=>(e,t)=>{const r=t.import("framePlaybackHtml");t.applyStyle("framePlaybackStyle");const a=async()=>{const{playerAgent:a}=await t.importAsync("player-agent");if(e.videoScreenshot){const e=await SpinQuery.select(".video-take-screenshot");if(e===null||document.querySelector(".frame-playback")){return}e.insertAdjacentHTML("afterend",r)}else{const e=await a.query.control.buttons.time();if(e===null||document.querySelector(".frame-playback")){return}e.insertAdjacentHTML("afterend",r)}let c=0;const l=e=>()=>{a.changeTime((e?1:-1)*c)};const n=l(false);const o=l(true);Observer.attributesSubtree(`${a.query.control.buttons.quality.selector} ul`,(()=>{const e=document.querySelector(`${a.query.control.buttons.quality.selector} .bui-select-item-active, ${a.query.control.buttons.quality.selector} .active`);const t=e?parseInt(e.getAttribute("data-value")):0;const r=(()=>{switch(t){case 116:case 74:return 6e4/1001;default:return 3e4/1001}})();c=1/r}));document.querySelector(".prev-frame").addEventListener("click",n);document.querySelector(".next-frame").addEventListener("click",o);if(e.touchVideoPlayer){document.querySelectorAll(".frame-playback").forEach((e=>e.classList.add("touch")))}};Observer.videoChange(a);return{reload:()=>document.querySelectorAll(".frame-playback").forEach((e=>e.setAttribute("style","display: flex !important"))),unload:()=>document.querySelectorAll(".frame-playback").forEach((e=>e.setAttribute("style","display: none !important")))}})();

View File

@ -1 +1 @@
#banner_link,.bili-header__banner,.custom-navbar .blur-layer,.z-top-container.has-banner>.header{display:none!important}.b-header-mask-wrp .b-header-mask-bg,div.blur-bg{opacity:0!important}.international-header .bili-banner,.international-home .bili-banner{visibility:hidden!important;height:50px!important;min-height:unset!important}
#banner_link,.bili-header__banner,.custom-navbar .blur-layer,.z-top-container.has-banner>.header{display:none!important}.bili-header{height:50px!important}.b-header-mask-wrp .b-header-mask-bg,div.blur-bg{opacity:0!important}.international-header .bili-banner,.international-home .bili-banner{visibility:hidden!important;height:50px!important;min-height:unset!important}

View File

@ -1 +1 @@
(()=>(e,t)=>{const n={less:-1,equal:0,greater:1,incomparable:NaN};class s{constructor(e){if(!/^[\d\.]+$/.test(e)){throw new Error("Invalid version string")}this.parts=e.split(".").map((e=>parseInt(e)));this.versionString=e}compareTo(e){for(let t=0;t<this.parts.length;++t){if(e.parts.length===t){return n.greater}if(this.parts[t]===e.parts[t]){continue}if(this.parts[t]>e.parts[t]){return n.greater}return n.less}if(this.parts.length!==e.parts.length){return n.less}return n.equal}greaterThan(e){return this.compareTo(e)===n.greater}lessThan(e){return this.compareTo(e)===n.less}equals(e){return this.compareTo(e)===n.equal}}let i;async function r(){if(typeof offlineData!=="undefined"||isIframe()){return false}if(e.lastNewVersionCheck!==undefined){const t=Number(new Date);const n=t-e.lastNewVersionCheck;if(n<e.newVersionCheckInterval){return false}}try{const t=GM.info.script.name.match(/Bilibili Evolved \((.*)\)/);const n=t?"."+t[1].replace(/ /g,"-").toLowerCase():"";const r=n===".preview";i=`https://cdn.jsdelivr.net/gh/the1812/Bilibili-Evolved@${r?"preview":"master"}/bilibili-evolved${n}.user.js`;let a;try{const e=await Ajax.monkey({url:i});a=e.match(/@version[ ]*([\d\.]+)/)[1]}catch(e){a=await Ajax.monkey({url:Resource.cdnRoot||Resource.root+"version.txt"})}const o=new s(a);if(o.parts[0]>=2&&!e.noNotifyV2){const t=`新版本<span>${o.versionString}</span>已发布, 请前往项目的<a class="link" target="_blank" href="https://github.com/the1812/Bilibili-Evolved/releases">更新日志</a>或者<a class="link" target="_blank" href="https://github.com/the1812/Bilibili-Evolved/discussions">讨论区</a>了解如何安装和使用. <a class="link" href="javascript:void(0)" id="no-notify-v2">不再提示</a>`;const n=Toast.info(t,"检查更新");SpinQuery.select("#no-notify-v2").then((t=>t.addEventListener("click",(()=>{e.noNotifyV2=true;n&&n.dismiss()}))));return false}const l=new s(e.currentVersion);const c=o.greaterThan(l);if(c){const e=`新版本<span>${o.versionString}</span>已发布. <a id="new-version-link" class="link" href="${i}">安装</a><a class="link" target="_blank" href="https://github.com/the1812/Bilibili-Evolved/releases">查看</a>`;const t=Toast.info(e,"检查更新");SpinQuery.select("#new-version-link").then((e=>e.addEventListener("click",(()=>{t&&t.dismiss()}))))}return c}catch(e){return false}finally{e.lastNewVersionCheck=Number(new Date)}}const a=r();return{widget:{content:`\n<button class="gui-settings-flat-button" id="new-version-update">\n<a href="${i}" style="display:none"></a>\n<i class="icon-update"></i>\n<span>安装更新</span>\n</button>\n<button class="gui-settings-flat-button" id="new-version-info">\n<a target="blank" style="display:none" href="https://github.com/the1812/Bilibili-Evolved/releases"></a>\n<i class="icon-info"></i>\n<span>查看更新</span>\n</button>\n`,condition:()=>a,success:()=>{document.querySelector("#new-version-update").addEventListener("click",(e=>{if(e.target.nodeName.toLowerCase()!=="a"){document.querySelector("#new-version-update a").click()}}));document.querySelector("#new-version-info").addEventListener("click",(e=>{if(e.target.nodeName.toLowerCase()!=="a"){document.querySelector("#new-version-info a").click()}}))}}}})();
(()=>(e,t)=>{const n={less:-1,equal:0,greater:1,incomparable:NaN};class s{constructor(e){if(!/^[\d\.]+$/.test(e)){throw new Error("Invalid version string")}this.parts=e.split(".").map((e=>parseInt(e)));this.versionString=e}compareTo(e){for(let t=0;t<this.parts.length;++t){if(e.parts.length===t){return n.greater}if(this.parts[t]===e.parts[t]){continue}if(this.parts[t]>e.parts[t]){return n.greater}return n.less}if(this.parts.length!==e.parts.length){return n.less}return n.equal}greaterThan(e){return this.compareTo(e)===n.greater}lessThan(e){return this.compareTo(e)===n.less}equals(e){return this.compareTo(e)===n.equal}}let i;async function r(){if(typeof offlineData!=="undefined"||isIframe()){return false}if(e.lastNewVersionCheck!==undefined){const t=Number(new Date);const n=t-e.lastNewVersionCheck;if(n<e.newVersionCheckInterval){return false}}try{const t=GM.info.script.name.match(/Bilibili Evolved \((.*)\)/);const n=t?"."+t[1].replace(/ /g,"-").toLowerCase():"";let r;try{r=await Ajax.monkey({url:(Resource.cdnRoot||Resource.root)+"version.txt"})}catch(e){const t=n===".preview";i=`https://cdn.jsdelivr.net/gh/the1812/Bilibili-Evolved@${t?"preview":"master"}/bilibili-evolved${n}.user.js`;const s=await Ajax.monkey({url:i});r=s.match(/@version[ ]*([\d\.]+)/)[1]}const a=new s(r);if(a.parts[0]>=2&&!e.noNotifyV2){const t=`新版本<span>${a.versionString}</span>已发布, 请前往项目的<a class="link" target="_blank" href="https://github.com/the1812/Bilibili-Evolved/releases">更新日志</a>或者<a class="link" target="_blank" href="https://github.com/the1812/Bilibili-Evolved/discussions">讨论区</a>了解如何安装和使用. <a class="link" href="javascript:void(0)" id="no-notify-v2">不再提示</a>`;const n=Toast.info(t,"检查更新");SpinQuery.select("#no-notify-v2").then((t=>t.addEventListener("click",(()=>{e.noNotifyV2=true;n&&n.dismiss()}))));return false}const o=new s(e.currentVersion);const l=a.greaterThan(o);if(l){const e=`新版本<span>${a.versionString}</span>已发布. <a id="new-version-link" class="link" href="${i}">安装</a><a class="link" target="_blank" href="https://github.com/the1812/Bilibili-Evolved/releases">查看</a>`;const t=Toast.info(e,"检查更新");SpinQuery.select("#new-version-link").then((e=>e.addEventListener("click",(()=>{t&&t.dismiss()}))))}return l}catch(e){return false}finally{e.lastNewVersionCheck=Number(new Date)}}const a=r();return{widget:{content:`\n<button class="gui-settings-flat-button" id="new-version-update">\n<a href="${i}" style="display:none"></a>\n<i class="icon-update"></i>\n<span>安装更新</span>\n</button>\n<button class="gui-settings-flat-button" id="new-version-info">\n<a target="blank" style="display:none" href="https://github.com/the1812/Bilibili-Evolved/releases"></a>\n<i class="icon-info"></i>\n<span>查看更新</span>\n</button>\n`,condition:()=>a,success:()=>{document.querySelector("#new-version-update").addEventListener("click",(e=>{if(e.target.nodeName.toLowerCase()!=="a"){document.querySelector("#new-version-update a").click()}}));document.querySelector("#new-version-info").addEventListener("click",(e=>{if(e.target.nodeName.toLowerCase()!=="a"){document.querySelector("#new-version-info a").click()}}))}}}})();

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>(n,o)=>{const d=()=>new Promise((async(n,o)=>{await SpinQuery.condition((()=>unsafeWindow),(()=>unsafeWindow.onLoginInfoLoaded!==undefined));if(unsafeWindow.onLoginInfoLoaded){unsafeWindow.onLoginInfoLoaded(n)}else{logError(new Error("utils.playerReady 失败"));console.error(`typeof onLoginInfoLoaded === ${typeof unsafeWindow.onLoginInfoLoaded}`);o()}}));const i=async()=>{if(unsafeWindow.aid){return unsafeWindow.aid}const n=await SpinQuery.condition((()=>{var n,o,d;return(n=unsafeWindow)===null||n===void 0?void 0:(o=n.player)===null||o===void 0?void 0:(d=o.getVideoMessage)===null||d===void 0?void 0:d.call(o)}),(n=>(n===null||n===void 0?void 0:n.aid)!==undefined)).catch((()=>{throw new Error("Cannot find aid")}));unsafeWindow.aid=n.aid;return n.aid};return{export:{playerReady:d,aidReady:i}}})();
(()=>(n,o)=>{const e=()=>new Promise((async(n,o)=>{const e=document.URL.replace(window.location.search,"")==="https://www.bilibili.com/blackboard/newplayer.html"&&document.URL.includes("fjw=true");if(e){return}await SpinQuery.condition((()=>unsafeWindow),(()=>unsafeWindow.UserStatus!==undefined));if(unsafeWindow.onLoginInfoLoaded){unsafeWindow.onLoginInfoLoaded(n)}else{logError(new Error("utils.playerReady 失败"));console.error(`typeof onLoginInfoLoaded === ${typeof unsafeWindow.onLoginInfoLoaded}`);o()}}));const i=async()=>{if(unsafeWindow.aid){return unsafeWindow.aid}const n=await SpinQuery.condition((()=>{var n,o,e;return(n=unsafeWindow)===null||n===void 0?void 0:(o=n.player)===null||o===void 0?void 0:(e=o.getVideoMessage)===null||e===void 0?void 0:e.call(o)}),(n=>(n===null||n===void 0?void 0:n.aid)!==undefined)).catch((()=>{throw new Error("Cannot find aid")}));unsafeWindow.aid=n.aid;return n.aid};return{export:{playerReady:e,aidReady:i}}})();

View File

@ -1 +1 @@
.video-take-screenshot{position:relative;padding:0 6px;margin-left:6px;height:100%;cursor:pointer;display:none!important}.bilibili-player-video-control-bottom .video-take-screenshot,.squirtle-controller-wrap .video-take-screenshot{display:flex!important}.video-take-screenshot.touch{padding:0 6px;margin-left:12px}.video-take-screenshot.touch span{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.video-take-screenshot i{font-size:20px;color:#fff;transform:scale(1);opacity:.9;transition:.4s cubic-bezier(.18,.89,.32,1.28);display:block}.bilibili-player.mode-fullscreen .video-take-screenshot i,.bilibili-player.mode-webfullscreen .video-take-screenshot i{font-size:24px}.video-take-screenshot .player-tooltips.active{transition-duration:.15s;transition-delay:.15s;position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(calc(-100% - 4px));opacity:0}.video-take-screenshot:hover .player-tooltips{opacity:1;transform:translateX(-50%) translateY(calc(-100% - 19px))}.video-take-screenshot.touch:hover .player-tooltips{transform:translateX(-50%) translateY(calc(-100% - 12px))}.video-take-screenshot:hover i{transform:scale(1.05);opacity:1}.video-take-screenshot:active i{transform:scale(.95);opacity:1}.video-screenshot-container{position:relative;--screenshot-width:240px;--screenshot-width-negative:calc(0px - var(--screenshot-width));--screenshot-height:135px;--thumbnail-margin-vertical:12px;--thumbnail-margin-horizontal:12px;--screenshot-list-width:calc(2 * var(--thumbnail-margin-horizontal) + var(--screenshot-width))}.video-screenshot-container,.video-screenshot-container *{transition:.2s ease-out}.video-screenshot-batch{position:fixed;bottom:var(--thumbnail-margin-vertical);right:0;z-index:20000;display:flex;width:var(--screenshot-list-width);align-items:center;justify-content:space-evenly}.video-screenshot-batch button{background:#000c;color:#fff;border:none;border-radius:8px;font-size:11pt;cursor:pointer;outline:0!important;padding:8px 12px;display:flex;justify-content:center;align-items:center;flex-grow:1}.video-screenshot-batch button:not(:last-child){margin-right:16px}.video-screenshot-batch button i{font-size:14pt;margin-right:4px}.video-screenshot-list{position:fixed;top:0;right:0;z-index:20000;margin:var(--thumbnail-margin-vertical) 0;max-height:calc(100% - 2 * var(--thumbnail-margin-vertical) - 58px);width:var(--screenshot-list-width);background-color:#000c;border-radius:8px;overflow:auto;scrollbar-width:none!important}.video-screenshot-list::-webkit-scrollbar{height:0!important;width:0!important}.video-screenshot-list *{pointer-events:initial}.video-screenshot-list-enter{opacity:0;transform:translateX(var(--screenshot-width-negative))}.video-screenshot-list-leave-to{opacity:0;transform:translateX(var(--screenshot-width))}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.video-screenshot-thumbnail{margin:var(--thumbnail-margin-vertical) var(--thumbnail-margin-horizontal);position:relative;transition:.35s cubic-bezier(.18,.89,.32,1.28);width:var(--screenshot-width);height:var(--screenshot-height);background-color:#000;display:flex;justify-content:center;align-items:center}.video-screenshot-thumbnail img{max-width:var(--screenshot-width);max-height:var(--screenshot-height);display:block;background-color:#000}.video-screenshot-thumbnail .loading::before{content:"";box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(0);width:24px;height:24px;border-radius:50%;border:3px solid #8888;border-top-color:var(--theme-color);animation:.6s linear infinite spinner}.video-screenshot-thumbnail.video-screenshot-list-leave-active{position:absolute;transition:.35s cubic-bezier(.6,-.28,.74,.05)}.video-screenshot-thumbnail .mask{position:absolute;opacity:0;top:0;left:0;width:100%;height:100%;background:#0008;display:flex;justify-content:space-around;align-items:center;transition:none;pointer-events:none}.video-screenshot-thumbnail .mask .time{color:#fff;position:absolute;bottom:4px;left:8px;font-size:10pt}.video-screenshot-thumbnail .mask button{background:#000a;color:#fff;border:none;border-radius:50%;font-size:24pt;cursor:pointer;width:48px;height:48px;pointer-events:initial;outline:0!important}.video-screenshot-thumbnail:hover .mask{opacity:1}
.video-take-screenshot{position:relative;padding:0 6px;margin-left:6px;height:100%;cursor:pointer;display:none!important}.bilibili-player-video-control-bottom .video-take-screenshot,.squirtle-controller-wrap .video-take-screenshot{display:flex!important}.video-take-screenshot.touch{padding:0 6px;margin-left:12px}.video-take-screenshot.touch span{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.video-take-screenshot i{font-size:20px;color:#fff;transform:scale(1);opacity:.9;transition:.4s cubic-bezier(.18,.89,.32,1.28);display:block}.player-fullscreen-fix .video-take-screenshot i,.player-mode-webfullscreen .video-take-screenshot i{font-size:24px}.player-fullscreen-fix .squirtle-controller-wrap .video-take-screenshot span,.player-mode-webfullscreen .squirtle-controller-wrap .video-take-screenshot span{align-self:center}.video-take-screenshot .player-tooltips.active{transition-duration:.15s;transition-delay:.15s;position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(calc(-100% - 4px));opacity:0;pointer-events:none;visibility:visible;white-space:nowrap}.video-take-screenshot:hover .player-tooltips{opacity:1;transform:translateX(-50%) translateY(calc(-100% - 19px))}.video-take-screenshot.touch:hover .player-tooltips{transform:translateX(-50%) translateY(calc(-100% - 12px))}.video-take-screenshot:hover i{transform:scale(1.05);opacity:1}.video-take-screenshot:active i{transform:scale(.95);opacity:1}.video-screenshot-container{position:relative;--screenshot-width:240px;--screenshot-width-negative:calc(0px - var(--screenshot-width));--screenshot-height:135px;--thumbnail-margin-vertical:12px;--thumbnail-margin-horizontal:12px;--screenshot-list-width:calc(2 * var(--thumbnail-margin-horizontal) + var(--screenshot-width))}.video-screenshot-container,.video-screenshot-container *{transition:.2s ease-out}.video-screenshot-batch{position:fixed;bottom:var(--thumbnail-margin-vertical);right:0;z-index:20000;display:flex;width:var(--screenshot-list-width);align-items:center;justify-content:space-evenly}.video-screenshot-batch button{background:#000c;color:#fff;border:none;border-radius:8px;font-size:11pt;cursor:pointer;outline:0!important;padding:8px 12px;display:flex;justify-content:center;align-items:center;flex-grow:1}.video-screenshot-batch button:not(:last-child){margin-right:16px}.video-screenshot-batch button i{font-size:14pt;margin-right:4px}.video-screenshot-list{position:fixed;top:0;right:0;z-index:20000;margin:var(--thumbnail-margin-vertical) 0;max-height:calc(100% - 2 * var(--thumbnail-margin-vertical) - 58px);width:var(--screenshot-list-width);background-color:#000c;border-radius:8px;overflow:auto;scrollbar-width:none!important}.video-screenshot-list::-webkit-scrollbar{height:0!important;width:0!important}.video-screenshot-list *{pointer-events:initial}.video-screenshot-list-enter{opacity:0;transform:translateX(var(--screenshot-width-negative))}.video-screenshot-list-leave-to{opacity:0;transform:translateX(var(--screenshot-width))}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.video-screenshot-thumbnail{margin:var(--thumbnail-margin-vertical) var(--thumbnail-margin-horizontal);position:relative;transition:.35s cubic-bezier(.18,.89,.32,1.28);width:var(--screenshot-width);height:var(--screenshot-height);background-color:#000;display:flex;justify-content:center;align-items:center}.video-screenshot-thumbnail img{max-width:var(--screenshot-width);max-height:var(--screenshot-height);display:block;background-color:#000}.video-screenshot-thumbnail .loading::before{content:"";box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(0);width:24px;height:24px;border-radius:50%;border:3px solid #8888;border-top-color:var(--theme-color);animation:.6s linear infinite spinner}.video-screenshot-thumbnail.video-screenshot-list-leave-active{position:absolute;transition:.35s cubic-bezier(.6,-.28,.74,.05)}.video-screenshot-thumbnail .mask{position:absolute;opacity:0;top:0;left:0;width:100%;height:100%;background:#0008;display:flex;justify-content:space-around;align-items:center;transition:none;pointer-events:none}.video-screenshot-thumbnail .mask .time{color:#fff;position:absolute;bottom:4px;left:8px;font-size:10pt}.video-screenshot-thumbnail .mask button{background:#000a;color:#fff;border:none;border-radius:50%;font-size:24pt;cursor:pointer;width:48px;height:48px;pointer-events:initial;outline:0!important}.video-screenshot-thumbnail:hover .mask{opacity:1}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>(e,t)=>{function i(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}const{VideoInfo:n}=t.import("video-info");const{getFriendlyTitle:o}=t.import("title");class s{constructor(e){this.url=e;i(this,"viewer",void 0);i(this,"imageData",void 0);if(dq(".image-viewer")===null){this.createContainer()}this.viewer=dq(".image-viewer-container");this.downloadImage();addSettingsListener("filenameFormat",(()=>{this.downloadButton.setAttribute("download",this.filename)}))}createContainer(){var e,i;document.body.insertAdjacentHTML("beforeend",t.import("imageViewerHtml"));const n=dq(".image-viewer-container");const o=dq(".image-viewer");(e=dq(n,".close"))===null||e===void 0?void 0:e.addEventListener("click",(()=>this.hide()));(i=dq(".image-viewer-container"))===null||i===void 0?void 0:i.addEventListener("click",(e=>{if(e.target===n||e.target===o){this.hide()}}));t.applyStyle("imageViewerStyle")}async downloadImage(){const e=dq("#view-cover");e.style.display=this.url?"flex":"none";if(this.url===""){return}const t=URL.createObjectURL(await Ajax.getBlob(this.url.replace("http:","https:")));if(this.imageData){URL.revokeObjectURL(this.imageData)}this.imageData=t;this.downloadButton.href=t;this.downloadButton.download=this.filename;this.copyLinkButton.addEventListener("click",(()=>{if(this.copyLinkButton.classList.contains("success")){return}GM.setClipboard(this.url);this.copyLinkButton.classList.add("success");setTimeout((()=>this.copyLinkButton.classList.remove("success")),1500)}));this.newTabButton.href=this.url;this.imageElement.src=t}show(){this.viewer.classList.add("opened")}hide(){this.viewer.classList.remove("opened")}get downloadButton(){return dq(this.viewer,".download")}get copyLinkButton(){return dq(this.viewer,".copy-link")}get newTabButton(){return dq(this.viewer,".new-tab")}get imageElement(){return dq(this.viewer,".image")}get filename(){return o(document.URL.includes("/www.bilibili.com/bangumi/"))+this.url.substring(this.url.lastIndexOf("."))}}return(()=>{if(!document.URL.includes("live.bilibili.com")){return{widget:{content:`\n<button\n class='gui-settings-flat-button'\n id='view-cover'>\n<i class='icon-view'></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select((()=>unsafeWindow.aid));return Boolean(e)},success:async()=>{async function e(){const e=unsafeWindow.aid;const t=new n(e);try{await t.fetchInfo()}catch(e){return""}return t.coverUrl}let t=new s(await e());const i=dq("#view-cover");i.addEventListener("click",(()=>{t.show()}));const o=async()=>{t=new s(await e())};Observer.videoChange(o)}}}}else{return{widget:{content:`\n<button\n class='gui-settings-flat-button'\n id='view-cover'>\n<i class='icon-view'></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select((()=>document.querySelector(".header-info-ctnr .room-cover")));return Boolean(e)},success:async()=>{const e=document.querySelector(".header-info-ctnr .room-cover");const t=e.href.match(/space\.bilibili\.com\/([\d]+)/);if(t&&t[1]){const e=t[1];const i=`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`;const n=await Ajax.getJson(i);const o=n.data.cover;const a=new s(o);const r=dq("#view-cover");r.addEventListener("click",(()=>{a.show()}))}}}}}})()})();
(()=>(e,t)=>{function i(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}const{VideoInfo:n}=t.import("video-info");const{getFriendlyTitle:o}=t.import("title");class s{constructor(e){this.url=e;i(this,"viewer",void 0);i(this,"imageData",void 0);if(dq(".image-viewer")===null){this.createContainer()}this.viewer=dq(".image-viewer-container");this.downloadImage();addSettingsListener("filenameFormat",(()=>{this.downloadButton.setAttribute("download",this.filename)}))}createContainer(){var e,i;document.body.insertAdjacentHTML("beforeend",t.import("imageViewerHtml"));const n=dq(".image-viewer-container");const o=dq(".image-viewer");(e=dq(n,".close"))===null||e===void 0?void 0:e.addEventListener("click",(()=>this.hide()));(i=dq(".image-viewer-container"))===null||i===void 0?void 0:i.addEventListener("click",(e=>{if(e.target===n||e.target===o){this.hide()}}));t.applyStyle("imageViewerStyle")}async downloadImage(){const e=dq("#view-cover");e.style.display=this.url?"flex":"none";if(this.url===""){return}const t=URL.createObjectURL(await Ajax.getBlob(this.url.replace("http:","https:")));if(this.imageData){URL.revokeObjectURL(this.imageData)}this.imageData=t;this.downloadButton.href=t;this.downloadButton.download=this.filename;this.copyLinkButton.addEventListener("click",(()=>{if(this.copyLinkButton.classList.contains("success")){return}GM.setClipboard(this.url);this.copyLinkButton.classList.add("success");setTimeout((()=>this.copyLinkButton.classList.remove("success")),1500)}));this.newTabButton.href=this.url;this.imageElement.src=t}show(){this.viewer.classList.add("opened")}hide(){this.viewer.classList.remove("opened")}get downloadButton(){return dq(this.viewer,".download")}get copyLinkButton(){return dq(this.viewer,".copy-link")}get newTabButton(){return dq(this.viewer,".new-tab")}get imageElement(){return dq(this.viewer,".image")}get filename(){return o(document.URL.includes("/www.bilibili.com/bangumi/"))+this.url.substring(this.url.lastIndexOf("."))}}return(()=>{if(!document.URL.includes("live.bilibili.com")){return{widget:{content:`\n<button\n class='gui-settings-flat-button'\n id='view-cover'>\n<i class='icon-view'></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select((()=>unsafeWindow.aid));return Boolean(e)},success:async()=>{async function e(){const e=unsafeWindow.aid;const t=new n(e);try{await t.fetchInfo()}catch(e){return""}return t.coverUrl}let t=new s(await e());const i=dq("#view-cover");i.addEventListener("click",(()=>{t.show()}));const o=async()=>{t=new s(await e())};Observer.videoChange(o)}}}}else{const e=".header-info-ctnr .room-cover, .header-info-ctnr .avatar";return{widget:{content:`\n<button\n class='gui-settings-flat-button'\n id='view-cover'>\n<i class='icon-view'></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const t=await SpinQuery.select((()=>document.querySelector(e)));return Boolean(t)},success:async()=>{const t=document.querySelector(e);const i=t.href.match(/space\.bilibili\.com\/([\d]+)/);if(i&&i[1]){const e=i[1];const t=`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`;const n=await Ajax.getJson(t);const o=n.data.cover;const a=new s(o);const r=dq("#view-cover");r.addEventListener("click",(()=>{a.show()}))}}}}}})()})();

View File

@ -235,7 +235,7 @@ class FeedsCardsManager extends EventTarget {
}
const originalCard = JSON.parse(vueData.card.origin)
const originalText: string = vueData.originCardData.pureText
const originalDescription: string = _.get(originalCard, 'item.description', '')
const originalDescription: string = _.get(originalCard, 'item.description', _.get(originalCard, 'desc', ''))
const originalTitle: string = originalCard.title
return {
originalText,

View File

@ -263,6 +263,7 @@ body.enable-feeds-filter:not(.disable-feeds-filter) {
}
&.#{$side-block}-following-tags {
.left-panel .tag-panel,
.right-panel .dyn-topic-panel,
.right-panel .new-topic-panel {
display: none !important;
}

View File

@ -1,6 +1,6 @@
// ==UserScript==
// @name Bilibili Evolved (Preview)
// @version 1.12.19
// @version 1.12.22
// @description Bilibili Evolved 的预览版, 可以抢先体验新功能.
// @author Grant Howard, Coulomb-G
// @copyright 2021, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)

View File

@ -88,6 +88,9 @@
display: flex !important;
align-items: center !important;
.text {
line-height: normal !important;
}
@media screen and (max-width: 1750px) {
& .title-length-limit {
max-width: 250px !important;

View File

@ -11,7 +11,6 @@ const supportedUrls = [
'//message.bilibili.com',
'//app.bilibili.com',
'//passport.bilibili.com',
'//game.bilibili.com',
'//live.bilibili.com/blackboard/',
]
const unsupportedUrls = [
@ -22,6 +21,7 @@ const unsupportedUrls = [
'//www.bilibili.com/h5/comment/',
// '//www.bilibili.com/blackboard/',
'//member.bilibili.com/v2',
'//game.bilibili.com/',
]
const loadSettings = () => {
document.documentElement.style.setProperty('--navbar-bounds-padding', `0 ${settings.customNavbarBoundsPadding}%`)

View File

@ -647,6 +647,9 @@
}
}
}
.calendar.active {
@include to-theme("blue");
}
}
.toolbar {
.static-popup {

View File

@ -239,6 +239,12 @@
}
}
.s_tag .tag-area {
.topic-link {
@include color("e");
.tag-icon {
@include to-white();
}
}
.channel {
&-icon {
@include to-white();

View File

@ -712,3 +712,285 @@ $media-types: (video, bangumi, cheese, live, manga, movie, ogv, article);
}
}
}
.suggest-wrap .suggest-item {
@include color("e");
&:hover{
@include background("6e")
}
}
#all-list {
.sub-filter {
@include background("6e")
}
.icon-tid2-arr {
@include color("6e")
}
.mixin-list .user-list {
.all-user-item > .user-row .title,
.u-videos .video-item .video-desc {
@include color("e")
}
}
}
.dyn-topic-panel {
.topic-panel {
@include background("4");
&__nav {
&-title {
@include color("e");
}
}
.relevant-topic {
&::before {
@include to-gray(0.8);
}
&:hover .relevant-topic__title {
@include theme-color();
}
&__title {
@include color("e");
}
&__exposed {
@include color("a");
}
}
}
}
.bili-topic-selector {
&__search {
.bili-topic-search {
&__input__prefix,
&__input__text {
@include color("a");
}
&__popover {
@include background-color("3");
@include border-color();
}
&__popover.active {
@include theme-shadow();
.bili-topic-search {
&__input {
@include background-color("4");
&__inner {
@include color("e");
&::placeholder {
@include color("a");
}
}
&__text {
@include color("9");
}
}
}
}
}
}
.bili-topic-item {
&__cloud {
&:hover {
@include background("2");
}
&__prefix {
@include to-gray(0.8);
}
&__name {
@include color("e");
}
&__desc {
@include color("a");
}
}
}
&__rcmd {
&__default {
.bili-topic-item {
&__stela {
@include background("3");
&__prefix {
@include to-theme("blue");
}
&__name {
@include to-theme("blue");
}
}
}
}
.bili-topic-rcmd-more {
&__action {
@include background("3");
@include theme-color();
}
&__items {
.bili-topic-item__cloud {
&__prefix {
@include theme-color();
}
&__name {
@include color("e");
}
}
}
&__popover {
@include background("3");
@include border-color();
&.hover {
@include theme-shadow();
}
}
}
}
&__bulletin {
@include background("4");
.bili-topic-item {
&__normal {
&:hover {
@include theme-background("10");
}
&__prefix {
@include to-theme("blue");
}
&__name {
@include to-theme("blue");
}
}
}
&__clear {
@include to-theme("blue");
}
}
}
.comment-setting {
.settings-panel {
@include background("3");
@include border-color();
@include theme-shadow();
&__option {
@include color("e");
&:hover {
@include color("e");
@include background-color("2");
}
&--active {
@include theme-color();
&:hover {
@include theme-color();
}
}
}
}
}
.toolbar-box {
.icon-reserve.live:hover {
@include to-theme("blue");
}
}
.bili-popup-layer {
@include background-color("2");
@include border-color();
&__content {
.dynamic-reserve {
&__type {
@include color("e");
}
&__form__item {
&.title {
.bili-input {
&::before {
@include border-color();
}
&:hover::before {
@include theme-border-color();
}
&__inner {
@include color("e");
@include background-color("4");
}
}
}
&.datetime {
.date-input {
input {
@include background-color("4");
}
&::before {
@include border-color();
}
&:hover::before {
@include theme-border-color();
}
.calendar.active {
@include to-theme("blue");
}
}
.scroll-input {
.s-input-wrap {
&::before {
@include border-color();
}
&:hover::before {
@include theme-border-color();
}
.s-input {
@include background-color("4");
@include color("e");
}
}
.s-label {
@include color("a");
}
.s-panel {
@include theme-border-color();
@include background-color("4");
.s-item {
@include color("e");
&:hover {
@include theme-color();
}
}
}
}
}
}
&__about {
img {
@include to-theme("blue");
}
.link {
@include theme-color();
}
}
}
}
&__footer {
&::after {
@include border-color();
}
}
@at-root #{&}__button {
@include color("e");
&.confirm {
@include theme-background-color();
}
&.cancel {
@include background("4");
}
&::before {
@include border-color();
}
}
}
.dyn-topic {
&__card:hover {
@include theme-background("10");
}
&__icon {
@include to-theme("blue");
}
&__text {
@include theme-color();
}
}

View File

@ -4,6 +4,9 @@
.bili-header__banner {
display: none !important;
}
.bili-header {
height: 50px !important;
}
div.blur-bg,
.b-header-mask-wrp .b-header-mask-bg {
opacity: 0 !important;

View File

@ -214,12 +214,12 @@ export default {
}
&::before {
background-image: linear-gradient(to left, transparent, var(--simplify-home-background));
left: 0;
left: -1px;
opacity: 0;
}
&::after {
background-image: linear-gradient(to right, transparent, var(--simplify-home-background));
right: 0;
right: -1px;
opacity: 1;
}
&.is-bottom {

View File

@ -8,7 +8,7 @@ const playerModePolyfill = async () => {
Observer.attributes(bpxContainer, () => {
const dataScreen = bpxContainer.getAttribute('data-screen')
document.body.classList.toggle('player-mode-webfullscreen', dataScreen === 'full' || dataScreen === 'web')
document.body.classList.toggle('player-mode-widescreen', dataScreen === 'wide')
dataScreen === 'wide' ? document.body.classList.add('player-mode-widescreen') : ''
})
}
const idPolyfill = async () => {

View File

@ -56,17 +56,17 @@ async function checkNewVersion () {
try {
const clientTypeMatch = GM.info.script.name.match(/Bilibili Evolved \((.*)\)/)
const clientType = clientTypeMatch ? '.' + clientTypeMatch[1].replace(/ /g, '-').toLowerCase() : ''
let latestVersionText
try {
latestVersionText = await Ajax.monkey({ url: (Resource.cdnRoot || Resource.root) + 'version.txt' })
} catch (error) {
const isPreview = clientType === '.preview'
// 脚本的更新固定只能为jsDelivr
latestVersionLink = `https://cdn.jsdelivr.net/gh/the1812/Bilibili-Evolved@${isPreview ? 'preview' : 'master'}/bilibili-evolved${clientType}.user.js`
let latestVersionText
try {
const latestScript = await Ajax.monkey({
url: latestVersionLink,
})
latestVersionText = latestScript.match(/@version[ ]*([\d\.]+)/)[1]
} catch (error) {
latestVersionText = await Ajax.monkey({ url: Resource.cdnRoot || Resource.root + 'version.txt' })
}
const latestVersion = new Version(latestVersionText)
if (latestVersion.parts[0] >= 2 && !settings.noNotifyV2) {

View File

@ -1,6 +1,15 @@
if (typeof isEmbeddedPlayer !== 'undefined' && isEmbeddedPlayer()) {
return
}
const supportedUrls = [
'https://www.bilibili.com/video/',
'https://www.bilibili.com/watchlater/',
'https://www.bilibili.com/medialist/play/',
'https://www.bilibili.com/bangumi/play/',
]
if (!supportedUrls.some(url => document.URL.startsWith(url))) {
return
}
const playerModes = [
{
name: '常规',
@ -66,15 +75,31 @@ async function main () {
const { playerAgent } = await import('./player-agent')
await playerReady()
Observer.videoChange(async () => {
// if (!autoPlay) {
// video.addEventListener('play', lightOff, { once: true })
// } else {
// lightOff()
// }
const video = await playerAgent.query.video.element()
if (!video) {
return
}
if (autoPlay) {
lightOff()
}
video.addEventListener('ended', lightOn)
video.addEventListener('pause', lightOn)
video.addEventListener('play', lightOff)
})
const video = await playerAgent.query.video.element()
if (!video) {
return
}
const info = playerModes.find(it => it.name === settings.defaultPlayerMode)
const onplay = async () => {
const container = await (playerAgent.query.bilibiliPlayer())
const attribute = container.getAttribute('data-screen')
const isNormalMode = !container.className.includes('mode-') && (attribute === null || attribute === 'normal')
const isNormalMode = !dq('body[class*=player-mode-]')
if (info && isNormalMode) {
info.action()
}
@ -85,17 +110,5 @@ async function main () {
} else {
onplay()
}
// if (!autoPlay) {
// video.addEventListener('play', lightOff, { once: true })
// } else {
// lightOff()
// }
if (autoPlay) {
lightOff()
}
video.addEventListener('ended', lightOn)
video.addEventListener('pause', lightOn)
video.addEventListener('play', lightOff)
}
Observer.videoChange(main)
main()

View File

@ -1,12 +1,12 @@
<div class="frame-playback prev-frame">
<span><i class="mdi mdi-chevron-left mdi-24px"></i></span>
<div class="player-tooltips tip top-center animation active">
<div class="player-tooltips bpx-player-tooltip-item tip top-center animation active">
<div class="tooltip">上一帧</div>
</div>
</div>
<div class="frame-playback next-frame">
<span><i class="mdi mdi-chevron-right mdi-24px"></i></span>
<div class="player-tooltips tip top-center animation active">
<div class="player-tooltips bpx-player-tooltip-item tip top-center animation active">
<div class="tooltip">下一帧</div>
</div>
</div>

View File

@ -2,6 +2,7 @@ import html from 'framePlaybackHtml'
resources.applyStyle('framePlaybackStyle')
const main = async () => {
const { playerAgent } = await import('../player-agent')
if (settings.videoScreenshot) {
const screenshotButton = await SpinQuery.select('.video-take-screenshot')
if (screenshotButton === null || document.querySelector('.frame-playback')) {
@ -9,7 +10,7 @@ const main = async () => {
}
screenshotButton.insertAdjacentHTML('afterend', html)
} else {
const time = await SpinQuery.select('.bilibili-player-video-time')
const time = await playerAgent.query.control.buttons.time()
if (time === null || document.querySelector('.frame-playback')) {
return
}
@ -18,13 +19,12 @@ const main = async () => {
let frameTime = 0
const seek = (forward) => () => {
const video = dq('video')
unsafeWindow.player.seek(video.currentTime + (forward ? 1 : -1) * frameTime, video.paused)
playerAgent.changeTime((forward ? 1 : -1) * frameTime)
}
const prevFrame = seek(false)
const nextFrame = seek(true)
Observer.attributesSubtree('.bilibili-player-video-quality-menu ul.bui-select-list', () => {
const selectedQuality = document.querySelector('.bilibili-player-video-quality-menu .bui-select-item-active')
Observer.attributesSubtree(`${playerAgent.query.control.buttons.quality.selector} ul`, () => {
const selectedQuality = document.querySelector(`${playerAgent.query.control.buttons.quality.selector} .bui-select-item-active, ${playerAgent.query.control.buttons.quality.selector} .active`)
const quality = selectedQuality ? parseInt(selectedQuality.getAttribute('data-value')) : 0
const fps = (() => {
switch (quality) {
@ -40,19 +40,6 @@ const main = async () => {
frameTime = 1 / fps
// console.log(frameTime);
})
// document.addEventListener('keydown', e => {
// if (e.shiftKey && !isTyping()) {
// if (e.key === 'ArrowLeft') {
// e.stopPropagation()
// e.preventDefault()
// prevFrame()
// } else if (e.key === 'ArrowRight') {
// e.stopPropagation()
// e.preventDefault()
// nextFrame()
// }
// }
// })
document.querySelector('.prev-frame').addEventListener('click', prevFrame)
document.querySelector('.next-frame').addEventListener('click', nextFrame)
if (settings.touchVideoPlayer) {
@ -61,6 +48,6 @@ const main = async () => {
}
Observer.videoChange(main)
export default {
reload: () => document.querySelectorAll('.bilibili-player-video-control-bottom .frame-playback').forEach(it => it.setAttribute('style', 'display: flex !important')),
unload: () => document.querySelectorAll('.bilibili-player-video-control-bottom .frame-playback').forEach(it => it.setAttribute('style', 'display: none !important'))
reload: () => document.querySelectorAll('.frame-playback').forEach(it => it.setAttribute('style', 'display: flex !important')),
unload: () => document.querySelectorAll('.frame-playback').forEach(it => it.setAttribute('style', 'display: none !important'))
}

View File

@ -9,19 +9,28 @@
span {
height: 100%;
.player-fullscreen-fix .squirtle-controller-wrap &,
.player-mode-webfullscreen .squirtle-controller-wrap & {
height: auto;
align-self: center;
}
}
.squirtle-controller-wrap &,
.bilibili-player-video-control-bottom & {
display: flex !important;
}
.player-tooltips.active {
transition-duration: .15s;
transition-delay: .15s;
transition-duration: 0.15s;
transition-delay: 0.15s;
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%) translateY(calc(-100% - 4px));
opacity: 0;
pointer-events: none;
visibility: visible;
white-space: nowrap;
}
&:hover .player-tooltips {
opacity: 1;
@ -48,8 +57,8 @@
&:not(.touch) i {
margin-top: -2px;
}
.bilibili-player.mode-fullscreen &,
.bilibili-player.mode-webfullscreen & {
.player-fullscreen-fix &,
.player-mode-webfullscreen & {
margin-left: 4px;
padding: 0 4px;

View File

@ -233,7 +233,7 @@ export class BangumiPlayerAgent extends PlayerAgent {
buttons: {
start: '.squirtle-video-start',
next: '.squirtle-video-next',
time: '.squirtle-video-time',
time: '.squirtle-time-wrap',
quality: '.squirtle-video-quality',
pageList: '.squirtle-video-pagelist',
speed: '.squirtle-video-speed',

View File

@ -5,9 +5,16 @@
*/
export const playerReady = () => {
return new Promise<void>(async (resolve, reject) => {
const isJudgementVideo = document.URL.replace(window.location.search, '') === 'https://www.bilibili.com/blackboard/newplayer.html' && document.URL.includes('fjw=true')
if (isJudgementVideo) {
/* , resolve
https://github.com/the1812/Bilibili-Evolved/issues/2340
*/
return
}
await SpinQuery.condition(
() => unsafeWindow,
() => unsafeWindow.onLoginInfoLoaded !== undefined,
() => unsafeWindow.UserStatus !== undefined,
)
if (unsafeWindow.onLoginInfoLoaded) {
unsafeWindow.onLoginInfoLoaded(resolve)

View File

@ -30,11 +30,17 @@
opacity: 0.9;
transition: all 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28);
display: block;
.bilibili-player.mode-fullscreen &,
.bilibili-player.mode-webfullscreen & {
.player-fullscreen-fix &,
.player-mode-webfullscreen & {
font-size: 24px;
}
}
span {
.player-fullscreen-fix .squirtle-controller-wrap &,
.player-mode-webfullscreen .squirtle-controller-wrap & {
align-self: center;
}
}
.player-tooltips.active {
transition-duration: .15s;
transition-delay: .15s;
@ -43,6 +49,9 @@
left: 50%;
transform: translateX(-50%) translateY(calc(-100% - 4px));
opacity: 0;
pointer-events: none;
visibility: visible;
white-space: nowrap;
}
&:hover .player-tooltips {
opacity: 1;

View File

@ -16,7 +16,8 @@ class Screenshot {
}
async createUrl() {
if (this.withDanmaku) {
const videoWrapper = dq('.bilibili-player-video-wrap') as HTMLElement
const { playerAgent } = await import('../player-agent')
const videoWrapper = dq(playerAgent.query.video.wrap.selector) as HTMLElement
const rect = videoWrapper.getBoundingClientRect()
const playerRatio = rect.width / rect.height
const videoRatio = this.video.videoWidth / this.video.videoHeight
@ -168,11 +169,12 @@ Observer.videoChange(async () => {
})
}
const video = await SpinQuery.select('.bilibili-player-video video') as HTMLVideoElement
const { playerAgent } = await import('../player-agent')
const video = await playerAgent.query.video.element() as HTMLVideoElement
if (video === null) {
return
}
const time = await SpinQuery.select('.bilibili-player-video-time, .squirtle-time-wrap')
const time = await playerAgent.query.control.buttons.time()
if (time === null || document.querySelector('.video-take-screenshot')) {
return
}
@ -180,14 +182,14 @@ Observer.videoChange(async () => {
const buttonHtml = /*html*/`
<div class="video-take-screenshot">
<span><i class="mdi mdi-camera"></i></span>
<div class="player-tooltips tip top-center animation active">
<div class="player-tooltips bpx-player-tooltip-item tip top-center animation active">
<div class="tooltip"></div>
</div>
</div>`
time.insertAdjacentHTML('afterend', buttonHtml)
const screenshotButton = document.querySelector('.video-take-screenshot') as HTMLElement
screenshotButton.addEventListener('click', async e => {
const video = await SpinQuery.select('.bilibili-player-video video') as HTMLVideoElement
const video = await playerAgent.query.video.element() as HTMLVideoElement
const screenshot = takeScreenshot(video, e.shiftKey)
screenShotsList.screenshots.unshift(screenshot)
})
@ -210,8 +212,8 @@ export default {
takeScreenshot,
screenShotsList,
},
unload: () => document.querySelectorAll('.bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container')
unload: () => document.querySelectorAll('.video-take-screenshot,.video-screenshot-container')
.forEach(it => (it as HTMLElement).setAttribute('style', 'display: none !important')),
reload: () => document.querySelectorAll('.bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container')
reload: () => document.querySelectorAll('.video-take-screenshot,.video-screenshot-container')
.forEach(it => (it as HTMLElement).setAttribute('style', 'display: flex !important')),
}

View File

@ -108,6 +108,7 @@ export default (() => {
}
}
else {
const spaceElementSelector = '.header-info-ctnr .room-cover, .header-info-ctnr .avatar'
return {
widget: {
content: /*html*/`
@ -118,11 +119,11 @@ export default (() => {
<span></span>
</button>`,
condition: async () => {
const coverLink = await SpinQuery.select(() => document.querySelector('.header-info-ctnr .room-cover'))
const coverLink = await SpinQuery.select(() => document.querySelector(spaceElementSelector))
return Boolean(coverLink)
},
success: async () => {
const coverLink = document.querySelector('.header-info-ctnr .room-cover') as HTMLAnchorElement
const coverLink = document.querySelector(spaceElementSelector) as HTMLAnchorElement
const match = coverLink.href.match(/space\.bilibili\.com\/([\d]+)/)
if (match && match[1]) {
const uid = match[1]

View File

@ -1 +1 @@
1.12.19
1.12.22