Hyperpipe/src/scripts/util.js
Shiny Nematoda 7905394b26
Bug Fixes:
- Closes #42
- Closes #44
- Closes #45
2022-10-08 11:02:28 +00:00

66 lines
1.4 KiB
JavaScript

import DOMPurify from 'dompurify';
export function useSanitize(txt) {
return DOMPurify.sanitize(txt, {
ALLOWED_TAGS: ['br'],
});
}
export function useRoute(l) {
history.pushState({}, '', l);
}
export function useWrap(txt) {
return encodeURIComponent(txt).replaceAll('%20', '+');
}
export function useUnwrap(txt) {
return decodeURIComponent(txt).replaceAll('+', ' ');
}
export function useStore() {
try {
return window.localStorage;
} catch (err) {
console.error(err);
const error = i => {
console.error("Failed to Access '" + i + "' Please Enable localStorage.");
};
return {
getItem: error,
setItem: error,
};
}
}
export function useMetadata(url, urls, data) {
if ('mediaSession' in navigator) {
const now = urls.filter(u => u.url === url)[0];
let artwork = [],
album = undefined;
if (now) {
album = now.subtitle;
if (now.thumbnails) {
artwork = now.thumbnails.map(t => ({
sizes: t.width && t.height ? t.width + 'x' + t.height : '512x512',
src: t.url,
type: 'image/webp',
}));
} else artwork = [{ src: data.art, type: 'image/webp' }];
console.log(album, artwork);
}
navigator.mediaSession.metadata = new MediaMetadata({
title: data.title,
artist: data.artist,
album: album,
artwork: artwork,
});
}
}