Da numero di post a ID post

Avevo un disperato bisogno della stessa funzionalità due anni fa. Ancora non ho scoperto come farlo (più) correttamente. Questo è il mio trucco:

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 "Could not find post #{topic_id}/#{post_num}."
    end
end

Questo aggira i problemi menzionati: {print: true} risolve il problema della paginazione. find è necessario perché la moderazione può creare una discrepanza tra gli indici dell’array e i numeri dei post.

Funziona per argomenti delle dimensioni con cui sto lavorando. Tuttavia, un metodo più diretto tramite l’API sarebbe più soddisfacente.