Files
twitter-project/dashboard_static/js/code.js

119 lines
4.1 KiB
JavaScript

let selectedSports = []
let filters = {
searchedWords: [],
blockedWords: [],
sorted: "time",
order: "desc",
sports: []
}
function showFeeds() {
if ($(window).width() < 1280) {
if (selectedSports.length === 0) {
$(".leftcol").show()
$(".centercol").hide()
} else {
$(".leftcol").hide()
$(".centercol").show()
}
} else {
$(".leftcol").show()
$(".centercol").show()
}
}
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>
<div class="tweet-content">
<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-username" href = "https://www.twitter.com/${tweet.user.screen_name}" target = "_blank">@${tweet.user.screen_name}</a>
</div>
<span class="tweet-text">${tweet.text}</span>
<div class="tweet-interactions">
<div class="tweet-interaction tweet-likes">
<span class="material-symbols-outlined">favorite</span>
<span>${tweet.favorite_count}</span>
</div>
<div class="tweet-interaction tweet-retweets">
<span class="material-symbols-outlined">repeat</span>
<span>${tweet.retweet_count}</span>
</div>
<div class="tweet-interaction tweet-replies">
<span class="material-symbols-outlined">chat_bubble</span>
<span>${tweet.reply_count}</span>
</div>
</div>
</div>
</div>`
return cell
}
function filterTweets(tweets, bannedWords=[], searchWords=[], sorted, order) {
console.log(searchWords)
if(bannedWords.length > 0){
tweets = filterBannedWords(bannedWords, tweets)
}
if(searchWords.length > 0){
tweets = searchForWords(searchWords, 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){
var filteredTweets = []
for (let i = 0; i < tweets.length; i++) {
var tweet = tweets[i]
for(let i=0; i < searchWords.length; i++){
var text = tweet.text.toLowerCase()
var word = searchWords[i].toLowerCase()
if (text.includes(word)) {
filteredTweets.push(tweet)
break
}
}
}
return filteredTweets.reverse()
}
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
}