Compare commits

..

No commits in common. "main" and "main" have entirely different histories.
main ... main

2 changed files with 12 additions and 31 deletions

View file

@ -1,28 +1,13 @@
# misskey gooner remover 3000
Simple nodejs script to remove inactive accounts on sharkey / misskey fediverse instances
simple nodejs script to remove inactive accounts on sharkey / misskey fediverse instances
## Installation
## installation
1. Install bun and run:
```
bun install
node main.js
```text
bun install
node main.js
```
## Create env file
1. Create an API key with the permissions
- Delete user account
- View private user info
2. Create a `.env` file in the current directory with:
```env
USER_TOKEN=token
INSTANCE_URL=https://example.com
PERIOD=int // Time in days
```
```
License: MIT

16
main.js
View file

@ -8,8 +8,6 @@ if (!USER_TOKEN) {
process.exit(1);
}
const PERIOD = process.env.PERIOD; // Time in days: int
const INSTANCE_URL = process.env.INSTANCE_URL;
const API_BASE = `${INSTANCE_URL}/api`;
@ -51,19 +49,17 @@ async function main() {
const users = response.data;
const now = new Date();
const timeAgo = new Date(now - PERIOD * 24 * 60 * 60 * 1000);
const fiveDaysAgo = new Date(now - 5 * 24 * 60 * 60 * 1000);
const usersToDelete = users.filter(user => {
const createdAt = new Date(user.createdAt);
const updatedAt = new Date(user.updatedAt);
const excludedUsers = ['instance.actor', 'relay.actor'];
return user.notesCount === 0 &&
createdAt < timeAgo &&
updatedAt < timeAgo &&
!excludedUsers.includes(user.username)
return user.notesCount === 0 &&
createdAt < fiveDaysAgo &&
updatedAt < fiveDaysAgo;
});
console.log(`Found ${usersToDelete.length} users matching criteria (no posts, not updated, and older than ${PERIOD} days)`);
console.log(`Found ${usersToDelete.length} users matching criteria (no posts, not updated, and older than 5 days)`);
console.log('\nUsers to be deleted:');
usersToDelete.forEach(user => {
@ -75,7 +71,7 @@ async function main() {
console.log();
const confirmed = await askForConfirmation(`Are you sure you want to delete ${usersToDelete.length} users?`);
if (!confirmed) {
console.log('Operation cancelled by user');
rl.close();