diff --git a/.gitignore b/.gitignore index 077173e..07307e8 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,5 @@ virtualenv venv/ venv3/ .DS_Store + +.mypy_cache/ diff --git a/README.rst b/README.rst index 208f75c..02dfb02 100644 --- a/README.rst +++ b/README.rst @@ -1,30 +1,13 @@ -.. image:: https://travis-ci.org/wakatime/wakatime.svg - :target: https://travis-ci.org/wakatime/wakatime - :alt: Tests - -.. image:: https://ci.appveyor.com/api/projects/status/g9snpluqi8svrgbn/branch/master?svg=true - :target: https://ci.appveyor.com/project/alanhamlett/wakatime-jl10s/branch/master - :alt: Windows Tests - -.. image:: https://coveralls.io/repos/wakatime/wakatime/badge.svg?branch=master&service=github - :target: https://coveralls.io/github/wakatime/wakatime?branch=master - :alt: Coverage - -.. image:: https://img.shields.io/pypi/v/wakatime.svg - :target: https://pypi.python.org/pypi/wakatime - :alt: Version - -.. image:: https://img.shields.io/pypi/pyversions/wakatime.svg - :target: https://pypi.python.org/pypi/wakatime - :alt: Supported Python Versions - - -WakaTime +rana-cli ======== -Command line interface to `WakaTime `_ used by all WakaTime `text editor plugins `_. +Command line interface to `rana `_. -Go to http://wakatime.com/editors to install the plugin for your text editor or IDE. +This is a fork of the wakatime CLI tool for use with rana. + +Rana is not affiliated with WakaTime. + +Go to http://gitdab.com/lavatech to install the plugin for your text editor or IDE. Installation @@ -56,6 +39,8 @@ Some more usage information is available in the `FAQ ` Configuring ----------- +`The only modification from a original config file is the api_key field` + Options can be passed via command line, or set in the ``$WAKATIME_HOME/.wakatime.cfg`` config file. Command line arguments take precedence over config file settings. The ``$WAKATIME_HOME/.wakatime.cfg`` file is in `INI `_ @@ -64,6 +49,7 @@ format. An example config file with all available options:: [settings] debug = false api_key = your-api-key + base_url = https://your-rana-instance.com hide_file_names = false hide_project_names = false exclude = diff --git a/wakatime/api.py b/wakatime/api.py index 16286a4..dc56f42 100644 --- a/wakatime/api.py +++ b/wakatime/api.py @@ -38,6 +38,11 @@ except ImportError: # pragma: nocover sys.exit(UNKNOWN_ERROR) +def _make_url(configs, path): + base_url = configs.get('settings', 'base_url') or 'https://api.wakatime.com' + return '%s%s' % (base_url, path) + + def send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=False): """Send heartbeats to WakaTime API. @@ -47,9 +52,7 @@ def send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=False): if len(heartbeats) == 0: return SUCCESS - api_url = args.api_url - if not api_url: - api_url = 'https://api.wakatime.com/api/v1/users/current/heartbeats.bulk' + api_url = _make_url(configs, '/api/v1/users/current/heartbeats.bulk') log.debug('Sending heartbeats to api at %s' % api_url) timeout = args.timeout if not timeout: @@ -163,7 +166,7 @@ def send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=False): return AUTH_ERROR if code == 401 else API_ERROR -def get_time_today(args, use_ntlm_proxy=False): +def get_time_today(args, configs, use_ntlm_proxy=False): """Get coding time from WakaTime API for given time range. Returns total time as string or `None` when unable to fetch summary from @@ -171,7 +174,7 @@ def get_time_today(args, use_ntlm_proxy=False): fetch summary. """ - url = 'https://api.wakatime.com/api/v1/users/current/summaries' + url = _make_url(configs, '/api/v1/users/current/summaries') timeout = args.timeout if not timeout: timeout = 60 @@ -219,7 +222,7 @@ def get_time_today(args, use_ntlm_proxy=False): verify=ssl_verify) except RequestException: if should_try_ntlm: - return get_time_today(args, use_ntlm_proxy=True) + return get_time_today(args, configs, use_ntlm_proxy=True) session_cache.delete() if log.isEnabledFor(logging.DEBUG): @@ -233,7 +236,7 @@ def get_time_today(args, use_ntlm_proxy=False): except: # delete cached session when requests raises unknown exception if should_try_ntlm: - return get_time_today(args, use_ntlm_proxy=True) + return get_time_today(args, configs, use_ntlm_proxy=True) session_cache.delete() if log.isEnabledFor(logging.DEBUG): @@ -264,7 +267,7 @@ def get_time_today(args, use_ntlm_proxy=False): return None, API_ERROR else: if should_try_ntlm: - return get_time_today(args, use_ntlm_proxy=True) + return get_time_today(args, configs, use_ntlm_proxy=True) session_cache.delete() log.debug({ diff --git a/wakatime/main.py b/wakatime/main.py index 02a40dc..a17b626 100644 --- a/wakatime/main.py +++ b/wakatime/main.py @@ -43,7 +43,7 @@ def execute(argv=None): setup_logging(args, __version__) if args.today: - text, retval = get_time_today(args) + text, retval = get_time_today(args, configs) if text: print(text) return retval