1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#' Use cat or dog pictures for various HTTP status codes
#'
#' @export
#' @name cat_for_status
#'
#' @param code An http status code
#' @param browse (logical) If `TRUE`, opens image in default browser. If
#' `FALSE`, returns the URL of the image.
#' @details uses a service for cats (https://http.cat) and
#' dogs (https://httpstatusdogs.com)
#' @return Opens image in your default browser, or returns URL
#' @examples \dontrun{
#' # give back url
#' cat_for_status(100)
#' dog_for_status(100)
#' cat_for_status(301)
#' dog_for_status(301)
#' cat_for_status(400)
#' dog_for_status(400)
#'
#' # open image in default browser
#' cat_for_status(400, browse=TRUE)
#'
#' # not found
#' # cat_for_status(555)
#' }
cat_for_status <- function(code, browse = FALSE) {
assert(code, c("numeric", "integer", "character"))
stopifnot(length(code) == 1)
assert(browse, "logical")
code <- as.character(code)
if (code %in% names(status_codes)) {
url <- sprintf('https://http.cat/%s', code)
if (browse) utils::browseURL(url) else url
} else {
stopcode("No cat code found", code)
}
}
#' @export
#' @rdname cat_for_status
dog_for_status <- function(code, browse = FALSE) {
assert(code, c("numeric", "integer", "character"))
stopifnot(length(code) == 1)
assert(browse, "logical")
code <- as.character(code)
if (code %in% names(status_codes)) {
url <- sprintf('https://httpstatusdogs.com/wp-content/uploads/%s.jpg', code)
if (browse) utils::browseURL(url) else url
} else {
stopcode("No dog code found", code)
}
}
|