From 28c095279c43ea4d573e5861f946b228a25fc243 Mon Sep 17 00:00:00 2001 From: Jeffrey Paul Date: Wed, 27 Mar 2013 08:32:34 +0100 Subject: [PATCH] dunno --- .gitignore | 1 + homedir.makefile/Makefile | 8 +++--- linuxnet2statsd/report_net_stats.py | 41 +++++++++++++++++++++++++++++ scrapers/amexscraper.py | 4 +++ scrapers/etradescraper.py | 4 +++ scrapers/scraper.py | 7 ++++- 6 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 linuxnet2statsd/report_net_stats.py diff --git a/.gitignore b/.gitignore index e43b0f9..dde3895 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +*.pyc diff --git a/homedir.makefile/Makefile b/homedir.makefile/Makefile index 291baf1..7e15682 100644 --- a/homedir.makefile/Makefile +++ b/homedir.makefile/Makefile @@ -31,14 +31,16 @@ mailoffsite: imapbackup databackup: dvbackup imapbackup backup.command -clean: +cleanup: + -mkdir -p $(HOME)/Documents/$(YYYYMM) + -mv $(HOME)/Desktop/* $(HOME)/Documents/$(YYYYMM) + +clean: cleanup @echo $(PREFIX) $@ $(SUFFIX) @-rm -rf ~/tmp/* @-rm -rf ~/Library/Caches/* @-rm -rf ~/.Trash/* @-rm -rf $(JUNKFILES) - -mkdir -p $(HOME)/Documents/$(YYYYMM) - -mv $(HOME)/Desktop/* $(HOME)/Documents/$(YYYYMM) size: du -sh $(HOME) diff --git a/linuxnet2statsd/report_net_stats.py b/linuxnet2statsd/report_net_stats.py new file mode 100644 index 0000000..c548ef0 --- /dev/null +++ b/linuxnet2statsd/report_net_stats.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +from pystatsd import Client + +class LinuxNetStats(object): + def __init__(self): + self.d = self._get() + + def _get(self): + # thx + # http://stackoverflow.com/questions/1052589/ + # how-can-i-parse-the-output-of-proc-net-dev- + # into-keyvalue-pairs-per-interface-u + lines = open("/proc/net/dev", "r").readlines() + columnLine = lines[1] + _, receiveCols , transmitCols = columnLine.split("|") + receiveCols = map(lambda a:"rx_"+a, receiveCols.split()) + transmitCols = map(lambda a:"tx_"+a, transmitCols.split()) + cols = receiveCols+transmitCols + faces = {} + for line in lines[2:]: + if line.find(":") < 0: continue + face, data = line.split(":") + face = face.lstrip() + faces[face] = dict(zip(cols, data.split())) + return faces + + def forStatsd(self,prefix=''): + out = {} + for iface in self.d.keys(): + for kn in self.d[iface].keys(): + out['%s%s.%s' % (prefix, iface, kn)] = int(self.d[iface][kn]) + return out + +def main(): + s = Client('localhost',8125) + n = LinuxNetStats() + for k,v in n.forStatsd(prefix='host.com.eeqj.net.').items(): + s.update_stats(k,v) + +if __name__=="__main__": + main() diff --git a/scrapers/amexscraper.py b/scrapers/amexscraper.py index 463ecdb..270a8a1 100755 --- a/scrapers/amexscraper.py +++ b/scrapers/amexscraper.py @@ -12,6 +12,10 @@ from ofxclient.request import Builder as OFXClientBuilder from scraper import FinancialScraper, MockInstitution class AmexScraper(FinancialScraper): + def isBank(self): + return False + def isCC(self): + return True def getInstitution(self): return MockInstitution( user=self.user, diff --git a/scrapers/etradescraper.py b/scrapers/etradescraper.py index 3d410e8..b967e97 100755 --- a/scrapers/etradescraper.py +++ b/scrapers/etradescraper.py @@ -10,6 +10,10 @@ import json from scraper import FinancialScraper, MockInstitution class EtradeScraper(FinancialScraper): + def isBank(self): + return True + def isCC(self): + return False def getInstitution(self): return MockInstitution( user=self.user, diff --git a/scrapers/scraper.py b/scrapers/scraper.py index 6eb4301..1f47d4e 100755 --- a/scrapers/scraper.py +++ b/scrapers/scraper.py @@ -4,6 +4,7 @@ # 2013 jeffrey paul # 5539 AD00 DE4C 42F3 AFE1 1575 0524 43F4 DF2A 55C2 +from pprint import pformat import os import re from ofxclient.request import Builder as OFXClientBuilder @@ -32,8 +33,12 @@ class FinancialScraper(object): out = {} for acctnum in re.findall(c,r): out[acctnum] = {} + print(pformat(out)) c = re.compile(r'([\d\.\-]+)', re.MULTILINE) for acctnum in out.keys(): - r = b.doQuery(b.ccQuery(acctnum,'19700101000000')) + if self.isCC(): + r = b.doQuery(b.ccQuery(acctnum,'19700101000000')) + if self.isBank(): + r = b.doQuery(b.baQuery(acctnum,'19700101000000','','')) out[acctnum]['balance'] = re.findall(c,r)[0] return out