Skip to content

Commit

Permalink
feat: contextmenu copy url
Browse files Browse the repository at this point in the history
  • Loading branch information
festoney8 committed Apr 25, 2024
1 parent f7813ab commit 1143f12
Show file tree
Hide file tree
Showing 7 changed files with 72 additions and 35 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# CHANGELOG

## 3.4.8

- 新增:右键菜单中复制链接功能

## 3.4.7

- 优化:播放页视频信息置底
Expand Down
25 changes: 16 additions & 9 deletions src/filters/videoFilter/pages/channel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,14 +184,19 @@ if (isPageChannel()) {
const uploader = node?.textContent
if (uploader) {
e.preventDefault()
const onclickBlack = () => {
menu.registerMenu(`◎ 屏蔽UP主:${uploader}`, () => {
channelUploaderAction.add(uploader)
}
const onclickWhite = () => {
})
menu.registerMenu(`◎ 将UP主加入白名单`, () => {
channelUploaderWhitelistAction.add(uploader)
}
menu.registerMenu(`◎ 屏蔽UP主:${uploader}`, onclickBlack)
menu.registerMenu(`◎ 将UP主加入白名单`, onclickWhite)
})
menu.registerMenu(`◎ 复制主页链接`, () => {
const url = node.closest('.bili-video-card__info--owner')?.getAttribute('href')
if (url) {
const matches = url.match(/space\.bilibili\.com\/\d+/g)
matches && navigator.clipboard.writeText(`https://${matches[0]}`)
}
})
menu.show(e.clientX, e.clientY)
}
} else if (
Expand All @@ -205,10 +210,12 @@ if (isPageChannel()) {
const bvid = matchBvid(href)
if (bvid) {
e.preventDefault()
const onclick = () => {
menu.registerMenu(`◎ 屏蔽视频 ${bvid}`, () => {
channelBvidAction.add(bvid)
}
menu.registerMenu(`屏蔽视频 ${bvid}`, onclick)
})
menu.registerMenu(`◎ 复制视频链接`, () => {
navigator.clipboard.writeText(`https://www.bilibili.com/video/${bvid}`)
})
menu.show(e.clientX, e.clientY)
}
}
Expand Down
25 changes: 16 additions & 9 deletions src/filters/videoFilter/pages/homepage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,14 +218,19 @@ if (isPageHomepage()) {
const uploader = node?.textContent
if (uploader) {
e.preventDefault()
const onclickBlack = () => {
menu.registerMenu(`◎ 屏蔽UP主:${uploader}`, () => {
homepageUploaderAction.add(uploader)
}
const onclickWhite = () => {
})
menu.registerMenu(`◎ 将UP主加入白名单`, () => {
homepageUploaderWhitelistAction.add(uploader)
}
menu.registerMenu(`◎ 屏蔽UP主:${uploader}`, onclickBlack)
menu.registerMenu(`◎ 将UP主加入白名单`, onclickWhite)
})
menu.registerMenu(`◎ 复制主页链接`, () => {
const url = node.closest('.bili-video-card__info--owner')?.getAttribute('href')
if (url) {
const matches = url.match(/space\.bilibili\.com\/\d+/g)
matches && navigator.clipboard.writeText(`https://${matches[0]}`)
}
})
menu.show(e.clientX, e.clientY)
}
} else if (
Expand All @@ -239,10 +244,12 @@ if (isPageHomepage()) {
const bvid = matchBvid(href)
if (bvid) {
e.preventDefault()
const onclick = () => {
menu.registerMenu(`◎ 屏蔽视频 ${bvid}`, () => {
homepageBvidAction.add(bvid)
}
menu.registerMenu(`屏蔽视频 ${bvid}`, onclick)
})
menu.registerMenu(`◎ 复制视频链接`, () => {
navigator.clipboard.writeText(`https://www.bilibili.com/video/${bvid}`)
})
menu.show(e.clientX, e.clientY)
}
}
Expand Down
22 changes: 15 additions & 7 deletions src/filters/videoFilter/pages/search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,14 +187,19 @@ if (isPageSearch()) {
const uploader = node?.textContent
if (uploader) {
e.preventDefault()
const onclickBlack = () => {
menu.registerMenu(`◎ 屏蔽UP主:${uploader}`, () => {
searchUploaderAction.add(uploader)
}
const onclickWhite = () => {
})
menu.registerMenu(`◎ 将UP主加入白名单`, () => {
searchUploaderWhitelistAction.add(uploader)
}
menu.registerMenu(`◎ 屏蔽UP主:${uploader}`, onclickBlack)
menu.registerMenu(`◎ 将UP主加入白名单`, onclickWhite)
})
menu.registerMenu(`◎ 复制主页链接`, () => {
const url = node.closest('.bili-video-card__info--owner')?.getAttribute('href')
if (url) {
const matches = url.match(/space\.bilibili\.com\/\d+/g)
matches && navigator.clipboard.writeText(`https://${matches[0]}`)
}
})
menu.show(e.clientX, e.clientY)
}
} else if (isContextMenuBvidEnable && e.target.closest('.bili-video-card__info--tit')) {
Expand All @@ -207,9 +212,12 @@ if (isPageSearch()) {
const bvid = matchBvid(href)
if (bvid) {
e.preventDefault()
menu.registerMenu(`屏蔽视频 ${bvid}`, () => {
menu.registerMenu(`屏蔽视频 ${bvid}`, () => {
searchBvidAction.add(bvid)
})
menu.registerMenu(`◎ 复制视频链接`, () => {
navigator.clipboard.writeText(`https://www.bilibili.com/video/${bvid}`)
})
menu.show(e.clientX, e.clientY)
}
}
Expand Down
5 changes: 4 additions & 1 deletion src/filters/videoFilter/pages/space.ts
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,12 @@ if (isPageSpace()) {
const bvid = matchBvid(href)
if (bvid) {
e.preventDefault()
menu.registerMenu(`屏蔽视频 ${bvid}`, () => {
menu.registerMenu(`屏蔽视频 ${bvid}`, () => {
spaceBvidAction.add(bvid)
})
menu.registerMenu(`◎ 复制视频链接`, () => {
navigator.clipboard.writeText(`https://www.bilibili.com/video/${bvid}`)
})
menu.show(e.clientX, e.clientY)
}
}
Expand Down
24 changes: 16 additions & 8 deletions src/filters/videoFilter/pages/video.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,14 +198,20 @@ if (isPageVideo() || isPagePlaylist()) {
target.parentElement?.textContent?.trim()
if (uploader) {
e.preventDefault()
const onclickBlack = () => {
menu.registerMenu(`◎ 屏蔽UP主:${uploader}`, () => {
videoUploaderAction.add(uploader)
}
const onclickWhite = () => {
})
menu.registerMenu(`◎ 将UP主加入白名单`, () => {
videoUploaderWhitelistAction.add(uploader)
})
const url = target.closest('.upname')?.querySelector(':scope a')?.getAttribute('href')
if (url) {
const matches = url.match(/space\.bilibili\.com\/\d+/g)
matches &&
menu.registerMenu(`◎ 复制主页链接`, () => {
navigator.clipboard.writeText(`https://${matches[0]}`)
})
}
menu.registerMenu(`◎ 屏蔽UP主:${uploader}`, onclickBlack)
menu.registerMenu(`◎ 将UP主加入白名单`, onclickWhite)
menu.show(e.clientX, e.clientY)
}
} else if (isContextMenuBvidEnable && target.classList.contains('title')) {
Expand All @@ -215,10 +221,12 @@ if (isPageVideo() || isPagePlaylist()) {
const bvid = matchBvid(href)
if (bvid) {
e.preventDefault()
const onclick = () => {
menu.registerMenu(`◎ 屏蔽视频 ${bvid}`, () => {
videoBvidAction.add(bvid)
}
menu.registerMenu(`屏蔽视频 ${bvid}`, onclick)
})
menu.registerMenu(`◎ 复制视频链接`, () => {
navigator.clipboard.writeText(`https://www.bilibili.com/video/${bvid}`)
})
menu.show(e.clientX, e.clientY)
}
}
Expand Down
2 changes: 1 addition & 1 deletion vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export default defineConfig({
userscript: {
name: 'bilibili 页面净化大师',
namespace: 'http://tampermonkey.net/',
version: '3.4.7',
version: '3.4.8',
description:
'净化 B站/哔哩哔哩 页面,支持「精简功能、播放器净化、过滤视频、过滤评论、全站黑白名单」,提供 300+ 功能,定制自己的 B 站',
author: 'festoney8',
Expand Down

0 comments on commit 1143f12

Please sign in to comment.