Added graph
This commit is contained in:
Binary file not shown.
25
dashboard.py
25
dashboard.py
@@ -2,6 +2,7 @@ from eca import *
|
|||||||
from eca.generators import start_offline_tweets
|
from eca.generators import start_offline_tweets
|
||||||
|
|
||||||
import random
|
import random
|
||||||
|
import re
|
||||||
|
|
||||||
## You might have to update the root path to point to the correct path
|
## You might have to update the root path to point to the correct path
|
||||||
## (by default, it points to <rules>_static)
|
## (by default, it points to <rules>_static)
|
||||||
@@ -12,7 +13,7 @@ root_content_path = 'dashboard_static'
|
|||||||
# the action will be called with the context and the event
|
# the action will be called with the context and the event
|
||||||
@event('init')
|
@event('init')
|
||||||
def setup(ctx, e):
|
def setup(ctx, e):
|
||||||
start_offline_tweets('sports1.txt', event_name="tweet", time_factor=0.1)
|
start_offline_tweets('sports1.txt', event_name="tweet", time_factor=1)
|
||||||
ctx.count = 0
|
ctx.count = 0
|
||||||
# fire('sample', {'previous': 0.0})
|
# fire('sample', {'previous': 0.0})
|
||||||
|
|
||||||
@@ -21,6 +22,22 @@ def setup(ctx, e):
|
|||||||
def clip(lower, value, upper):
|
def clip(lower, value, upper):
|
||||||
return max(lower, min(value, upper))
|
return max(lower, min(value, upper))
|
||||||
|
|
||||||
|
|
||||||
|
# simple word splitter
|
||||||
|
pattern = re.compile('\W+')
|
||||||
|
|
||||||
|
# sample stopword list, needs to be much more sophisticated
|
||||||
|
stopwords = ["volleyball", "football", "basketball", "baseball", "tennis", "cricket", "soccer", "rugby"]
|
||||||
|
|
||||||
|
|
||||||
|
def words(message):
|
||||||
|
result = pattern.split(message)
|
||||||
|
result = map(lambda w: w.lower(), result)
|
||||||
|
result = filter(lambda w: w in stopwords, result)
|
||||||
|
result = filter(lambda w: len(w) > 2, result)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
@event('tweet')
|
@event('tweet')
|
||||||
def generate_tweet(ctx, e):
|
def generate_tweet(ctx, e):
|
||||||
tweet = e.data
|
tweet = e.data
|
||||||
@@ -28,7 +45,11 @@ def generate_tweet(ctx, e):
|
|||||||
# sample = clip(-100, e.data['previous'] + random.uniform(+5.0, -5.0), 100)
|
# sample = clip(-100, e.data['previous'] + random.uniform(+5.0, -5.0), 100)
|
||||||
# emit to outside world
|
# emit to outside world
|
||||||
emit('tweet', tweet)
|
emit('tweet', tweet)
|
||||||
|
for w in words(tweet['text']):
|
||||||
|
emit('balk', {
|
||||||
|
'action': 'add',
|
||||||
|
'value': (str(w), 1)
|
||||||
|
})
|
||||||
# # chain event
|
# # chain event
|
||||||
# fire('tweet', {'previous': tweet}, delay=0.05)
|
# fire('tweet', {'previous': tweet}, delay=0.05)
|
||||||
|
|
||||||
|
|||||||
@@ -111,6 +111,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="popchart column">
|
<div class="popchart column">
|
||||||
<span class="colheader chartheader">Sports Popularity Filter</span>
|
<span class="colheader chartheader">Sports Popularity Filter</span>
|
||||||
|
<div id="balk" style="height:300px; background-color: white;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -118,6 +119,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<script src="/lib/jquery-2.1.1.min.js"></script>
|
<script src="/lib/jquery-2.1.1.min.js"></script>
|
||||||
<script src="/lib/jquery.flot.min.js"></script>
|
<script src="/lib/jquery.flot.min.js"></script>
|
||||||
|
<script src="/lib/jquery.flot.categories.min.js"></script>
|
||||||
<script src="/lib/core.js"></script>
|
<script src="/lib/core.js"></script>
|
||||||
<script src="/lib/charts.js"></script>
|
<script src="/lib/charts.js"></script>
|
||||||
<script src="/lib/log.js"></script>
|
<script src="/lib/log.js"></script>
|
||||||
@@ -128,6 +130,8 @@
|
|||||||
block("#tweet").tweets({
|
block("#tweet").tweets({
|
||||||
memory: 20
|
memory: 20
|
||||||
});
|
});
|
||||||
|
block('#balk').barchart();
|
||||||
|
events.connect('balk', '#balk');
|
||||||
events.connect("tweet", "#tweet");
|
events.connect("tweet", "#tweet");
|
||||||
|
|
||||||
// // create a rolling chart block
|
// // create a rolling chart block
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ def add_request_handlers(httpd):
|
|||||||
@event('init')
|
@event('init')
|
||||||
def setup(ctx, e):
|
def setup(ctx, e):
|
||||||
# start the offline tweet stream
|
# start the offline tweet stream
|
||||||
start_offline_tweets('data/bata_2014.txt', 'chirp', time_factor=100000)
|
start_offline_tweets('sports1.txt', 'chirp', time_factor=100000)
|
||||||
ctx.words = {}
|
ctx.words = {}
|
||||||
|
|
||||||
# simple word splitter
|
# simple word splitter
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user