aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-02-04 21:17:07 -0800
committerFuwn <[email protected]>2024-02-04 21:17:07 -0800
commitbe1be100bb8107183174763be121cc1482fce781 (patch)
tree91e379f7d23288cbe50cd23b88d85eeb9decaab1 /src
parentfix(badges): batch import single identity (diff)
downloaddue.moe-be1be100bb8107183174763be121cc1482fce781.tar.xz
due.moe-be1be100bb8107183174763be121cc1482fce781.zip
feat(badges): import replies
Diffstat (limited to 'src')
-rw-r--r--src/lib/AniList/activity.ts10
-rw-r--r--src/routes/user/[user]/badges/+page.svelte8
2 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/AniList/activity.ts b/src/lib/AniList/activity.ts
index f6209b57..fb15521e 100644
--- a/src/lib/AniList/activity.ts
+++ b/src/lib/AniList/activity.ts
@@ -280,7 +280,7 @@ export const activityLikes = async (id: number): Promise<Partial<User>[]> => {
return activityResponse['data']['Activity']['likes'];
};
-export const activityText = async (id: number): Promise<string> => {
+export const activityText = async (id: number, replies = false): Promise<string> => {
const activityResponse = await (
await fetch('https://graphql.anilist.co', {
method: 'POST',
@@ -291,12 +291,16 @@ export const activityText = async (id: number): Promise<string> => {
body: JSON.stringify({
query: `{
Activity(id: ${id}) {
- ... on TextActivity { text(asHtml: true) }
+ ... on TextActivity { text(asHtml: true) ${replies ? 'replies { text(asHtml: true) }' : ''} }
}
}`
})
})
).json();
+ let text = activityResponse['data']['Activity']['text'];
- return activityResponse['data']['Activity']['text'];
+ if (replies)
+ for (const reply of activityResponse['data']['Activity']['replies']) text += reply.text;
+
+ return text;
};
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte
index 96c12e5a..17073c4d 100644
--- a/src/routes/user/[user]/badges/+page.svelte
+++ b/src/routes/user/[user]/badges/+page.svelte
@@ -43,6 +43,7 @@
// let badgeCount = 0;
let importLinks = false;
let importCategory = '';
+ let importReplies = false;
// $: downloadDisabled = badgeCount > 20;
@@ -332,7 +333,7 @@
if (type !== 'activity') return null;
- let text = await activityText(parseInt(id));
+ let text = await activityText(parseInt(id), importReplies);
const images: ImportImage[] = [];
@@ -714,6 +715,11 @@
<p />
+ <input type="checkbox" id="import_links" name="import_links" bind:checked={importReplies} />
+ Import Replies
+
+ <p />
+
<button
on:click={() => {
importMode = false;