merged from master
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
let selectedSports = []
|
||||
|
||||
let filters = {
|
||||
selectedSports: selectedSports,
|
||||
searchedWords: [],
|
||||
blockedWords: [],
|
||||
popularityFilter: {},
|
||||
sorted: "time",
|
||||
order: "desc"
|
||||
order: "desc",
|
||||
sports: []
|
||||
}
|
||||
|
||||
function showFeeds() {
|
||||
@@ -30,7 +29,7 @@ function tweetCell(tweet) {
|
||||
var cell = document.createElement("div");
|
||||
cell.innerHTML =
|
||||
`<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-name">
|
||||
<div>
|
||||
@@ -59,22 +58,13 @@ function tweetCell(tweet) {
|
||||
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) {
|
||||
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
|
||||
}
|
||||
|
||||
@@ -92,71 +82,56 @@ function filterBannedWords(bannedWords, tweets){
|
||||
}
|
||||
|
||||
function searchForWords(searchWords, tweets){
|
||||
var filteredTweets = []
|
||||
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)
|
||||
var text = tweet.text.toLowerCase()
|
||||
var word = searchWords[i].toLowerCase()
|
||||
if (text.includes(word)) {
|
||||
filteredTweets.push(tweet)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
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
|
||||
function sortTweets(tweets, sort){
|
||||
if(typeof sort.sortby == 'undefined'){
|
||||
return tweets
|
||||
}
|
||||
if(typeof sort.order == 'undefined'){
|
||||
sort.order = 'asc'
|
||||
}
|
||||
|
||||
if(sort.sortby == "likes"){
|
||||
if(sort.order == 'asc'){
|
||||
tweets.sort(function(a,b){return b.favorite_count-a.favorite_count})
|
||||
} else{
|
||||
tweets.sort(function(a,b){return a.favorite_count-b.favorite_count})
|
||||
}
|
||||
}
|
||||
if(sort.sortby == "retweets"){
|
||||
if(sort.order == 'asc'){
|
||||
tweets.sort(function(a,b){return b.retweet_count-a.retweet_count})
|
||||
} else{
|
||||
tweets.sort(function(a,b){return a.retweet_count-b.retweet_count})
|
||||
}
|
||||
}
|
||||
if(sort.sortby == "replies"){
|
||||
if(sort.order == 'asc'){
|
||||
tweets.sort(function(a,b){return b.reply_count-a.reply_count})
|
||||
} else {
|
||||
tweets.sort(function(a,b){return a.reply_count-b.reply_count})
|
||||
}
|
||||
}
|
||||
if (sort.sortby == "date"){
|
||||
if(sort.order == 'asc'){
|
||||
tweets.sort(function(a,b){return Date(b.created_at)-Date(a.reply_count)})
|
||||
} else{
|
||||
tweets.sort(function(a,b){return Date(a.created_at)-Date(b.reply_count)})
|
||||
}
|
||||
}
|
||||
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){
|
||||
if(likesDes && likesDes!=null){
|
||||
tweets.sort(function(a,b){return b.favorite_count-a.favorite_count})
|
||||
} else if (!likesDes && likesDes!=null){
|
||||
tweets.sort(function(a,b){return a.favorite_count-b.favorite_count})
|
||||
}
|
||||
if(retweetsDes && retweetsDes!=null){
|
||||
tweets.sort(function(a,b){return b.retweet_count-a.retweet_count})
|
||||
} else if (!retweetsDes && retweetsDes!=null){
|
||||
tweets.sort(function(a,b){return a.retweet_count-b.retweet_count})
|
||||
}
|
||||
if(repliesDes && repliesDes!=null){
|
||||
tweets.sort(function(a,b){return b.reply_count-a.reply_count})
|
||||
} else if (!repliesDes && repliesDes!=null){
|
||||
tweets.sort(function(a,b){return a.reply_count-b.reply_count})
|
||||
}
|
||||
if(dateDes && dateDes!=null){
|
||||
tweets.sort(function(a,b){return Date(b.created_at)-Date(a.reply_count)})
|
||||
} else if (!dateDes && dateDes!=null){
|
||||
tweets.sort(function(a,b){return Date(a.created_at)-Date(b.reply_count)})
|
||||
}
|
||||
return tweets
|
||||
}
|
||||
@@ -1,11 +1,16 @@
|
||||
// Selected = is clicked sport selected or not, BOOL
|
||||
// Sports = all selected sports, ARRAY
|
||||
$(".sport").on("selected", function(e, selected, sports) {
|
||||
console.log(selected, sports);
|
||||
filters.sports = sports;
|
||||
$(window).trigger("filter");
|
||||
})
|
||||
|
||||
window.addEventListener('DOMContentLoaded', (event) => {
|
||||
window.sessionStorage.setItem('tweets', JSON.stringify([]));
|
||||
// run code every 5 seconds
|
||||
setInterval(function() {
|
||||
$(window).trigger("filter");
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
$(".sport").on("click", function() {
|
||||
@@ -21,8 +26,8 @@ $(".sport").on("click", function() {
|
||||
selectedSports.push(sportName) // Add sport to array
|
||||
}
|
||||
|
||||
$(this).trigger("selected", [selectedSports.includes(sportName), selectedSports]) // Trigger event
|
||||
showFeeds()
|
||||
$(this).trigger("selected", [selectedSports.includes(sportName), selectedSports]) // Trigger event
|
||||
})
|
||||
|
||||
$(window).on("resize", function(){
|
||||
@@ -33,26 +38,13 @@ $(window).on("load", function() {
|
||||
showFeeds()
|
||||
})
|
||||
|
||||
$(".sortby").on("click", function() {
|
||||
$(".sort-dropdown").toggle()
|
||||
// $(".sort-btn").toggleClass("radius-bottom")
|
||||
})
|
||||
|
||||
$(".sort-dropdown-list li").on("click", function() {
|
||||
$(".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")
|
||||
|
||||
$(".logo").on("click", function() {
|
||||
if (root.style.getPropertyValue("--main-bg") === 'snow') {
|
||||
console.log("IM here")
|
||||
var audio = new Audio("../media/Chicken.mp3");
|
||||
audio.play();
|
||||
root.style.setProperty('--main-medium-dark', '#1E1E1E');
|
||||
root.style.setProperty('--main-bg', '#292929');
|
||||
root.style.setProperty('--main-light', ' #ffffff' );
|
||||
@@ -60,6 +52,8 @@ $(".logo").on("click", function() {
|
||||
root.style.setProperty('--tweet-color', '#000000')
|
||||
root.style.setProperty('--column-color', '#1E1E1E')
|
||||
} else {
|
||||
var audio = new Audio("../media/Rooster.mp3");
|
||||
audio.play();
|
||||
root.style.setProperty('--main-medium-dark', '#1D9BF0');
|
||||
root.style.setProperty('--main-bg', 'snow');
|
||||
root.style.setProperty('--main-light', '#000000');
|
||||
@@ -69,10 +63,60 @@ $(".logo").on("click", function() {
|
||||
}
|
||||
})
|
||||
|
||||
$(window).on("filter", function() {
|
||||
var parent = document.querySelector("#filtered")
|
||||
parent.replaceChildren();
|
||||
|
||||
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, [filters.sorted, filters.order]);
|
||||
var displayTweets = tweets.reverse().slice(0, 20).reverse();
|
||||
for (i = 0; i < Math.min(19, displayTweets.length); i++){
|
||||
tweet = displayTweets[i];
|
||||
parent.prepend(tweetCell(tweet));
|
||||
}
|
||||
})
|
||||
|
||||
$(".current-sort").on("click", function() {
|
||||
$(".sort-dropdown-list li:not(:first-of-type)").toggle()
|
||||
})
|
||||
|
||||
$(".sort-btn").on("click", function() {
|
||||
$(".sort-dropdown-list li:not(:first-of-type)").toggle()
|
||||
})
|
||||
|
||||
$(".sort-dropdown-list li:not(:first-of-type)").on("click", function() {
|
||||
$(".sort-dropdown-list li:not(:first-of-type)").toggle()
|
||||
$(".current-sort").html($(this).html())
|
||||
})
|
||||
|
||||
|
||||
$(".order-btn").on("click", function() {
|
||||
if($(this).html() == "arrow_downward") { // Descending to ascending
|
||||
$(this).html("arrow_upward")
|
||||
filters.order = 'asc'
|
||||
} else { // Ascending to descending
|
||||
$(this).html("arrow_downward")
|
||||
filters.order = 'desc'
|
||||
}
|
||||
})
|
||||
$(window).trigger("filter")
|
||||
})
|
||||
|
||||
function updateSearched(searched){
|
||||
searched = searched.split(",");
|
||||
filters.searchedWords = searched;
|
||||
$(window).trigger("filter");
|
||||
}
|
||||
|
||||
function updateBlocked(blocked){
|
||||
blocked = blocked.split(",");
|
||||
filters.blockedWords = blocked;
|
||||
$(window).trigger("filter");
|
||||
}
|
||||
|
||||
function updateSort(sort){
|
||||
sortarray = []
|
||||
filters.sorted = sort;
|
||||
$(window).trigger("filter");
|
||||
}
|
||||
Reference in New Issue
Block a user