mirror of https://git.sr.ht/~hrbrmstr/splashr
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.6 KiB
69 lines
1.6 KiB
splash_url <- function(splash_obj) { sprintf("http://%s:%s", splash_obj$host, splash_obj$port) }
|
|
|
|
#' Configure parameters for connecting to a Splash server
|
|
#'
|
|
#' @param host host or IP address
|
|
#' @param port port the server is running on (default is 8050)
|
|
#' @export
|
|
splash <- function(host, port=8050L) {
|
|
list(host=host, port=port)
|
|
}
|
|
|
|
#' @rdname splash
|
|
#' @export
|
|
splash_local <- splash("localhost")
|
|
|
|
s_GET <- purrr::safely(GET)
|
|
|
|
#' Test if a Splash server is up
|
|
#'
|
|
#' @md
|
|
#' @param splash_obj A splash connection object
|
|
#' @return `TRUE` if Slash server is running, otherwise `FALSE`
|
|
#' @export
|
|
splash_active <- function(splash_obj) {
|
|
|
|
res <- s_GET(splash_url(splash_obj), path="_ping")
|
|
|
|
if (is.null(res$result)) return(FALSE)
|
|
if (httr::status_code(res$result) >=300) return(FALSE)
|
|
|
|
httr::content(res$result, as="text", encoding="UTF-8") %>%
|
|
jsonlite::fromJSON() -> out
|
|
|
|
out$url <- splash_url(splash_obj)
|
|
|
|
message(sprintf("Status of splash instance on [%s]: %s. Max RSS: %s\n", out$url, out$status, out$maxrss))
|
|
|
|
if ("status" %in% names(out)) return(out$status == "ok")
|
|
|
|
return(FALSE)
|
|
|
|
}
|
|
|
|
#' Retrieve debug-level info for a Splash server
|
|
#'
|
|
#' @param splash_obj A splash connection object
|
|
#' @export
|
|
splash_debug <- function(splash_obj) {
|
|
|
|
httr::GET(splash_url(splash_obj), path="_debug") %>%
|
|
httr::stop_for_status() %>%
|
|
httr::content(as="text", encoding="UTF-8") %>%
|
|
jsonlite::fromJSON() -> out
|
|
|
|
out$url <- splash_url(splash_obj)
|
|
|
|
class(out) <- c("splash_debug", class(out))
|
|
|
|
out
|
|
|
|
}
|
|
|
|
#' @rdname splash_debug
|
|
#' @keywords internal
|
|
#' @export
|
|
print.splash_debug <- function(x, ...) {
|
|
print(str(x))
|
|
invisible(x)
|
|
}
|
|
|