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=""))