from eca import * from eca.generators import start_offline_tweets import random ## You might have to update the root path to point to the correct path ## (by default, it points to _static) root_content_path = 'dashboard_static' # binds the 'setup' function as the action for the 'init' event # the action will be called with the context and the event @event('init') def setup(ctx, e): start_offline_tweets('sports1.txt', event_name="sample") ctx.count = 0 # fire('sample', {'previous': 0.0}) # define a normal Python function def clip(lower, value, upper): return max(lower, min(value, upper)) @event('sample') def generate_sample(ctx, e): ctx.count += 1 if ctx.count % 50 == 0: emit('debug', {'text': 'Log message #'+str(ctx.count)+'!'}) tweet = e.data print(tweet) # base sample on previous one # sample = clip(-100, e.data['previous'] + random.uniform(+5.0, -5.0), 100) # emit to outside world emit('sample',{ 'action': 'add', 'value': tweet }) # chain event fire('sample', {'previous': tweet}, delay=0.05)