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;