Merge pull request #8 from olinpin/feat/filter

Feat/filter
This commit is contained in:
2022-11-02 12:10:53 +01:00
committed by GitHub
2 changed files with 81 additions and 2 deletions

View File

@@ -74,4 +74,82 @@ function tweetCell(tweet) {
</div> </div>
</div>` </div>`
return cell return cell
} }
function filter(tweets, bannedWords=[], searchWords=[], likesTop=null, likesBottom=null, retweetsTop=null, retweetsBottom=null, repliesTop=null, repliesBottom=null) {
if(bannedWords.length > 0){
tweets = filterBannedWords(bannedWords, tweets)
}
if(searchWords.length > 0){
tweets = searchForWords(searchWords, tweets)
}
if(likesTop != null || likesBottom != null){
tweets = filterLikes(likesTop, likesBottom, tweets)
}
if(retweetsTop != null || retweetsBottom != null){
tweets = filterRetweets(retweetsTop, retweetsBottom, tweets)
}
if(repliesTop != null || repliesBottom != null){
tweets = filterReplies(repliesTop, repliesBottom, tweets)
}
return tweets
}
function filterBannedWords(bannedWords, tweets){
for (let i = 0; i < tweets.length; i++) {
var tweet = tweets[i]
for(let j=0; j < bannedWords.length; j++){
if (tweet.text.toLowerCase().includes(bannedWords[j].toLowerCase())){
tweets.splice(i, 1)
break
}
}
}
return tweets
}
function searchForWords(searchWords, tweets){
for (let i = 0; i < tweets.length; i++) {
var tweet = tweets[i]
for(let i=0; i < searchWords.length; i++){
if (!tweet.text.toLowerCase().includes(searchWords[i].toLowerCase())) {
tweets.splice(i, 1)
break
}
}
}
return tweets
}
function filterLikes(likesTop, likesBottom, tweets){
for (let i = 0; i < tweets.length; i++) {
var tweet = tweets[i]
if(tweet.favorite_count >= likesTop || tweet.favorite_count <= likesBottom){
tweets.splice(i, 1)
break
}
}
return tweets
}
function filterRetweets(retweetsTop, retweetsBottom, tweets){
for (let i = 0; i < tweets.length; i++) {
var tweet = tweets[i]
if(tweet.retweet_count >= retweetsTop || tweet.retweet_count <= retweetsBottom){
tweets.splice(i, 1)
break
}
}
return tweets
}
function filterReplies(repliesTop, repliesBottom, tweets){
for (let i = 0; i < tweets.length; i++) {
var tweet = tweets[i]
if(tweet.reply_count >= repliesTop || tweet.reply_count <= repliesBottom){
tweets.splice(i, 1)
break
}
}
return tweets
}

View File

@@ -79,7 +79,8 @@ block.fn.tweets = function(config) {
tweets = window.sessionStorage.getItem('tweets'); tweets = window.sessionStorage.getItem('tweets');
tweets = JSON.parse(tweets); tweets = JSON.parse(tweets);
tweets.push(tweet); tweets.push(tweet);
if(tweets.length >= options.memory) { var localMemory = 100;
if(tweets.length >= localMemory) {
tweets.shift(); tweets.shift();
} }
window.sessionStorage.setItem('tweets', JSON.stringify(tweets)); window.sessionStorage.setItem('tweets', JSON.stringify(tweets));