diff --git a/Socialmetrica.package/NitterUser.class/instance/downloadWithRenaming..st b/Socialmetrica.package/NitterUser.class/instance/downloadWithRenaming..st new file mode 100644 index 0000000..5e17ab5 --- /dev/null +++ b/Socialmetrica.package/NitterUser.class/instance/downloadWithRenaming..st @@ -0,0 +1,40 @@ +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 \ No newline at end of file diff --git a/Socialmetrica.package/NitterUser.class/instance/exportProfileImageOn..st b/Socialmetrica.package/NitterUser.class/instance/exportProfileImageOn..st index ddb6426..e8c1dc6 100644 --- a/Socialmetrica.package/NitterUser.class/instance/exportProfileImageOn..st +++ b/Socialmetrica.package/NitterUser.class/instance/exportProfileImageOn..st @@ -1,47 +1,13 @@ accessing exportProfileImageOn: fileReference - | file tempFile tempFileHash fileHash | + | file | file := fileReference asFileReference. file exists ifFalse: [ file ensureCreateFile. file binaryWriteStreamDo: [ :stream | stream nextPutAll: profileImageUrl asUrl retrieveContents ]. - super class inform: 'Exported as: ', String cr, file fullName. + self class inform: 'Exported as: ', String cr, file fullName. ^ file - ]. - 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 \ No newline at end of file + self downloadWithRenaming: fileReference