Thursday, October 8, 2015

LaMetric Python App

Creating a personal stock app for LaMetric is super simple, all you need is create an account at developer.lametric.com and have an url with your data. Depending on how you want the data to appear, the format should be in json and how it appears in the creation process.

I used appengine to host my data and used the metric data format


Here is the python code
import urllib2
import json

# get stocks data using yahoo finance
stocks = ['0002.HK', '0005.HK', '0011.HK', '0992.HK', '0066.HK']
url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22" + ("%22%2C%22".join(stocks)) + "%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json"
result = urllib2.urlopen(url)
data = json.loads(result.read())

# create frames based on the metric data format
frames = []
for stock in data['query']['results']['quote']:
    frames.append({
        "index": len(frames),
        "text": '%s - %s' % (stock['Symbol'], stock['LastTradePriceOnly']),
        'icon': 'i124' if float(stock['Change']) < 0 else 'i120' if float(stock['Change']) > 0 else 'i401'
    })

self.response.headers['Content-Type'] = "text/javascript"
self.response.write(json.dumps({
    "frames": frames
}))
The output would look like this

As of writing, you need to create the same number of frames on the developer site with your data, as if you have more then what you specify on the site, it wont show on your device.