dograma
Version:
NodeJS/Browser MTProto API Telegram client library,
45 lines (41 loc) • 1.48 kB
text/typescript
import type { TelegramClient } from "../..";
import type { EntityLike } from "../../define";
import { Api } from "../api";
import { InlineResult } from "./inlineResult";
import { betterConsoleLog } from "../../Helpers";
import { inspect } from "../../inspect";
export class InlineResults extends Array<InlineResult> {
private result: Api.messages.TypeBotResults;
private queryId: Api.long;
private readonly cacheTime: Api.int;
private readonly _validUntil: number;
private users: Api.TypeUser[];
private gallery: boolean;
private nextOffset: string | undefined;
private switchPm: Api.TypeInlineBotSwitchPM | undefined;
[inspect.custom]() {
return betterConsoleLog(this);
}
constructor(
client: TelegramClient,
original: Api.messages.TypeBotResults,
entity?: EntityLike
) {
super(
...original.results.map(
(res) => new InlineResult(client, res, original.queryId, entity)
)
);
this.result = original;
this.queryId = original.queryId;
this.cacheTime = original.cacheTime;
this._validUntil = new Date().getTime() / 1000 + this.cacheTime;
this.users = original.users;
this.gallery = Boolean(original.gallery);
this.nextOffset = original.nextOffset;
this.switchPm = original.switchPm;
}
resultsValid() {
return new Date().getTime() / 1000 < this._validUntil;
}
}