···11<script lang="ts">
22 import { getDidContext } from '$lib/website/context';
33- import { getImageBlobUrl } from '$lib/oauth/utils';
33+ import { getImageBlobUrl } from '$lib/atproto';
44 import type { ContentComponentProps } from '../types';
55 import Video from './Video.svelte';
66···1212 if (item.cardData.objectUrl) return item.cardData.objectUrl;
13131414 if (item.cardData.image && typeof item.cardData.image === 'object') {
1515- return getImageBlobUrl({ did, link: item.cardData.image?.ref?.$link });
1515+ return getImageBlobUrl({ did, blob: item.cardData.image });
1616 }
1717 return item.cardData.image;
1818 }
+2-2
src/lib/cards/ImageCard/ImageCard.svelte
···11<script lang="ts">
22 import { getDidContext } from '$lib/website/context';
33- import { getImageBlobUrl } from '$lib/oauth/utils';
33+ import { getImageBlobUrl } from '$lib/atproto';
44 import type { ContentComponentProps } from '../types';
5566 let { item = $bindable(), ...rest }: ContentComponentProps = $props();
···1111 if (item.cardData.objectUrl) return item.cardData.objectUrl;
12121313 if (item.cardData.image && typeof item.cardData.image === 'object') {
1414- return getImageBlobUrl({ did, link: item.cardData.image?.ref?.$link });
1414+ return getImageBlobUrl({ did, blob: item.cardData.image });
1515 }
1616 return item.cardData.image;
1717 }
+1-1
src/lib/cards/ImageCard/index.ts
···11-import { uploadBlob } from '$lib/oauth/utils';
11+import { uploadBlob } from '$lib/atproto';
22import type { CardDefinition } from '../types';
33import ImageCard from './ImageCard.svelte';
44import ImageCardSettings from './ImageCardSettings.svelte';
···11import type { CardDefinition } from '../types';
22-import { getRecord, listRecords } from '$lib/oauth/atproto';
22+import { getRecord, listRecords, parseUri } from '$lib/atproto';
33import PhotoGalleryCard from './PhotoGalleryCard.svelte';
44-import { parseUri } from '$lib/oauth/utils';
54import type { Record as ListRecord } from '@atproto/api/dist/client/types/com/atproto/repo/listRecords';
6576export const PhotoGalleryCardDefinition = {
+1-1
src/lib/cards/PopfeedReviews/index.ts
···11import type { CardDefinition } from '../types';
22-import { listRecords } from '$lib/oauth/atproto';
22+import { listRecords } from '$lib/atproto';
33import PopfeedReviewsCard from './PopfeedReviewsCard.svelte';
4455export const PopfeedReviewsCardDefinition = {
···11-import { getRecord, listRecords } from '$lib/oauth/atproto';
22-import { parseUri } from '$lib/oauth/utils';
11+import { getRecord, listRecords, parseUri } from '$lib/atproto';
32import type { CardDefinition } from '../types';
43import StandardSiteDocumentListCard from './StandardSiteDocumentListCard.svelte';
54
+1-1
src/lib/cards/StatusphereCard/index.ts
···22// https://googlefonts.github.io/noto-emoji-animation/
3344import type { CardDefinition } from '../types';
55-import { listRecords, putRecord } from '$lib/oauth/atproto';
55+import { listRecords, putRecord } from '$lib/atproto';
66import StatusphereCard from './StatusphereCard.svelte';
77import { TID } from '@atproto/common-web';
88import EditStatusphereCard from './EditStatusphereCard.svelte';
+1-1
src/lib/cards/TealFMPlaysCard/index.ts
···11import type { CardDefinition } from '../types';
22-import { listRecords } from '$lib/oauth/atproto';
22+import { listRecords } from '$lib/atproto';
33import TealFMPlaysCard from './TealFMPlaysCard.svelte';
4455export const TealFMPlaysCardDefinition = {
+2-5
src/lib/cards/VideoCard/VideoCard.svelte
···11<script lang="ts">
22 import { getDidContext } from '$lib/website/context';
33- import { getBlob } from '$lib/oauth/atproto';
33+ import { getBlobURL } from '$lib/atproto';
44 import { onMount } from 'svelte';
55 import type { ContentComponentProps } from '../types';
66···27272828 // Fetch the video blob from the PDS
2929 if (item.cardData.video?.video && typeof item.cardData.video.video === 'object') {
3030- const cid = item.cardData.video.video?.ref?.$link;
3131- if (!cid) return;
3232-3330 try {
3434- const blobUrl = await getBlob({ did, cid });
3131+ const blobUrl = await getBlobURL({ did, blob: item.cardData.video.video });
3532 const res = await fetch(blobUrl);
3633 if (!res.ok) throw new Error(res.statusText);
3734 const blob = await res.blob();
+1-1
src/lib/cards/VideoCard/index.ts
···11-import { uploadBlob } from '$lib/oauth/utils';
11+import { uploadBlob } from '$lib/atproto';
22import type { CardDefinition } from '../types';
33import VideoCard from './VideoCard.svelte';
44import VideoCardSettings from './VideoCardSettings.svelte';
+1-1
src/lib/helper.ts
···11import type { Item, WebsiteData } from './types';
22import { COLUMNS, margin, mobileMargin } from '$lib';
33import { CardDefinitionsByType } from './cards';
44-import { deleteRecord, putRecord } from './oauth/atproto';
44+import { deleteRecord, putRecord } from '$lib/atproto';
55import { toast } from '@foxui/core';
66import { TID } from '@atproto/common-web';
77