Misskey
Misskey v12以降に生まれた悲しい怪物(誰からも反応のないリモート投稿)を削除するSQL
keywords
date
Mar 22, 2023
slug
Misskey-oldremotenote
author
status
Public
tags
Misskey
summary
type
Post
thumbnail
category
Misskey
updatedAt
Mar 1, 2024 02:23 AM
mattyaski.coで実験済み
DELETE FROM note
WHERE "createdAt" < 'yyyy-mm-dd 00:00:00.000 +0900'
AND "renoteCount" = 0
AND "repliesCount" = 0
AND "reactions" = '{}'
AND "userHost" IS NOT NULL;
これで yyyy-mm-dd 以前の投稿でリノート、リプライ、リアクションが0でuserHostがNULLではない(リモート)のノートを削除してくれます。
mattyaskiで実際に使用したので安全なはず..
補償はしないのであくまで自己責任でお願いします….
createdAtが無くなったあとver(未検証)
CREATE OR REPLACE FUNCTION public.aid_to_timestamp(aid text) RETURNS timestamptz AS $$
DECLARE
time_part text;
num bigint;
BEGIN
time_part := left(aid, 8);
num := 0;
FOR i IN 1..length(time_part) LOOP
num := num * 36 + strpos('0123456789abcdefghijklmnopqrstuvwxyz', substr(time_part, i, 1)) - 1;
END LOOP;
num := num + 946684800000;
RETURN TO_TIMESTAMP(num / 1000.0);
END;
$$ LANGUAGE plpgsql;
DELETE FROM note
WHERE public.aid_to_timestamp(id) < 'yyyy-mm-dd 00:00:00.000 +0900'
AND "renoteCount" = 0
AND "repliesCount" = 0
AND "reactions" = '{}'
AND "userHost" IS NOT NULL;