Merge branch 'main' of https://iceshrimp.dev/limepotato/jormungandr-bite
Some checks are pending
/ test-build (push) Waiting to run

This commit is contained in:
nelle 2024-07-01 12:15:33 -06:00
commit 2c98459dc6
4 changed files with 2 additions and 84 deletions

View file

@ -1490,12 +1490,6 @@ _time:
hour: "Hour(s)"
day: "Day(s)"
_filters:
_experiments:
title: "Experiments"
enablePostImports: "Enable post imports"
postImportsCaption: "Allows users to import their posts from past Iceshrimp, Misskey,
Mastodon, Akkoma, and Pleroma accounts. It may cause slowdowns during load if
your queue is bottlenecked."
_dialog:
title: "Search filter syntax"
learnMore: "View filter syntax"

View file

@ -11,41 +11,5 @@ export async function importCkPost(
job: Bull.Job<DbUserImportMastoPostJobData>,
done: any,
): Promise<void> {
const user = await Users.findOneBy({ id: job.data.user.id });
if (user == null) {
done();
return;
}
const post = job.data.post;
if (post.replyId != null) {
done();
return;
}
if (post.renoteId != null) {
done();
return;
}
if (post.visibility !== "public") {
done();
return;
}
const { text, cw, localOnly, createdAt } = Post.parse(post);
const note = await create(user, {
createdAt: createdAt,
files: undefined,
poll: undefined,
text: text || undefined,
reply: null,
renote: null,
cw: cw,
localOnly,
visibility: "hidden",
visibleUsers: [],
channel: null,
apMentions: new Array(0),
apHashtags: undefined,
apEmojis: undefined,
});
logger.succ("Imported");
done();
}

View file

@ -1,9 +1,6 @@
import define from "../../define.js";
import { createImportPostsJob } from "@/queue/index.js";
import { ApiError } from "../../error.js";
import { DriveFiles } from "@/models/index.js";
import { DAY } from "@/const.js";
import { fetchMeta } from "@/misc/fetch-meta.js";
export const meta = {
secure: true,
@ -26,7 +23,7 @@ export const meta = {
},
importsDisabled: {
message: "Post imports are disabled.",
message: "Post imports are disabled for security reasons.",
code: "IMPORTS_DISABLED",
id: " bc9227e4-fb82-11ed-be56-0242ac120002",
},
@ -43,13 +40,5 @@ export const paramDef = {
} as const;
export default define(meta, paramDef, async (ps, user) => {
const file = await DriveFiles.findOneBy({ id: ps.fileId });
const instanceMeta = await fetchMeta();
if (instanceMeta.experimentalFeatures?.postImports === false)
throw new ApiError(meta.errors.importsDisabled);
if (file == null) throw new ApiError(meta.errors.noSuchFile);
if (file.size === 0) throw new ApiError(meta.errors.emptyFile);
createImportPostsJob(user, file.id, ps.signatureCheck);
throw new ApiError(meta.errors.importsDisabled);
});

View file

@ -16,25 +16,6 @@
{{ i18n.ts.export }}</MkButton
>
</FormFolder>
<FormFolder class="_formBlock">
<template #label>{{ i18n.ts.import }}</template>
<template #icon
><i class="ph-upload-simple ph-bold ph-lg"></i
></template>
<FormRadios v-model="importType" class="_formBlock">
<option value="iceshrimp">Iceshrimp/Misskey</option>
<option value="mastodon">Mastodon/Akkoma/Pleroma</option>
</FormRadios>
<MkButton
primary
:class="$style.button"
inline
@click="importPosts($event)"
><i class="ph-upload-simple ph-bold ph-lg"></i>
{{ i18n.ts.import }}</MkButton
>
</FormFolder>
</FormSection>
<FormSection>
<template #label>{{
@ -214,16 +195,6 @@ const exportNotes = () => {
os.api("i/export-notes", {}).then(onExportSuccess).catch(onError);
};
const importPosts = async (ev) => {
const file = await selectFile(ev.currentTarget ?? ev.target);
os.api("i/import-posts", {
fileId: file.id,
signatureCheck: false,
})
.then(onImportSuccess)
.catch(onError);
};
const exportFollowing = () => {
os.api("i/export-following", {
excludeMuting: excludeMutingUsers.value,