diff --git a/src/renderer/components/ft-list-video/ft-list-video.js b/src/renderer/components/ft-list-video/ft-list-video.js index 7de0cf139..7285f57db 100644 --- a/src/renderer/components/ft-list-video/ft-list-video.js +++ b/src/renderer/components/ft-list-video/ft-list-video.js @@ -50,7 +50,11 @@ export default Vue.extend({ 'openYoutubeEmbed', 'copyYoutubeEmbed', 'openInvidious', - 'copyInvidious' + 'copyInvidious', + 'openYoutubeChannel', + 'copyYoutubeChannel', + 'openInvidiousChannel', + 'copyInvidiousChannel' ] } }, @@ -89,6 +93,10 @@ export default Vue.extend({ return `${this.invidiousInstance}/watch?v=${this.id}` }, + invidiousChannelUrl: function () { + return `${this.invidiousInstance}/channel/${this.channelId}` + }, + youtubeUrl: function () { return `https://www.youtube.com/watch?v=${this.id}` }, @@ -97,6 +105,10 @@ export default Vue.extend({ return `https://youtu.be/${this.id}` }, + youtubeChannelUrl: function () { + return `https://youtube.com/channel/${this.channelId}` + }, + youtubeEmbedUrl: function () { return `https://www.youtube-nocookie.com/embed/${this.id}` }, @@ -112,7 +124,11 @@ export default Vue.extend({ this.$t('Video.Open YouTube Embedded Player'), this.$t('Video.Copy YouTube Embedded Player Link'), this.$t('Video.Open in Invidious'), - this.$t('Video.Copy Invidious Link') + this.$t('Video.Copy Invidious Link'), + this.$t('Video.Open Channel in YouTube'), + this.$t('Video.Copy YouTube Channel Link'), + this.$t('Video.Open Channel in Invidious'), + this.$t('Video.Copy Invidious Channel Link') ] if (this.watched) { @@ -208,6 +224,30 @@ export default Vue.extend({ shell.openExternal(this.invidiousUrl) } break + case 'copyYoutubeChannel': + navigator.clipboard.writeText(this.youtubeChannelUrl) + this.showToast({ + message: this.$t('Share.YouTube Channel URL copied to clipboard') + }) + break + case 'openYoutubeChannel': + if (this.usingElectron) { + const shell = require('electron').shell + shell.openExternal(this.youtubeChannelUrl) + } + break + case 'copyInvidiousChannel': + navigator.clipboard.writeText(this.invidiousChannelUrl) + this.showToast({ + message: this.$t('Share.Invidious Channel URL copied to clipboard') + }) + break + case 'openInvidiousChannel': + if (this.usingElectron) { + const shell = require('electron').shell + shell.openExternal(this.invidiousChannelUrl) + } + break } }, diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index 9ed316adc..cc2b5e06b 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -394,6 +394,10 @@ Video: Copy YouTube Embedded Player Link: Copy YouTube Embedded Player Link Open in Invidious: Open in Invidious Copy Invidious Link: Copy Invidious Link + Open Channel in YouTube: Open Channel in YouTube + Copy YouTube Channel Link: Copy YouTube Channel Link + Open Channel in Invidious: Open Channel in Invidious + Copy Invidious Channel Link: Copy Invidious Channel Link View: View Views: Views Loop Playlist: Loop Playlist @@ -506,8 +510,11 @@ Share: # On Click Invidious URL copied to clipboard: Invidious URL copied to clipboard Invidious Embed URL copied to clipboard: Invidious Embed URL copied to clipboard + Invidious Channel URL copied to clipboard: Invidious Channel URL copied to clipboard YouTube URL copied to clipboard: YouTube URL copied to clipboard YouTube Embed URL copied to clipboard: YouTube Embed URL copied to clipboard + YouTube Channel URL copied to clipboard: YouTube Channel URL copied to clipboard + Mini Player: Mini Player Comments: Comments: Comments