diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle index 0ded4280..164ae233 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 233 - versionName "1.16.16" + versionCode 234 + versionName "1.16.17" 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 3789b97d..955166fd 100644 --- a/materialious/electron/materialious.metainfo.xml +++ b/materialious/electron/materialious.metainfo.xml @@ -75,7 +75,11 @@ - + + + https://github.com/Materialious/Materialious/releases/tag/1.16.17 + + https://github.com/Materialious/Materialious/releases/tag/1.16.16 diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 8f2d7d36..b6368a3c 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -1,6 +1,6 @@ { "name": "Materialious", - "version": "1.16.16", + "version": "1.16.17", "description": "Modern material design for YouTube and Invidious.", "author": { "name": "Ward Pearce", diff --git a/materialious/package.json b/materialious/package.json index c968ccc2..81409a04 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -1,6 +1,6 @@ { "name": "materialious", - "version": "1.16.16", + "version": "1.16.17", "private": true, "scripts": { "dev": "npm run patch:github && vite dev", diff --git a/materialious/src/lib/api/backend/history.ts b/materialious/src/lib/api/backend/history.ts index 951aeb17..2bdf6566 100644 --- a/materialious/src/lib/api/backend/history.ts +++ b/materialious/src/lib/api/backend/history.ts @@ -118,6 +118,16 @@ export async function deleteWatchHistoryBackend() { await fetch('/api/user/history', { method: 'DELETE' }); } +export async function deleteWatchHistoryItemBackend(videoId: string) { + await sodium.ready; + const rawKey = await getRawKey(); + if (!rawKey) return; + + const videoHash = await getSecureHash(videoId, rawKey); + + await fetch(`/api/user/history/${videoHash}`, { method: 'DELETE' }); +} + export async function saveWatchHistoryBackend(video: VideoPlay, progress: number = 0) { await sodium.ready; const rawKey = await getRawKey(); diff --git a/materialious/src/lib/api/index.ts b/materialious/src/lib/api/index.ts index 2d4565e0..6039278c 100644 --- a/materialious/src/lib/api/index.ts +++ b/materialious/src/lib/api/index.ts @@ -74,6 +74,7 @@ import { } from './invidious/playlist'; import { deleteWatchHistoryBackend, + deleteWatchHistoryItemBackend, getVideoWatchHistoryBackend, getWatchHistoryBackend, saveWatchHistoryBackend, @@ -343,6 +344,14 @@ export async function deleteWatchHistory() { await localDb.watchHistory.clear(); } +export async function deleteWatchHistoryItem(videoId: string) { + if (isOwnBackend()?.internalAuth && get(rawMasterKeyStore)) { + return deleteWatchHistoryItemBackend(videoId); + } + + await localDb.watchHistory.delete({ videoId }); +} + export async function updateWatchHistory( videoId: string, progress: number, diff --git a/materialious/src/lib/components/Author.svelte b/materialious/src/lib/components/Author.svelte index c00bba82..52271317 100644 --- a/materialious/src/lib/components/Author.svelte +++ b/materialious/src/lib/components/Author.svelte @@ -60,7 +60,7 @@