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){
|
||||||
@@ -154,4 +116,4 @@ function sortTweets(tweets, likesDes=null, retweetsDes=null, repliesDes=null, da
|
|||||||
tweets.sort(function(a,b){return Date(a.created_at)-Date(b.reply_count)})
|
tweets.sort(function(a,b){return Date(a.created_at)-Date(b.reply_count)})
|
||||||
}
|
}
|
||||||
return tweets
|
return tweets
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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")
|
||||||
@@ -56,4 +52,19 @@ $(".logo").on("click", function() {
|
|||||||
} else {
|
} else {
|
||||||
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