Embeds send support
maybe ... + fix message edit
This commit is contained in:
		| @@ -319,7 +319,6 @@ message.channel.send({ content: `Hello world`, embeds: [w] }) // Patched :) | |||||||
| - Video with Embed working | - Video with Embed working | ||||||
| - Description limit 350 characters | - Description limit 350 characters | ||||||
| - If you use hidden mode you must make sure your custom content is less than 1000 characters without nitro (because hidden mode uses 1000 characters + URL) | - If you use hidden mode you must make sure your custom content is less than 1000 characters without nitro (because hidden mode uses 1000 characters + URL) | ||||||
| - <strong>PLEASE DON'T CREATE TOO MUCH EMBED WITH SHORTEN OPTION BECAUSE IT CAN OVERLOAD MY API (I USE API HOST BY HEROKU)</strong> |  | ||||||
|  |  | ||||||
| </details> | </details> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -124,12 +124,16 @@ class MessageManager extends CachedManager { | |||||||
|     const messageId = this.resolveId(message); |     const messageId = this.resolveId(message); | ||||||
|     if (!messageId) throw new TypeError('INVALID_TYPE', 'message', 'MessageResolvable'); |     if (!messageId) throw new TypeError('INVALID_TYPE', 'message', 'MessageResolvable'); | ||||||
|  |  | ||||||
|     const { data, files } = await (options instanceof MessagePayload |     let messagePayload; | ||||||
|       ? options |     if (options instanceof MessagePayload) { | ||||||
|       : MessagePayload.create(message instanceof Message ? message : this, options) |       messagePayload = await options.resolveData(); | ||||||
|     ) |     } else { | ||||||
|       .resolveData() |       messagePayload = await MessagePayload.create( | ||||||
|       .resolveFiles(); | 				message instanceof Message ? message : this, | ||||||
|  | 				options, | ||||||
|  | 			).resolveData(); | ||||||
|  |     } | ||||||
|  |     const { data, files } = await messagePayload.resolveFiles(); | ||||||
|     const d = await this.client.api.channels[this.channel.id].messages[messageId].patch({ data, files }); |     const d = await this.client.api.channels[this.channel.id].messages[messageId].patch({ data, files }); | ||||||
|  |  | ||||||
|     const existing = this.cache.get(messageId); |     const existing = this.cache.get(messageId); | ||||||
| @@ -220,15 +224,15 @@ class MessageManager extends CachedManager { | |||||||
|     // const data = await this.client.api.channels[this.channel.id].messages[messageId].get(); // Discord Block |     // const data = await this.client.api.channels[this.channel.id].messages[messageId].get(); // Discord Block | ||||||
|     // https://canary.discord.com/api/v9/guilds/809133733591384155/messages/search?channel_id=840225732902518825&max_id=957254525360697375&min_id=957254525360697373 |     // https://canary.discord.com/api/v9/guilds/809133733591384155/messages/search?channel_id=840225732902518825&max_id=957254525360697375&min_id=957254525360697373 | ||||||
|     const data = ( |     const data = ( | ||||||
| 			await this.client.api.guilds[this.channel.guild.id].messages.search.get({ |       await this.client.api.guilds[this.channel.guild.id].messages.search.get({ | ||||||
| 				query: { |         query: { | ||||||
| 					channel_id: this.channel.id, |           channel_id: this.channel.id, | ||||||
| 					max_id: new BigNumber.BigNumber(messageId).plus(1).toString(), |           max_id: new BigNumber.BigNumber(messageId).plus(1).toString(), | ||||||
| 					min_id: new BigNumber.BigNumber(messageId).minus(1).toString(), |           min_id: new BigNumber.BigNumber(messageId).minus(1).toString(), | ||||||
| 				}, |         }, | ||||||
| 			}) |       }) | ||||||
| 		).messages[0] |     ).messages[0] | ||||||
|     if (data) return this._add(data[0],	cache); |     if (data) return this._add(data[0], cache); | ||||||
|     else throw new Error('MESSAGE_ID_NOT_FOUND'); |     else throw new Error('MESSAGE_ID_NOT_FOUND'); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -195,19 +195,21 @@ class MessagePayload { | |||||||
|       } |       } | ||||||
|  |  | ||||||
|       const webembeds = this.options.embeds.filter( |       const webembeds = this.options.embeds.filter( | ||||||
| 				(e) => !(e instanceof MessageEmbed), |         (e) => !(e instanceof MessageEmbed), | ||||||
| 			); |       ); | ||||||
|       this.options.embeds = this.options.embeds.filter(e => e instanceof MessageEmbed); |       this.options.embeds = this.options.embeds.filter(e => e instanceof MessageEmbed); | ||||||
|  |  | ||||||
|       if (webembeds.length > 0) { |       if (webembeds.length > 0) { | ||||||
|         // add hidden embed link |         // add hidden embed link | ||||||
|         content += `\n${WebEmbed.hiddenEmbed} \n`; |         content += `\n${WebEmbed.hiddenEmbed} \n`; | ||||||
|         if (webembeds.length > 1) { |         if (webembeds.length > 1) { | ||||||
|           console.warn('Multiple webembeds are not supported, only the first one will be sent'); |           console.warn('Multiple webembeds are not supported, this will be ignored.'); | ||||||
|  |         } | ||||||
|  |         // const embed = webembeds[0]; | ||||||
|  |         for (const webE of webembeds) { | ||||||
|  |           const data = await webE.toMessage(); | ||||||
|  |           content += `\n${data}`; | ||||||
|         } |         } | ||||||
|         const embed = webembeds[0]; |  | ||||||
|         const data = await embed.toMessage(); |  | ||||||
|         content += `\n${data}`; |  | ||||||
|       } |       } | ||||||
|       // Check content |       // Check content | ||||||
|       if (content.length > 2000) { |       if (content.length > 2000) { | ||||||
|   | |||||||
| @@ -301,7 +301,7 @@ class WebEmbed { | |||||||
| // Credit: https://www.npmjs.com/package/node-url-shortener + google :)) | // Credit: https://www.npmjs.com/package/node-url-shortener + google :)) | ||||||
| const getShorten = async (url) => { | const getShorten = async (url) => { | ||||||
|     const APIurl = [ |     const APIurl = [ | ||||||
|         'https://is.gd/create.php?format=simple&url=', |         // 'https://is.gd/create.php?format=simple&url=', :( | ||||||
|         'https://tinyurl.com/api-create.php?url=', |         'https://tinyurl.com/api-create.php?url=', | ||||||
|         // 'https://cdpt.in/shorten?url=', Redirects 5s :( |         // 'https://cdpt.in/shorten?url=', Redirects 5s :( | ||||||
|     ]; |     ]; | ||||||
|   | |||||||
| @@ -316,11 +316,15 @@ class Webhook { | |||||||
|     if (!this.token) throw new Error('WEBHOOK_TOKEN_UNAVAILABLE'); |     if (!this.token) throw new Error('WEBHOOK_TOKEN_UNAVAILABLE'); | ||||||
|  |  | ||||||
|     let messagePayload; |     let messagePayload; | ||||||
|  | 		if (options instanceof MessagePayload) { | ||||||
|     if (options instanceof MessagePayload) messagePayload = options; | 			messagePayload = await options.resolveData(); | ||||||
|     else messagePayload = MessagePayload.create(this, options); | 		} else { | ||||||
|  | 			messagePayload = await MessagePayload.create( | ||||||
|     const { data, files } = await messagePayload.resolveData().resolveFiles(); | 				message instanceof Message ? message : this, | ||||||
|  | 				options, | ||||||
|  | 			).resolveData(); | ||||||
|  | 		} | ||||||
|  | 		const { data, files } = await messagePayload.resolveFiles(); | ||||||
|  |  | ||||||
|     const d = await this.client.api |     const d = await this.client.api | ||||||
|       .webhooks(this.id, this.token) |       .webhooks(this.id, this.token) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user