knitr::opts_chunk$set(eval=FALSE)
r <- download_rfb('~/data-raw/decryptr/rfb', n = 65) tirar_duplicados <- function(arqs) { which_dupe <- arqs %>% basename() %>% stringr::str_extract('[a-z0-9]+') %>% tibble::enframe() %>% janitor::get_dupes(value) %>% dplyr::distinct(value) %>% dplyr::pull() %>% glue::collapse('|') arqs[!stringr::str_detect(basename(arqs), which_dupe)] } '~/data-raw/decryptr/rfb' %>% dir(full.names = TRUE) %>% tirar_duplicados() %>% read_captcha() %>% classify()
library(decryptr) classify_dbc_one <- function(arq, user, pass) { base64 <- arq %>% readr::read_file_raw() %>% base64enc::base64encode() %>% sprintf(fmt = 'base64:%s', .) captcha_data <- list(username = user, password = pass, captchafile = base64) url_captcha <- 'http://api.dbcapi.me/api/captcha' r_captcha <- httr::POST(url_captcha, body = captcha_data) if (httr::status_code(r_captcha) == 200) { ct <- httr::content(r_captcha) arq_captcha <- decryptr::read_captcha(arq) if (ct$is_correct) { decryptr::classify(arq_captcha, answer = ct$text) } else { decryptr::classify(arq_captcha, answer = sprintf('%s_WRONG', ct$text)) } } invisible(TRUE) } classify_dbc <- function(arqs, user, pass) { n <- length(arqs) safe_classify_dbc_one <- purrr::possibly(classify_dbc_one, FALSE) p <- progress::progress_bar$new(total = n) result <- purrr::map_lgl(arqs, ~{ result <- safe_classify_dbc_one(.x, user, pass) p$tick() result }) result }
library(decryptr) x <- file.rename(arqs, sprintf('%s/%s', dirname(arqs), tolower(basename(arqs)))) arqs <- '~/decryptr/captchaReceitaData/inst/img' %>% dir(full.names = TRUE, pattern = '_[a-z0-9A-Z]+\\.png$')
library(decryptr) dest_dir <- '~/decryptr/captchaReceitaData/inst/img' classified_captchas <- dest_dir %>% dir(full.names = TRUE, pattern = '_') %>% magrittr::extract(file.size(.) > 0) %>% stringr::str_subset('_[a-z0-9A-Z]{6}\\.png$') %>% read_captcha() prepared_rfb <- prepare(classified_captchas) saveRDS(prepared_rfb, '~/decryptr/decryptr/vignettes/prepared_rfb.rds')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.