upgrade wakatime-cli to v10.0.1

This commit is contained in:
Alan Hamlett 2017-11-09 09:09:28 -08:00
parent a0b8f349c2
commit 1573e9c825
3 changed files with 54 additions and 31 deletions

View File

@ -1,7 +1,7 @@
__title__ = 'wakatime' __title__ = 'wakatime'
__description__ = 'Common interface to the WakaTime api.' __description__ = 'Common interface to the WakaTime api.'
__url__ = 'https://github.com/wakatime/wakatime' __url__ = 'https://github.com/wakatime/wakatime'
__version_info__ = ('10', '0', '0') __version_info__ = ('10', '0', '1')
__version__ = '.'.join(__version_info__) __version__ = '.'.join(__version_info__)
__author__ = 'Alan Hamlett' __author__ = 'Alan Hamlett'
__author_email__ = 'alan@wakatime.com' __author_email__ = 'alan@wakatime.com'

View File

@ -16,12 +16,7 @@ import sys
import traceback import traceback
from .compat import u, is_py3, json from .compat import u, is_py3, json
from .constants import ( from .constants import API_ERROR, AUTH_ERROR, SUCCESS, UNKNOWN_ERROR
API_ERROR,
AUTH_ERROR,
SUCCESS,
UNKNOWN_ERROR,
)
from .offlinequeue import Queue from .offlinequeue import Queue
from .packages.requests.exceptions import RequestException from .packages.requests.exceptions import RequestException
@ -54,7 +49,7 @@ def send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=False):
api_url = args.api_url api_url = args.api_url
if not api_url: if not api_url:
api_url = 'https://api.wakatime.com/api/v1/heartbeats.bulk' api_url = 'https://api.wakatime.com/api/v1/users/current/heartbeats.bulk'
log.debug('Sending heartbeats to api at %s' % api_url) log.debug('Sending heartbeats to api at %s' % api_url)
timeout = args.timeout timeout = args.timeout
if not timeout: if not timeout:
@ -143,35 +138,66 @@ def send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=False):
else: else:
code = response.status_code if response is not None else None code = response.status_code if response is not None else None
content = response.text if response is not None else None content = response.text if response is not None else None
try:
results = response.json() if response is not None else []
except:
if log.isEnabledFor(logging.DEBUG):
log.traceback(logging.WARNING)
results = []
if code == requests.codes.created or code == requests.codes.accepted: if code == requests.codes.created or code == requests.codes.accepted:
log.debug({ log.debug({
'response_code': code, 'response_code': code,
}) })
for i in range(len(results)):
if len(heartbeats) <= i:
log.debug('Results from server do not match heartbeats sent.')
break
try:
c = results[i][1]
except:
c = 0
try:
text = json.dumps(results[i][0])
except:
if log.isEnabledFor(logging.DEBUG):
log.traceback(logging.WARNING)
text = ''
handle_result([heartbeats[i]], c, text, args, configs)
session_cache.save(session) session_cache.save(session)
return SUCCESS return SUCCESS
if should_try_ntlm: if should_try_ntlm:
return send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=True) return send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=True)
else: else:
if args.offline: handle_result(heartbeats, code, content, args, configs)
if code == 400:
log.error({
'response_code': code,
'response_content': content,
})
else:
if log.isEnabledFor(logging.DEBUG):
log.warn({
'response_code': code,
'response_content': content,
})
queue = Queue(args, configs)
queue.push_many(heartbeats)
else:
log.error({
'response_code': code,
'response_content': content,
})
session_cache.delete() session_cache.delete()
return AUTH_ERROR if code == 401 else API_ERROR return AUTH_ERROR if code == 401 else API_ERROR
def handle_result(h, code, content, args, configs):
if code == requests.codes.created or code == requests.codes.accepted:
return
if args.offline:
if code == 400:
log.error({
'response_code': code,
'response_content': content,
})
else:
if log.isEnabledFor(logging.DEBUG):
log.warn({
'response_code': code,
'response_content': content,
})
queue = Queue(args, configs)
queue.push_many(h)
else:
log.error({
'response_code': code,
'response_content': content,
})

View File

@ -24,10 +24,7 @@ from .__about__ import __version__
from .api import send_heartbeats from .api import send_heartbeats
from .arguments import parse_arguments from .arguments import parse_arguments
from .compat import u, json from .compat import u, json
from .constants import ( from .constants import SUCCESS, UNKNOWN_ERROR
SUCCESS,
UNKNOWN_ERROR,
)
from .logger import setup_logging from .logger import setup_logging
log = logging.getLogger('WakaTime') log = logging.getLogger('WakaTime')