Como habilitar este campo - "Solved" - programaticamente para cada categoria

Olá, instalamos o plugin “Solved” e estamos criando categorias programaticamente usando um script Python. Queremos definir esses campos de configuração de categoria como “True”. Ao executar o script, ele informa que foi atualizado com sucesso, mas quando verificamos o campo de configurações dessa categoria, ele não está definido como “True” e ainda está como “False”. Como depurar e corrigir esse problema?

2 curtidas

Eu sempre sigo Reverse engineer the Discourse API para tais perguntas.

5 curtidas

Pelo que sei, se você está criando categorias com um script, presumo que você esteja usando JSON para adicionar as categorias. Você teria que fazer algumas alterações no endpoint e no script. Você também pode consultar esta documentação: Discourse Categories API.

No entanto, o Discourse é uma ferramenta poderosa. Você pode conferir este guia: Reverse Engineering the Discourse API. Como o Discourse é suportado por uma API JSON completa, você pode fazer a engenharia reversa dela, fazer as alterações necessárias e fazê-la funcionar conforme necessário.

Uma dica rápida:

  • Altere a configuração desejada de “Resolvido” manualmente na interface do usuário.
  • Inspecione as requisições de rede feitas pelo navegador para identificar o endpoint exato da API, o método de requisição (por exemplo, PUT) e a carga útil.

Em um script Python, ficaria algo assim:

payload = {
        "enable_solved": True  # Ajuste isto
    }

response = requests.put(url, headers=headers, json=payload)
if response.status_code == 200:
    print("Categoria atualizada")
else:
    print(f"Falha: {response.status_code} - {response.text}")

update_category_settings(category_id=123)

PS: Não tenho certeza absoluta sobre isso, mas recentemente criei alguns scripts, então esta resposta é baseada nas coisas que encontrei até agora. :slightly_smiling_face:

Obrigado Mihir, isso ajudou a resolver este problema. Agradeço sua contribuição e sugestões.

1 curtida

Obrigado Thomas por apontar esta abordagem.

Fico feliz que tenha ajudado :slight_smile: