Initial miaojingAI project with image resolution guard

This commit is contained in:
FengLee
2026-05-09 11:32:34 +08:00
commit d499020d4e
264 changed files with 54160 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
const { Pool } = require('pg');
require('dotenv').config({ path: '.env.local' });
const base = 'http://127.0.0.1:5000';
const email = `codex-delete-${Date.now()}@example.com`;
(async () => {
const adminRes = await fetch(`${base}/api/profile?email=admin@example.com`);
const adminData = await adminRes.json();
const adminId = adminData.profile && adminData.profile.id;
if (!adminId) throw new Error('admin profile not found');
const token = `token-admin-${adminId}-${Date.now()}`;
const pool = new Pool({ connectionString: process.env.LOCAL_DB_URL });
const client = await pool.connect();
let tempId = null;
try {
const created = await client.query(
`INSERT INTO profiles (email, nickname, role, membership_tier, credits_balance, daily_quota_limit, is_active)
VALUES ($1, 'DeleteVerify', 'user', 'free', 0, 5, true)
RETURNING id`,
[email],
);
tempId = created.rows[0].id;
await client.query(
`INSERT INTO works (user_id, type, prompt, result_url, is_public, status)
VALUES ($1, 'text2img', 'delete verify', '/api/local-storage/non-existent.png', true, 'completed')`,
[tempId],
);
} finally {
client.release();
await pool.end();
}
const deleteAdmin = await fetch(`${base}/api/admin/users`, {
method: 'DELETE',
headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` },
body: JSON.stringify({ userId: adminId }),
});
const deleteAdminBody = await deleteAdmin.text();
const deleteTemp = await fetch(`${base}/api/admin/users`, {
method: 'DELETE',
headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` },
body: JSON.stringify({ userId: tempId }),
});
const deleteTempBody = await deleteTemp.text();
const checkPool = new Pool({ connectionString: process.env.LOCAL_DB_URL });
const checkClient = await checkPool.connect();
try {
const remain = await checkClient.query(
`SELECT
EXISTS(SELECT 1 FROM profiles WHERE id = $1) AS profile_exists,
EXISTS(SELECT 1 FROM works WHERE user_id = $1) AS works_exist`,
[tempId],
);
console.log(JSON.stringify({
deleteAdmin: { status: deleteAdmin.status, body: deleteAdminBody },
deleteTemp: { status: deleteTemp.status, body: deleteTempBody },
remaining: remain.rows[0],
}, null, 2));
} finally {
checkClient.release();
await checkPool.end();
}
})().catch(async (error) => {
console.error(error);
process.exit(1);
});