Potrei star cercando nel posto sbagliato, quindi mi scuso se è così, ma qualsiasi indicazione è molto gradita!
Nel nostro sito Discourse ci sono alcuni thread che vengono visualizzati in parte anche sul nostro sito principale. Poiché la versione “cotta” di un post contiene tutto l’HTML per il lightbox, che non vogliamo mostrare sul sito principale, sto lavorando con la versione grezza del post.
Una cosa che mi sta creando problemi sono gli URL dei file caricati. Come posso convertire un URL upload:// in un URL completo? Ho cercato e ho trovato riferimenti a SHA1 e Base62, ma a parte quello, non importa cosa provi, non riesco a ottenere l’URL completo.
Come ho detto, potrei star guardando dalla parte sbagliata, oppure (probabilmente) esiste un modo più semplice per fare queste cose, quindi qualsiasi consiglio è benvenuto!
Interessante. Non riesco a riprodurlo con Javascript. Poiché il tuo ultimo metodo è una conversione binary2hex, ma il risultato della decodifica base62 non è una rappresentazione binaria, per quanto ne capisco.
function fromBase62(s) {
var digits = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var result = 0;
for (var i = 0; i < s.length; i++) {
var p = digits.indexOf(s[i]);
if (p < 0) {
return NaN;
}
result += p * Math.pow(digits.length, s.length - i - 1);
}
return result;
}
Sfortunatamente, né i metodi bin2hex né dec2hex aiutano quando uso le tue stringhe di input.
Ho creato un codesandbox per questo problema, se qualcuno è interessato a giocarci. Il valore finale è 1 per la mia stringa di input, il che è sbagliato ;(
Dovresti essere in grado di usare binVal.toString(16) per ottenere il valore esadecimale.
Tuttavia, penso (!) che il risultato intermedio sia troppo grande per essere inserito in un intero normale.
Grazie per il suggerimento Richard, ma non sto andando avanti nemmeno con quell’idea.
Non so se non sarebbe una buona funzionalità avere un’impostazione del tipo “Abilita link di caricamento assoluti nelle visualizzazioni raw (route)”. La userei assolutamente nel nostro caso, perché, per quanto ne so, l’accorciamento degli URL di caricamento è solo un’ottimizzazione di discourse per ridurre il codice, giusto? Non è correlato a Markdown.
Qualcuno del team di Discourse può fornire un metodo JS in grado di ripristinare l’URL assoluto?
Sarebbe utile per la community, pensateci.
Non riesco a farlo ;(
Puoi convertire da base62 a hex, ma non sarai mai in grado di ricostruire completamente l’URL di caricamento senza un qualche tipo di interfaccia al database di Discourse. Il percorso completo per un caricamento dipende dall’id del caricamento, che non può essere determinato dall’URL breve.
Come ha detto @pfaffman, potremmo essere in grado di aiutarti di più se descrivi il tuo caso d’uso.