Do número do post para o ID do post

Eu precisava desesperadamente do mesmo recurso há dois anos. Ainda não descobri como fazer isso (mais) corretamente. Este é meu truque:

def get_topic_post(topic_id, post_num)
    topic = @api.topic(topic_id, {print: true})
    post_obj = topic['post_stream']['posts'].find { |p| p['post_number'] == post_num }
    if post_obj
        post_obj['id']
    else
        throw "Não foi possível encontrar o post #{topic_id}/#{post_num}."
    end
end

Isso contorna os problemas mencionados: o {print: true} resolve o problema de paginação. O find é necessário porque a moderação pode criar uma incompatibilidade entre os índices do array e os números dos posts.

Funciona para tópicos do tamanho com o qual estou trabalhando. Ainda assim, uma maneira mais direta através da API seria mais satisfatória.