Created
May 11, 2025 02:04
-
-
Save ltlapy/13a4ca263b887dc4a776777395131240 to your computer and use it in GitHub Desktop.
특정 유저가 지정한 시점 이후에 삭제한 커스텀 이모지 덤프
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 특정 유저가 지정한 시점 이후에 삭제한 커스텀 이모지 복구 | |
// !! 사용 전 API 리밋 해제 | |
let userId = 'a4ap7lwhjy' | |
let timeAfter_timestamp = '2025-05-05T09:00:00.000Z' | |
var lastLogId = "ffffffffffffffffffffff" // 특정 id 이전의 편집 로그부터 살피려면 사용 | |
// --- | |
var emojis = [] | |
let timeAfter = Date:parse(timeAfter_timestamp) | |
<: `{userId} 가 삭제한 이모지를 {timeAfter_timestamp} 까지 탐색합니다...` | |
loop { | |
let res = Mk:api('admin/show-moderation-logs', { | |
limit: 100, | |
type: "deleteCustomEmoji", | |
untilId: lastLogId | |
}) | |
if (res.len == 0) { | |
<: '모든 로그를 탐색하였습니다.' | |
} | |
var breakFlag = false | |
each(let log, res) { | |
if (Date:parse(log.createdAt) < timeAfter) { | |
<: `기간 내의 탐색이 완료되었습니다. {log.id}({log.createdAt}) 부터 처리하지 않습니다.` | |
breakFlag = true | |
break | |
} else { | |
let emoji = log.info.emoji | |
<: `({emoji.id}) {emoji.category} : {emoji.name}` | |
emojis.push(emoji) | |
} | |
} | |
if (breakFlag) break | |
lastLogId = res.at(-1).id | |
} | |
<: `총 {emojis.len} 개의 이모지를 발견하였습니다.` | |
//<: '복구를 시작합니다...' | |
// each(let emoji, emojis) { | |
// Mk:api('admin/emoji/add', { | |
// name: emoji.name, | |
// // TODO: modlog에서 fileId를 제공하지 않음. | |
// // admin/drive/show-file 를 이용하여 파일 ID를 추출할 수는 있으나, | |
// // 호출 속도가 느림 | |
// fileId: , | |
// category: emoji.category, | |
// aliases: emoji.aliases, | |
// license: emoji.license, | |
// isSensitive: emoji.isSensitive, | |
// localOnly: emoji.localOnly, | |
// requestedBy: emoji.requestedBy, | |
// memo: emoji.memo, | |
// roleIdsThatCanBeUsedThisEmojiAsReaction: emoji.roleIdsThatCanBeUsedThisEmojiAsReaction, | |
// roleIdsThatCanNotBeUsedThisEmojiAsReaction: emoji. roleIdsThatCanNotBeUsedThisEmojiAsReaction | |
// }) | |
// } | |
Json:stringify(emojis) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment