diff --git a/README.md b/README.md index c23799c..66e8cac 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,30 @@ -[![Vim](https://wakatime.com/static/img/Vim-supported-brightgreen.svg)](https://github.com/wakatime/vim-wakatime#installation) -[![Neovim](https://wakatime.com/static/img/Neovim-supported-brightgreen.svg)](https://github.com/wakatime/vim-wakatime#installation) -[![MacVim](https://wakatime.com/static/img/MacVim-supported-brightgreen.svg)](https://github.com/wakatime/vim-wakatime#installation) -[![gVim](https://wakatime.com/static/img/gVim-supported-brightgreen.svg)](https://github.com/wakatime/vim-wakatime#installation) - - -# vim-wakatime +# vim-rana Quantify your coding inside Vim. +**This is a fork of vim-wakatime. Rana is not affiliated with WakaTime.** + +**Rana is a reverse-engineered WakaTime server.** https://github.com/lnyaa/rana Installation ------------ -1. With [Vundle](https://github.com/gmarik/vundle): `echo "Plugin 'wakatime/vim-wakatime'" >> ~/.vimrc && vim +PluginInstall` +1. With [Vundle](https://github.com/gmarik/vundle): `echo "Plugin 'https://gitdab.com/lavatech/vim-rana'" >> ~/.vimrc && vim +PluginInstall` - Or with [Pathogen](https://github.com/tpope/vim-pathogen): `cd ~/.vim/bundle && git clone git://github.com/wakatime/vim-wakatime.git` + Or with [Pathogen](https://github.com/tpope/vim-pathogen): `cd ~/.vim/bundle && git clone https://gitdab.com/lavatech/vim-rana.git` - Or with [Vim-plug](https://github.com/junegunn/vim-plug): add `Plug 'wakatime/vim-wakatime'` to .vimrc file. While in vim reload .vimrc with `:so ~/.vimrc` or restart vim, enter + Or with [Vim-plug](https://github.com/junegunn/vim-plug): add `Plug 'https://gitdab.com/lavatech/vim-rana'` to .vimrc file. While in vim reload .vimrc with `:so ~/.vimrc` or restart vim, enter `:PlugInstall`. 2. Enter your [api key](https://wakatime.com/settings#apikey), then press `enter`. -3. Use Vim and your coding activity will be displayed on your [WakaTime dashboard](https://wakatime.com). +3. Enter your Rana instance's base URL on the `~/.wakatime.cfg` file. Put it on the `base_url` field. e.g `base_url=https://rana.discordapp.io` + +4. Use Vim and your coding activity will be displayed on your preffered rana instance. Note: WakaTime depends on [Python](http://www.python.org/getit/) being installed to work correctly. -Screen Shots ------------- - -![Project Overview](https://wakatime.com/static/img/ScreenShots/Screen-Shot-2016-03-21.png) - - Configuring ----------- @@ -81,7 +74,7 @@ For more general troubleshooting info, see the [wakatime-cli Troubleshooting Sec Uninstalling ------------ -1. Remove `Plugin 'wakatime/vim-wakatime'` from your `.vimrc` file. +1. Remove `Plugin 'lavatech/vim-rana'` from your `.vimrc` file. 2. Run in terminal: `rm ~/.wakatime.*`. diff --git a/packages/wakatime/api.py b/packages/wakatime/api.py index 546f693..06519bf 100644 --- a/packages/wakatime/api.py +++ b/packages/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', fallback=None) 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://rana.discordapp.io/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://rana.discordapp.io/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/packages/wakatime/main.py b/packages/wakatime/main.py index 02a40dc..a17b626 100644 --- a/packages/wakatime/main.py +++ b/packages/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