From bcf28282f6d1e0cba35c4dda2c15c0f8fe6fb6ad Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Fri, 4 May 2018 15:07:02 +0900
Subject: [PATCH] :v:

---
 cli/clean-drive.js | 34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/cli/clean-drive.js b/cli/clean-drive.js
index 14eb002795..35766f9a34 100644
--- a/cli/clean-drive.js
+++ b/cli/clean-drive.js
@@ -16,19 +16,23 @@ async function main() {
 	for (let i = 0; i < count; i++) {
 		promiseGens.push(() => {
 			const promise = new Promise(async (res, rej) => {
+				function skip() {
+					res([i, file, false]);
+				}
+
 				const file = await DriveFile.findOne(prev ? {
-					_id: { $gt: prev._id }
+					_id: { $lt: prev._id }
 				} : {}, {
 					sort: {
-						_id: 1
+						_id: -1
 					}
 				});
 
 				prev = file;
 
-				if (file == null) return res();
+				if (file == null) return skip();
 
-				log(chalk`scanning: {bold ${file._id}} ...`);
+				log(chalk`{gray ${i}} scanning: {bold ${file._id}} ...`);
 
 				const attachingUsersCount = await User.count({
 					$or: [{
@@ -37,28 +41,28 @@ async function main() {
 						bannerId: file._id
 					}]
 				}, { limit: 1 });
-				if (attachingUsersCount !== 0) return res();
+				if (attachingUsersCount !== 0) return skip();
 
 				const attachingNotesCount = await Note.count({
 					mediaIds: file._id
 				}, { limit: 1 });
-				if (attachingNotesCount !== 0) return res();
+				if (attachingNotesCount !== 0) return skip();
 
 				const attachingMessagesCount = await MessagingMessage.count({
 					fileId: file._id
 				}, { limit: 1 });
-				if (attachingMessagesCount !== 0) return res();
+				if (attachingMessagesCount !== 0) return skip();
 
-				deleteDriveFile(file).then(res).catch(rej);
+				deleteDriveFile(file).then(() => {
+					res([i, file, true]);
+				}).catch(rej);
 			});
 
-			promise.then(x => {
-				if (prev) {
-					if (x == null) {
-						log(chalk`{green skipped: {bold ${prev._id}}}`);
-					} else {
-						log(chalk`{red deleted: {bold ${prev._id}}}`);
-					}
+			promise.then(([i, file, deleted]) => {
+				if (deleted) {
+					log(chalk`{gray ${i}} {red deleted: {bold ${file._id}}}`);
+				} else {
+					log(chalk`{gray ${i}} {green skipped: {bold ${file._id}}}`);
 				}
 				log.clear();
 				console.log();