library(flexdashboard)
#library(highcharter)
library(memoise)
library(detectR)
library(httr)
library(countrycode)
library(nominatim)
library(sf)
library(leaflet)
library(ggplot2)
library(hrbrthemes)
library(plotly)
library(tidyverse)

Combien de lecteurs inattendus ?

# df_visites <- GET(paste0("http://localhost:6666/get_visits?visited_url=", params$url, "&from=", params$periode_start, "&to=", params$periode_end)) %>% 
#   content(as = "text") %>% 
#   jsonlite::fromJSON() %>% 
#   as_tibble()
monetdb <- config::get("monetdb", file = "~/detectR/inst/API/config.yml")
conn <- pool::dbPool(drv = eval(parse(text = monetdb$drv)),
                     embedded = monetdb$embedded)

# df_visites <- get_visits(conn, visited_urls = params$url, from = params$periode_start, to = params$periode_end)
df_visites <- tbl(conn, "visites_par_jour") %>% 
  filter(url %in% params$url) %>% 
  filter(date >= params$periode_start & date <= params$periode_end) %>% 
  collect()

pool::poolClose(conn)
MonetDBLite::monetdblite_shutdown()

df_visites$date <- lubridate::ymd(df_visites$date)
# df_visites <- xts::xts(df_visites$n, order.by = df_visites$date)
# 
# # df_visites <- m_get_visits(df()[input$episode_rows_selected, "URL"], 
# #                                  from = ymd(format(input$date[1])),
# #                                  to = ymd(format(input$date[2])),
# #                                  backend = tbl_all_actions)
# #       
# 
# 
# highchart(type = "stock") %>%
#   hc_add_series(df_visites, id = "visites")

p <- df_visites %>% 
  ggplot(aes(x = date, y = n)) +
  geom_line() +
  theme_ipsum() +
  labs(x = NULL, y = NULL)

ggplotly(p)

Par où sont arrivés les lecteurs inattendus ? Les referers

monetdb <- config::get("monetdb", file = "~/detectR/inst/API/config.yml")
conn <- pool::dbPool(drv = eval(parse(text = monetdb$drv)),
                     embedded = monetdb$embedded)

url_cible <- unfix_revues_org(params$url)
logs_par_referer_inattendu <- tbl(conn, "all_actions") %>% 
  filter(url %in% url_cible, date %in% params$date_episode) %>% 
  count(referer_name) %>% 
  collect() %>% 
  mutate(p = n / sum(n) * 100) 

logs_par_referer_habituel <- tbl(conn, "all_actions") %>% 
  filter(url %in% url_cible, !date %in% params$date_episode) %>% 
  count(referer_name) %>% 
  collect() %>% 
  mutate(p = n / sum(n) * 100)


pool::poolClose(conn)
MonetDBLite::monetdblite_shutdown()

logs_par_referer <- bind_rows(habituel = logs_par_referer_habituel, inattendu = logs_par_referer_inattendu, .id = "referer")


p <- logs_par_referer %>% 
  arrange(p) %>% 
  filter(!is.na(referer_name)) %>% 
  mutate(referer_name = factor(referer_name, levels = unique(referer_name))) %>% 
  ggplot(aes(x = referer_name, y = p)) +
  geom_bar(aes(fill = referer), stat = "identity", position = position_dodge()) +
  coord_flip() +
  theme_ipsum(grid = "X") +
  labs(y = "en % des visites",  x = "")


ggplotly(p)

D'où viennent les lecteurs inattendus ?

monetdb <- config::get("monetdb", file = "~/detectR/inst/API/config.yml")
conn <- pool::dbPool(drv = eval(parse(text = monetdb$drv)),
                     embedded = monetdb$embedded)

logs_par_pays <- tbl(conn, "all_actions") %>% 
  filter(url %in% url_cible, date %in% params$date_episode) %>% 
  count(location_country) %>% 
  collect()

pool::poolClose(conn)
MonetDBLite::monetdblite_shutdown()

countries <- read_tsv(system.file("extdata/country_centroids_all.csv", package = "detectR"))

logs_par_pays %>% 
  mutate(pays = countrycode(location_country, "iso2c", "un.name.fr")) %>% 
  mutate(location_country = toupper(location_country)) %>% 
  left_join(countries, by = c("location_country" = "ISO3136")) %>% 
  filter(!is.na(LONG)) %>% 
  st_as_sf(coords = c("LONG", "LAT"), 
                 crs = 4326, agr = "constant") %>% 
  leaflet() %>% 
  addTiles() %>% 
  addCircleMarkers(radius = ~sqrt(n), stroke = FALSE, fillOpacity = 0.5,
                   popup = ~ paste0(pays, "<BR>", n, " consultations"))  

Habituellement, d'où viennent les lecteurs de ce document ?

monetdb <- config::get("monetdb", file = "~/detectR/inst/API/config.yml")
conn <- pool::dbPool(drv = eval(parse(text = monetdb$drv)),
                     embedded = monetdb$embedded)

logs_par_pays <- tbl(conn, "all_actions") %>% 
  filter(url %in% url_cible) %>% 
  count(location_country) %>% 
  collect()

pool::poolClose(conn)
MonetDBLite::monetdblite_shutdown()

countries <- read_tsv(system.file("extdata/country_centroids_all.csv", package = "detectR"))

logs_par_pays %>% 
  mutate(pays = countrycode(location_country, "iso2c", "un.name.fr")) %>% 
  mutate(location_country = toupper(location_country)) %>% 
  left_join(countries, by = c("location_country" = "ISO3136")) %>% 
  filter(!is.na(LONG)) %>% 
  st_as_sf(coords = c("LONG", "LAT"), 
                 crs = 4326, agr = "constant") %>% 
  leaflet() %>% 
  addTiles() %>% 
  addCircleMarkers(radius = ~sqrt(n), stroke = FALSE, fillOpacity = 0.5,
                   popup = ~ paste0(pays, "<BR>", n, " consultations"))  


joelgombin/detectR documentation built on May 21, 2019, 7:55 a.m.