From 43662d3fcea2a4bc70fa00a02c392ad329c759bc Mon Sep 17 00:00:00 2001 From: ruidajo Date: Wed, 26 Jul 2023 20:52:32 -0500 Subject: [PATCH] Refactoring for improving display times. --- .../NitterUser.class/instance/asDictionary.st | 2 ++ .../NitterUser.class/instance/avatarPicture.st | 5 ++++- .../NitterUser.class/instance/messages.st | 1 + .../Tweet.class/instance/correctMetadataUrl.st | 7 +++++++ .../Tweet.class/instance/updateFromWeb.st | 7 +++++++ .../TwitterUser.class/class/reStoreDefinition.st | 2 ++ .../TwitterUser.class/instance/profileImageUrl..st | 4 ++++ 7 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 Socialmetrica.package/Tweet.class/instance/correctMetadataUrl.st create mode 100644 Socialmetrica.package/Tweet.class/instance/updateFromWeb.st create mode 100644 Socialmetrica.package/TwitterUser.class/instance/profileImageUrl..st diff --git a/Socialmetrica.package/NitterUser.class/instance/asDictionary.st b/Socialmetrica.package/NitterUser.class/instance/asDictionary.st index b254f47..4ad33be 100644 --- a/Socialmetrica.package/NitterUser.class/instance/asDictionary.st +++ b/Socialmetrica.package/NitterUser.class/instance/asDictionary.st @@ -2,6 +2,8 @@ accessing asDictionary | tweets tweetsHistogramData repliesHistogramData quotesHistogramData retweetsHistogramData | + [self config at: 'lang'] + onErrorDo: [ ^ self inform: 'Please put a lang key with a language (for example: en) in the object config.' ]. tweets := self messages. tweetsHistogramData := self tweetsByWeeksTimeSpan. repliesHistogramData := self repliesByWeeksTimeSpan. diff --git a/Socialmetrica.package/NitterUser.class/instance/avatarPicture.st b/Socialmetrica.package/NitterUser.class/instance/avatarPicture.st index 8ee9fc7..f27e01c 100644 --- a/Socialmetrica.package/NitterUser.class/instance/avatarPicture.st +++ b/Socialmetrica.package/NitterUser.class/instance/avatarPicture.st @@ -1,6 +1,9 @@ accessing avatarPicture - | response | + | response profileImgFile| + profileImgFile := self profileImageFile. + profileImgFile exists + ifTrue: [ ^ (ImageReadWriter formFromFileNamed: profileImgFile fullName) asElement ]. response := ZnClient new url: (self profileImageUrl); get; response. response contentType = ZnMimeType imageJpeg ifTrue: [ ^ (PluginBasedJPEGReadWriter gtFromBuffer: response contents) asElement ]. diff --git a/Socialmetrica.package/NitterUser.class/instance/messages.st b/Socialmetrica.package/NitterUser.class/instance/messages.st index 552d6a8..b0f5c5f 100644 --- a/Socialmetrica.package/NitterUser.class/instance/messages.st +++ b/Socialmetrica.package/NitterUser.class/instance/messages.st @@ -2,6 +2,7 @@ accessing messages messages ifNil: [ messages := TweetsCollection new ]. + messages ifEmpty: [ self getLocalMessages ]. messages ifEmpty: [ self getRemoteMessagesFromHtml ]. [ config at: 'reportingPeriod' ] onErrorDo: [ self config diff --git a/Socialmetrica.package/Tweet.class/instance/correctMetadataUrl.st b/Socialmetrica.package/Tweet.class/instance/correctMetadataUrl.st new file mode 100644 index 0000000..8af15c2 --- /dev/null +++ b/Socialmetrica.package/Tweet.class/instance/correctMetadataUrl.st @@ -0,0 +1,7 @@ +accessing +correctMetadataUrl + self metadata keysAndValuesDo: [ :key :value | + (value includesSubstring: '42l.fr') + ifTrue: [ self metadata at: key put: (value copyReplaceAll: '42l.fr' with: 'net' )] +]. + ^ self diff --git a/Socialmetrica.package/Tweet.class/instance/updateFromWeb.st b/Socialmetrica.package/Tweet.class/instance/updateFromWeb.st new file mode 100644 index 0000000..2f27612 --- /dev/null +++ b/Socialmetrica.package/Tweet.class/instance/updateFromWeb.st @@ -0,0 +1,7 @@ +accessing +updateFromWeb + | url webContents | + url := (NitterUser nitterProvider, self user userName, '/status/', self id) asUrl. + webContents := XMLHTMLParser parse: url retrieveContents. + ^ Tweet new fromNitterHtmlItem: webContents. + \ No newline at end of file diff --git a/Socialmetrica.package/TwitterUser.class/class/reStoreDefinition.st b/Socialmetrica.package/TwitterUser.class/class/reStoreDefinition.st index 852b6b9..b28ef3f 100644 --- a/Socialmetrica.package/TwitterUser.class/class/reStoreDefinition.st +++ b/Socialmetrica.package/TwitterUser.class/class/reStoreDefinition.st @@ -4,7 +4,9 @@ reStoreDefinition "defineAsID: #id;" define: #id as: String; define: #userName as: String; + define: #name as: String; define: #profileImageUrl as: String; define: #profileBio as: String; + define: #description as: String; "define: #createdAt as: String;" yourself. \ No newline at end of file diff --git a/Socialmetrica.package/TwitterUser.class/instance/profileImageUrl..st b/Socialmetrica.package/TwitterUser.class/instance/profileImageUrl..st new file mode 100644 index 0000000..c971d33 --- /dev/null +++ b/Socialmetrica.package/TwitterUser.class/instance/profileImageUrl..st @@ -0,0 +1,4 @@ +accessing +profileImageUrl: anUrl + + profileImageUrl := anUrl \ No newline at end of file