40 lines
1.4 KiB
Smalltalk
40 lines
1.4 KiB
Smalltalk
|
as yet unclassified
|
||
|
downloadWithRenaming: fileReference
|
||
|
|
||
|
| file tempFile fileHash tempFileHash |
|
||
|
file := fileReference asFileReference .
|
||
|
tempFile := FileLocator temp / fileReference basename.
|
||
|
tempFile ensureCreateFile.
|
||
|
tempFile binaryWriteStreamDo: [ :stream |
|
||
|
stream nextPutAll: profileImageUrl asUrl retrieveContents.
|
||
|
super class inform: 'Exported as: ', String cr, tempFile fullName.
|
||
|
].
|
||
|
|
||
|
OSSUnixSubprocess new
|
||
|
command: 'openssl';
|
||
|
arguments: { 'dgst' . '-sha256' . file fullName};
|
||
|
workingDirectory: (self folder) fullName;
|
||
|
redirectStdout;
|
||
|
redirectStderr;
|
||
|
runAndWaitOnExitDo: [ :process :outString |
|
||
|
fileHash := (outString splitOn: ' ') second trimmed].
|
||
|
|
||
|
OSSUnixSubprocess new
|
||
|
command: 'openssl';
|
||
|
arguments: { 'dgst' . '-sha256' . tempFile fullName};
|
||
|
workingDirectory: (self folder) fullName;
|
||
|
redirectStdout;
|
||
|
redirectStderr;
|
||
|
runAndWaitOnExitDo: [ :process :outString |
|
||
|
tempFileHash := (outString splitOn: ' ' ) second trimmed].
|
||
|
|
||
|
fileHash = tempFileHash
|
||
|
ifFalse: [
|
||
|
file copyTo: self folder /
|
||
|
(file basenameWithoutExtension , '-',
|
||
|
('-' join:
|
||
|
((file creationTime asLocalStringYMDHM) splitOn: ' ')), '.jpg').
|
||
|
file ensureDelete.
|
||
|
^ { 'Profile image changed' ->
|
||
|
(tempFile moveTo: file)} asDictionary ].
|
||
|
^ { 'Same Profile Image' -> file } asDictionary
|