Merged from main

This commit is contained in:
2022-11-03 14:32:24 +01:00
12 changed files with 64 additions and 10 deletions

3
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

1
.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
neca.py

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

4
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/twitter-project.iml" filepath="$PROJECT_DIR$/.idea/twitter-project.iml" />
</modules>
</component>
</project>

12
.idea/twitter-project.iml generated Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="PLAIN" />
<option name="myDocStringFormat" value="Plain" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -46,7 +46,7 @@ def generate_tweet(ctx, e):
# emit to outside world
emit('tweet', tweet)
for w in words(tweet['text']):
emit('balk', {
emit('pie', {
'action': 'add',
'value': (str(w), 1)
})

View File

@@ -113,8 +113,10 @@
<span class="material-symbols-outlined order-btn">arrow_downward</span>
</div>
<div class="popchart column">
<span class="colheader chartheader">Sports Popularity Chart</span>
<div id="balk" style="height:300px; background-color: white;"></div>
<span class="colheader chartheader">Sports Popularity Filter</span>
<div id="pie" style="height:300px; background-color: white;"></div>
</div>
</div>
</div>
@@ -129,12 +131,13 @@
<script src="./lib/tweets.js"></script>
<script src="./js/code.js"></script>
<script src="./js/events.js"></script>
<script src="./lib/jquery.flot.pie.js"></script>
<script>
block("#latest").tweets({
memory: 20
});
block('#balk').barchart();
events.connect('balk', '#balk');
block('#pie').piechart();
events.connect('pie', '#pie');
events.connect("tweet", "#latest");
// // create a rolling chart block

View File

@@ -32,6 +32,8 @@ function tweetCell(tweet) {
<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>
<!-- add tweet date called created_at-->
<p class="tweet-date">${tweet.created_at}</p>
</div>
<span class="tweet-text">${tweet.text}</span>
<div class="tweet-interactions">
@@ -54,7 +56,6 @@ function tweetCell(tweet) {
}
function filterTweets(tweets, bannedWords=[], searchWords=[], sorted, order) {
console.log(searchWords)
if(bannedWords.length > 0){
tweets = filterBannedWords(bannedWords, tweets)
}

View File

@@ -8,6 +8,10 @@ $(".sport").on("selected", function(e, selected, sports) {
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() {
@@ -66,20 +70,26 @@ $(".logo").on("click", function() {
})
$(window).on("filter", function() {
console.log("called")
var parent = document.querySelector("#filtered")
parent.replaceChildren();
console.debug(filters);
console.log(filters);
tweets = window.sessionStorage.getItem('tweets');
tweets = JSON.parse(tweets);
console.log(tweets.length)
tweets = filterTweets(tweets, filters.blockedWords, filters.searchedWords.concat(filters.sports), filters.sorted, filters.order);
tweets = sortTweets(tweets, [filters.sorted, filters.order]);
for (i = 0; i < Math.min(tweets.length, 20); i++){
parent.append(tweetCell(tweets[i]));
var displayTweets = tweets.reverse().slice(0, 20).reverse();
for (i = 0; i < 19; i++){
console.log("FDS")
parent.prepend(tweetCell(displayTweets[i]));
console.log("FDS 2")
}
})
$(".order-btn").on("click", function() {
if($(this).html() == "arrow_downward") { // Descending to ascending
$(this).html("arrow_upward")

View File

@@ -74,10 +74,10 @@ block.fn.tweets = function(config) {
// store list for later
// var $list = $("div.tweetcontainer");
var $list = document.querySelector("#latest")
window.sessionStorage.setItem('tweets', JSON.stringify([]));
// register default handler for handling tweet data
this.actions(function(e, tweet){
$(window).trigger("filter");
tweets = window.sessionStorage.getItem('tweets');
tweets = JSON.parse(tweets);
tweets.push(tweet);