knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)

wakatimer: UNOFFICIAL WakaTime Plugin for RStudio

library(remoji)

Currently, test cheking Mac OS X only. Please report other plaform result and issues.

進捗どうですか

(image by いらすとや http://www.irasutoya.com)

r emoji("computer") Requirement and Setup

  1. Create a WakaTime accont.
  2. Configure your own API key.
  3. Create a new app and get an OAuth 2.0 client token to use wakatimer. Add http://localhost:1410/ as an Authorized Redirect URI.

Then, Install package from GitHub repository.

devtools::install_github("uribo/wakatimer")

r emoji("beginner") How to Use

Loading package and run write_scope() function to authorize.

library(wakatimer)
write_scope()
# Waiting for authentication in browser...
# Press Esc/Ctrl + C to abort
# Authentication complete.

Next, wakatime api key and app id set to R global environment.

Sys.setenv("WAKATIME_KEY" = "<your api key>")
Sys.setenv("WAKATIME_ID" = "<application id>")
Sys.setenv("WAKATIME_SECRET" = "<application secret>")

I recommend these variables are add to .Rprofile such as below.

# .Rprofile
Sys.setenv(
  WAKATIME_KEY     = "<your api key>",
  WAKATIME_ID      = "<application id>",
  WAKATIME_SECRET  = "<application secret>"
)

Use like you normally do and your time will record by log.

q()
# execute `wt_post()` function in the background

The {wakatimer} provide current sessions modificate file information will sent to WakaTime!! Visit https://wakatime.com to see your logged time. However, when in such situation out of scope for post to wakatime API 1) Force Quit RStudio 2) Restart R.

Also, you can confirm in RStudio :)

# project,language,branch,is_write,is_debugging,lines
req <- wakatimer:::wt_api(resource = "heartbeats", 
                   key = Sys.getenv("WAKATIME_KEY"), 
                   param = list(date = format(Sys.Date(), "%m/%d/%Y"), time = "time", "entity"))
req$data %>% head() %>% knitr::kable(format = "markdown")

|entity |id | time|type | |:------------------------------------------------------|:------------------------------------|----------:|:----| |~/git/r_pkg/wakatimer/vignettes/wakatimer-workflow.Rmd |02d27d37-d228-49f4-9067-2ee7260fc14d | 1453734664|file | |~/git/r_pkg/wakatimer/R/zzz.R |207cd092-251b-40d4-b1c4-f26a296f298e | 1453742043|file | |~/git/r_pkg/wakatimer/R/zzz.R |94d89fae-3407-4ee0-a920-8cce3f375038 | 1453742827|file | |~/git/r_pkg/wakatimer/.Rprofile |61bc6270-3b9b-4f9e-8241-9a1a8b2b5f08 | 1453745367|file | |~/git/r_pkg/wakatimer/R/wt_sync.R |53b85419-fc44-4fc8-beef-f7d6f94aaa17 | 1453746391|file | |~/git/r_pkg/wakatimer/README.Rmd |71a5c819-6299-4287-b3cd-55f79d872ab7 | 1453747159|file |

Recommend

Do not forget loading package.

# .Rprofile
.First <- function() {
  # invalid when rmarkdown render
  if(interactive()) {
    suppressMessages(library(wakatimer))
    wakatimer::write_scope()
  }
}

r emoji("moyai") Milestone

0.1.0

0.2.0

r emoji("rotating_light") Current Issues

多分、正常に動作ているだろうという不安さ。



uribo/wakatimer documentation built on May 3, 2019, 2:37 p.m.