'Pushes a message on the registered API keys.
takes 5 arguments:
- (req) application: application name [256]
- (req) event:       event name       [1000]
- (req) description: description      [10000]
- (opt) url:         url              [512]
- (opt) priority:    from -2 (lowest) to 2 (highest) (def:0)
- (opt) batch_mode:  call API 5 by 5 (def:False)
Warning: using batch_mode will return error only if all API keys are bad
cf: http://nma.usk.bz/api.php'

def push(self, application='', event='', description='', url='', priority=0, batch_mode=False):

    datas = {'application': application[:256].encode('utf8'), 'event': event[:1024].encode('utf8'), 'description': description[:10000].encode('utf8'), 'priority': priority}
    if url:
        datas['url'] = url[:512]
    if self._developerkey:
        datas['developerkey'] = self._developerkey
    results = {}
    if (not batch_mode):
        for key in self._apikey:
            datas['apikey'] = key
            res = self.callapi('POST', ADD_PATH, datas)
            results[key] = res
    else:
        for i in range(0, len(self._apikey), 5):
            datas['apikey'] = ','.join(self._apikey[i:(i + 5)])
            res = self.callapi('POST', ADD_PATH, datas)
            results[datas['apikey']] = res
    return results
