Obtener extracto de temas regulares

Hi,
I’m using Discourse API for get the latest topics for specific category(works great!):

http://haxe.org.il/c/15/l/latest.json?

but I want to get excerpt for all topics not just topics…
How can I do that?
Thanks,
Michael

There currently isn’t a get parameter to request excerpts, but it’s on the list of feature requests.

2 Me gusta

Hi.
It has been a few years, is it still impossible to do? I’m looking to display my lastest Discourse posts on a WP site and that would be an excellent feature.

Yeah this exists if you install this plugin:

Per:

https://github.com/discourse/discourse-tooltips/blob/master/app/controllers/discourse_tooltips/tooltip_previews_controller.rb

@codinghorror I wonder should we just roll in the functionality of discourse tooltip, it will help keep it more stable over time and helps a tiny bit in some desktop situations.

4 Me gusta

I am fairly strongly opposed, because hover means nothing on touch and we should not be relying on non-touch behaviors at all. And given that the world will be 99.9% smartphone usage soon… it’s backwards thinking.

Hi,
I’ve installed and enabled this plugin. It works but I still don’t have the excerpts from other topics than pinned in top.json data.

I believe you need to do another request for the excerpts, like:

3 Me gusta

Hi, I know this is an old topic, but I am having the same issue.

My rss feed is working fine, but I rather use the Json one as it is more flexible.

So I have a php plugin that pulls discourse json feed ( latest, top, etc), everything works fine… expect the excerpt

Is there is reason why there is no post description on the Json feed? How can I fix this ?

Thanks.

Hola, tuve el mismo problema y logré solucionarlo volviendo a obtener el tema para conseguir los datos necesarios. Lo hice en el componente topic-list-item.js, utilizando Ember.PromiseProxyMixin. Para saber cómo usarlo, lee aquí: Use Ember.PromiseProxyMixin in a theme

El código se ve más o menos así:

// He usado una función memoize personalizada para reducir el número de solicitudes
const getTopic = memoize(id => ajax(`/t/${id}.json`).then(data => data));
// ...
// Dentro del componente

  @discourseComputed("topic")
  topicPromise(topic) {
    return getTopic(topic.id);
  },

  @discourseComputed("topicPromise")
  topicProxy() {
    const promise = this.get("topicPromise");
    return promise && PromiseObject.create({ promise });
  },

  postStream: reads("topicProxy.content.post_stream"),

  @discourseComputed("postStream")
  excerpt(postStream) {
    if (!this.get("postStream")) return false;
    return `${stripHtml(postStream.posts[0].cooked).slice(0, 150)}...`;
  },

stripHtml es una función personalizada para eliminar el HTML del primer mensaje.

En topic-list-item.hbs tendrías:

  {{#if topicProxy.isFulfilled}}
    <div class="excerpt">
      {{#if excerpt}}
        {{html-safe excerpt}}
      {{/if}} 
    </div>
  {{/if}}

¿Estás haciendo una solicitud adicional por cada tema en la lista para obtener el extracto?

Desafortunadamente, sí. Sé que afecta al rendimiento, pero yo no tomo las decisiones, si me entiendes.

Te va a encantar

5 Me gusta

¡Dios mío! ¿Por qué está oculto eso? :smiley:

2 Me gusta

Debido a que hay muchos temas de soporte de administradores que hacen clic en todas las configuraciones sin leer. Esto significa que muchas instancias tendrían una carga más pesada sin usar nunca los datos adicionales que provienen de la API.

Pronto, los temas podrán habilitar declarativamente esos cambios en el serializador.

5 Me gusta

Este tema se cerró automáticamente después de 3184 días. Ya no se permiten nuevas respuestas.