99 lines
3.4 KiB
TypeScript
99 lines
3.4 KiB
TypeScript
// @ts-nocheck
|
|
import { WordPressClient } from './frontend/src/lib/wordpress/WordPressClient';
|
|
|
|
const SITE_URL = "https://chrisamaya.work";
|
|
const USERNAME = "gatekeeper";
|
|
const PASSWORD = "Idk@2025";
|
|
|
|
// Create Directus Client manually since we are in a script
|
|
import { createDirectus, rest, authentication, readItems, createItem } from '@directus/sdk';
|
|
const DIRECTUS_URL = "https://spark.jumpstartscaling.com";
|
|
// const DIRECTUS_TOKEN = "SufWLAbsqmbbqF_gg5I70ng8wE1zXt-a"; // Lacking permissions
|
|
|
|
const client = createDirectus(DIRECTUS_URL).with(rest()).with(authentication('json'));
|
|
|
|
|
|
|
|
async function triggerPendingJobs() {
|
|
console.log("🚀 Starting Manual Engine Trigger...");
|
|
|
|
// 0. Authenticate via Raw API
|
|
try {
|
|
const loginUrl = `${DIRECTUS_URL}/auth/login`;
|
|
// Credentials from previous steps
|
|
const email = "somescreenname@gmail.com";
|
|
const password = "SLm03N8XWqMTeJK3Zo95ZknWuM7xYWPk";
|
|
|
|
const authRes = await fetch(loginUrl, {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ email, password })
|
|
});
|
|
|
|
if (!authRes.ok) {
|
|
throw new Error(`Auth Failed: ${authRes.status} ${await authRes.text()}`);
|
|
}
|
|
|
|
const authData = await authRes.json();
|
|
await client.setToken(authData.data.access_token);
|
|
console.log("🔐 Authenticated successfully.");
|
|
|
|
} catch (e) {
|
|
console.error("❌ CRTICAL AUTH FAILURE:", e);
|
|
process.exit(1);
|
|
}
|
|
|
|
// 1. Fetch Pending Jobs
|
|
console.log("🔍 Looking for Pending Refactor Jobs...");
|
|
try {
|
|
const pendingJobs = await client.request(
|
|
readItems('generation_jobs', {
|
|
filter: { status: { _eq: 'Pending' } },
|
|
limit: 100
|
|
})
|
|
);
|
|
|
|
if (!pendingJobs || pendingJobs.length === 0) {
|
|
console.log("✅ No pending jobs found. All caught up!");
|
|
return;
|
|
}
|
|
|
|
console.log(`🔥 Found ${pendingJobs.length} Pending Jobs. Firing Engine...`);
|
|
const FRONTEND_url = "https://launch.jumpstartscaling.com";
|
|
|
|
for (const job of pendingJobs) {
|
|
console.log(`⚡️ Triggering Job #${job.id}...`);
|
|
try {
|
|
// We use the FRONTEND URL for the API
|
|
const response = await fetch(`${FRONTEND_url}/api/generate-content`, {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({
|
|
jobId: job.id,
|
|
mode: 'refactor',
|
|
batchSize: 5
|
|
})
|
|
});
|
|
|
|
const resText = await response.text();
|
|
// Check if success
|
|
if (response.ok) {
|
|
console.log(`✅ Triggered: ${resText.substring(0, 50)}...`);
|
|
} else {
|
|
console.error(`❌ Failed Trigger: ${response.status} - ${resText}`);
|
|
}
|
|
} catch (err) {
|
|
console.error(`❌ Network Error triggering job ${job.id}:`, err);
|
|
}
|
|
|
|
// Wait a bit between triggers to not DOS ourselves?
|
|
await new Promise(r => setTimeout(r, 500));
|
|
}
|
|
|
|
} catch (e) {
|
|
console.error("❌ Error fetching/processing jobs:", e);
|
|
}
|
|
}
|
|
|
|
triggerPendingJobs();
|