73 lines
2.5 KiB
R
73 lines
2.5 KiB
R
library(tidyverse)
|
|
library(dplyr)
|
|
library(lubridate)
|
|
c1_event_date <- as.Date("2013-07-01")
|
|
c2_event_date <- as.Date("2013-08-28")
|
|
c3_event_date <- as.Date("2015-07-02")
|
|
relative_week <- function(date, ref_date) {
|
|
as.integer(as.numeric(difftime(date, ref_date, units = "days")) %/% 7)
|
|
}
|
|
|
|
core_csv <-"~/121325_work/121225_vd_data/extension_VisualEditor_2000-01-01_to_2016-12-31.csv"
|
|
core_df <- read.csv(core_csv, header = TRUE)
|
|
known_affil_emails <- c("krinkle@fastmail.com", "roan.kattouw@gmail.com",
|
|
"trevorparscal@gmail.com", "krinklemail@gmail.com", "moriel@gmail.com")
|
|
active_names<- c("Timo Tijhof", "Krinkle", "Roan Kattouw", "Catrope",
|
|
"Trevor Parscal", "Ed Sanders")
|
|
core_df <- core_df |>
|
|
mutate(commit_date = ymd_hms(commit_date)) |>
|
|
mutate(isAuthorWMF = case_when(
|
|
author_name %in% active_names ~ "FIVE",
|
|
grepl("@wikimedia\\.org", author_email, ignore.case = TRUE) ~ "TRUE",
|
|
grepl("@wikimedia\\.de", author_email, ignore.case = TRUE) ~ "TRUE",
|
|
grepl("l10n-bot@translatewiki\\.net", author_email, ignore.case = TRUE) ~ "localization",
|
|
grepl("@gerrit\\.wikimedia\\.org", author_email, ignore.case = TRUE) ~ "Gerrit",
|
|
TRUE ~ "FALSE"
|
|
)) |>
|
|
mutate(isVE = case_when(
|
|
grepl("VisualEditor", message, ignore.case = TRUE) ~ TRUE,
|
|
grepl(" VE ", message, ignore.case = TRUE) ~ TRUE,
|
|
TRUE ~ FALSE
|
|
))
|
|
|
|
c1_core_weekly <- core_df |>
|
|
mutate(week_index = relative_week(commit_date, c1_event_date)) |>
|
|
group_by(week_index, isAuthorWMF)|>
|
|
summarise(count = n(), .groups = 'drop')|>
|
|
filter(week_index >= -9 & week_index < -4) |>
|
|
mutate(source = 'c1')
|
|
c1summary <- c1_core_weekly |>
|
|
group_by(isAuthorWMF)|>
|
|
summarize(total = sum(count))
|
|
|
|
|
|
c2_core_weekly <- core_df |>
|
|
mutate(week_index = relative_week(commit_date, c2_event_date)) |>
|
|
group_by(week_index, isAuthorWMF)|>
|
|
summarise(count = n(), .groups = 'drop')|>
|
|
filter(week_index >= -104 & week_index <= 13) |>
|
|
mutate(source = 'c2')
|
|
|
|
c3_core_weekly <- core_df |>
|
|
mutate(week_index = relative_week(commit_date, c3_event_date)) |>
|
|
group_by(week_index, isAuthorWMF)|>
|
|
summarise(count = n(), .groups = 'drop')|>
|
|
filter(week_index >= -83 & week_index <= 13) |>
|
|
mutate(source = 'c3')
|
|
#collate and save
|
|
core_weekly <- rbind(c1_core_weekly, c2_core_weekly, c3_core_weekly)
|
|
|
|
c1summary <- c1_core_weekly |>
|
|
group_by(isAuthorWMF)|>
|
|
summarize(total = sum(count))
|
|
|
|
c2summary <- c2_core_weekly |>
|
|
group_by(isAuthorWMF)|>
|
|
summarize(total = sum(count))
|
|
|
|
c3summary <- c3_core_weekly |>
|
|
group_by(isAuthorWMF)|>
|
|
summarize(total = sum(count))
|
|
|
|
|