Skip to content

Commit

Permalink
feat(Threads): max autoArchiveDuration option (#6304)
Browse files Browse the repository at this point in the history
Co-authored-by: Noel <buechler.noel@outlook.com>
  • Loading branch information
papsavas and iCrawl committed Aug 7, 2021
1 parent d87299b commit 394d486
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
11 changes: 10 additions & 1 deletion src/managers/ThreadManager.js
Expand Up @@ -66,7 +66,8 @@ class ThreadManager extends CachedManager {
* * `1440` (1 day)
* * `4320` (3 days) <warn>This is only available when the guild has the `THREE_DAY_THREAD_ARCHIVE` feature.</warn>
* * `10080` (7 days) <warn>This is only available when the guild has the `SEVEN_DAY_THREAD_ARCHIVE` feature.</warn>
* @typedef {number} ThreadAutoArchiveDuration
* * `'MAX'` Based on the guilds boost count
* @typedef {number|string} ThreadAutoArchiveDuration
*/

/**
Expand Down Expand Up @@ -119,6 +120,14 @@ class ThreadManager extends CachedManager {
} else if (this.channel.type !== 'GUILD_NEWS') {
resolvedType = typeof type === 'string' ? ChannelTypes[type] : type ?? resolvedType;
}
if (autoArchiveDuration === 'MAX') {
autoArchiveDuration = 1440;
if (this.channel.guild.features.includes('SEVEN_DAY_THREAD_ARCHIVE')) {
autoArchiveDuration = 10080;
} else if (this.channel.guild.features.includes('THREE_DAY_THREAD_ARCHIVE')) {
autoArchiveDuration = 4320;
}
}

const data = await path.threads.post({
data: {
Expand Down
11 changes: 10 additions & 1 deletion src/structures/ThreadChannel.js
Expand Up @@ -276,11 +276,20 @@ class ThreadChannel extends Channel {
* .catch(console.error);
*/
async edit(data, reason) {
let autoArchiveDuration = data.autoArchiveDuration;
if (data.autoArchiveDuration === 'MAX') {
autoArchiveDuration = 1440;
if (this.guild.features.includes('SEVEN_DAY_THREAD_ARCHIVE')) {
autoArchiveDuration = 10080;
} else if (this.guild.features.includes('THREE_DAY_THREAD_ARCHIVE')) {
autoArchiveDuration = 4320;
}
}
const newData = await this.client.api.channels(this.id).patch({
data: {
name: (data.name ?? this.name).trim(),
archived: data.archived,
auto_archive_duration: data.autoArchiveDuration,
auto_archive_duration: autoArchiveDuration,
rate_limit_per_user: data.rateLimitPerUser,
locked: data.locked,
},
Expand Down
2 changes: 1 addition & 1 deletion typings/index.d.ts
Expand Up @@ -4430,7 +4430,7 @@ export type TextBasedChannelTypes = TextBasedChannels['type'];

export type TextChannelResolvable = Snowflake | TextChannel;

export type ThreadAutoArchiveDuration = 60 | 1440 | 4320 | 10080;
export type ThreadAutoArchiveDuration = 60 | 1440 | 4320 | 10080 | 'MAX';

export type ThreadChannelResolvable = ThreadChannel | Snowflake;

Expand Down

0 comments on commit 394d486

Please sign in to comment.