wip
This commit is contained in:
parent
120d43a234
commit
355d9dbb73
|
|
@ -0,0 +1,18 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
|
export class RemoteNotesCleaning1753863104203 {
|
||||||
|
name = 'RemoteNotesCleaning1753863104203'
|
||||||
|
|
||||||
|
async up(queryRunner) {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "enableRemoteNotesCleaning" boolean NOT NULL DEFAULT true`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "remoteNotesCleaningMaxDurationInMinutes" integer NOT NULL DEFAULT '60'`);
|
||||||
|
}
|
||||||
|
|
||||||
|
async down(queryRunner) {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "remoteNotesCleaningMaxDurationInMinutes"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableRemoteNotesCleaning"`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -571,6 +571,14 @@ export const meta = {
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
optional: false, nullable: false,
|
optional: false, nullable: false,
|
||||||
},
|
},
|
||||||
|
enableRemoteNotesCleaning: {
|
||||||
|
type: 'boolean',
|
||||||
|
optional: false, nullable: false,
|
||||||
|
},
|
||||||
|
remoteNotesCleaningMaxDurationInMinutes: {
|
||||||
|
type: 'number',
|
||||||
|
optional: false, nullable: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
} as const;
|
} as const;
|
||||||
|
|
@ -722,6 +730,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
||||||
proxyRemoteFiles: instance.proxyRemoteFiles,
|
proxyRemoteFiles: instance.proxyRemoteFiles,
|
||||||
signToActivityPubGet: instance.signToActivityPubGet,
|
signToActivityPubGet: instance.signToActivityPubGet,
|
||||||
allowExternalApRedirect: instance.allowExternalApRedirect,
|
allowExternalApRedirect: instance.allowExternalApRedirect,
|
||||||
|
enableRemoteNotesCleaning: instance.enableRemoteNotesCleaning,
|
||||||
|
remoteNotesCleaningMaxDurationInMinutes: instance.remoteNotesCleaningMaxDurationInMinutes,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -205,6 +205,8 @@ export const paramDef = {
|
||||||
proxyRemoteFiles: { type: 'boolean' },
|
proxyRemoteFiles: { type: 'boolean' },
|
||||||
signToActivityPubGet: { type: 'boolean' },
|
signToActivityPubGet: { type: 'boolean' },
|
||||||
allowExternalApRedirect: { type: 'boolean' },
|
allowExternalApRedirect: { type: 'boolean' },
|
||||||
|
enableRemoteNotesCleaning: { type: 'boolean' },
|
||||||
|
remoteNotesCleaningMaxDurationInMinutes: { type: 'number' },
|
||||||
},
|
},
|
||||||
required: [],
|
required: [],
|
||||||
} as const;
|
} as const;
|
||||||
|
|
@ -723,6 +725,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
||||||
set.allowExternalApRedirect = ps.allowExternalApRedirect;
|
set.allowExternalApRedirect = ps.allowExternalApRedirect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ps.enableRemoteNotesCleaning !== undefined) {
|
||||||
|
set.enableRemoteNotesCleaning = ps.enableRemoteNotesCleaning;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ps.remoteNotesCleaningMaxDurationInMinutes !== undefined) {
|
||||||
|
set.remoteNotesCleaningMaxDurationInMinutes = ps.remoteNotesCleaningMaxDurationInMinutes;
|
||||||
|
}
|
||||||
|
|
||||||
const before = await this.metaService.fetch(true);
|
const before = await this.metaService.fetch(true);
|
||||||
|
|
||||||
await this.metaService.update(set);
|
await this.metaService.update(set);
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,12 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<template #label>{{ i18n.ts.enable }}<span v-if="remoteNotesCleaningForm.modifiedStates.enableRemoteNotesCleaning" class="_modified">{{ i18n.ts.modified }}</span></template>
|
<template #label>{{ i18n.ts.enable }}<span v-if="remoteNotesCleaningForm.modifiedStates.enableRemoteNotesCleaning" class="_modified">{{ i18n.ts.modified }}</span></template>
|
||||||
<template #caption>{{ i18n.ts._serverSettings.remoteNotesCleaning_description }}</template>
|
<template #caption>{{ i18n.ts._serverSettings.remoteNotesCleaning_description }}</template>
|
||||||
</MkSwitch>
|
</MkSwitch>
|
||||||
|
|
||||||
|
<template v-if="remoteNotesCleaningForm.state.enableRemoteNotesCleaning">
|
||||||
|
<MkInput v-model="remoteNotesCleaningForm.state.remoteNotesCleaningMaxDurationInMinutes" type="number">
|
||||||
|
<template #label>remoteNotesCleaningMaxDurationInMinutes<span v-if="remoteNotesCleaningForm.modifiedStates.remoteNotesCleaningMaxDurationInMinutes" class="_modified">{{ i18n.ts.modified }}</span></template>
|
||||||
|
</MkInput>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</MkFolder>
|
</MkFolder>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -215,9 +221,11 @@ const rbtForm = useForm({
|
||||||
|
|
||||||
const remoteNotesCleaningForm = useForm({
|
const remoteNotesCleaningForm = useForm({
|
||||||
enableRemoteNotesCleaning: meta.enableRemoteNotesCleaning,
|
enableRemoteNotesCleaning: meta.enableRemoteNotesCleaning,
|
||||||
|
remoteNotesCleaningMaxDurationInMinutes: meta.remoteNotesCleaningMaxDurationInMinutes,
|
||||||
}, async (state) => {
|
}, async (state) => {
|
||||||
await os.apiWithDialog('admin/update-meta', {
|
await os.apiWithDialog('admin/update-meta', {
|
||||||
enableRemoteNotesCleaning: state.enableRemoteNotesCleaning,
|
enableRemoteNotesCleaning: state.enableRemoteNotesCleaning,
|
||||||
|
remoteNotesCleaningMaxDurationInMinutes: state.remoteNotesCleaningMaxDurationInMinutes,
|
||||||
});
|
});
|
||||||
fetchInstance(true);
|
fetchInstance(true);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -9370,6 +9370,8 @@ export interface operations {
|
||||||
proxyRemoteFiles: boolean;
|
proxyRemoteFiles: boolean;
|
||||||
signToActivityPubGet: boolean;
|
signToActivityPubGet: boolean;
|
||||||
allowExternalApRedirect: boolean;
|
allowExternalApRedirect: boolean;
|
||||||
|
enableRemoteNotesCleaning: boolean;
|
||||||
|
remoteNotesCleaningMaxDurationInMinutes: number;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -12599,6 +12601,8 @@ export interface operations {
|
||||||
proxyRemoteFiles?: boolean;
|
proxyRemoteFiles?: boolean;
|
||||||
signToActivityPubGet?: boolean;
|
signToActivityPubGet?: boolean;
|
||||||
allowExternalApRedirect?: boolean;
|
allowExternalApRedirect?: boolean;
|
||||||
|
enableRemoteNotesCleaning?: boolean;
|
||||||
|
remoteNotesCleaningMaxDurationInMinutes?: number;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue