dograma
Version:
NodeJS/Browser MTProto API Telegram client library,
55 lines (49 loc) • 1.67 kB
text/typescript
import { Api } from "../tl";
import { NewMessage, NewMessageEvent, NewMessageInterface } from "./NewMessage";
export interface EditedMessageInterface extends NewMessageInterface {
func?: { (event: EditedMessageEvent): boolean };
}
/**
* Occurs whenever a text message or a message with media was edited.
* @example
* ```ts
* async function editedEventPrint(event: EditedMessageEvent) {
* const message = event.message as Api.Message;
*
* console.log(`Message ${message.id} from channel ${message.chatId!.toString();} was edited at ${message.editDate}`)
* }
* // adds an event handler for edited messages
* client.addEventHandler(editedEventPrint, new EditedMessage({}));
* ```
*/
export class EditedMessage extends NewMessage {
func?: { (event: EditedMessageEvent): boolean };
constructor(editedMessageParams: EditedMessageInterface) {
super(editedMessageParams);
}
build(
update: Api.TypeUpdate | Api.TypeUpdates,
callback: undefined,
selfId: bigInt.BigInteger
) {
if (
update instanceof Api.UpdateEditChannelMessage ||
update instanceof Api.UpdateEditMessage
) {
if (!(update.message instanceof Api.Message)) {
return undefined;
}
const event = new EditedMessageEvent(update.message, update);
this.addAttributes(event);
return event;
}
}
}
export class EditedMessageEvent extends NewMessageEvent {
constructor(
message: Api.Message,
originalUpdate: Api.TypeUpdate | Api.TypeUpdates
) {
super(message, originalUpdate);
}
}