From 311c4222169a1101e983839a902698b84a74d0fd Mon Sep 17 00:00:00 2001 From: ruidajo Date: Tue, 5 Apr 2022 17:37:42 -0500 Subject: [PATCH 1/2] Improving nitter user words file and external word cloud. --- .../instance/externalWordCloud.st | 4 ++-- .../NitterUser.class/instance/wordsFile.st | 8 +++++++ .../instance/writeWordsFile.st | 21 +++++++++++++------ 3 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 Socialmetrica.package/NitterUser.class/instance/wordsFile.st diff --git a/Socialmetrica.package/NitterUser.class/instance/externalWordCloud.st b/Socialmetrica.package/NitterUser.class/instance/externalWordCloud.st index 988b988..58841cb 100644 --- a/Socialmetrica.package/NitterUser.class/instance/externalWordCloud.st +++ b/Socialmetrica.package/NitterUser.class/instance/externalWordCloud.st @@ -3,7 +3,7 @@ externalWordCloud | text outputFile | outputFile := (self folder / 'nube.png')fullName. - text := (self folder / 'texto.txt')fullName. + text := (self folder / self userName, 'words', 'txt')fullName. OSSUnixSubprocess new command: 'wordcloud_cli'; arguments: { '--text' . text . @@ -13,7 +13,7 @@ externalWordCloud '--height' . '357' . '--background' . 'white' . '--mode' . 'RGBA' . - '--stopwords' . 'stopwords-es.txt' . + '--stopwords' . '../commons/stopwords-es.txt' . '--mask' . '../commons/nube-mascara.jpg'}; workingDirectory: self folder fullName; redirectStdout; diff --git a/Socialmetrica.package/NitterUser.class/instance/wordsFile.st b/Socialmetrica.package/NitterUser.class/instance/wordsFile.st new file mode 100644 index 0000000..25c195f --- /dev/null +++ b/Socialmetrica.package/NitterUser.class/instance/wordsFile.st @@ -0,0 +1,8 @@ +accessing +wordsFile + + | file | + file := (FileLocator userData / 'Socialmetrica' / self userName / self userName, 'words', 'txt'). + file exists + ifFalse: [ ^ self writeWordsFile]. + ^ file \ No newline at end of file diff --git a/Socialmetrica.package/NitterUser.class/instance/writeWordsFile.st b/Socialmetrica.package/NitterUser.class/instance/writeWordsFile.st index 36a422c..7b32d4e 100644 --- a/Socialmetrica.package/NitterUser.class/instance/writeWordsFile.st +++ b/Socialmetrica.package/NitterUser.class/instance/writeWordsFile.st @@ -1,10 +1,19 @@ accessing writeWordsFile - | rawTweets output | + + | rawTweets rawWords collectionsWords count | self tweets ifNil: [ ^ self ]. rawTweets := self tweets tweets. - output := '' writeStream. - rawTweets do: [ :current | - output addAll: current words. - ]. - ^ MarkupFile exportAsFileOn: FileLocator "usersStorage" containing: output. \ No newline at end of file + + rawWords := OrderedCollection new. + collectionsWords := ((rawTweets select: + [ :tweet | tweet user userName = 'FranciaMarquezM' ]) + collect: [ :tweet | (tweet words + reject: [ :w | w includesSubstring: 'nitter42lfr' ]) ]). + count := 1. + collectionsWords size timesRepeat: [ + rawWords addAll: (collectionsWords at:count). + count := count + 1.]. + rawWords := ' ' join:rawWords. + + ^ MarkupFile exportAsFileOn: (FileLocator userData / 'Socialmetrica' / self userName / self userName, 'words', 'txt') containing: rawWords. \ No newline at end of file From 5b169c4ebf85d6a54b30c96574889c1c9f7b51a9 Mon Sep 17 00:00:00 2001 From: ruidajo Date: Tue, 5 Apr 2022 19:29:34 -0500 Subject: [PATCH 2/2] Creating nitter user collection of urls for load more tweets and default config folder. --- .../NitterUser.class/instance/defaultConfig.st | 5 +++++ .../instance/numberOfURLsForLoadingTweets..st | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 Socialmetrica.package/NitterUser.class/instance/defaultConfig.st create mode 100644 Socialmetrica.package/NitterUser.class/instance/numberOfURLsForLoadingTweets..st diff --git a/Socialmetrica.package/NitterUser.class/instance/defaultConfig.st b/Socialmetrica.package/NitterUser.class/instance/defaultConfig.st new file mode 100644 index 0000000..89e6d1b --- /dev/null +++ b/Socialmetrica.package/NitterUser.class/instance/defaultConfig.st @@ -0,0 +1,5 @@ +accessing +defaultConfig + + self config: { 'folder' -> (FileLocator userData / 'Socialmetrica' / self userName) } asDictionary. + ^ self config \ No newline at end of file diff --git a/Socialmetrica.package/NitterUser.class/instance/numberOfURLsForLoadingTweets..st b/Socialmetrica.package/NitterUser.class/instance/numberOfURLsForLoadingTweets..st new file mode 100644 index 0000000..04f9cef --- /dev/null +++ b/Socialmetrica.package/NitterUser.class/instance/numberOfURLsForLoadingTweets..st @@ -0,0 +1,18 @@ +accessing +numberOfURLsForLoadingTweets: number + + | collectionURLs count asURLs | + collectionURLs := { + self userNameLink . + (self userNameLink, ((self documentTree xPath: '//a[.="Load more"]') @ 'href') stringValue) .} asOrderedCollection. + + number <= 2 ifTrue: [ ^ collectionURLs ]. + count := 2. + (number-count) timesRepeat: [ | tempDoc | + tempDoc := XMLHTMLParser parse: (collectionURLs at: count) asUrl retrieveContents. + collectionURLs + add: (self userNameLink, + ((tempDoc xPath: '//a[.="Load more"]') @ 'href') stringValue). + count := count+1 ]. + asURLs := collectionURLs collect: [ :string | string asUrl ]. + ^ asURLs. \ No newline at end of file