Richiesta di miglioramento per lo script di importazione di phpBB3

In phpBB, è possibile aggiungere commenti agli allegati caricati:

Questi appaiono quindi sotto l’immagine nel post:

Sarebbe utile se lo script di importazione di phpBB3 potesse prendere questi commenti e assegnarli come testo alternativo all’immagine con cui sono abbinati, il quale apparirebbe passando il mouse sopra l’immagine in Discourse.

Grazie
Dan

2 Mi Piace

Ah! Dato che non so nulla di Ruby on Rails e sto richiedendo un miglioramento allo script di importazione di phpBB, vorrei richiedere un miglioramento aggiuntivo come descritto qui. Sarebbe utile se, quando lo script segnala un errore di data/ora con un post, riportasse anche il post_id di phpBB a scopo di debug.

Grazie
Dan

1 Mi Piace

Non è immediatamente chiaro come procedere con la tua richiesta, ma ho dedicato qualche minuto e non c’è una soluzione molto soddisfacente che sembri fattibile.

Non c’è un posto nel record di caricamento per la didascalia, e non vedo un modo ovvio per tornare indietro dal caricamento… una possibilità potrebbe essere inserire il commento come nome del file e poi in qualche modo recuperarlo in seguito come didascalia. Sì. Questa è all’incirca la cosa migliore che potresti fare, codificare quella didascalia come nome del file, il che la farebbe apparire al passaggio del mouse e così via. Se volessi, potresti poi fare qualcos’altro, come ottenere nomi di file che includono una didascalia e poi inserirla nell’html in qualche modo.

1 Mi Piace

Admetto di non sapere nulla di RoR, né tantomeno di postgres. Ma, quando si aggiunge il testo alternativo a un’immagine, questo viene memorizzato nel database postgres in associazione con quell’immagine. Cosa c’è nello script di importazione che impedisce tale assegnazione? Certamente, il commento è accessibile in MySQL.

1 Mi Piace

Sembra complicato, ma potresti avere successo modificando questo metodo qui:

Invece di questo:

text.gsub!(attachment_regexp) do
        index = $1.to_i
        real_filename = $2
        unreferenced_attachments[index] = nil
        attachments.fetch(index, real_filename)
end

Vorresti qualcosa di simile a questo:

text.gsub!(attachment_regexp) do
        index = $1.to_i
        description = $2.strip
        unreferenced_attachments[index] = nil

        url = attachments.fetch(index, description)

        "![#{description}](#{url})"
end

Questo è un esempio non testato solo per mostrarti dove deve essere modificato. Potrei sbagliarmi.

Se avrò tempo domani potrei aprire una PR con una soluzione reale. :grinning_face_with_smiling_eyes:

5 Mi Piace

Grazie! Vuoi qualificare l’assegnazione in base al tipo MIME? (Non sono riuscito ad allegare un commento phpBB a un .mp4; mentre sono riuscito ad allegarlo a un .gif, non è apparso al passaggio del mouse.)

1 Mi Piace

Questo potrebbe essere utile, ma ho lavorato su un nuovo modo di aggiungere il commento direttamente al codice sorgente del post. Credo sia più sicuro in questo modo per gestire tutti i tipi di file.

Saresti in grado di testare queste modifiche con il tuo set di dati? Ho testato localmente ma apprezzerei il tuo feedback prima di procedere con una Pull Request (PR).

3 Mi Piace

Sarei felice di testare, ma… Devo eliminare il mio ambiente di test e ricominciare? Claude.ai mi ha guidato attraverso il processo di installazione, sono un neofita di Docker, e anche così, ci sono stati molti errori lungo il percorso.

Se puoi delineare un modo per me di testare facilmente, sarei felice di provarci.

1 Mi Piace

Bel lavoro! Ho dato un’occhiata al codice e non l’ho trovato.

Sì. Dovrai cancellare il database ed eseguire di nuovo. L’importatore salta i dati già importati, quindi dovrai reimportare tutto per provarlo. Sembra che dovrebbe funzionare, comunque!

OK - beh, gli allegati sono ancora al loro posto, così come il database MySQL. Ci sono volute diverse ore per l’esecuzione, ma chiederò a Claude di guidarmi e riferirò.

Certo, posso aiutarti. Non è necessario modificare la tua installazione. Il modo più semplice:

  1. Esegui un backup del tuo sito e conservalo in un luogo sicuro. Questo ti proteggerà dal perdere il tuo lavoro.
  2. Ripristina il tuo sito:
# Entra nel container del sito
cd /var/discourse
./launcher enter <nome-del-tuo-container>

# Ripristina il database
bundle exec rake db:drop
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:seed

# Esci dal container
exit

# Ricostruisci il container solo per assicurarti che tutto sia a posto
./launcher rebuild <nome-del-tuo-container>
  1. Modifica i file con il nuovo codice. Puoi usare un editor di testo da riga di comando o aprire il tuo container tramite ssh nel tuo editor di testo preferito.
  2. Configura il file settings.yml ed esegui nuovamente l’importatore.

Per tornare allo stato precedente, è sufficiente ripristinare il backup che hai effettuato all’inizio:

./launcher enter <nome-del-tuo-container>
discourse enable restore
discourse restore <nome-del-tuo-file-di-backup>
4 Mi Piace

Oh sì! Già che ci siamo, è abbastanza facile modificare lo script per riportare il post_id di phpBB che viene elaborato, quando viene segnalato il problema di data/ora?

2 Mi Piace

Sembra abbastanza semplice! Ci proverò non appena Rosie :dog: mi porterà a fare la passeggiata.

2 Mi Piace

Lo sto aggiungendo qui usando il gsub esistente:

Ma grazie per aver dato un’occhiata, questo mi ha fatto capire che non avevo considerato gli allegati non referenziati che phpbb ha anche:

2 Mi Piace

OK, il backup è in corso. Prevedo che potrebbe volerci un po’ di tempo…

Devo modificare? Non posso semplicemente fare un docker cp nel percorso/i degli script dei file nel tuo repository git?

1 Mi Piace

Funziona anche così. In alternativa, puoi impostare container.yml per utilizzare il mio repository e branch e ricostruire.

2 Mi Piace

Beh, non è andata bene.

reset_log.txt (16.6 KB)

1 Mi Piace

Penso che potresti dover eseguire i comandi come utente discourse:

su discourse

o

su discourse -c “bundle exec rake db:drop”
1 Mi Piace

Oops. Errore da principiante, non intendevo chiudere la discussione - solo per confermare, questo sembra aver risolto quel particolare problema.

“Sembra di sì.” Sto ancora aspettando che db:drop finisca. Avanti…

1 Mi Piace

Ancora nessun risultato.

reset_log2.txt (1,7 KB)