class StockCollector:
 def __init__(self):
  self.stocks = ['ATVI', 'ADBE', 'ALTR', 'AMZN', 'APCC', 'AMGN', 'APOL', 'AAPL', 'AMAT', 'ATYT', 'ADSK', 'BEAS', 'BBBY', 'BIIB', 'BMET', 'BRCM', 'CDNS', 'CDWC', 'CELG', 'CHRW', 'CHKP', 'CKFR', 'CHIR', 'CTAS', 'CSCO', 'CTXS', 'CTSH', 'CMCSA', 'CMVT', 'COST', 'DELL', 'XRAY', 'DISCA', 'EBAY', 'DISH', 'ERTS', 'EXPE', 'EXPD', 'ESRX', 'FAST', 'FISV', 'FLEX', 'GRMN', 'GENZ', 'GILD', 'GOOG', 'IACI', 'INTC', 'INTU', 'JDSU', 'JNPR', 'KLAC', 'LRCX', 'LAMR', 'LBTYA', 'LNCR', 'LLTC', 'ERICY', 'MRVL', 'MXIM', 'MCIP', 'MEDI', 'MERQ', 'MCHP', 'MSFT', 'MNST', 'NTAP', 'NIHD', 'NVLS', 'NTLI', 'NVDA', 'ORCL', 'PCAR', 'PDCO', 'PTEN', 'PAYX', 'PETM', 'PIXR', 'QCOM', 'RHAT', 'RIMM', 'ROST', 'SNDK', 'SHLD', 'SEPR', 'SEPR', 'SIRI', 'SPLS', 'SBUX', 'SUNW', 'SYMC', 'TLAB', 'TEVA', 'URBN', 'VRSN', 'WFMI', 'WYNN', 'XLNX', 'XMSR', 'YHOO', 'MMM', 'AA', 'AXP', 'BAC', 'BA', 'CAT', 'CVX', 'CSCO', 'KO', 'DD', 'XOM', 'GE', 'HPQ', 'HD', 'INTC', 'IBM', 'JNJ', 'JPM', 'KFT', 'MCD', 'MRK', 'MSFT', 'PFE', 'PG', 'TRV', 'UTX', 'VZ', 'WMT', 'DIS']
  self.db = Connection('localhost',27017).production
  self.ts_volume = TimeSeriesRecorder('stock_volume')
  self.ts_price = TimeSeriesRecorder('stock_price')

 def fetch_stock_data(self):
  times = 1

  while times == 1:
   for ticker in self.stocks:
    data = ystockquote.get_all(ticker)
    data['ticker'] = ticker
    data['time_stamp'] = datetime.datetime.now()   
    self.save_stock_data(data)
	
    if data['volume'].isdigit() and data['price'].isdigit():    
     self.ts_volume.onSample(ticker, int( data['volume']))
     self.ts_price.onSample(ticker,float(data['price']))
    print('.'),
   print ''
   time.sleep(60)
 
 def save_stock_data(self, data):
  self.db.stocks.save(data)
 def __init__(self):
  self.stocks = ['ATVI', 'ADBE', 'ALTR', 'AMZN', 'APCC', 'AMGN', 'APOL', 'AAPL', 'AMAT', 'ATYT', 'ADSK', 'BEAS', 'BBBY', 'BIIB', 'BMET', 'BRCM', 'CDNS', 'CDWC', 'CELG', 'CHRW', 'CHKP', 'CKFR', 'CHIR', 'CTAS', 'CSCO', 'CTXS', 'CTSH', 'CMCSA', 'CMVT', 'COST', 'DELL', 'XRAY', 'DISCA', 'EBAY', 'DISH', 'ERTS', 'EXPE', 'EXPD', 'ESRX', 'FAST', 'FISV', 'FLEX', 'GRMN', 'GENZ', 'GILD', 'GOOG', 'IACI', 'INTC', 'INTU', 'JDSU', 'JNPR', 'KLAC', 'LRCX', 'LAMR', 'LBTYA', 'LNCR', 'LLTC', 'ERICY', 'MRVL', 'MXIM', 'MCIP', 'MEDI', 'MERQ', 'MCHP', 'MSFT', 'MNST', 'NTAP', 'NIHD', 'NVLS', 'NTLI', 'NVDA', 'ORCL', 'PCAR', 'PDCO', 'PTEN', 'PAYX', 'PETM', 'PIXR', 'QCOM', 'RHAT', 'RIMM', 'ROST', 'SNDK', 'SHLD', 'SEPR', 'SEPR', 'SIRI', 'SPLS', 'SBUX', 'SUNW', 'SYMC', 'TLAB', 'TEVA', 'URBN', 'VRSN', 'WFMI', 'WYNN', 'XLNX', 'XMSR', 'YHOO', 'MMM', 'AA', 'AXP', 'BAC', 'BA', 'CAT', 'CVX', 'CSCO', 'KO', 'DD', 'XOM', 'GE', 'HPQ', 'HD', 'INTC', 'IBM', 'JNJ', 'JPM', 'KFT', 'MCD', 'MRK', 'MSFT', 'PFE', 'PG', 'TRV', 'UTX', 'VZ', 'WMT', 'DIS']
  self.db = Connection('localhost',27017).production
  self.ts_volume = TimeSeriesRecorder('stock_volume')
  self.ts_price = TimeSeriesRecorder('stock_price')