Como obter a URL real de um upload de post?

Olá!\nEstive procurando por toda a internet por isso, mas não tive sorte, então recorri a perguntar aqui.\n\nDeixe-me adicionar um pouco de contexto, estamos criando um front-end personalizado usando a API de usuário do Discourse. Onde eu estava tentando renderizar o conteúdo bruto de uma postagem, mas as imagens são passadas assim: uploads://\u003cid\u003e.png para que o navegador não consiga buscá-las.\n\nExiste alguma maneira de obter o URL real via API? Como https://custom.discourse.org/uploads/\u003cid\u003e.png ou algo parecido?\n\nAbraços!

1 curtida

Veja Converting short upload URLs to full URLs

6 curtidas

Muito obrigado, vou dar uma olhada!

1 curtida

Olá @RGJ Acabei de tentar o código de exemplo do Python, mencionado aqui: Converting short upload URLs to full URLs - #2 by michaeld

Mas parece que não está decodificando corretamente.

Este é o código que acabei tentando. Ele deveria decodificar para “77f164006403e10d7d40143d525f8a5d69390baf”, mas recebo “77f13112951f458abf39d5e480c59eba10c97f31”, alguma ideia de por que isso pode estar acontecendo? Não tenho muita experiência com esse tipo de coisa.

import base62
input = "h73zkifccxqjtevvuahwq9hefkt"
expected = "77f164006403e10d7d40143d525f8a5d69390baf"

decoded = hex(base62.decode(input, base62.CHARSET_INVERTED))[2:].zfill(40)

print('decoded: ' + decoded)

if expected != decoded:
  print('not decoded correctly')
else:
  print('decoded correctly')

Minha falha, estava sendo convertido para minúsculas antes de eu imprimir o link uploads:// no console, então a decodificação não funcionou. Usar a capitalização correta funciona!

Muito obrigado pela ajuda rápida!!!

Aqui está o código que usei no Flutter para realizar isso:

import 'package:base_x/base_x.dart';
import 'package:hex/hex.dart';

String decodeUploadsLink(String encoded) {
  var base62Rev = BaseXCodec('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
  var decodedRev = base62Rev.decode(encoded);
  return HEX.encode(decodedRev);
}
5 curtidas