[Risolto] Dolphin. Possibilità di modificare la data dei file / cartelle.

Configurazione e uso delle applicazioni del desktop manager predefinito di Kubuntu.
maxbolz
Prode Principiante
Messaggi: 57
Iscrizione: mercoledì 23 febbraio 2022, 23:48
Desktop: ubuntustudio plasma
Distribuzione: 22.04.1 LTS
Sesso: Maschile

[Risolto] Dolphin. Possibilità di modificare la data dei file / cartelle.

Messaggio da maxbolz »

Buongiorno.
Utilizzo il sistema Ubuntu Studio 22.04 e il gestore file Dolphin 21.12.3.

Chiedo se è possibile 'agganciare' a Dolphin la possibilità di modificare la data e l'ora dei file / cartelle.

Grazie e buona giornata.
Ultima modifica di tokijin il lunedì 26 febbraio 2024, 12:24, modificato 2 volte in totale.
Motivazione: aggiunto prefisso [Risolto]
Avatar utente
tokijin
Moderatore Globale
Moderatore Globale
Messaggi: 4618
Iscrizione: mercoledì 3 giugno 2009, 23:10
Desktop: plasma 5.27.4
Distribuzione: Kubuntu 23.04
Località: Abruzzo

Re: Dolphin.

Messaggio da tokijin »

Ciao,
nel merito non ti so rispondere; ti chiedo comunque di modificare il titolo con qualcosa di meno generico che spieghi più in dettaglio il problema.

Così sarà più facile per te ottenere supporto.

Ciao :ciao:
Sei abbruzzese se dopo che ti sei strafogato un chilogrammo di pasta, hai il coraggio di dire alla cuoca "cacc ch'è cott" - Se entra un piccione in casa..chiudi le finestre!
Ubuntu User #28657 - Il mio vecchio hardware - Tag Codice
maxbolz
Prode Principiante
Messaggi: 57
Iscrizione: mercoledì 23 febbraio 2022, 23:48
Desktop: ubuntustudio plasma
Distribuzione: 22.04.1 LTS
Sesso: Maschile

[Risolto] Possibilità di modificare la data dei file / cartelle.

Messaggio da maxbolz »

Finalmente, dopo un mese di prove ed elucubrazioni, sono riuscito a implementare questa funzionalità.
Farò un po' di storia dei miei tentativi.

Inizialmente avevo scaricato uno script in bash che avrebbe dovuto leggere i dati EXIF di un file jpg.
Ma:
1. non funzionava.
2. avrei dovuto imparare il linguaggio bash che mi sembrava abbastanza ostico come sintassi.

Allora mi sono detto: perchè non sfruttare le mie piccole conoscenze di javascript, anche se ormai arrugginite, imparate durante la mia carriera lavorativa?
Così ho navigato in rete per vedere se c'era un interprete javascript per Linux e ho trovato Node.js.

Ho installato Node.js in Ubuntu Studio e ho cominciato a leggere qualcosa, pensando che potrebbe servirmi per future attività.
Ho poi scaricato uno script per Node.js che va a leggere i dati Exif dei file d'immagine, ho poi estrapolato la data originale dai dati con fatica (dovuta alla mia ignoranza) e ho utilizzato il comando touch per forzare la data del file d'immagine. Questo script funziona quindi da riga di comando:

Codice: Seleziona tutto

node readExif <path e nome del file>
.

Ho poi scartabellato in rete per vedere come inserire il comando in Dolphin.

Metto a disposizione del gentile pubblico entrambi i file, potrebbero essere utili a qualcuno. Sicuramente sono migliorabili.

Lo script readExif per leggere i dati Exif e modificare la data del file immagine:

Codice: Seleziona tutto

//readExif
var ExifImage = require('/home/utente/node_modules/exif').ExifImage;
var exec = require('child_process').exec;
 
try {
	new ExifImage({ image : process.argv[2] }, function (error, exifData) {
        if (error)
			console.log('Error: ' + error.message);
        else {
			//console.log(exifData); // Do something with your data!
			var DTO = exifData.exif.DateTimeOriginal;
			console.log('Data e ora originale: ' + DTO);
//------------------------------------------------
                        var year = DTO.substr(0,4);
                        var month = DTO.substr(5,2);
                        var day = DTO.substr(8,2);
			var hour = DTO.substr(11,2);
			var minute = DTO.substr(14,2);
			var second = DTO.substr(17,2);
    
                        //console.log('Anno: ' + year + '. Mese: ' + month + '. Giorno: ' + day + '. Ora: ' + hour + '. Minuti: ' + minute + '. Secondi: ' + second + '.');
			
			var gdate = year + month + day + hour + minute + '.' + second;
			exec('touch -t ' + gdate + ' ' + process.argv[2],function(error, stdout, stderr) {
				console.log(stdout);
			});
		}
    });
} 
catch (error) {
    console.log('Error: ' + error.message);
}
Questo può lavorare da riga di comando, come ho scritto più sopra.

Ora in /home/utente/.local/share/kservices5 (quest'ultima cartella, se non esiste, va creata) ho messo il seguente file (il nome può essere qualsiasi): ChangeDateFromExif.desktop. Il contenuto è:

Codice: Seleziona tutto

[Desktop Entry]
Type=Service
Actions=ChangeDateFromExif
ServiceTypes=KonqPopupMenu/Plugin
MimeType=image/*;

[Desktop Action ChangeDateFromExif]
Name=Cambio data da Exif
Icon=background
Exec=/home/utente/.nvm/versions/node/v20.11.1/bin/node /<path dello script>/readExif.js "%u"
Questo fa' si che nel menu contestuale di Dolphin compaia la voce Cambio data da Exif, cliccando sulla quale viene lanciato lo script readExif sul file selezionato, la cui data verrà impostata alla data originale di scatto della foto.

Buona giornata.
maxbolz
Prode Principiante
Messaggi: 57
Iscrizione: mercoledì 23 febbraio 2022, 23:48
Desktop: ubuntustudio plasma
Distribuzione: 22.04.1 LTS
Sesso: Maschile

Re: [Risolto] Dolphin. Possibilità di modificare la data dei file / cartelle.

Messaggio da maxbolz »

Mi sono accorto che lo script non funziona se il path a cui viene applicato contiene delle parentesi rotonde: ().
Probabilmente ci saranno altri casi di malfunzionamento dovuti ad altri caratteri...
Scrivi risposta

Ritorna a “KDE”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti