From 2cec4816a3bcf237b7ab81b0ad7cf3eae277158f Mon Sep 17 00:00:00 2001 From: ruidajo Date: Mon, 20 Jun 2022 20:27:47 -0500 Subject: [PATCH] Creating tweets collection split by weeks. --- .../TweetsCollection.class/instance/splitByWeeks.st | 11 +++++++++++ .../instance/timeSpansByWeeks.st | 5 +++++ .../Week.extension/instance/asDates.st | 5 +++++ .../Week.extension/instance/asDatesString.st | 9 +++++++++ .../Week.extension/instance/asDatesStrings.st | 4 ++++ Socialmetrica.package/Week.extension/properties.json | 3 +++ 6 files changed, 37 insertions(+) create mode 100644 Socialmetrica.package/TweetsCollection.class/instance/splitByWeeks.st create mode 100644 Socialmetrica.package/TweetsCollection.class/instance/timeSpansByWeeks.st create mode 100644 Socialmetrica.package/Week.extension/instance/asDates.st create mode 100644 Socialmetrica.package/Week.extension/instance/asDatesString.st create mode 100644 Socialmetrica.package/Week.extension/instance/asDatesStrings.st create mode 100644 Socialmetrica.package/Week.extension/properties.json diff --git a/Socialmetrica.package/TweetsCollection.class/instance/splitByWeeks.st b/Socialmetrica.package/TweetsCollection.class/instance/splitByWeeks.st new file mode 100644 index 0000000..52d0097 --- /dev/null +++ b/Socialmetrica.package/TweetsCollection.class/instance/splitByWeeks.st @@ -0,0 +1,11 @@ +accessing +splitByWeeks + + | response spans | + response := OrderedDictionary new. + self timeSpansByWeeks doWithIndex: [ :span :i | + response + at: span asDatesString + put: (self select: [ :message | span includes: (message created asDateAndTime)]) + ]. + ^ response \ No newline at end of file diff --git a/Socialmetrica.package/TweetsCollection.class/instance/timeSpansByWeeks.st b/Socialmetrica.package/TweetsCollection.class/instance/timeSpansByWeeks.st new file mode 100644 index 0000000..af397f8 --- /dev/null +++ b/Socialmetrica.package/TweetsCollection.class/instance/timeSpansByWeeks.st @@ -0,0 +1,5 @@ +accessing +timeSpansByWeeks + + ^ (Timespan starting: self oldest created ending: self newest created) + weeks asOrderedCollection \ No newline at end of file diff --git a/Socialmetrica.package/Week.extension/instance/asDates.st b/Socialmetrica.package/Week.extension/instance/asDates.st new file mode 100644 index 0000000..14d0094 --- /dev/null +++ b/Socialmetrica.package/Week.extension/instance/asDates.st @@ -0,0 +1,5 @@ +*Socialmetrica +asDates + + ^ {self start. + (self start + self duration) - 1 milliSecond} \ No newline at end of file diff --git a/Socialmetrica.package/Week.extension/instance/asDatesString.st b/Socialmetrica.package/Week.extension/instance/asDatesString.st new file mode 100644 index 0000000..1e43990 --- /dev/null +++ b/Socialmetrica.package/Week.extension/instance/asDatesString.st @@ -0,0 +1,9 @@ +*Socialmetrica +asDatesString + + | dates firstDate | + dates := self asDatesStrings. + firstDate := dates first splitOn: ' '. + firstDate removeLast. + firstDate:= '' join: firstDate. + ^ firstDate, '→', (dates second copyWithoutAll: ' ') \ No newline at end of file diff --git a/Socialmetrica.package/Week.extension/instance/asDatesStrings.st b/Socialmetrica.package/Week.extension/instance/asDatesStrings.st new file mode 100644 index 0000000..014f96c --- /dev/null +++ b/Socialmetrica.package/Week.extension/instance/asDatesStrings.st @@ -0,0 +1,4 @@ +*Socialmetrica +asDatesStrings + + ^ self asDates collect: [ :date | date asDate asString ] \ No newline at end of file diff --git a/Socialmetrica.package/Week.extension/properties.json b/Socialmetrica.package/Week.extension/properties.json new file mode 100644 index 0000000..039c88e --- /dev/null +++ b/Socialmetrica.package/Week.extension/properties.json @@ -0,0 +1,3 @@ +{ + "name" : "Week" +} \ No newline at end of file