From 92b8d90d1b849c1a57331b4a451bd0dca1c2642d Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Sat, 2 Apr 2022 12:00:26 -0500 Subject: [PATCH] Adding tweet metadata and improving storage. --- .../NitterUser.class/instance/getMessages.st | 11 +++++++++-- .../Tweet.class/instance/metadata..st | 3 +++ .../Tweet.class/instance/metadata.st | 3 +++ .../Tweet.class/instance/retweetedBy.st | 3 +++ Socialmetrica.package/Tweet.class/properties.json | 4 +++- .../TweetsCollection.class/instance/store.st | 5 +++-- 6 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 Socialmetrica.package/Tweet.class/instance/metadata..st create mode 100644 Socialmetrica.package/Tweet.class/instance/metadata.st create mode 100644 Socialmetrica.package/Tweet.class/instance/retweetedBy.st diff --git a/Socialmetrica.package/NitterUser.class/instance/getMessages.st b/Socialmetrica.package/NitterUser.class/instance/getMessages.st index 70dad77..d16113d 100644 --- a/Socialmetrica.package/NitterUser.class/instance/getMessages.st +++ b/Socialmetrica.package/NitterUser.class/instance/getMessages.st @@ -8,8 +8,15 @@ getMessages at: 'date' put: DateAndTime now; yourself. lastTweets query: customQuery. - lastTweetsRaw do: [ :rssTweet | - lastTweets add: ((Tweet new fromNitterRssItem: rssTweet )) + lastTweetsRaw doWithIndex: [ :rssTweet :i | | tempTweet | + tempTweet := Tweet new fromNitterRssItem: rssTweet. + tempTweet metadata + at: 'queryDate' put: (customQuery at: 'date'); + at: 'order' put: i; + yourself. + tempTweet user userName = self userName + ifFalse: [ tempTweet retweetedBy add: self userName ]. + lastTweets add: tempTweet ]. ^ lastTweets \ No newline at end of file diff --git a/Socialmetrica.package/Tweet.class/instance/metadata..st b/Socialmetrica.package/Tweet.class/instance/metadata..st new file mode 100644 index 0000000..8e3fe80 --- /dev/null +++ b/Socialmetrica.package/Tweet.class/instance/metadata..st @@ -0,0 +1,3 @@ +accessing +metadata: aDictionary + metadata := aDictionary \ No newline at end of file diff --git a/Socialmetrica.package/Tweet.class/instance/metadata.st b/Socialmetrica.package/Tweet.class/instance/metadata.st new file mode 100644 index 0000000..e503e68 --- /dev/null +++ b/Socialmetrica.package/Tweet.class/instance/metadata.st @@ -0,0 +1,3 @@ +accessing +metadata + ^ metadata ifNil: [ metadata := Dictionary new] \ No newline at end of file diff --git a/Socialmetrica.package/Tweet.class/instance/retweetedBy.st b/Socialmetrica.package/Tweet.class/instance/retweetedBy.st new file mode 100644 index 0000000..c9a1193 --- /dev/null +++ b/Socialmetrica.package/Tweet.class/instance/retweetedBy.st @@ -0,0 +1,3 @@ +accessing +retweetedBy + ^ self metadata at: 'retweetedBy' ifAbsentPut: [ Set new ] \ No newline at end of file diff --git a/Socialmetrica.package/Tweet.class/properties.json b/Socialmetrica.package/Tweet.class/properties.json index 17fa832..9a69779 100644 --- a/Socialmetrica.package/Tweet.class/properties.json +++ b/Socialmetrica.package/Tweet.class/properties.json @@ -11,7 +11,9 @@ "id", "authorId", "conversationId", - "user" + "user", + "metadata", + "metrics" ], "name" : "Tweet", "type" : "normal" diff --git a/Socialmetrica.package/TweetsCollection.class/instance/store.st b/Socialmetrica.package/TweetsCollection.class/instance/store.st index 580a706..fb8f67c 100644 --- a/Socialmetrica.package/TweetsCollection.class/instance/store.st +++ b/Socialmetrica.package/TweetsCollection.class/instance/store.st @@ -2,7 +2,8 @@ accessing store | localFolder parameters | parameters := self queryParameters . - parameters class = NitterUser ifFalse: [ ^ self ]. - localFolder := (self dataStore / parameters userName) ensureCreateDirectory. + (parameters class = NitterUser or: [ parameters class = TwitterUser ]) + ifFalse: [ ^ self ]. + localFolder := (self dataStore / 'twitter.com' / parameters userName) ensureCreateDirectory. self tweets do: [:each | each exportInto: localFolder ]. ^ localFolder \ No newline at end of file