Aller au contenu

Système et automatisation

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éthodeSignatureAsyncDescription
start(options)NonLance des pools de processus
stop(queueName?)NonArrête les processus, tous ou par file
pause()NonSuspend toutes les opérations de dépilage
resume()NonReprend les opérations de dépilage
status() → WorkerPoolStatus[]NonRenvoie 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.


Disponible uniquement dans les scripts de processus.

MéthodeSignatureAsyncDescription
getContext() → WorkerContextNonRécupère l’élément courant, l’ID d’onglet et le nom de file

WorkerContext :

{
item: QueueItem
tabId: string
queueName: string
}

Accède au trafic HTTP capturé. La capture doit être activée ; elle l’est par défaut.

MéthodeSignatureAsyncDescription
search(query?, options?) → TrafficEntryInfo[]NonRecherche dans le trafic capturé
getById(id) → TrafficEntryInfo | nullNonRécupère une entrée de trafic précise
getResponseBody(id) → string | nullNonRécupère le contenu de réponse
getRequestBody(id) → string | nullNonRécupère le contenu de requête
count() → numberNonCompte les entrées capturées
clear()NonEfface tout le trafic capturé
enable()NonActive la capture du trafic
disable()NonDésactive la capture du trafic
isEnabled() → booleanNonIndique si la capture est active
waitForRequest(urlPattern, options?) → Promise<TrafficEntryInfo>OuiAttend 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");
}

MéthodeSignatureAsyncDescription
search(query?, options?) → NavigationEntryInfo[]NonRecherche dans l’historique de navigation
count() → numberNonCompte les entrées d’historique
clear()NonEfface 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)
}

Vérification automatique de robots.txt pour l’automatisation scriptée. Activée par défaut.

MéthodeSignatureAsyncDescription
isAllowed(url) → Promise<boolean>OuiVérifie si une URL est autorisée par robots.txt
getCrawlDelay(url) → Promise<number | null>OuiRécupère le crawl-delay d’un domaine
disable()NonDésactive la vérification robots.txt pour ce script
enable()NonRéactive la vérification robots.txt

Inspecte et change les flux de travail dans un espace de travail.

MéthodeSignatureAsyncDescription
getActive() → WorkflowInfo | nullNonRécupère le nom et le chemin du flux actif
list() → WorkflowListItem[]NonListe tous les flux de l’espace de travail
switch(name)NonChange 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éthodeSignatureAsyncDescription
getContext() → TriggerContextNonRé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);
}
}