No se puede eliminar el tema predeterminado de una categoría

Hola, estoy intentando usar el punto final de la API para eliminar temas.

Puedo eliminar temas “normales”, pero me encontré con el problema de que el tema predeterminado no se puede eliminar. El que se llama “Acerca de la categoría ________”.

{{baseUrl}}/t/{{id}}.json

Aquí están mis preguntas:

  • ¿Cómo puedo eliminar este tema usando la API?
  • ¿Cómo puedo identificar ese tema usando la API para que se omita?

Ejemplo

    url = base_url + "/c/" + slug + "/22.json"
    response = requests.request("GET", url, headers=headers, data=payload)

    for topic in response.json()["topic_list"]["topics"]:
        # Elimina cada tema

        url =  base_url + "/t/topic_id.json".replace("topic_id", str(topic["id"]))
        response = requests.request("DELETE", url, headers=headers, data=payload)

puedes establecer los temas de descripción de la categoría en “no listado”. yo hago eso con todos los míos. ¿sospechas que puedes identificar los temas no listados a través de la API?

3 Me gusta

¿Puedes compartir por qué quieres eliminar estos temas? Son temas especiales que no se pueden ni se deben eliminar.

Si tu objetivo es eliminar todos los temas y luego eliminar la categoría, puedes eliminar la categoría sin eliminar el tema “Acerca de”.

Cuando las personas quieren deshacerse de los temas “Acerca de” de alguna manera, no listarlos como sugiere @Lilly es la forma de hacerlo.

Creo que estas publicaciones no tienen ningún atributo único. Se identifican como temas especiales desde la tabla category, a través de la columna topic_id.

Puedes obtenerlos con el endpoint /c/{id}/show.json: https://docs.discourse.org/#tag/Categories/operation/getCategory.
Busca la clave topic_url.

Por ejemplo:

https://meta.discourse.org/c/7/show.json

"topic_url": "/t/about-the-dev-category/1026"

Un poco más de información técnica si te interesa.

La protección contra eliminación :shield: está aquí: discourse/lib/guardian/topic_guardian.rb at 7ecaf6295daf8759aa98d00e7035c4dc0f853303 · discourse/discourse · GitHub

Y el método utilizado se define aquí: discourse/app/models/topic.rb at 7ecaf6295daf8759aa98d00e7035c4dc0f853303 · discourse/discourse · GitHub

2 Me gusta