Filter not done
This commit is contained in:
		| @@ -62,7 +62,7 @@ | |||||||
|             <div class="maintable"> |             <div class="maintable"> | ||||||
|                 <div class="leftcol column"> |                 <div class="leftcol column"> | ||||||
|                     <span class="colheader">Latest Cluccs</span> |                     <span class="colheader">Latest Cluccs</span> | ||||||
|                     <div class="tweetcontainer" id="tweet"> |                     <div class="tweetcontainer latest" id="latest"> | ||||||
|                         <div class="tweet"> |                         <div class="tweet"> | ||||||
|                             <img src="https://pbs.twimg.com/profile_images/1158803404656959490/9MKSbW4O_400x400.jpg" alt="" class="tweet-profilepicture"> |                             <img src="https://pbs.twimg.com/profile_images/1158803404656959490/9MKSbW4O_400x400.jpg" alt="" class="tweet-profilepicture"> | ||||||
|                             <div class="tweet-content"> |                             <div class="tweet-content"> | ||||||
| @@ -91,6 +91,9 @@ | |||||||
|                 </div> |                 </div> | ||||||
|                 <div class="centercol column"> |                 <div class="centercol column"> | ||||||
|                     <span class="colheader">Filtered Cluccs</span> |                     <span class="colheader">Filtered Cluccs</span> | ||||||
|  |                     <div class="filtered" id="filtered"> | ||||||
|  |  | ||||||
|  |                     </div> | ||||||
|                 </div> |                 </div> | ||||||
|                 <div class="rightcol column"> |                 <div class="rightcol column"> | ||||||
|                     <div class="searchcontainer column"> |                     <div class="searchcontainer column"> | ||||||
| @@ -127,12 +130,12 @@ | |||||||
|     <script src="./js/code.js"></script> |     <script src="./js/code.js"></script> | ||||||
|     <script src="./js/events.js"></script> |     <script src="./js/events.js"></script> | ||||||
|     <script> |     <script> | ||||||
|         block("#tweet").tweets({ |         block("#latest").tweets({ | ||||||
|             memory: 20 |             memory: 20 | ||||||
|         }); |         }); | ||||||
|         block('#balk').barchart(); |         block('#balk').barchart(); | ||||||
|         events.connect('balk', '#balk'); |         events.connect('balk', '#balk'); | ||||||
|         events.connect("tweet", "#tweet"); |         events.connect("tweet", "#latest"); | ||||||
|  |  | ||||||
|         // // create a rolling chart block |         // // create a rolling chart block | ||||||
|         // block('#graph').rolling_chart({ |         // block('#graph').rolling_chart({ | ||||||
|   | |||||||
| @@ -1,12 +1,11 @@ | |||||||
| let selectedSports = [] | let selectedSports = [] | ||||||
|  |  | ||||||
| let filters = { | let filters = { | ||||||
|     selectedSports: selectedSports, |  | ||||||
|     searchedWords: [], |     searchedWords: [], | ||||||
|     blockedWords: [], |     blockedWords: [], | ||||||
|     popularityFilter: {}, |  | ||||||
|     sorted: "time", |     sorted: "time", | ||||||
|     order: "desc" |     order: "desc", | ||||||
|  |     sports: [] | ||||||
| } | } | ||||||
|  |  | ||||||
| function showFeeds() { | function showFeeds() { | ||||||
| @@ -28,7 +27,7 @@ function tweetCell(tweet) { | |||||||
|     var cell = document.createElement("div"); |     var cell = document.createElement("div"); | ||||||
|     cell.innerHTML = |     cell.innerHTML = | ||||||
|     `<div class="tweet"> |     `<div class="tweet"> | ||||||
|         <a href ="https://www.twitter.com/${tweet.user.screen_name}"><img src="${tweet.user.profile_image_url}" onerror="this.src='media/logo.png'" class="tweet-profilepicture"></a> |         <a href ="https://www.twitter.com/${tweet.user.screen_name}"><img src="${tweet.user.profile_image_url}" onerror="this.src='media/logo.png';" class="tweet-profilepicture"></a> | ||||||
|         <div class="tweet-content">  |         <div class="tweet-content">  | ||||||
|             <div class="tweet-name"> |             <div class="tweet-name"> | ||||||
|                 <a class="tweet-nickname" href = "https://www.twitter.com/${tweet.user.screen_name}" target = "_blank">${tweet.user.name}</a> |                 <a class="tweet-nickname" href = "https://www.twitter.com/${tweet.user.screen_name}" target = "_blank">${tweet.user.name}</a> | ||||||
| @@ -54,22 +53,14 @@ function tweetCell(tweet) { | |||||||
|     return cell |     return cell | ||||||
| } | } | ||||||
|  |  | ||||||
| function filterTweets(tweets, bannedWords=[], searchWords=[], likesTop=null, likesBottom=null, retweetsTop=null, retweetsBottom=null, repliesTop=null, repliesBottom=null) { | function filterTweets(tweets, bannedWords=[], searchWords=[], sorted, order) { | ||||||
|  |     console.log(searchWords) | ||||||
|     if(bannedWords.length > 0){ |     if(bannedWords.length > 0){ | ||||||
|         tweets = filterBannedWords(bannedWords, tweets) |         tweets = filterBannedWords(bannedWords, tweets) | ||||||
|     } |     } | ||||||
|     if(searchWords.length > 0){ |     if(searchWords.length > 0){ | ||||||
|         tweets = searchForWords(searchWords, tweets) |         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 |     return tweets | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -87,49 +78,20 @@ function filterBannedWords(bannedWords, tweets){ | |||||||
| } | } | ||||||
|  |  | ||||||
| function searchForWords(searchWords, tweets){ | function searchForWords(searchWords, tweets){ | ||||||
|  |     var filteredTweets = [] | ||||||
|     for (let i = 0; i < tweets.length; i++) { |     for (let i = 0; i < tweets.length; i++) { | ||||||
|         var tweet = tweets[i] |         var tweet = tweets[i] | ||||||
|         for(let i=0; i < searchWords.length; i++){ |         for(let i=0; i < searchWords.length; i++){ | ||||||
|  |             console.log(tweet.text.toLowerCase().includes(searchWords[i].toLowerCase())) | ||||||
|             if (!tweet.text.toLowerCase().includes(searchWords[i].toLowerCase())) { |             if (!tweet.text.toLowerCase().includes(searchWords[i].toLowerCase())) { | ||||||
|                 tweets.splice(i, 1) |                 tweets.splice(i, 1) | ||||||
|                 break |                 break | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         console.log(tweet, searchWords) | ||||||
|  |         filteredTweets.push(tweet) | ||||||
|     } |     } | ||||||
|     return tweets |     return filteredTweets.reverse() | ||||||
| } |  | ||||||
|  |  | ||||||
| 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 |  | ||||||
| } | } | ||||||
|  |  | ||||||
| function sortTweets(tweets, likesDes=null, retweetsDes=null, repliesDes=null, dateDes=null){ | function sortTweets(tweets, likesDes=null, retweetsDes=null, repliesDes=null, dateDes=null){ | ||||||
|   | |||||||
| @@ -2,6 +2,8 @@ | |||||||
| // Sports = all selected sports, ARRAY | // Sports = all selected sports, ARRAY | ||||||
| $(".sport").on("selected", function(e, selected, sports) { | $(".sport").on("selected", function(e, selected, sports) { | ||||||
|     console.log(selected, sports); |     console.log(selected, sports); | ||||||
|  |     filters.sports = sports; | ||||||
|  |     $(window).trigger("filter"); | ||||||
| }) | }) | ||||||
|  |  | ||||||
| window.addEventListener('DOMContentLoaded', (event) => { | window.addEventListener('DOMContentLoaded', (event) => { | ||||||
| @@ -40,12 +42,6 @@ $(".sortby").on("click", function() { | |||||||
|  |  | ||||||
| $(".sort-dropdown-list li").on("click", function() { | $(".sort-dropdown-list li").on("click", function() { | ||||||
|     $(".sort-dropdown").toggle() |     $(".sort-dropdown").toggle() | ||||||
|     filters.sorted = $(this).val() |  | ||||||
|     $(window).trigger("test", filters) |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| $(window).on("test", function(e, filter) { |  | ||||||
|     console.log(filter); |  | ||||||
| }) | }) | ||||||
|  |  | ||||||
| let root = document.querySelector(":root") | let root = document.querySelector(":root") | ||||||
| @@ -57,3 +53,18 @@ $(".logo").on("click", function() { | |||||||
|         root.style.setProperty('--main-bg', 'ghostwhite'); |         root.style.setProperty('--main-bg', 'ghostwhite'); | ||||||
|     } |     } | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | $(window).on("filter", function() { | ||||||
|  |     var parent = $("div.filtered") | ||||||
|  |     $("div.filtered").innerHTML = "" | ||||||
|  |  | ||||||
|  |     console.debug(filters); | ||||||
|  |  | ||||||
|  |     tweets = window.sessionStorage.getItem('tweets'); | ||||||
|  |     tweets = JSON.parse(tweets); | ||||||
|  |     tweets = filterTweets(tweets, filters.blockedWords, filters.searchedWords.concat(filters.sports), filters.sorted, filters.order); | ||||||
|  |     tweets = sortTweets(tweets); | ||||||
|  |     for (i = 0; i < Math.min(tweets.length, 20); i++){ | ||||||
|  |             parent.append(tweetCell(tweets[i])); | ||||||
|  |     } | ||||||
|  | }) | ||||||
|   | |||||||
| @@ -73,6 +73,7 @@ block.fn.tweets = function(config) { | |||||||
|  |  | ||||||
|     // store list for later |     // store list for later | ||||||
|     var $list = $("div.tweetcontainer"); |     var $list = $("div.tweetcontainer"); | ||||||
|  |     console.log(this.$element.find("div")) | ||||||
|  |  | ||||||
|     // register default handler for handling tweet data |     // register default handler for handling tweet data | ||||||
|     this.actions(function(e, tweet){ |     this.actions(function(e, tweet){ | ||||||
| @@ -85,8 +86,11 @@ block.fn.tweets = function(config) { | |||||||
|         } |         } | ||||||
|         window.sessionStorage.setItem('tweets', JSON.stringify(tweets)); |         window.sessionStorage.setItem('tweets', JSON.stringify(tweets)); | ||||||
|  |  | ||||||
|         var $item = tweetCell(tweet) |         // tweets = filterTweets(tweets, filters.blockedWords, filters.searchedWords + filters.sports, filters.sorted, filters.order); | ||||||
|         $list.prepend($item); |         // tweets = sortTweets(tweets); | ||||||
|  |         for (i = 0; i < tweets.length; i++){ | ||||||
|  |             $list.prepend(tweetCell(tweets[i])); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         // remove stale tweets |         // remove stale tweets | ||||||
|         if ($list.children().length > options.memory) { |         if ($list.children().length > options.memory) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user