[READ-ONLY] Mirror of https://github.com/probablykasper/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
0

Configure Feed

Select the types of activity you want to include in your feed.

Fix auto update

Kasper (Oct 8, 2024, 9:19 AM +0200) c6c5d084 da3b62cb

+19 -10
+14 -6
src/components/CheckForUpdates.svelte
··· 3 3 import Modal from './Modal.svelte' 4 4 import Button from './Button.svelte' 5 5 import { is_dev, save_view_options, view_options } from '@/lib/data' 6 + import { check_shortcut } from '@/lib/helpers' 6 7 7 8 let latest_update: Awaited<ReturnType<typeof check>> | null = null 8 9 ··· 35 36 <Modal 36 37 on_cancel={() => (latest_update = null)} 37 38 cancel_on_escape 38 - form={() => ipc_renderer.invoke('open_url', channel.url)} 39 + form={() => { 40 + ipc_renderer.invoke('open_url', channel.url) 41 + latest_update = null 42 + }} 39 43 title="A new version of Ferrum is available!" 44 + on:keydown={(e) => { 45 + if (check_shortcut(e, 'Enter')) { 46 + ipc_renderer.invoke('open_url', channel.url) 47 + latest_update = null 48 + } 49 + }} 40 50 > 41 - <div class="max-w-xl text-sm"> 51 + <div class="w-md max-w-xl text-sm outline-none" autofocus tabindex="-1"> 42 52 <p class="pb-3"> 43 53 Ferrum {latest_update.channel.version} is available. You are currently on {latest_update.app_version} 44 54 </p> ··· 56 66 }}>Skip This Version</Button 57 67 > 58 68 <div class="grow"></div> 59 - <Button secondary autofocus on:click={() => (latest_update = null)}>Later</Button> 60 - <Button type="submit" on:click={() => ipc_renderer.invoke('open_url', channel.url)} 61 - >Update</Button 62 - > 69 + <Button secondary on:click={() => (latest_update = null)}>Later</Button> 70 + <Button type="submit">Update</Button> 63 71 </svelte:fragment> 64 72 </Modal> 65 73 {/if}
+5 -4
src/electron/update.ts
··· 32 32 if (response instanceof Error) { 33 33 return { error: response.message, data: null } 34 34 } else if (response.status !== 200) { 35 - return { error: `${response.status}: ${response.statusText}`, data: null } 35 + return { error: `${response.status}: ${response.statusText}\n\n${url}`, data: null } 36 36 } 37 37 38 38 const value: JsonValue = await response.json().catch(() => { ··· 55 55 if ( 56 56 !release || 57 57 typeof release !== 'object' || 58 - !('name' in release) || 59 - typeof release.name !== 'string' 58 + !('tag_name' in release) || 59 + typeof release.tag_name !== 'string' 60 60 ) { 61 61 return popup('Failed to check for updates', 'Could not parse JSON') 62 62 } 63 - const update_json_url = `${package_json.repository}/releases/download/${release.name}/update.json` 63 + 64 + const update_json_url = `${package_json.repository}/releases/download/${release.tag_name}/update.json` 64 65 65 66 const update_result = await fetch_json(update_json_url) 66 67 if (update_result.error) {