diff --git a/package.json b/package.json index e8fa471..36cda10 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Miru", - "version": "2.12.0", + "version": "2.12.1", "author": "ThaUnknown_ ", "main": "src/index.js", "homepage": "https://github.com/ThaUnknown/miru#readme", diff --git a/src/renderer/src/lib/Player/MediaHandler.svelte b/src/renderer/src/lib/Player/MediaHandler.svelte index c4b6b8d..900dcde 100644 --- a/src/renderer/src/lib/Player/MediaHandler.svelte +++ b/src/renderer/src/lib/Player/MediaHandler.svelte @@ -16,7 +16,7 @@ const processed = writable([]) const noop = () => {} -let playFile = noop +let playFile media.subscribe((media) => { handleMedia(media || {}) diff --git a/src/renderer/src/lib/Player/Player.svelte b/src/renderer/src/lib/Player/Player.svelte index 7e930f3..92fdec3 100644 --- a/src/renderer/src/lib/Player/Player.svelte +++ b/src/renderer/src/lib/Player/Player.svelte @@ -67,8 +67,6 @@ let volume = localStorage.getItem('volume') || 1 let playbackRate = 1 $: localStorage.setItem('volume', volume || 0) -export let media - function checkAudio () { if ('audioTracks' in HTMLVideoElement.prototype && !video.audioTracks.length) { addToast({ @@ -186,14 +184,17 @@ async function handleCurrent (file) { src = file.url client.send('current', file) video?.load() - checkAvail(current) clearCanvas() } } +export let media + +$: checkAvail(media) let hasNext = false let hasLast = false -function checkAvail (current) { +function checkAvail () { + console.log(media) if ((media?.media?.nextAiringEpisode?.episode - 1 || media?.media?.episodes) > media?.episode) { hasNext = true } else if (videos.indexOf(current) !== videos.length - 1) { @@ -443,6 +444,11 @@ loadWithDefaults({ id: 'skip_next', type: 'icon' }, + KeyB: { + fn: () => playLast(), + id: 'skip_previous', + type: 'icon' + }, KeyM: { fn: () => (muted = !muted), id: 'volume_off', @@ -945,7 +951,7 @@ function checkError ({ target }) {
(page = 'player')}>
- skip_previous + skip_previous fast_rewind {ended ? 'replay' : paused ? 'play_arrow' : 'pause'} fast_forward @@ -980,6 +986,9 @@ function checkError ({ target }) {
{ended ? 'replay' : paused ? 'play_arrow' : 'pause'} + {#if hasLast} + skip_previous + {/if} {#if hasNext} skip_next {/if} diff --git a/src/renderer/src/lib/WatchTogether/WatchTogether.svelte b/src/renderer/src/lib/WatchTogether/WatchTogether.svelte index 0ac4918..6e55729 100644 --- a/src/renderer/src/lib/WatchTogether/WatchTogether.svelte +++ b/src/renderer/src/lib/WatchTogether/WatchTogether.svelte @@ -3,7 +3,7 @@ import { writable } from 'svelte/store' import { alID } from '@/modules/anilist.js' import { add, client } from '@/modules/torrent.js' import { generateRandomHexCode } from '@/modules/util.js' -// import { addToast } from '@/lib/Toasts.svelte' +import { addToast } from '@/lib/Toasts.svelte' import { page } from '@/App.svelte' import 'browser-event-target-emitter' @@ -118,14 +118,18 @@ const playerState = { index: 0 } -const linkRx = /(.*)/i -window.IPC.on('w2glink', async link => { - const match = link.match(linkRx) - if (match) { - page.set('watchtogether') - joinLobby(match[1]) +function checkInvite (invite) { + if (invite) { + const match = invite.match(inviteRx) + if (match) { + page.set('watchtogether') + joinLobby(match[1]) + } } -}) +} + +const inviteRx = /([A-z0-9]{16})/i +window.IPC.on('w2glink', checkInvite) function cleanup () { state.set(false) @@ -133,10 +137,26 @@ function cleanup () { p2pcf.destroy() p2pcf = null } + +function invite () { + if (p2pcf) { + navigator.clipboard.writeText(``) + addToast({ + title: 'Copied to clipboard', + text: 'Copied invite URL to clipboard', + type: 'primary', + duration: '5000' + }) + } +}
@@ -149,11 +169,18 @@ import Lobby from './Lobby.svelte'
group_add - +

Join Lobby

+
{:else} - + {/if}