review fixes
This commit is contained in:
parent
602a63f2c9
commit
2f62c17e32
|
@ -26,8 +26,8 @@ export const getUserDailyStats = kvMemoize(
|
|||
|
||||
for await (
|
||||
const generation of generationStore.listBy("fromId", {
|
||||
before: new Date(new Date(year, month - 1, day).getTime() + 24 * 60 * 60 * 1000),
|
||||
after: new Date(year, month - 1, day),
|
||||
after: new Date(Date.UTC(year, month - 1, day)),
|
||||
before: new Date(Date.UTC(year, month - 1, day + 1)),
|
||||
value: userId,
|
||||
})
|
||||
) {
|
||||
|
|
|
@ -115,7 +115,7 @@ bot.api.setMyDescription(
|
|||
bot.api.setMyCommands([
|
||||
{ command: "txt2img", description: "Generate image from text" },
|
||||
{ command: "img2img", description: "Generate image from image" },
|
||||
{ command: "getprompt", description: "Try to extract prompt from raw file" },
|
||||
{ command: "pnginfo", description: "Try to extract prompt from raw file" },
|
||||
{ command: "queue", description: "Show the current queue" },
|
||||
{ command: "cancel", description: "Cancel all your requests" },
|
||||
]);
|
||||
|
@ -160,7 +160,7 @@ bot.use(txt2imgQuestion.middleware());
|
|||
bot.command("img2img", img2imgCommand);
|
||||
bot.use(img2imgQuestion.middleware());
|
||||
|
||||
bot.command("getprompt", pnginfoCommand);
|
||||
bot.command("pnginfo", pnginfoCommand);
|
||||
bot.use(pnginfoQuestion.middleware());
|
||||
|
||||
bot.command("queue", queueCommand);
|
||||
|
|
|
@ -1,22 +1,24 @@
|
|||
import * as ExifReader from "exifreader";
|
||||
|
||||
export function getPngInfo(pngData: ArrayBuffer): string | undefined {
|
||||
const image = ExifReader.load(pngData);
|
||||
const info = ExifReader.load(pngData);
|
||||
|
||||
if (image.UserComment && image.UserComment.value) {
|
||||
if (info.UserComment?.value && Array.isArray(info.UserComment.value)) {
|
||||
// JPEG image
|
||||
return String.fromCharCode.apply(
|
||||
0,
|
||||
(image.UserComment.value as number[]).filter((char: number) => char != 0),
|
||||
)
|
||||
.replace("UNICODE", "");
|
||||
} else if (image.parameters && image.parameters.description) {
|
||||
return String.fromCharCode(
|
||||
...info.UserComment.value
|
||||
.filter((char): char is number => typeof char == "number")
|
||||
.filter((char) => char !== 0),
|
||||
).replace("UNICODE", "");
|
||||
}
|
||||
|
||||
if (info.parameters?.description) {
|
||||
// PNG image
|
||||
return image.parameters.description;
|
||||
} else {
|
||||
return info.parameters.description;
|
||||
}
|
||||
|
||||
// Unknown image type
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
export interface PngInfo {
|
||||
|
|
|
@ -22,7 +22,7 @@ async function pnginfo(ctx: ErisContext, includeRepliedTo: boolean): Promise<voi
|
|||
|
||||
if (document?.mime_type !== "image/png" && document?.mime_type !== "image/jpeg") {
|
||||
await ctx.reply(
|
||||
"Please send me a PNG file." +
|
||||
"Please send me a PNG or JPEG file." +
|
||||
pnginfoQuestion.messageSuffixMarkdown(),
|
||||
omitUndef(
|
||||
{
|
||||
|
@ -37,7 +37,14 @@ async function pnginfo(ctx: ErisContext, includeRepliedTo: boolean): Promise<voi
|
|||
|
||||
const file = await ctx.api.getFile(document.file_id);
|
||||
const buffer = await fetch(file.getUrl()).then((resp) => resp.arrayBuffer());
|
||||
const params = parsePngInfo(getPngInfo(buffer) ?? "Nothing found.", undefined, true);
|
||||
const info = getPngInfo(buffer);
|
||||
if (!info) {
|
||||
return await ctx.reply(
|
||||
"No info found in file.",
|
||||
omitUndef({ reply_to_message_id: ctx.message?.message_id }),
|
||||
);
|
||||
}
|
||||
const params = parsePngInfo(info, undefined, true);
|
||||
|
||||
const paramsText = fmt([
|
||||
`${params.prompt}\n`,
|
||||
|
|
|
@ -56,9 +56,11 @@ export function AdminsPage(props: { sessionId: string | null }) {
|
|||
)
|
||||
: getAdmins.data?.length === 0
|
||||
? (
|
||||
<ul className="flex flex-col gap-2">
|
||||
<li className="flex flex-col gap-2 rounded-md bg-zinc-100 dark:bg-zinc-800 p-2">
|
||||
<p key="no-admins" className="text-center text-gray-500">No admins.</p>
|
||||
</li>
|
||||
</ul>
|
||||
)
|
||||
: getAdmins.error
|
||||
? <p className="alert">Loading admins failed</p>
|
||||
|
|
|
@ -39,9 +39,11 @@ export function WorkersPage(props: { sessionId: string | null }) {
|
|||
)
|
||||
: getWorkers.data?.length === 0
|
||||
? (
|
||||
<ul className="flex flex-col gap-2">
|
||||
<li className="flex flex-col gap-2 rounded-md bg-zinc-100 dark:bg-zinc-800 p-2">
|
||||
<p key="no-workers" className="text-center text-gray-500">No workers.</p>
|
||||
</li>
|
||||
</ul>
|
||||
)
|
||||
: getWorkers.error
|
||||
? <p className="alert">Loading workers failed</p>
|
||||
|
|
Loading…
Reference in New Issue