chore: update dependenices

chore: update electron
fix: button yellow color
feat: more descriptive RSS errors
feat: arabic lang selections
fix: status changing with autocomplete disabled
fix: episode list not showing
fix: w2g lobbies getting wiped
This commit is contained in:
ThaUnknown 2023-07-18 13:51:08 +02:00
parent a4b3a17c93
commit 0b92faf27e
11 changed files with 1143 additions and 621 deletions

View file

@ -1,4 +1,4 @@
const { notarize } = require('electron-notarize')
const { notarize } = require('@electron/notarize')
const path = require('path')
exports.default = async function notarizing (context) {

View file

@ -5,5 +5,5 @@
"@/*": ["src/renderer/*"],
}
},
"exclude": ["node_modules", "**/node_modules", "dist", "build"]
"exclude": ["node_modules/**", "**/node_modules", "dist", "build"]
}

View file

@ -1,6 +1,6 @@
{
"name": "Miru",
"version": "4.2.2",
"version": "4.2.3",
"author": "ThaUnknown_ <ThaUnknown@users.noreply.github.com>",
"description": "Stream anime torrents, real-time with no waiting for downloads.",
"main": "build/main.js",
@ -14,27 +14,26 @@
"publish": "npm run web:build && electron-builder -p always"
},
"devDependencies": {
"@fontsource-variable/material-symbols-outlined": "^5.0.4",
"@fontsource-variable/nunito": "^5.0.5",
"@typescript-eslint/parser": "^5.61.0",
"@electron/notarize": "^2.1.0",
"@fontsource-variable/material-symbols-outlined": "^5.0.5",
"@fontsource-variable/nunito": "^5.0.6",
"@typescript-eslint/parser": "^6.1.0",
"anitomyscript": "github:ThaUnknown/anitomyscript#42290c4b3f256893be08a4e89051f448ff5e9d00",
"bottleneck": "^2.19.5",
"browser-event-target-emitter": "^1.0.0",
"concurrently": "^7.6.0",
"concurrently": "^8.2.0",
"copy-webpack-plugin": "^11.0.0",
"cross-env": "^7.0.3",
"css-loader": "^6.8.1",
"discord-rpc": "4.0.1",
"electron": "23.1.0",
"electron-builder": "^23.6.0",
"electron": "25.1.0",
"electron-builder": "^24.4.0",
"electron-log": "^4.4.8",
"electron-notarize": "^1.2.2",
"electron-updater": "^4.6.5",
"eslint": "^8.43.0",
"electron-updater": "^6.1.1",
"eslint": "^8.45.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-svelte": "^2.31.1",
"html-webpack-plugin": "^5.5.1",
"install": "^0.13.0",
"eslint-plugin-svelte": "^2.32.2",
"html-webpack-plugin": "^5.5.3",
"jassub": "1.7.1",
"js-levenshtein": "^1.1.6",
"matroska-subtitles": "github:ThaUnknown/matroska-subtitles#446d0628ff0bcf13eb95184777615f3a0e6d8ae8",
@ -43,15 +42,15 @@
"perfect-seekbar": "^1.1.0",
"quartermoon": "^1.2.3",
"simple-store-svelte": "^1.0.0",
"svelte": "^4.0.4",
"svelte-eslint-parser": "^0.31.0",
"svelte": "^4.0.5",
"svelte-eslint-parser": "^0.32.1",
"svelte-keybinds": "1.0.5",
"svelte-loader": "^3.1.9",
"svelte-miniplayer": "1.0.3",
"svelte-sonner": "^0.1.1",
"webpack": "^5.85.0",
"webpack-cli": "^5.1.3",
"webpack-dev-server": "^4.15.0",
"svelte-sonner": "^0.1.2",
"webpack": "^5.88.2",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1",
"webtorrent": "^2.1.12"
},
"dependencies": {
@ -74,7 +73,7 @@
"asarUnpack": "**/*.node",
"electronDownload": {
"mirror": "https://github.com/aa910d571134/feb7c2e1a10f/releases/download/",
"version": "23.1.0",
"version": "25.1.0",
"customDir": "2ffc48f0b43f"
},
"protocols": {

File diff suppressed because it is too large Load diff

View file

@ -26,6 +26,7 @@
.btn-secondary {
--dm-button-secondary-bg-color: #fff !important;
--dm-button-secondary-bg-color-hover: #ddd !important;
--dm-button-secondary-bg-color-focus: var(--dm-button-secondary-bg-color) !important;
}
[data-sonner-toaster][data-theme='dark'] {

View file

@ -7,7 +7,7 @@ import { client } from '@/modules/torrent.js'
import anitomyscript from 'anitomyscript'
export default async function tosho ({ media, episode }) {
export default async function ({ media, episode }) {
const json = await getAniDBFromAL(media)
if (!json) return []
@ -45,13 +45,11 @@ export default async function tosho ({ media, episode }) {
found.seeders = complete
}
if (!mapped?.length) throw new Error('no entries found')
if (!mapped?.length) throw new Error('No entries found.')
return mapped
}
window.tosho = tosho
async function getAniDBFromAL (media) {
console.log('getting AniDB ID from AL')
const mappingsResponse = await fetch('https://api.ani.zip/mappings?anilist_id=' + media.id)

View file

@ -798,7 +798,7 @@
let completed = false
function checkCompletion () {
if (!completed) {
if (!completed && set.playerAutocomplete) {
const fromend = Math.max(180, safeduration / 10)
if (safeduration && currentTime && video?.readyState && safeduration - fromend < currentTime) {
if (media?.media?.episodes || media?.media?.nextAiringEpisode?.episode) {

View file

@ -77,7 +77,11 @@
toast.promise(promise, {
loading: `Looking for torrents for ${media.title.userPreferred} Episode ${parseInt(episode)}...`,
success: `Found torrents for ${media.title.userPreferred} Episode ${parseInt(episode)}.`,
error: `Couldn't find torrents for ${media.title.userPreferred} Episode ${parseInt(episode)}! Try specifying a torrent manually.`
error: err => {
console.error(err)
return `Couldn't find torrents for ${media.title.userPreferred} Episode ${parseInt(episode)}! Try specifying a torrent manually.\n${err.message}`
}
})
let entries
try {

View file

@ -305,6 +305,7 @@
<option value='rum'>Romanian</option>
<option value='slo'>Slovak</option>
<option value='swe'>Swedish</option>
<option value='ara'>Arabic</option>
</select>
</div>
<div class='input-group mb-10 w-400 form-control-lg' data-toggle='tooltip' data-placement='top' data-title='What Audio Language To Automatically Select, If Not Found Defaults To Japanese'>
@ -332,6 +333,7 @@
<option value='rum'>Romanian</option>
<option value='slo'>Slovak</option>
<option value='swe'>Swedish</option>
<option value='ara'>Arabic</option>
</select>
</div>
</div>

View file

@ -1,6 +1,6 @@
<script>
import { getContext, setStatus } from 'svelte'
import { getMediaMaxEp, formatMap, playMedia } from '@/modules/anime.js'
import { getContext } from 'svelte'
import { getMediaMaxEp, formatMap, playMedia, setStatus } from '@/modules/anime.js'
import { playAnime } from '../RSSView.svelte'
import { toast } from 'svelte-sonner'
import { alRequest } from '@/modules/anilist.js'
@ -170,7 +170,7 @@
</ToggleList>
</div>
<div class='col-5 d-flex flex-column pl-20'>
<EpisodeList id={media.id} userProgress={media.mediaListEntry && media.mediaListEntry.status === 'CURRENT' && media.mediaListEntry.progress} episodeCount={media.episodes} duration={media.duration} {play} />
<EpisodeList id={media.id} userProgress={media.mediaListEntry && media.mediaListEntry.status === 'CURRENT' && media.mediaListEntry.progress} episodeCount={getMediaMaxEp(media)} duration={media.duration} {play} />
</div>
</div>
</div>

View file

@ -130,13 +130,7 @@
index: 0
}
function checkInvite (invite) {
page.set('watchtogether')
joinLobby(invite?.match(inviteRx)[1])
}
const inviteRx = /([A-z0-9]{16})/i
window.IPC.on('w2glink', checkInvite)
window.IPC.on('w2glink', joinLobby)
function cleanup () {
state.set(false)
@ -161,6 +155,16 @@
let joinText
const inviteRx = /([A-z0-9]{16})/i
function checkInvite (invite) {
if (!invite) return
const match = invite?.match(inviteRx)?.[1]
if (!match) return
page.set('watchtogether')
joinLobby(match)
joinText = ''
}
$: checkInvite(joinText)
</script>