#!/usr/bin/python
# encoding: utf-8
"""
main2.py

Created by Pierre on 2012-05-31.
Copyright (c) 2012 __MyCompanyName__. All rights reserved.
"""

import subprocess
import os
import sys
import time

interface=sys.argv[1]

def get_ifconfig(interface):
	bashCommand = "/sbin/ifconfig %s" % interface
	process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
	output = process.communicate()[0].split('\n')
	matching = [line for line in output if "RX bytes" in line]
	if not matching:
		sys.exit()
	return matching[0]
	
def get_rx(line):
	return line.split('bytes:')[1].split(' ')[0]

def get_tx(line):
	return line.split('bytes:')[2].split(' ')[0]

def calc(arg1, arg2):
	sub=(int(arg2)-int(arg1))
	return sub*1.6

def display(arg):
	size=len('%.f' % arg)
	if size >= 10:
		result = float(arg)*9.31322574615479e-10
		result=arrondir(result)
		return "%sGbits/s" % result
	elif size >= 7:
		result = float(arg)*9.5367431640625e-07
		result=arrondir(result)
		return "%sMbits/s" % result
	elif size >= 4:
		result = float(arg)*0.0009765625
		result=arrondir(result)
		return "%sKbits/s" % result
	else:
		return "%sbits/s" % float(arg)

def arrondir(arg):
	result='%.2f' % arg
	return result


line = get_ifconfig(interface)
rx_1=get_rx(line)
tx_1=get_tx(line)

time.sleep(5)

line = get_ifconfig(interface)
rx_2=get_rx(line)
tx_2=get_tx(line)

rx_bits = calc(rx_1, rx_2)
tx_bits = calc(tx_1, tx_2)


unit='Bits/s'

traffic_in=display(rx_bits)
traffic_out=display(tx_bits)

print 'NETWORK USAGE Taffic_in:%s traffic_out:%s | traffic_in=%s%s traffic_out=%s%s' % (traffic_in, traffic_out, rx_bits, unit, tx_bits, unit)
