#' @title Interface to the Chuck Norris API
#' @name chucknorris
#' @description Provides programmatic access to the collection of Chuck Norris facts
#'
#' @docType package
#' @aliases chucknorris chucknorris-package
NULL
#' Retrieve a fact from the Chuck Norris API
#' @param category A string containing the category of interest(set it to NULL for a random fact).
#' Use \code{\link{list_categories}} to display the available categories.
#' @return A list containing the fact(s) and the related ids
#' @references https://api.chucknorris.io/
#' @import httr
#' @export
#' @examples
#' library("chucknorris")
#' science_facts<- facts(category="science")
#'
#'
facts <- function(category=NULL){
if(is.null(category)) {
r <- GET("https://api.chucknorris.io/jokes/random")
} else {
r <- GET(paste0("https://api.chucknorris.io/jokes/random?category=", category))
}
if (r$status_code != 200) {
stop_for_status(r)
} else {tmp <- content(r)}
tmp
}
print <- function(x, ...) cat(x$value, "\n", sep="")
#' This methods permits to look for a Chuck Norris fact based on a word (or phrase)
#' I
#' @param text A character containing the word (phrase) you are looking among facts
#' @return a list containing all the results related to the query param
#' @references https://api.chucknorris.io
#' @export
#' @examples
#' library("chucknorris")
#' query(text="rambo")
#'
query <- function(text=NULL){
if(is.null(text)){
r <- GET("https://api.chucknorris.io/jokes/random")
} else {
r <- GET(paste0("https://api.chucknorris.io/jokes/search?query=", text))
}
if (r$status_code != 200) {
stop_for_status(r)
} else {tmp <- content(r)}
tmp
}
#' Returns a list corresponding to the currently available categories
#' @return A list containing the currently available categories
#' @references https://api.chucknorris.io
#' @export
#' @examples
#' library('chucknorris')
#' list_categories()
list_categories <- function(){
r <- GET("https://api.chucknorris.io/jokes/categories")
if (r$status_code != 200) stop_for_status(r) else tmp <- content(r)
unlist(tmp)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.