Compare commits
	
		
			7 commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b7112ff3ae | |||
| 605e6096fb | |||
| effc88f809 | |||
| 0e6020c4f3 | |||
| a91facf922 | |||
| 48f256cb52 | |||
| 5b2a737327 | 
					 3 changed files with 23 additions and 27 deletions
				
			
		
							
								
								
									
										29
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										29
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,37 +1,30 @@
 | 
			
		|||
[](https://github.com/wakatime/vim-wakatime#installation)
 | 
			
		||||
[](https://github.com/wakatime/vim-wakatime#installation)
 | 
			
		||||
[](https://github.com/wakatime/vim-wakatime#installation)
 | 
			
		||||
[](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
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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.*`.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue