¿Cómo obtener la URL real de una carga de publicación?

¡Hola!
He estado buscando por todo internet pero no he tenido suerte, así que recurrí a preguntar aquí.

Permítanme agregar un poco de contexto, estamos creando un front-end personalizado utilizando la API de usuarios de Discourse. Donde estaba intentando renderizar el contenido sin formato de una publicación, pero las imágenes se pasan así: uploads://<id>.png por lo que el navegador no puede obtenerlas.

¿Hay alguna forma de obtener la URL real a través de la API? ¿Como https://custom.discourse.org/uploads/<id>.png o algo similar?

¡Saludos!

1 me gusta

Ver Converting short upload URLs to full URLs

6 Me gusta

¡Muchas gracias, le echaré un vistazo!

1 me gusta

Hola @RGJ Acabo de probar el código de ejemplo de Python, mencionado aquí: Converting short upload URLs to full URLs - #2 by michaeld

Pero parece que no se está decodificando correctamente.

Este es el código que terminé probando. Debería decodificarse a “77f164006403e10d7d40143d525f8a5d69390baf”, pero obtengo “77f13112951f458abf39d5e480c59eba10c97f31”, ¿alguna idea de por qué podría ser? No tengo mucha experiencia con este tipo de cosas.

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')

Lo siento, se estaba convirtiendo a minúsculas antes de que imprimiera el enlace uploads:// en la consola, ¡así que la decodificación no funcionó! ¡Usar la capitalización correcta sí funciona!

¡¡¡Muchas gracias por la rápida ayuda!!!

Aquí está el código que usé en Flutter para lograr esto:

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 Me gusta