misc/cwdesklets/rqlsensor/__init__.py
branchtls-sprint
changeset 1802 d628defebc17
parent 0 b97547f5f1fa
child 1977 606923dff11b
equal deleted inserted replaced
1801:672acc730ce5 1802:d628defebc17
    50         elif action=="click-line":
    50         elif action=="click-line":
    51             # open url
    51             # open url
    52             output.set('resultbg[%s]' % index, 'black')
    52             output.set('resultbg[%s]' % index, 'black')
    53             webbrowser.open(self._urls[index])
    53             webbrowser.open(self._urls[index])
    54         self._send_output(output)
    54         self._send_output(output)
    55         
    55 
    56     def __get_connection(self):
    56     def __get_connection(self):
    57         try:
    57         try:
    58             return self._v_cnx
    58             return self._v_cnx
    59         except AttributeError:
    59         except AttributeError:
    60             appid, user, passwd = self._get_config("appid"), self._get_config("user"), self._get_config("passwd")
    60             appid, user, passwd = self._get_config("appid"), self._get_config("user"), self._get_config("passwd")
    71             rset = cursor.execute(rql)
    71             rset = cursor.execute(rql)
    72         except:
    72         except:
    73             del self._v_cnx
    73             del self._v_cnx
    74             raise
    74             raise
    75         self._urls = []
    75         self._urls = []
    76         output.set('layout', 'vertical, 14')        
    76         output.set('layout', 'vertical, 14')
    77         output.set('length', rset.rowcount)        
    77         output.set('length', rset.rowcount)
    78         i = 0
    78         i = 0
    79         for line in rset:
    79         for line in rset:
    80             output.set('result[%s]' % i, ', '.join([str(v) for v in line[1:]]))
    80             output.set('result[%s]' % i, ', '.join([str(v) for v in line[1:]]))
    81             output.set('resultbg[%s]' % i, 'black')
    81             output.set('resultbg[%s]' % i, 'black')
    82             try:
    82             try:
    83                 self._urls.append(base % 'Any X WHERE X eid %s' % line[0])
    83                 self._urls.append(base % 'Any X WHERE X eid %s' % line[0])
    84             except:
    84             except:
    85                 self._urls.append('')
    85                 self._urls.append('')
    86             i += 1
    86             i += 1
    87     
    87 
    88     def __update(self):
    88     def __update(self):
    89         output = self._new_output()
    89         output = self._new_output()
    90         try:
    90         try:
    91             self.__run_query(output)
    91             self.__run_query(output)
    92         except Exception, ex:
    92         except Exception, ex:
    93             import traceback
    93             import traceback
    94             traceback.print_exc()
    94             traceback.print_exc()
    95             output.set('layout', 'vertical, 10')        
    95             output.set('layout', 'vertical, 10')
    96             output.set('length', 1)        
    96             output.set('length', 1)
    97             output.set('result[0]', str(ex))
    97             output.set('result[0]', str(ex))
    98         self._send_output(output)
    98         self._send_output(output)
    99         self._add_timer(int(self._get_config('delay'))*1000, self.__update)
    99         self._add_timer(int(self._get_config('delay'))*1000, self.__update)
   100 
   100 
   101         
   101 
   102 def new_sensor(args):
   102 def new_sensor(args):
   103     return RQLSensor(*args)
   103     return RQLSensor(*args)