Sistema e automação
## g.workers.* — processos de trabalho das filas
Seção intitulada “## g.workers.* — processos de trabalho das filas”Gerencia grupos de processos de trabalho concorrentes para processamento em lote. Veja Processos de trabalho das filas para detalhes completos.
| Método | Assinatura | Async | Descrição |
|---|---|---|---|
start | (options) | Não | Inicia grupos de processos de trabalho |
stop | (queueName?) | Não | Para processos de trabalho, todos ou por fila |
pause | () | Não | Pausa todas as operações de dequeue |
resume | () | Não | Retoma operações de dequeue |
status | () → WorkerPoolStatus[] | Não | Obtém status de todos os grupos |
WorkerStartOptions:
{ clearTabs?: boolean layout?: "horizontal" | "vertical" | "quad" workers: WorkerPoolOptions[]}WorkerPoolOptions:
{ queue: string script: string concurrency?: number throttle?: { requestsPerMinute?: number } dequeue?: string requiresWorkflowEnvelope?: boolean}Use requiresWorkflowEnvelope: true para filas pertencentes a fluxos de trabalho que só devem processar itens vinculados a um envelope de execução/item do registro de rastreabilidade.
## g.worker.* — contexto de worker
Seção intitulada “## g.worker.* — contexto de worker”Disponível apenas dentro de scripts de worker.
| Método | Assinatura | Async | Descrição |
|---|---|---|---|
getContext | () → WorkerContext | Não | Obtém o item atual, ID da guia e nome da fila |
WorkerContext:
{ item: QueueItem tabId: string queueName: string}## g.network.* — tráfego de rede
Seção intitulada “## g.network.* — tráfego de rede”Acessa tráfego HTTP capturado. A captura precisa estar habilitada; por padrão, ela está.
| Método | Assinatura | Async | Descrição |
|---|---|---|---|
search | (query?, options?) → TrafficEntryInfo[] | Não | Pesquisa tráfego capturado |
getById | (id) → TrafficEntryInfo | null | Não | Obtém uma entrada específica |
getResponseBody | (id) → string | null | Não | Obtém o corpo da resposta |
getRequestBody | (id) → string | null | Não | Obtém o corpo da solicitação |
count | () → number | Não | Conta entradas capturadas |
clear | () | Não | Limpa todo o tráfego capturado |
enable | () | Não | Habilita captura de tráfego |
disable | () | Não | Desabilita captura de tráfego |
isEnabled | () → boolean | Não | Verifica se a captura está habilitada |
waitForRequest | (urlPattern, options?) → Promise<TrafficEntryInfo> | Sim | Aguarda uma solicitação correspondente |
NetworkSearchOptions:
{ method?: string // "GET", "POST" etc. statusMin?: number statusMax?: number contentType?: string tabId?: string limit?: number // padrão: 100 offset?: number // padrão: 0 sort?: string // timestamp, url, status, size, duration, method order?: string // "asc" ou "desc" (padrão)}WaitForRequestOptions:
{ method?: string timeout?: number // padrão: 30000ms}Exemplo
Seção intitulada “Exemplo”async function main() { await g.nav.navigateToUrl("https://api.example.com/data");
// Aguardar resposta da API const entry = await g.network.waitForRequest("api.example.com/data"); const body = g.network.getResponseBody(entry.id); const data = JSON.parse(body); g.log("Recebidos " + data.items.length + " itens");}## g.history.* — histórico de navegação
Seção intitulada “## g.history.* — histórico de navegação”| Método | Assinatura | Async | Descrição |
|---|---|---|---|
search | (query?, options?) → NavigationEntryInfo[] | Não | Pesquisa histórico de navegação |
count | () → number | Não | Conta entradas de histórico |
clear | () | Não | Limpa todo o histórico |
HistorySearchOptions:
{ tabId?: string limit?: number // padrão: 100 offset?: number // padrão: 0 sort?: string // "timestamp" (padrão), "url", "status" order?: string // "asc" ou "desc" (padrão)}## g.robots.* — conformidade com robots.txt
Seção intitulada “## g.robots.* — conformidade com robots.txt”Verificação automática de robots.txt para automação por scripts. Habilitada por padrão.
| Método | Assinatura | Async | Descrição |
|---|---|---|---|
isAllowed | (url) → Promise<boolean> | Sim | Verifica se uma URL é permitida por robots.txt |
getCrawlDelay | (url) → Promise<number | null> | Sim | Obtém o crawl-delay de um domínio |
disable | () | Não | Desabilita verificação robots.txt para este script |
enable | () | Não | Reabilita verificação robots.txt |
## g.workflows.* — fluxos de trabalho
Seção intitulada “## g.workflows.* — fluxos de trabalho”Inspeciona e alterna entre fluxos dentro de um espaço de trabalho.
| Método | Assinatura | Async | Descrição |
|---|---|---|---|
getActive | () → WorkflowInfo | null | Não | Obtém nome e caminho do fluxo ativo |
list | () → WorkflowListItem[] | Não | Lista todos os fluxos no espaço de trabalho |
switch | (name) | Não | Alterna para um fluxo (disparado sem espera, acontece na thread da interface) |
WorkflowInfo:
{ name: string path: string}WorkflowListItem:
{ name: string enabled: boolean hasEvents: boolean hasWorkers: boolean hasTools: boolean hasViews: boolean scriptCount: number}## g.trigger.* — contexto de gatilho de evento
Seção intitulada “## g.trigger.* — contexto de gatilho de evento”Disponível dentro de scripts executados por gatilhos de eventos. Retorna metadados sobre por que o script foi invocado.
| Método | Assinatura | Async | Descrição |
|---|---|---|---|
getContext | () → TriggerContext | Não | Obtém dados de evento para a execução atual do gatilho |
TriggerContext:
{ event: string tabId?: string url?: string timestamp: string pattern?: string
oldValue?: string newValue?: string attribute?: string mutationType?: string selector?: string changes?: object[]}Exemplo
Seção intitulada “Exemplo”async function main() { const ctx = g.trigger.getContext();
if (ctx.event === "url-match") { g.log("Correspondência " + ctx.pattern + " em " + ctx.url); }
if (ctx.event === "dom-mutation") { g.log(ctx.selector + " mudou: " + ctx.oldValue + " → " + ctx.newValue); }}