URI_Replacement/03_find_URLs.R
Linsberger Christian faf4f38dac structural changes
2021-09-08 09:04:52 +02:00

43 lines
No EOL
1.4 KiB
R

library("stringr")
library("readxl")
library("writexl")
#Konfiguration einbinden
source("config/config.R")
source("functions.R")
url_pattern <- "http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"
#Excel mit den Zitaten die hinzugefügt werden sollen einlesen
df <- data.frame(read_excel(paste(PFAD_EXCEL, "distincts_automated_gc3d.xlsx", sep="")))
df <- data.frame(lapply(df, stri_enc_toutf8))
#Neue Spalte für die DownloadLinks erstellen
df['downloadLink'] <- NA
#Schleife um nach Links zu suchen
for (element in 1:length(df$bibliographicCitation)) {
#Extrahiert eventuell URLs oder DOI Angaben
url <- str_extract(df$bibliographicCitation[element], url_pattern)
doi <- find_doi(df$bibliographicCitation[element])
#Es wird nur dann versucht aus der DOI-Angabe eine URL zu erstellen, falls es keine URL gibt
if (is.na(url) && !is.null(doi)) {
#Entfernt das letzte Zeichen falls es ein Punkt ist (kommt öfter vor, deshalb so spezifisch)
if(substring(doi, nchar(doi)) == "."){
doi <- substring(doi, 1, nchar(doi) - 1)
}
#Generiert aus der DOI eine URL
url <- paste("https://doi.org/", doi, sep="")
}
#Falls es eine URL gibt, wird überprüft ob diese auflösbar ist
if (!is.na(url) && valid_url(url)) {
df$downloadLink[element] <- url
}
}
write_xlsx(df, paste(PFAD_OUT, "distincts_automatisch_mit_URL",format(Sys.time(), "%Y_%m_%d") ,".xlsx", sep=""))