#' userscrap
#'
#' Use twitterscraper to scrap tweets of a user.
#'
#' @importFrom stringi stri_rand_strings
#' @importFrom stringr str_remove
#' @import dplyr
#' @import readr
#' @param request The query corresponding to the datas to search for. Must be a twitter username
#' @return The datas of the sent request.
#' @export
userscrap <- function(request) {
request <- str_remove(request, "@")
tempfile_name <- stringi::stri_rand_strings(1, 28, '[a-z]')
system(paste0("twitterscraper \"", request,"\" -u -c -o ", tempfile_name, ".csv"))
if ((paste0(tempfile_name, ".csv") %in% list.files(".")) == FALSE) {
stop("No tweet retrieved.")
}
datas <- read_csv(paste0(tempfile_name, ".csv"), col_types = cols(
user = col_character(),
fullname = col_character(),
`tweet-id` = col_character(),
timestamp = col_datetime(format = ""),
url = col_character(),
likes = col_integer(),
replies = col_integer(),
retweets = col_integer(),
text = col_character(),
html = col_character()
)) %>%
rename(status_id = `tweet-id`,
screen_name = user,
name = fullname,
created_at = timestamp,
favorite_count = likes,
retweet_count = retweets,
reply_count = replies) %>%
mutate(url = paste0("https://twitter.com", url),
is_retweet = ifelse(screen_name != request, TRUE, FALSE),
text = ifelse(screen_name != request, paste0("RT @", screen_name, ": ", text), text),
screen_name = request) %>%
select(status_id, screen_name, created_at, text, favorite_count, retweet_count, reply_count, is_retweet, name, url)
file.remove(paste0(tempfile_name, ".csv"))
datas
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.