|
| 1 | +#Requires -Version 5.1 |
| 2 | + |
| 3 | +<# |
| 4 | +.SYNOPSIS |
| 5 | + Snippets reutilizaveis para a CLI Jurisprudencias.ai |
| 6 | +.DESCRIPTION |
| 7 | + Colecao de trechos prontos para uso em scripts e pipelines. |
| 8 | + Cada snippet eh auto-contido e pode ser copiado para o terminal ou script. |
| 9 | +#> |
| 10 | + |
| 11 | +# Requires: scripts/jurisprudencias.ps1 |
| 12 | +# Setup: |
| 13 | +# . .\scripts\jurisprudencias.ps1 |
| 14 | +# $env:JURISPRUDENCIAS_API_TOKEN = 'jur_seu_token_aqui' |
| 15 | + |
| 16 | +# --------------------------------------------------------------- |
| 17 | +# Snippet 1: Busca basica com filtro de tribunal e exportacao |
| 18 | +# --------------------------------------------------------------- |
| 19 | +<# |
| 20 | +Parametros: |
| 21 | + $query - termo de busca (obrigatorio) |
| 22 | + $court - tribunal (STJ, STF, TJSP, etc.) |
| 23 | + $pages - numero de paginas (padrao 1, max 5) |
| 24 | + $out - caminho do arquivo de saida CSV |
| 25 | +#> |
| 26 | +function Invoke-JurSearchAndExport { |
| 27 | + param( |
| 28 | + [Parameter(Mandatory)] [string]$Query, |
| 29 | + [string]$Court = "STJ", |
| 30 | + [int]$Pages = 1, |
| 31 | + [string]$OutFile = "resultados.csv" |
| 32 | + ) |
| 33 | + $all = @() |
| 34 | + for ($p = 1; $p -le $Pages; $p++) { |
| 35 | + $r = Search-JurDecision -Query $Query -Court $Court -Page $p -PageSize 20 |
| 36 | + if (-not $r.results) { break } |
| 37 | + $all += $r.results |
| 38 | + Write-Host "Pagina $p/$Pages: $($r.results.Count) resultados" |
| 39 | + } |
| 40 | + $all | Export-Csv -Path $OutFile -NoTypeInformation -Encoding UTF8 |
| 41 | + Write-Host "Exportados $($all.Count) resultados para $OutFile" |
| 42 | +} |
| 43 | + |
| 44 | +# --------------------------------------------------------------- |
| 45 | +# Snippet 2: Resolver processo e gerar relatorio |
| 46 | +# --------------------------------------------------------------- |
| 47 | +<# |
| 48 | +Uso: |
| 49 | + Show-JurCaseBrief -ProcessNumber "0700834-24.2022.8.02.0001" |
| 50 | +#> |
| 51 | +function Show-JurCaseBrief { |
| 52 | + param([Parameter(Mandatory)] [string]$ProcessNumber) |
| 53 | + $r = Resolve-JurProcess -ProcessNumber $ProcessNumber |
| 54 | + if (-not $r) { Write-Warning "Processo nao encontrado"; return } |
| 55 | + Write-Host "`n=== RELATORIO DO PROCESSO ===" -ForegroundColor Cyan |
| 56 | + Write-Host "Numero: $($r.numero)" -ForegroundColor Yellow |
| 57 | + Write-Host "Classe: $($r.classe_judicial)" -ForegroundColor Yellow |
| 58 | + Write-Host "Assunto: $($r.assunto)" -ForegroundColor Yellow |
| 59 | + Write-Host "Orgao Julgador: $($r.orgao_julgador)" -ForegroundColor Yellow |
| 60 | + Write-Host "Relator: $($r.relator)" -ForegroundColor Yellow |
| 61 | + Write-Host "Data Julgamento: $($r.data_julgamento)" -ForegroundColor Yellow |
| 62 | + Write-Host "Data Publicacao: $($r.data_publicacao)" -ForegroundColor Yellow |
| 63 | + if ($r.ementa) { |
| 64 | + Write-Host "`nEMENTA:" -ForegroundColor Green |
| 65 | + Write-Host $r.ementa |
| 66 | + } |
| 67 | + if ($r.acordao_url) { |
| 68 | + Write-Host "`nAcordao: $($r.acordao_url)" -ForegroundColor Blue |
| 69 | + } |
| 70 | + Write-Host "`n===========================" -ForegroundColor Cyan |
| 71 | +} |
| 72 | + |
| 73 | +# --------------------------------------------------------------- |
| 74 | +# Snippet 3: Busca multiplos tribunais em paralelo |
| 75 | +# --------------------------------------------------------------- |
| 76 | +<# |
| 77 | +Uso: |
| 78 | + $resultados = Invoke-JurMultiCourtSearch -Query "dano moral" -Courts @("STJ","TJSP","TJPR") |
| 79 | +#> |
| 80 | +function Invoke-JurMultiCourtSearch { |
| 81 | + param( |
| 82 | + [Parameter(Mandatory)] [string]$Query, |
| 83 | + [string[]]$Courts = @("STJ","STF","TJSP"), |
| 84 | + [int]$PageSize = 10 |
| 85 | + ) |
| 86 | + $jobs = @() |
| 87 | + foreach ($c in $Courts) { |
| 88 | + $jobs += Start-Job -ScriptBlock { |
| 89 | + param($q, $co, $ps) |
| 90 | + . $using:PSScriptRoot\..\scripts\jurisprudencias.ps1 |
| 91 | + Search-JurDecision -Query $q -Court $co -PageSize $ps |
| 92 | + } -ArgumentList $Query, $c, $PageSize |
| 93 | + } |
| 94 | + $all = @() |
| 95 | + foreach ($j in $jobs) { |
| 96 | + $r = Receive-Job -Job $j -Wait |
| 97 | + if ($r.results) { $all += $r.results } |
| 98 | + Remove-Job -Job $j |
| 99 | + } |
| 100 | + return $all |
| 101 | +} |
| 102 | + |
| 103 | +# --------------------------------------------------------------- |
| 104 | +# Snippet 4: Cache management helpers |
| 105 | +# --------------------------------------------------------------- |
| 106 | +<# |
| 107 | +Uso: |
| 108 | + Show-JurCacheStatus # mostra tamanho e contagem do cache |
| 109 | + Clear-JurCache # limpa todo cache |
| 110 | +#> |
| 111 | +function Show-JurCacheStatus { |
| 112 | + $dir = if ($env:JURISPRUDENCIAS_CACHE_DIR) { $env:JURISPRUDENCIAS_CACHE_DIR } else { "$env:USERPROFILE\.jurisprudencias\cache" } |
| 113 | + if (-not (Test-Path $dir)) { Write-Host "Cache vazio"; return } |
| 114 | + $files = Get-ChildItem -Path $dir -Filter "*.json" |
| 115 | + $total = ($files | Measure-Object Length -Sum).Sum |
| 116 | + Write-Host "Arquivos em cache: $($files.Count)" -ForegroundColor Cyan |
| 117 | + Write-Host "Tamanho total: $('{0:N2}' -f ($total/1KB)) KB" -ForegroundColor Cyan |
| 118 | +} |
| 119 | + |
| 120 | +function Clear-JurCache { |
| 121 | + $dir = if ($env:JURISPRUDENCIAS_CACHE_DIR) { $env:JURISPRUDENCIAS_CACHE_DIR } else { "$env:USERPROFILE\.jurisprudencias\cache" } |
| 122 | + if (Test-Path $dir) { |
| 123 | + Remove-Item -Path "$dir\*.json" -Force |
| 124 | + Write-Host "Cache limpo" -ForegroundColor Green |
| 125 | + } |
| 126 | +} |
| 127 | + |
| 128 | +# --------------------------------------------------------------- |
| 129 | +# Snippet 5: Pipeline integracao com pecas juridicas |
| 130 | +# --------------------------------------------------------------- |
| 131 | +<# |
| 132 | +Uso: |
| 133 | + $ementa = Get-JurEmentaForPeca -Query "honorarios sucumbenciais" -Court "STJ" |
| 134 | + # Use $ementa na sua peca juridica |
| 135 | +#> |
| 136 | +function Get-JurEmentaForPeca { |
| 137 | + param( |
| 138 | + [Parameter(Mandatory)] [string]$Query, |
| 139 | + [string]$Court = "STJ", |
| 140 | + [int]$MaxPages = 2 |
| 141 | + ) |
| 142 | + $ementas = @() |
| 143 | + for ($p = 1; $p -le $MaxPages; $p++) { |
| 144 | + $r = Search-JurDecision -Query $Query -Court $Court -Page $p -PageSize 5 |
| 145 | + if (-not $r.results) { break } |
| 146 | + foreach ($item in $r.results) { |
| 147 | + if ($item.ementa) { |
| 148 | + $ementas += [PSCustomObject]@{ |
| 149 | + Ementa = $item.ementa |
| 150 | + Tribunal = $item.tribunal |
| 151 | + Numero = $item.numero_processo |
| 152 | + Relator = $item.relator |
| 153 | + Data = $item.data_julgamento |
| 154 | + } |
| 155 | + } |
| 156 | + } |
| 157 | + } |
| 158 | + return $ementas |
| 159 | +} |
0 commit comments