diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle index b29e87e7..1c238a53 100644 --- a/materialious/android/app/build.gradle +++ b/materialious/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "us.materialio.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 230 - versionName "1.16.13" + versionCode 231 + versionName "1.16.14" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/materialious/electron/materialious.metainfo.xml b/materialious/electron/materialious.metainfo.xml index 4f7cacea..481b2a8f 100644 --- a/materialious/electron/materialious.metainfo.xml +++ b/materialious/electron/materialious.metainfo.xml @@ -72,7 +72,11 @@ - + + + https://github.com/Materialious/Materialious/releases/tag/1.16.14 + + https://github.com/Materialious/Materialious/releases/tag/1.16.13 diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 4381d1a3..23d45bdc 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -1,6 +1,6 @@ { "name": "Materialious", - "version": "1.16.13", + "version": "1.16.14", "description": "Modern material design for YouTube and Invidious.", "author": { "name": "Ward Pearce", diff --git a/materialious/package.json b/materialious/package.json index 186ddb7b..196ba868 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -1,6 +1,6 @@ { "name": "materialious", - "version": "1.16.13", + "version": "1.16.14", "private": true, "scripts": { "dev": "npm run patch:github && vite dev", diff --git a/materialious/src/lib/api/invidious/channel.ts b/materialious/src/lib/api/invidious/channel.ts index a49e4e84..60ae404d 100644 --- a/materialious/src/lib/api/invidious/channel.ts +++ b/materialious/src/lib/api/invidious/channel.ts @@ -12,7 +12,7 @@ export async function getChannelInvidious( const respJson = await resp.json(); if (resp.ok) { - associateAvatar(channelId, respJson.authorBanners); + await associateAvatar(channelId, respJson.authorThumbnails); } return respJson; diff --git a/materialious/src/lib/api/invidious/video.ts b/materialious/src/lib/api/invidious/video.ts index bfd3fd23..ab3bcd82 100644 --- a/materialious/src/lib/api/invidious/video.ts +++ b/materialious/src/lib/api/invidious/video.ts @@ -25,7 +25,7 @@ export async function getVideoInvidious( const respJson = await resp.json(); if (resp.ok) { - associateAvatar(respJson.authorId, respJson.authorThumbnails); + await associateAvatar(respJson.authorId, respJson.authorThumbnails); } return respJson; diff --git a/materialious/src/lib/api/youtubejs/channel.ts b/materialious/src/lib/api/youtubejs/channel.ts index 82240788..c5ad03f3 100644 --- a/materialious/src/lib/api/youtubejs/channel.ts +++ b/materialious/src/lib/api/youtubejs/channel.ts @@ -24,9 +24,10 @@ export async function getChannelYTjs(channelId: string): Promise { innerResults.header.content?.is(YTNodes.PageHeaderView) ) { authorBanners = innerResults.header.content.banner?.image ?? []; - associateAvatar(channelId, authorBanners); } + if (innerResults.metadata.avatar) await associateAvatar(channelId, innerResults.metadata.avatar); + const description = innerResults.metadata.description ?? ''; return { diff --git a/materialious/src/lib/api/youtubejs/video.ts b/materialious/src/lib/api/youtubejs/video.ts index 1c245cf1..7ca94c57 100644 --- a/materialious/src/lib/api/youtubejs/video.ts +++ b/materialious/src/lib/api/youtubejs/video.ts @@ -151,7 +151,7 @@ export async function getVideoYTjs(videoId: string): Promise { const channel = await innertube.getChannel(video.basic_info.channel_id); authorThumbnails = channel.metadata.avatar as Image[]; - associateAvatar(video.basic_info.channel_id, authorThumbnails); + await associateAvatar(video.basic_info.channel_id, authorThumbnails); } else { authorThumbnails = []; } diff --git a/materialious/src/lib/components/AuthorAvatar.svelte b/materialious/src/lib/components/AuthorAvatar.svelte new file mode 100644 index 00000000..92f3aa42 --- /dev/null +++ b/materialious/src/lib/components/AuthorAvatar.svelte @@ -0,0 +1,28 @@ + + +Channel profile + diff --git a/materialious/src/lib/components/thumbnail/VideoThumbnail.svelte b/materialious/src/lib/components/thumbnail/VideoThumbnail.svelte index d00a75a1..f2674220 100644 --- a/materialious/src/lib/components/thumbnail/VideoThumbnail.svelte +++ b/materialious/src/lib/components/thumbnail/VideoThumbnail.svelte @@ -19,8 +19,7 @@ import { queueGetWatchHistory } from '$lib/api/historyPool'; import { page } from '$app/state'; import { getDeArrow, getThumbnailDeArrow } from '$lib/api/dearrow'; - import { avatarFromChannelId } from '$lib/thumbnail'; - import { mergeAttrs } from 'melt'; + import AuthorAvatar from '../AuthorAvatar.svelte'; interface Props { video: VideoBase | Video | Notification | PlaylistPageVideo | VideoWatchHistory; @@ -81,11 +80,6 @@ } }); - let authorAvatarSrc = $state(''); - const authorAvatar = new Avatar({ - src: () => authorAvatarSrc - }); - let startedSideways = sideways === true; function disableSideways() { if (!startedSideways) return; @@ -96,12 +90,6 @@ } onMount(async () => { - if ('authorId' in video) { - avatarFromChannelId(video.authorId).then((url) => { - if (url) authorAvatarSrc = url; - }); - } - // Check if sideways should be enabled or disabled. disableSideways(); @@ -194,14 +182,8 @@