R/include_utils.R

Defines functions avanz_export avanz_import digits_to_time secs_to_digits listing get_users avanz_f subs_dir

## ---------------------
## Files and directories
## ---------------------
subs_base  <- 'subs'
source_dir <- 'source'
users_path <- "data/users.csv"

subs_dir <- function(prj) sprintf('%s/%s', subs_base, prj)
avanz_f <- function(prj) {
    ## genera il percorso del file di avanzamento per un dato progetto
    sprintf('%s/%s', subs_dir(prj), 'zz_avanzamento.csv')
}
sandbox_template_revisori1 <- "subs/sandbox/template_revisori1.srt"
sandbox_template_traduttori <- "subs/sandbox/template_traduttori.srt"


## ---------
## Utilities
## ---------

get_users <- function(){
    ## obtain github login by role
    all         <- read.csv(users_path)
    translators <- users[users$translator, 'gh_user']
    revisors    <- users[users$revisor   , 'gh_user']
    list('translators' = translators, 'revisors' = revisors)
}

listing <- function(x) {
    ## lista caratteri separati da newline (per nomi file tipicamente)
    cat(x, "\n", sep = '\n')
}

secs_to_digits <- function(s){# s is seconds as integer
    ## return numeric second to a XXYYZZ character format where
    ## XX=hours, YY=minutes, ' ZZ=seconds
    sec_in_a_hour <- 1L * 60L * 60L
    sec_in_a_min  <- 60L
    remaining <- as.integer(s)
    hours <- as.integer(floor(remaining / sec_in_a_hour))
    remaining <- remaining - hours * sec_in_a_hour
    minutes <- as.integer(floor(remaining / sec_in_a_min))
    secs <- remaining - minutes * sec_in_a_min
    sprintf("%s%s%s",
            lbmisc::to_00_char(hours, 2),
            lbmisc::to_00_char(minutes, 2),
            lbmisc::to_00_char(secs, 2))
}

digits_to_time <- function(d){
    ## from "000500" to "00:05:00"
    ptrn <- "([[:digit:]]{2})([[:digit:]]{2})([[:digit:]]{2})"
    gsub(ptrn, "\\1:\\2:\\3", d)
}

avanz_import <- function(f) {
    ## importa file avanzamento
    utils::read.csv(file = f)
}
avanz_export <- function(x, f) {
    ## esporta file avanzamento
    utils::write.csv(x = x, file = f, row.names = FALSE)
}

## ------------------------------------------------------
## Filename patterns (monitoraggio etc)
## -----------------------------------------------------
## subs_000000.srt             traduzione da iniziare
## subs_000000_nome.srt        traduzione iniziata
## subs_000000_nome_t.srt      tradotto
## subs_000000_nome_t_r.srt    in revisione 1
## subs_000000_nome_t_r_c.srt  revisione 1 completa
## -----------------------------------------------------
## revs_000000_00050000.srt         revisione2 da iniziare
## revs_000000_00050000_nome.srt    revisione2 assegnata
## revs_000000_00050000_nome_c.srt    revisione2 completata
## -----------------------------------------------------

## file patterns
compl_ptrn     <- "^subs_[[:digit:]]{6}_[[:alnum:]]+_c.srt" 
extract_ptrn     <- "^subs_([[:digit:]]{6})_([[:alnum:]]+)_c.srt" 

## patterns for filenames
trn_assigned_ptrn   <- '.+[[:digit:]]{6}.+\\.srt$'
trn_completed_ptrn  <- '.+[[:digit:]]{6}_.+_t\\.srt$'
rev1_assigned_ptrn  <- '.+[[:digit:]]{6}_.+_r\\.srt$'
rev1_completed_ptrn <- '.+[[:digit:]]{6}_.+_c\\.srt$'
rev2_assigned_ptrn  <- '.+[[:digit:]]{6}_[[:digit:]]{6}_.+\\.srt$'
rev2_completed_ptrn <- '.+[[:digit:]]{6}_[[:digit:]]{6}_.+_c\\.srt$'

## time extraction for translates and revs
rev2_starting_time_ptrn <- '.+([[:digit:]]{6})_[[:digit:]]{6}.+'
rev2_ending_time_ptrn   <- '.+[[:digit:]]{6}_([[:digit:]]{6}).+'
trn_starting_time_ptrn  <- '.+([[:digit:]]{6}).+'

all_revs_ptrn <- '^revs_[[:digit:]]{6}_[[:digit:]]{6}'
lbraglia/lbav documentation built on March 26, 2021, 2:02 a.m.