#!/usr/bin/python
# -*- coding: utf-8 -*-

# Gera config MRTG para chan_dongle
#
# Marcelo H. Terres <mhterres@gmail.com>
# 2014-08-26
#
# Versao 0.1

import sys
import os
import socket
import subprocess
import time
import re

def getdata(sck,cmd):

        sck.send(cmd + "\n")
        time.sleep (0.5)
        data = s.recv(65536)

        return data

def runAMIcmd(host,port,user,password,device):

        myConnect=connectAMI(host,port,user,password)
        s = myConnect.socket

        returnmsg = "" 
        
	s.send('Action: DongleShowDevices\n\n')

        time.sleep (0.2)

        data = s.recv(65536)
        mgrdictev=ManagerDictEvents(data,'Device',device)

        for event in mgrdictev.events:


             returnmsg+="RSSI: " + event['RSSI'] + "\r"


        return returnmsg


class connectAMI:

        def __init__(self,host,port,user,password):

                s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                s.connect((host,port))

                s.send('Action: Login\nUsername: '+user+'\nSecret: '+password+'\n\n')
                time.sleep (0.5)
                data = s.recv(2048)

                self.socket = s

class ManagerDict:

        def __init__(self,text):

                # split the text
                linhas = text.split('\n')

                d={}

                for item in linhas:

                        dado=item.split(":",1)

                        try:

                                title=dado[0]
                        except:

                                title=""

                        try:

                                value=dado[1]
                        except:

                                value=""


                        d.update({title:value})

                self.dicti=d

        def getitem(self,index):

                i=self.dicti[index]
                i=i.replace(" ","\ ")
                return i


class ManagerDictEvents:

        def __init__(self,text,type,myevent):

                self.description = "Gera lista de dicionários dos itens de um evento específico."

                # split the text
                linhas = text.split('\n')

                i=0

                dicio={}
                events=[]

                fulldicio={}
                dicioitem=0

                if text.find(type + ': ' + myevent) == -1:

                        self.isvalid=False
                else:

                        self.isvalid=True

                        self.events=[]
                        self.items=0
                        self.fulldicti={}
                        self.dictiitems=0

                        for myitem in linhas:

                                dado=myitem.split(":",1)

                                try:

                                        title=dado[0]
                                except:

                                        title=""

                                try:
                                        value=dado[1]
                                except:

                                        value=""

                                if (title == type and value.find(myevent) > 0 and len(dicio) == 0):

                                        i+=1
                                        events.append({})
                                        dicioitem+=1
                                        fulldicio.update({title:value})

                                        dicio.update({title:value})
                                        events[i-1].update({title:value})

                                elif (title == type and len(dicio)>0):

                                        dicioitem+=1
                                        fulldicio.update({title:value})

                                        if len(dicio) > 0:

                                                events[i-1].update({title:value})

                                                dicio.clear()
                                                dicio={}

                                        if value.find(myevent) > 0:

                                                i+=1
                                                events.append({})
                                                dicioitem+=1
                                                fulldicio.update({title:value})

                                                events[i-1].update({title:value})
                                                dicio.update({title:value})

                                elif (title != "" and len(dicio)>0):

                                        dicioitem+=1
                                        fulldicio.update({title:value})

                                        events[i-1].update({title:value})
                                        dicio.update({title:value})

                        self.items=i
                        self.events=events
                        self.dicti=fulldicio
                        self.dictiitems=dicioitem
                        self.text=text


host = '127.0.0.1'
port = 5038
user = 'usuario'
password = 'senha'

if (len(sys.argv) == 1):
	print "Sintaxe: mrtg_dongle.py <device>"
	sys.exit(1)

msg=runAMIcmd(host,port,user,password,sys.argv[1])

print 0
print msg.split(',')[0].split(':')[1].split(' ')[2]
print 0
print 0
