Migrare la Broadcast Machine ad altro URL
Mi sono recentemente trovato a dover cambiare l'indirizzo di una istanza di Broadcast Machine. Ho trovato zero documentazione al riguardo, quindi ecco gli step che ho seguito durante la migrazione.
Broadcast Machine immagazzina staticamente molti dati che fanno riferimento all'indirizzo della vostra istanza al momento della pubblicazione. Se per un malaugurato caso dovete cambiare l'URL alla vostra BM, troverete che non funziona più nulla!
Niente Panico! Ecco tre non tanto semplici passaggi per riaggiustare tutto:
1) /data/settings
Aprite il file /data/settings. Troverete una lunga linea di dati Bencode. Leggendola attentamente, dovreste trovare un passaggio del genere: [...]8:base_url40:http://ilvecchiourl.com/vecchia/cartella[...]. Il numero 40 è il numero di caratteri costituito dal vostro vecchio URL. Non basta sostituire il base_url con il nuovo indirizzo, ma dovrete anche aggiornare quel numerino prima dei due punti al numero di caratteri del vostro nuovo indirizzo! Ad esempio: 8:base_url34:http://nuovourl.com/nuova/cartella
2) /torrents
Naturalmente dovrete aggiornare tutti i vostri torrents al nuovo indirizzo del trakcer, che da http://ilvecchiourl.com/vecchia/cartella/announce.php è diventato http://nuovourl.com/nuova/cartella/announce.php (saltate questo passaggio se avete usato un tracker esterno).Pazzia! Ecco una soluzione: create una cartella torrents.new dove metterete i nuovi torrent (mai sovrascrivere dati importanti). Poi copincollate questo script python in un file nella base della BM:
#/usr/bin/pythonLo script sostituirà il vecchio url al nuovo per ogni torrent, e metterà i torrent risultanti nella cartella torrents.new. Potete usare questo script anche se volete per qualche motivo cambiare il tracker ad un qualsiasi altro indirizzo.
"""To be launched in the broadcast machine base dir!!!!"""
oldtrack='http://ilvecchiourl.com/vecchia/cartella/announce.php'
newtrack='http://nuovourl.com/nuova/cartella/announce.php'
#-----------------------Script
oldcode=str(len(oldtrack))+':'+oldtrack
newcode=str(len(newtrack))+':'+newtrack
from os import listdir
tors=listdir('./torrents')
for torname in tors:
tor=open('./torrents/'+torname,'r')
data=tor.read().replace(oldcode,newcode)
tor.close()
tor=open('./torrents.new/'+torname,'w')
tor.write(data)
tor.close()
print torname
Dopo questi primi due passaggi la vostra BM dovrebbe essere perfettamente funzionante, a parte per i thumbnails...
3) /data/files
Questo file contiene tutti i dati relativi ai torrent che avete registrato presso la BM. Includono la descrizione,il titolo, la durata... e soprattutto (argh!) l'URL del thumbnails. Ecco allora lo scriptino che fa per voi:#!/usr/bin/pythonPiazzatevi nella direcory data, copincollate lo script in un file e lanciatelo. Creerà un file chiamato files.new, versione corretta del precedente.
oldstr='http://ilvecchiourl.com/vecchia/cartella'
newstr='http://nuovourl.com/nuova/cartella'
files=open('files','r')
data=files.read()
files.close()
files=open('files.new','w')
diff=len(newstr)-len(oldstr)
for i in range(len(oldstr),200):
old=str(i)+':'+oldstr
new=str(i+diff)+':'+newstr
data=data.replace(old,new)
files.write(data)
files.close()



