DEV/ORIG_AQUO_NL/GetDateLastPublished.R

GetDateLastPublished <- function(pDomeintabel) {
  library(jsonlite)
  library(httr)
  library(RCurl)
  
  maakTekstURL <- function(tekstURL,categorie,beperking,kenmerken,opmaak){
    returnstring <- paste(tekstURL,categorie,beperking,kenmerken,opmaak,sep="")
    return (returnstring)
  }
  
  bewerkDatum  <- function(pDatum){
    lDatum <- substring(toString(pDatum),3,nchar(pDatum)-2)
    lDatum <- toString(lubridate::parse_date_time(lDatum,orders="ymdHMS"))
    return(lDatum)
  }
  
  domeinTabel <- NULL
  tekstUrl <- "https://www.aquo.nl/index.php"
  lStartPage <- 0
  lLimit <- 1
  curl <- getCurlHandle()
  opmaakJson <- paste("%2F&format=json&link=none&headers=show&searchlabel=JSON&class=sortable+wikitable+smwtable"
                      ,"&theme=bootstrap&offset=0&limit=1"
                      ,"&mainlabel=&prettyprint=true&unescape=true"
                      ,sep="")
  
  categorie <- "?title=Speciaal:Vragen&x=-5B-5BElementtype%3A%3ADomeintabel%20%7C%7C%20Domeintabeltechnisch%20%7C%7C%20Domeintabelverzamellijst-5D-5D-20"
  kenmerken <- "%2F-3FElementtype%2F-3FVoorkeurslabel"
  beperking <- paste("-5B-5BVoorkeurslabel%3A%3A",pDomeintabel,sep = "")
  json_file <- maakTekstURL(tekstUrl,categorie,beperking,kenmerken,opmaakJson)
  #message(json_file)
  req <- httr::GET(json_file, curl=curl)
  
  lReturnDF <- data.frame(matrix(ncol = 3, nrow = 0))
  colnames(lReturnDF) <- as.list(c("Domeintabel","LaatstePublicatieDatum","Melding"))
  lReturnDF[1,"Domeintabel"] <- pDomeintabel
  
  if (req$status_code == 200 && length(req$content) > 0) {
    domeinTabel <- jsonlite::fromJSON(httr::content(req, "text", encoding="UTF-8"))$results
    
    domeinwaardeCategorie <- NULL
    domeinwaardeCategorie["Domeintabel"]              <- "Domeinwaarden"
    domeinwaardeCategorie["Domeintabeltechnisch"]     <- "DomeinwaardenTechnisch"
    domeinwaardeCategorie["Domeintabelverzamellijst"] <- "Domeinwaarden"
    
    lAantalDomTabellen <- length(domeinTabel)
    if (lAantalDomTabellen == 1) {
      domeinGuid <- domeinTabel[[1]]$fulltext
      domeinElementtype <- domeinTabel[[1]]$printouts$Elementtype$fulltext

      lTypeTabel <- paste("-5B-5BElementtype%3A%3A",domeinElementtype,"-5D-5D-20",sep = "")
      beperking <- paste("-5B-5BBreder%3A%3A",gsub("-","-2D",domeinGuid),"-5D-5D",sep = "")
      categorie <- paste("?title=Speciaal:Vragen&x=-5B-5BCategorie%3A",
                         domeinwaardeCategorie[domeinElementtype],"-5D-5D-20",sep = "")
      
      kenmerken <- "%2F-3FVoorkeurslabel%2F-3FWijzigingsdatum"
      opmaakJson <- paste("/format%3Djson/link%3Dall/headers%3Dshow/searchlabel=JSON/class=sortable-20wikitable-20smwtable"
                          ,"/sort%3DWijzigingsdatum/order%3Ddesc"
                          ,"/theme=bootstrap/offset=0/limit=1"
                          ,"/mainlabel=/prettyprint=true/unescape=true"
                          ,sep="")
      json_file <- maakTekstURL(tekstUrl,categorie,beperking,kenmerken,opmaakJson)
      #message(json_file)
      req <- httr::GET(json_file, curl=curl)
      if (req$status_code == 200 && length(req$content) > 0) {
        domainsJson <- jsonlite::fromJSON(httr::content(req, "text", encoding="UTF-8"))$results
        message(paste("Laatst gewijzigd:",unlist(domainsJson[[1]]$printouts["Voorkeurslabel"])))
        lDatum <- bewerkDatum(unlist(domainsJson[[1]]$printouts["Wijzigingsdatum"][[1]]$raw))
        lReturnDF[1,"LaatstePublicatieDatum"] <- lDatum
      }
      else lReturnDF[1,"Melding"] <- "Domeintabel heeft geen domeinwaarden."
    }
  }  
  else {
    lReturnDF[1,"Melding"] <- "Domeintabel bestaat niet."
  }
  return(lReturnDF)
}
RedTent/aquodom documentation built on March 25, 2022, 6:49 a.m.