feat: archive chats (#63)

This commit is contained in:
Aliyss Snow
2020-02-26 01:06:46 +01:00
committed by GitHub
parent 5c9e76e23f
commit 132424ea08
3 changed files with 48 additions and 2 deletions

View File

@@ -146,7 +146,6 @@ client.on('message', async msg => {
const attachmentData = await quotedMsg.downloadMedia(); const attachmentData = await quotedMsg.downloadMedia();
client.sendMessage(msg.from, attachmentData, { caption: 'Here\'s your requested media.' }); client.sendMessage(msg.from, attachmentData, { caption: 'Here\'s your requested media.' });
} }
} else if (msg.body == '!location') { } else if (msg.body == '!location') {
msg.reply(new Location(37.422, -122.084, 'Googleplex\nGoogle Headquarters')); msg.reply(new Location(37.422, -122.084, 'Googleplex\nGoogle Headquarters'));
} else if (msg.location) { } else if (msg.location) {
@@ -168,6 +167,9 @@ client.on('message', async msg => {
} else { } else {
msg.reply('I can only delete my own messages'); msg.reply('I can only delete my own messages');
} }
} else if (msg.body === '!archive') {
const chat = await msg.getChat();
chat.archive();
} }
}); });

View File

@@ -309,7 +309,6 @@ class Client extends EventEmitter {
return new Message(this, newMessage); return new Message(this, newMessage);
} }
/** /**
* Get all current chat instances * Get all current chat instances
* @returns {Promise<Array<Chat>>} * @returns {Promise<Array<Chat>>}
@@ -392,6 +391,30 @@ class Client extends EventEmitter {
}); });
} }
/**
* Enables and returns the archive state of the Chat
* @returns {boolean}
*/
async archiveChat(chatId) {
return await this.pupPage.evaluate(async chatId => {
let chat = await window.Store.Chat.get(chatId);
await window.Store.Cmd.archiveChat(chat, true);
return chat.archive;
}, chatId);
}
/**
* Changes and returns the archive state of the Chat
* @returns {boolean}
*/
async unarchiveChat(chatId) {
return await this.pupPage.evaluate(async chatId => {
let chat = await window.Store.Chat.get(chatId);
await window.Store.Cmd.archiveChat(chat, false);
return chat.archive;
}, chatId);
}
} }
module.exports = Client; module.exports = Client;

View File

@@ -50,6 +50,12 @@ class Chat extends Base {
*/ */
this.timestamp = data.t; this.timestamp = data.t;
/**
* Indicates if the Chat is archived
* @type {boolean}
*/
this.archived = data.archive;
return super._patch(data); return super._patch(data);
} }
@@ -62,6 +68,21 @@ class Chat extends Base {
async sendMessage(content, options) { async sendMessage(content, options) {
return this.client.sendMessage(this.id._serialized, content, options); return this.client.sendMessage(this.id._serialized, content, options);
} }
/**
* archives this chat
*/
async archive() {
return this.client.archiveChat(this.id._serialized);
}
/**
* un-archives this chat
*/
async unarchive() {
return this.client.unarchiveChat(this.id._serialized);
}
} }
module.exports = Chat; module.exports = Chat;