change directory reading to be async
This commit is contained in:
parent
8a9e10d815
commit
9a7c53c67e
@ -131,7 +131,7 @@ class DiscordClient extends Client
|
|||||||
{
|
{
|
||||||
if (tmp.length + segment.length >= 1900)
|
if (tmp.length + segment.length >= 1900)
|
||||||
{
|
{
|
||||||
const codeBlock = tmp.match(/```/ug)?.length === 1;
|
const codeBlock = (tmp.match(/```/ug)?.length ?? 0) % 2 === 1;
|
||||||
if (codeBlock)
|
if (codeBlock)
|
||||||
tmp += '```';
|
tmp += '```';
|
||||||
out.push(tmp);
|
out.push(tmp);
|
||||||
@ -145,7 +145,7 @@ class DiscordClient extends Client
|
|||||||
tmp += delimiter + segment;
|
tmp += delimiter + segment;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tmp.match(/```/gu)?.length === 1)
|
if ((tmp.match(/```/ug)?.length ?? 0) % 2 === 1)
|
||||||
tmp += '```';
|
tmp += '```';
|
||||||
out.push(tmp);
|
out.push(tmp);
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ class MusicLibrary implements Initialisable
|
|||||||
{
|
{
|
||||||
this.#logger.info('Starting library scan');
|
this.#logger.info('Starting library scan');
|
||||||
const start = Date.now();
|
const start = Date.now();
|
||||||
const filePaths = Util.readdirRecursive(this.#path, { ignoreSuffixes: [ '.nfo', '.jpg', '.jpeg', '.png' ] });
|
const filePaths = await Util.readdirRecursive(this.#path, { ignoreSuffixes: [ '.nfo', '.jpg', '.jpeg', '.png' ] });
|
||||||
this.#logger.debug(`${filePaths.length} files to go through`);
|
this.#logger.debug(`${filePaths.length} files to go through`);
|
||||||
if (!this.#index.size)
|
if (!this.#index.size)
|
||||||
this.#logger.info('No index built, performing first time scan. This may take some time depending on the size of your music library');
|
this.#logger.info('No index built, performing first time scan. This may take some time depending on the size of your music library');
|
||||||
|
@ -36,7 +36,7 @@ class Registry
|
|||||||
async loadComponents (dir: string, classToHandle: typeof Component)
|
async loadComponents (dir: string, classToHandle: typeof Component)
|
||||||
{
|
{
|
||||||
const directory = path.join(this.#client.rootDir, 'client', dir); // Finds directory of component folder relative to current working directory.
|
const directory = path.join(this.#client.rootDir, 'client', dir); // Finds directory of component folder relative to current working directory.
|
||||||
const files = Util.readdirRecursive(directory); // Loops through all folders in the directory and returns the files.
|
const files = await Util.readdirRecursive(directory); // Loops through all folders in the directory and returns the files.
|
||||||
const loaded: Component[] = [];
|
const loaded: Component[] = [];
|
||||||
|
|
||||||
for (const filePath of files)
|
for (const filePath of files)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import humaniseDuration from 'humanize-duration';
|
import humaniseDuration from 'humanize-duration';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import fs from 'node:fs';
|
import fs from 'node:fs/promises';
|
||||||
import {
|
import {
|
||||||
AnySelectMenuInteraction,
|
AnySelectMenuInteraction,
|
||||||
APIEmbed,
|
APIEmbed,
|
||||||
@ -220,12 +220,12 @@ class Util
|
|||||||
* @return {string[]} Array with the paths to the files within the directory
|
* @return {string[]} Array with the paths to the files within the directory
|
||||||
* @memberof Util
|
* @memberof Util
|
||||||
*/
|
*/
|
||||||
static readdirRecursive (dir: string, { ignoreDotfiles = true, ignoreSuffixes = [] }: ReaddirOpts = {})
|
static async readdirRecursive (dir: string, { ignoreDotfiles = true, ignoreSuffixes = [] }: ReaddirOpts = {})
|
||||||
{
|
{
|
||||||
const result = [];
|
const result: string[] = [];
|
||||||
(function read (directory: string)
|
await (async function read (directory: string)
|
||||||
{
|
{
|
||||||
const files = fs.readdirSync(directory);
|
const files = await fs.readdir(directory);
|
||||||
for (const file of files)
|
for (const file of files)
|
||||||
{
|
{
|
||||||
if (file.startsWith('.') && ignoreDotfiles)
|
if (file.startsWith('.') && ignoreDotfiles)
|
||||||
@ -234,14 +234,10 @@ class Util
|
|||||||
continue;
|
continue;
|
||||||
const filePath = path.join(directory, file);
|
const filePath = path.join(directory, file);
|
||||||
|
|
||||||
if (fs.statSync(filePath).isDirectory())
|
if ((await fs.stat(filePath)).isDirectory())
|
||||||
{
|
await read(filePath);
|
||||||
read(filePath);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
result.push(filePath);
|
result.push(filePath);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}(dir));
|
}(dir));
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
Reference in New Issue
Block a user