def totals(): whale = Whale() params = default_params() params['periods'] = g('periods', None) if type(params['metrics']) == dict: params['metrics'] = params['metrics'].keys() return whale.totals(**params)
def reset(): whale = Whale() try: whale.reset(**default_params()) except Exception as e: return str(e) return 'OK'
def plotpoints(): whale = Whale() params = default_params() params['depth'] = g('depth', 0) params['period'] = g('period', None) params['sort'] = g('sort', None) params['limit'] = g('limit', 10) params['tzoffset'] = g('tzoffset', 0.0) params['flot_time'] = True return whale.plotpoints(**params)
def tracker(): from periods import Period import random params = default_params() # LOLOL THIS SHOULD REALLY CHANGE key = hashlib.sha256('hailwhale_weak_key').digest() if 'pk' not in req.GET and 'pixel' in req.GET: from Crypto.Cipher import AES from base64 import b64encode, b64decode from urllib import quote_plus mode = AES.MODE_CBC encryptor = AES.new(key, mode) text = g('pixel') INTERRUPT = u'\u0001' PAD = u'\u0000' # Since you need to pad your data before encryption, # create a padding function as well # Similarly, create a function to strip off the padding after decryption def AddPadding(data, interrupt, pad, block_size): new_data = ''.join([data, interrupt]) new_data_len = len(new_data) remaining_len = block_size - new_data_len to_pad_len = remaining_len % block_size pad_string = pad * to_pad_len return ''.join([new_data, pad_string]) def StripPadding(data, interrupt, pad): return data.rstrip(pad).rstrip(interrupt) def hw_encoded(t): return quote_plus( b64encode(encryptor.encrypt(AddPadding(t, INTERRUPT, PAD, 32)))) def hw_decoded(t): return StripPadding(encryptor.decrypt(b64decode(t)), INTERRUPT, PAD) params['pk'] = hw_decoded(text) pk = params['pk'] whale = Whale() hail = Hail() val = whale.count_now(at=times.now(), **params) #val = whale.count_now(**params) uid = g('uid') if not uid or uid == '_new': default = random.randrange(10**6, 10**9) uid = str(req.get_cookie('uid', str(default), key)) hail.spy_log(uid, params) response.set_cookie('uid', uid, key) return str(uid)
def plotpointsGraph(): whale = Whale() params = default_params() params['depth'] = g('depth', 0) params['period'] = g('period', None) params['sort'] = g('sort', None) params['limit'] = g('limit', 10) params['tzoffset'] = g('tzoffset', 0.0) params['flot_time'] = True #print whale.plotpointsGraph(**params) ret = whale.plotpointsGraph(**params) return json.dumps(ret)
def update_count_to(): whale = Whale() at = g('at', False) tzoffset = None if not at: at = times.now() else: from dateutil.parser import parse at = parse(g('at')) at = at.replace(tzinfo=None) params = dict(at=at, period=g('period', None), **default_params()) val = whale.update_count_to(**params) return 'OK'
def count_now(): whale = Whale() vals = default_params() at = vals.get("at") #g('at', False) tzoffset = None if not at: at = times.now() else: from dateutil.parser import parse at = parse(at) val = whale.count_now(at=at, pk=vals.get("pk"), metrics=vals.get("metrics"), dimensions=vals.get("dimensions")) return 'OK'
def fill_tank(self, screen): """Add fish and plants to the tank""" width, height = screen.get_size() for _ in range(1, 3): self.__fish.append(Fish("Clownfish", 20, randint(1, 5), randint(1, 5), randint( 100, width-100), randint(height-300, height-100))) for _ in range(1, 3): self.__fish.append(Whale( "Humpback", 40, 3, 3, randint(100, width-100), randint(height-300, height-100))) for _ in range(1, 3): self.__plants.append(Coral("Coral", 20, 5, randint(0, width), height)) for _ in range(1, 3): self.__plants.append( Algae("Seaweed", 20, 5, randint(0, width), height))
def setUp(self): from hail import Hail from whale import Whale self.hail = Hail() self.whale = Whale()