From abc27522922970db4327a8c9543efd7da7238436 Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Sat, 10 Feb 2024 12:34:50 -0500 Subject: [PATCH] Starting NitterInstance modelling. --- .../Nitter.class/class/columnKeys.st | 3 --- .../Nitter.class/class/columnsDictionary.st | 8 ++++++++ .../Nitter.class/class/instanceRows.st | 5 +++-- .../Nitter.class/class/instances.st | 3 +-- .../Nitter.class/class/instancesCache.st | 9 +++++++++ .../Nitter.class/class/viewInstancesFor..st | 2 +- .../NitterInstance.class/README.md | 0 .../NitterInstance.class/instance/printOn..st | 5 +++++ .../NitterInstance.class/instance/uptime.st | 3 +++ .../NitterInstance.class/instance/url.st | 3 +++ .../NitterInstance.class/properties.json | 17 +++++++++++++++++ 11 files changed, 50 insertions(+), 8 deletions(-) delete mode 100644 Socialmetrica.package/Nitter.class/class/columnKeys.st create mode 100644 Socialmetrica.package/Nitter.class/class/columnsDictionary.st create mode 100644 Socialmetrica.package/Nitter.class/class/instancesCache.st create mode 100644 Socialmetrica.package/NitterInstance.class/README.md create mode 100644 Socialmetrica.package/NitterInstance.class/instance/printOn..st create mode 100644 Socialmetrica.package/NitterInstance.class/instance/uptime.st create mode 100644 Socialmetrica.package/NitterInstance.class/instance/url.st create mode 100644 Socialmetrica.package/NitterInstance.class/properties.json diff --git a/Socialmetrica.package/Nitter.class/class/columnKeys.st b/Socialmetrica.package/Nitter.class/class/columnKeys.st deleted file mode 100644 index 426b297..0000000 --- a/Socialmetrica.package/Nitter.class/class/columnKeys.st +++ /dev/null @@ -1,3 +0,0 @@ -accessing -columnKeys - ^ #('url' 'healthy' 'healthy_percentage_overall' 'rss' 'version') \ No newline at end of file diff --git a/Socialmetrica.package/Nitter.class/class/columnsDictionary.st b/Socialmetrica.package/Nitter.class/class/columnsDictionary.st new file mode 100644 index 0000000..e5d1f00 --- /dev/null +++ b/Socialmetrica.package/Nitter.class/class/columnsDictionary.st @@ -0,0 +1,8 @@ +accessing +columnsDictionary + ^ { + 'url' -> 'url' . + 'healthy' -> 'healthy'. + 'healthy_percentage_overall' -> 'uptime' . + 'rss' -> 'rss' . + 'version' -> 'version'} asDictionary \ No newline at end of file diff --git a/Socialmetrica.package/Nitter.class/class/instanceRows.st b/Socialmetrica.package/Nitter.class/class/instanceRows.st index 3f6c8e1..cc8b753 100644 --- a/Socialmetrica.package/Nitter.class/class/instanceRows.st +++ b/Socialmetrica.package/Nitter.class/class/instanceRows.st @@ -1,7 +1,8 @@ accessing instanceRows ^ (self instances at: 'hosts') collect: [:rawRow | | newRow | - newRow := OrderedCollection new. - self columnKeys do: [:key | newRow add: (rawRow at: key) ]. + newRow := NitterInstance new. + self columnsDictionary keysAndValuesDo: [:key :value | + newRow writeSlotNamed: value value: (rawRow at: key) ]. newRow ]. \ No newline at end of file diff --git a/Socialmetrica.package/Nitter.class/class/instances.st b/Socialmetrica.package/Nitter.class/class/instances.st index f9bb202..74fdf73 100644 --- a/Socialmetrica.package/Nitter.class/class/instances.st +++ b/Socialmetrica.package/Nitter.class/class/instances.st @@ -1,4 +1,3 @@ accessing instances - - ^ STONJSON fromString: 'https://status.d420.de/api/v1/instances' asUrl retrieveContents \ No newline at end of file + ^ self instancesCache \ No newline at end of file diff --git a/Socialmetrica.package/Nitter.class/class/instancesCache.st b/Socialmetrica.package/Nitter.class/class/instancesCache.st new file mode 100644 index 0000000..0aad01c --- /dev/null +++ b/Socialmetrica.package/Nitter.class/class/instancesCache.st @@ -0,0 +1,9 @@ +accessing +instancesCache + | cache cacheFile | + cacheFile := FileLocator temp / 'nitter-instances.ston'. + cacheFile exists + ifFalse: [ + cache := STON fromString: 'https://status.d420.de/api/v1/instances' asUrl retrieveContents. + MarkupFile exportAsFileOn: cacheFile containing: cache ]. + ^ STON fromString: cacheFile contents \ No newline at end of file diff --git a/Socialmetrica.package/Nitter.class/class/viewInstancesFor..st b/Socialmetrica.package/Nitter.class/class/viewInstancesFor..st index e03e939..bdccdc0 100644 --- a/Socialmetrica.package/Nitter.class/class/viewInstancesFor..st +++ b/Socialmetrica.package/Nitter.class/class/viewInstancesFor..st @@ -11,6 +11,6 @@ viewInstancesFor: aView columnNames doWithIndex: [:aName :index | columnedList column: aName - text: [:instanceRow | (instanceRow at: index) ifNil: [''] ] + text: [:instanceRow | (instanceRow slots at: index) ifNil: [''] ] ]. ^ columnedList \ No newline at end of file diff --git a/Socialmetrica.package/NitterInstance.class/README.md b/Socialmetrica.package/NitterInstance.class/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Socialmetrica.package/NitterInstance.class/instance/printOn..st b/Socialmetrica.package/NitterInstance.class/instance/printOn..st new file mode 100644 index 0000000..485e11e --- /dev/null +++ b/Socialmetrica.package/NitterInstance.class/instance/printOn..st @@ -0,0 +1,5 @@ +accessing +printOn: aStream + super printOn: aStream. + ^ aStream + nextPutAll: '( ', self url ,' | uptime: ', self uptime asString, ' )' \ No newline at end of file diff --git a/Socialmetrica.package/NitterInstance.class/instance/uptime.st b/Socialmetrica.package/NitterInstance.class/instance/uptime.st new file mode 100644 index 0000000..34489b5 --- /dev/null +++ b/Socialmetrica.package/NitterInstance.class/instance/uptime.st @@ -0,0 +1,3 @@ +accessing +uptime + ^ uptime \ No newline at end of file diff --git a/Socialmetrica.package/NitterInstance.class/instance/url.st b/Socialmetrica.package/NitterInstance.class/instance/url.st new file mode 100644 index 0000000..958fa17 --- /dev/null +++ b/Socialmetrica.package/NitterInstance.class/instance/url.st @@ -0,0 +1,3 @@ +accessing +url + ^ url \ No newline at end of file diff --git a/Socialmetrica.package/NitterInstance.class/properties.json b/Socialmetrica.package/NitterInstance.class/properties.json new file mode 100644 index 0000000..80134af --- /dev/null +++ b/Socialmetrica.package/NitterInstance.class/properties.json @@ -0,0 +1,17 @@ +{ + "commentStamp" : "", + "super" : "Object", + "category" : "Socialmetrica", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "url", + "healthy", + "uptime", + "rss", + "version" + ], + "name" : "NitterInstance", + "type" : "normal" +} \ No newline at end of file