Script per scaricare tutte le proprie sottoposizioni automaticamente

Ciao ragazzi, volevo condividere con voi questo script che ho scritto(con una mano da @wil93) e che permette di scaricare contemporaneamente l’ultima sottoposizione di ogni problema che avete risolto(in cui avete ottenuto 100/100 di punteggio).

Personalmente, avevo bisogno di tutte le mie soluzioni per poterle caricare su GitHub, ma non avendole mai conservate in locale, avevo bisogno di scaricarle. Ovviamente l’idea di scaricare a mano piu di 110 file non mi allettava più di tanto e di conseguenza ho pensato di scrivere questo script. E’ possibile che magari qualcuno di voi si possa trovare nel futuro nella mia stessa situazione e quindi vi potrà essere utile.

Potete trovare tutto su GitHub a questo link: https://github.com/emalgorithm/Cms-Downloader

Il funzionamento è abbastanza semplice: In pratica è necessario avere installato Node.js(Potete trovare tranquillamente come installarlo online, in breve è una piattaforma per sviluppare in JavaScript lato Server) e oltre a ciò vi basta seguire le istruzioni che sono scritte come commento all’inizio del file “index.js”. L’unica cosa un po’ problematica è riuscire a recuperare il proprio “token”(cioè la stringa che corrisponde alla propria password criptata(hashata)). Per fare ciò, un modo è quello di aprire la Web Console in mozilla(ctrl + shift + k) e andare nella scheda Network(in alto a destra). Ora andate sul cms e cliccate su “messaggi”(menù a tendina sotto il vostro nome). Adesso apparirà una richiesta nella console(colore verde, esito 200, nome file “talk”)e cliccando sopra di questa dovreste poi andare a vedere nella scheda “params” in cui sarà presente il vostro token insieme ad altre info. Questo sarà il token che dovrete inserire dentro al file al posto di “YOURTOKEN”. Ovviamente dovrete poi inserire anche il vostro username.

Una volta scaricato il progetto dovrete creare nello stesso path del file “index.js” una cartella nominata “Downloaded-Files”(dove verranno poi salvati i file scaricati). A questo punto dovrete digitare sul terminale “sudo npm install” che installerà le librerie necessarie per il progetto(scritte nel file “packages.json” che dovrà essere nella stessa directory degli altri file), poi semplicemente “node index.js”, che, se tutto va bene, avvierà il programma che vi farà avere in pochi secondi i vostri file. :slight_smile:

Ovviamente sono ultra-disponibile a ricevere consigli su come migliorare efficienza e leggibilità del codice dello script, anche perchè con Node.js non ho una grande esperienza!

Per ogni dubbio o domanda non esitate a chiedere!

Bel lavoro, lo proverò il prima possibile.

Ps: la prassi vuole che, per evitare problemi di versione, dovresti evitare di mettere nel gestore di versioni (git e di conseguenza github) la cartella node_modules. Invece, meglio fare l’upload del solo package.json e poi procedere con l’installazione dei moduli con il canonico npm install.

Chiarisco per quelli che a differenza nostra sono meno avvezzi, che “sudo” è il comando necessario soltanto su sistemi Mac OS X e Linux. Comunque, non dovrebbe essere necessario, in quanto i moduli vengono installati in locale (e non globalmente, come si farebbe con -g)

Scusami se “riporto in auge” questo post, anche perché viola un po’ le regole dei forum, ma era per complimentarmi per il tuo lavoro, che sembra passare inosservato

In effetti il post originale capitò in un periodo sfortunato: appena due settimane prima del passaggio al nuovo forum :disappointed_relieved: solo ora abbiamo importato i vecchi topic nel nuovo forum, quindi è un po’ colpa nostra se il topic passava inosservato :sweat_smile:

La filosofia di discourse (il software che stiamo usando per il nuovo forum) è che finché il topic è rilevante non ci sono problemi a continuare la discussione lì :wink: vedi: