Consulta do Data Explorer - novos tópicos para o usuário por tag/categoria

Estou tentando construir um “motor de recomendação” para meus usuários através da API do Discourse que liste todos os tópicos que um usuário específico ainda não leu por tag/categoria. Naveguei pelas várias consultas existentes, mas não tenho ideia de por onde começar. Você pode me ajudar? Obrigado!

2 curtidas

@simon Você poderia adicionar a tag aqui?

1 curtida

@Krischan,

Você verificou a tabela post_timings?

Algo como isto listará os tópicos em uma categoria que um usuário nunca entrou ou leu nenhuma postagem. Não é exatamente o que você quer, mas é um ponto de partida.

-- [params]
-- user_id :user
-- category_id :category

SELECT t.id, t.title
FROM
  topics AS t
WHERE
  category_id = :category
AND user_id != :user
AND last_post_user_id != :user
AND deleted_at IS NULL
AND NOT EXISTS(SELECT 1 FROM post_timings AS p WHERE p.topic_id = t.id AND p.user_id = :user)

Note que em seu “motor de recomendação” você provavelmente terá que verificar se o usuário pode ver o tópico antes de recomendá-lo.

2 curtidas