detach-recovery #1
@ -1,4 +1,4 @@
|
||||
accessing
|
||||
downloadProfileImage
|
||||
|
||||
^ self exportProfileImageOn: self folder / self userName, 'jpg'
|
||||
^ self exportProfileImageOn: self folder / 'profile-image', 'jpg'
|
@ -1,11 +1,48 @@
|
||||
accessing
|
||||
exportProfileImageOn: fileReference
|
||||
|
||||
| file |
|
||||
| file tempFile tempFileHash fileHash |
|
||||
file := fileReference asFileReference.
|
||||
file ensureDelete.
|
||||
file exists ifFalse: [ file ensureCreateFile ].
|
||||
file binaryWriteStreamDo: [ :stream |
|
||||
stream nextPutAll: profileImageUrl retrieveContents ].
|
||||
super class inform: 'Exported as: ', String cr, file fullName.
|
||||
^ file
|
||||
file exists
|
||||
ifFalse: [ file ensureCreateFile.
|
||||
file binaryWriteStreamDo: [ :stream |
|
||||
stream nextPutAll: profileImageUrl retrieveContents ].
|
||||
super class inform: 'Exported as: ', String cr, file fullName.
|
||||
^ file]
|
||||
|
||||
ifTrue: [
|
||||
tempFile := FileLocator temp / fileReference basename.
|
||||
tempFile ensureCreateFile.
|
||||
tempFile binaryWriteStreamDo: [ :stream |
|
||||
stream nextPutAll: profileImageUrl 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
|
Loading…
Reference in New Issue
Block a user