quote command now uses photo for background in original message if it is present
This commit is contained in:
@@ -66,7 +66,7 @@ export class Quote extends ChatCommand {
|
|||||||
|
|
||||||
const entities = reply.entities ?? reply.caption_entities ?? [];
|
const entities = reply.entities ?? reply.caption_entities ?? [];
|
||||||
|
|
||||||
const png = await renderQuoteCard(quote, reply, entities);
|
const png = await renderQuoteCard(msg, quote, reply, entities);
|
||||||
await bot.sendPhoto({
|
await bot.sendPhoto({
|
||||||
chat_id: chatId,
|
chat_id: chatId,
|
||||||
photo: png,
|
photo: png,
|
||||||
@@ -600,6 +600,7 @@ function fitQuoteToBox(ctx: SKRSContext2D, segments: Segment[], boxW: number, bo
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function getBackground(
|
async function getBackground(
|
||||||
|
msg: Message,
|
||||||
reply: Message,
|
reply: Message,
|
||||||
W: number,
|
W: number,
|
||||||
H: number,
|
H: number,
|
||||||
@@ -608,7 +609,7 @@ async function getBackground(
|
|||||||
): Promise<Buffer> {
|
): Promise<Buffer> {
|
||||||
let src: Buffer | null = null;
|
let src: Buffer | null = null;
|
||||||
|
|
||||||
const photoArr = reply.photo as PhotoSize[] | undefined;
|
const photoArr = (msg.photo || reply.photo) as PhotoSize[] | undefined;
|
||||||
const msgPhoto = photoArr && photoArr.length ? photoArr[photoArr.length - 1] : undefined;
|
const msgPhoto = photoArr && photoArr.length ? photoArr[photoArr.length - 1] : undefined;
|
||||||
|
|
||||||
if (msgPhoto?.file_id) {
|
if (msgPhoto?.file_id) {
|
||||||
@@ -637,7 +638,7 @@ async function getBackground(
|
|||||||
.toBuffer();
|
.toBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
async function renderQuoteCard(quote: string, reply: Message, entities: MessageEntity[]) {
|
async function renderQuoteCard(msg: Message, quote: string, reply: Message, entities: MessageEntity[]) {
|
||||||
const W = 1280;
|
const W = 1280;
|
||||||
const H = 720;
|
const H = 720;
|
||||||
|
|
||||||
@@ -655,7 +656,7 @@ async function renderQuoteCard(quote: string, reply: Message, entities: MessageE
|
|||||||
const yyyy = String(date.getFullYear());
|
const yyyy = String(date.getFullYear());
|
||||||
const dateStr = `${dd}.${mm}.${yyyy}`;
|
const dateStr = `${dd}.${mm}.${yyyy}`;
|
||||||
|
|
||||||
const bgBuf = await getBackground(reply, W, H, author, forwarded);
|
const bgBuf = await getBackground(msg, reply, W, H, author, forwarded);
|
||||||
|
|
||||||
const canvas = createCanvas(W, H);
|
const canvas = createCanvas(W, H);
|
||||||
const c = canvas.getContext("2d");
|
const c = canvas.getContext("2d");
|
||||||
|
|||||||
Reference in New Issue
Block a user