Système et automatisation
g.workers.* — processus de travail des files
Section intitulée « g.workers.* — processus de travail des files »Gère les pools de processus concurrents pour le traitement par lot. Voir Processus de travail des files d’attente pour les détails complets.
| Méthode | Signature | Async | Description |
|---|---|---|---|
start | (options) | Non | Lance des pools de processus |
stop | (queueName?) | Non | Arrête les processus, tous ou par file |
pause | () | Non | Suspend toutes les opérations de dépilage |
resume | () | Non | Reprend les opérations de dépilage |
status | () → WorkerPoolStatus[] | Non | Renvoie l’état de tous les pools |
WorkerStartOptions :
{ clearTabs?: boolean layout?: "horizontal" | "vertical" | "quad" workers: WorkerPoolOptions[]}WorkerPoolOptions :
{ queue: string script: string concurrency?: number throttle?: { requestsPerMinute?: number } dequeue?: string requiresWorkflowEnvelope?: boolean}Définissez requiresWorkflowEnvelope: true pour les files appartenant à un flux de travail qui ne doivent traiter que des éléments liés à une enveloppe d’exécution/élément du Workflow Ledger.
g.worker.* — contexte de processus
Section intitulée « g.worker.* — contexte de processus »Disponible uniquement dans les scripts de processus.
| Méthode | Signature | Async | Description |
|---|---|---|---|
getContext | () → WorkerContext | Non | Récupère l’élément courant, l’ID d’onglet et le nom de file |
WorkerContext :
{ item: QueueItem tabId: string queueName: string}g.network.* — trafic réseau
Section intitulée « g.network.* — trafic réseau »Accède au trafic HTTP capturé. La capture doit être activée ; elle l’est par défaut.
| Méthode | Signature | Async | Description |
|---|---|---|---|
search | (query?, options?) → TrafficEntryInfo[] | Non | Recherche dans le trafic capturé |
getById | (id) → TrafficEntryInfo | null | Non | Récupère une entrée de trafic précise |
getResponseBody | (id) → string | null | Non | Récupère le contenu de réponse |
getRequestBody | (id) → string | null | Non | Récupère le contenu de requête |
count | () → number | Non | Compte les entrées capturées |
clear | () | Non | Efface tout le trafic capturé |
enable | () | Non | Active la capture du trafic |
disable | () | Non | Désactive la capture du trafic |
isEnabled | () → boolean | Non | Indique si la capture est active |
waitForRequest | (urlPattern, options?) → Promise<TrafficEntryInfo> | Oui | Attend une requête correspondante |
NetworkSearchOptions :
{ method?: string // "GET", "POST", etc. statusMin?: number statusMax?: number contentType?: string tabId?: string limit?: number // default: 100 offset?: number // default: 0 sort?: string // timestamp, url, status, size, duration, method order?: string // "asc" or "desc" (default)}WaitForRequestOptions :
{ method?: string timeout?: number // default: 30000ms}async function main() { await g.nav.navigateToUrl("https://api.example.com/data");
// Wait for the API response const entry = await g.network.waitForRequest("api.example.com/data"); const body = g.network.getResponseBody(entry.id); const data = JSON.parse(body); g.log("Got " + data.items.length + " items");}g.history.* — historique de navigation
Section intitulée « g.history.* — historique de navigation »| Méthode | Signature | Async | Description |
|---|---|---|---|
search | (query?, options?) → NavigationEntryInfo[] | Non | Recherche dans l’historique de navigation |
count | () → number | Non | Compte les entrées d’historique |
clear | () | Non | Efface tout l’historique |
HistorySearchOptions :
{ tabId?: string limit?: number // default: 100 offset?: number // default: 0 sort?: string // "timestamp" (default), "url", "status" order?: string // "asc" or "desc" (default)}g.robots.* — conformité robots.txt
Section intitulée « g.robots.* — conformité robots.txt »Vérification automatique de robots.txt pour l’automatisation scriptée. Activée par défaut.
| Méthode | Signature | Async | Description |
|---|---|---|---|
isAllowed | (url) → Promise<boolean> | Oui | Vérifie si une URL est autorisée par robots.txt |
getCrawlDelay | (url) → Promise<number | null> | Oui | Récupère le crawl-delay d’un domaine |
disable | () | Non | Désactive la vérification robots.txt pour ce script |
enable | () | Non | Réactive la vérification robots.txt |
g.workflows.* — flux de travail
Section intitulée « g.workflows.* — flux de travail »Inspecte et change les flux de travail dans un espace de travail.
| Méthode | Signature | Async | Description |
|---|---|---|---|
getActive | () → WorkflowInfo | null | Non | Récupère le nom et le chemin du flux actif |
list | () → WorkflowListItem[] | Non | Liste tous les flux de l’espace de travail |
switch | (name) | Non | Change de flux, en fire-and-forget sur le thread UI |
WorkflowInfo :
{ name: string // workflow name path: string // absolute path to workflow folder}WorkflowListItem :
{ name: string enabled: boolean hasEvents: boolean // has events.json triggers hasWorkers: boolean // has workers.json config hasTools: boolean // has tools/ directory hasViews: boolean // has views/ directory scriptCount: number // number of script files}g.trigger.* — contexte de déclencheur d’événement
Section intitulée « g.trigger.* — contexte de déclencheur d’événement »Disponible dans les scripts exécutés par des déclencheurs d’événements. Renvoie les métadonnées expliquant pourquoi le script a été invoqué.
| Méthode | Signature | Async | Description |
|---|---|---|---|
getContext | () → TriggerContext | Non | Récupère les données d’événement de l’exécution courante |
TriggerContext :
{ event: string // "url-match", "page-loaded", "tab-created", "tab-closed", // "tab-activated", "external-queue", "dom-mutation" tabId?: string // browser tab associated with the event url?: string // page URL at the time of the event timestamp: string // ISO 8601 pattern?: string // URL pattern that matched (url-match only)
// dom-mutation fields: oldValue?: string // previous value newValue?: string // new value attribute?: string // changed attribute name (null for text changes) mutationType?: string // "characterData", "attributes", or "childList" selector?: string // CSS selector that matched changes?: object[] // array of mutations (buffer strategy only)}async function main() { const ctx = g.trigger.getContext();
if (ctx.event === "url-match") { g.log("Matched " + ctx.pattern + " on " + ctx.url); }
if (ctx.event === "dom-mutation") { g.log(ctx.selector + " changed: " + ctx.oldValue + " → " + ctx.newValue); }}