#' QGIS-i funktsiooni väljundist uue sisendiks vajaliku fraasi konstrueerimine #' #' See funktsioon konstrueerib 'QGIS' funktsiooni väljundi logisse tekkiva input parameetrid kujule, mida oleks võimalik kasutada funktsiooni \code{\link[qgisprocess]{qgis_run_algorithm}} argumentidena. #' #' Näidis: #' Processing algorithm… #' Algorithm 'Export to PostgreSQL' starting… #' Input parameters: #' { 'CREATEINDEX' : True, 'DATABASE' : 'Data', 'DROP_STRING_LENGTH' : False, 'ENCODING' : 'UTF-8', 'FORCE_SINGLEPART' : False, 'GEOMETRY_COLUMN' : 'geom', 'INPUT' : '/data/gpkg/teed/teed_l.gpkg|layername=teed_l', 'LOWERCASE_NAMES' : True, 'OVERWRITE' : True, 'PRIMARY_KEY' : 'fid', 'SCHEMA' : 'data', 'TABLENAME' : 'mikihiir' } #' @param str string A QGIS input parameters. #' @return A string. #' @seealso [qgisprocess::qgis_run_algorithm], [ruut::construct_ogr2ogr_PG_connect_str] #' @keywords QGIS #' @export #' @examples #' #' \dontrun{ #' #' # QGIS funktsiooni käivitamisel saatakse logisse argumentidest järgmine väljund #' str <- "{ 'CREATEINDEX' : True, 'DATABASE' : 'Data', 'DROP_STRING_LENGTH' : False, #' 'ENCODING' : 'UTF-8', 'FORCE_SINGLEPART' : False, 'GEOMETRY_COLUMN' : 'geom', #' 'INPUT' : '/data/gpkg/teed/teed_l.gpkg|layername=teed_l', 'LOWERCASE_NAMES' : True, #' 'OVERWRITE' : True, 'PRIMARY_KEY' : 'fid', 'SCHEMA' : 'data', 'TABLENAME' : 'mikihiir' }" #' #' construct_qgis_output_result_to_beter_format(str = str) #' } construct_qgis_output_result_to_beter_format <- function(str = "") { ## Asendame "\'" sümbolitega "$$", et hilem tagasiasendust teha. str <- gsub("=\'([a-zA-Z0-9_/=./]*)\' ", "=@@\\1@@ ", str) str <- gsub("\\\"([a-zA-Z0-9_/=./]*)\\\"", "##\\1##", str) ## Asendame autentimise tunnuse salasõnaga. str <- gsub("(authcfg=[0-9a-zA-Z_/=.]+\\.{0,1}[0-9a-zA-Z_/=.]*)", "password=@@osm@@", str) str <- gsub("'True'", "1", str) str <- gsub("'False'", "0", str) # Numbrite ümbert ülakomade eemaldamine str <- gsub("'([0-9]+\\.{0,1}[0-9]*)'", "\\1", str) str <- gsub("[(]geom[)]", "(geom)", str) str_list <- str # Suurte tähtede ümbert ülakomade eemaldamine str <- gsub("'([A-Z_]*)'", "\\1", str) str <- gsub("[{]", "algorithm=algorithm,", str) str <- gsub("[}]", "", str) str <- gsub("##", "\"", str, fixed = T) str <- gsub("@@", "\\'", str, fixed = T) str <- gsub(", ", ",\n", str) str <- gsub(":", "=", str) # list str_list <- gsub("'", "\"", str_list) str_list <- gsub("@@", "\\", str_list) str_list <- gsub("##", "\\", str_list) str_list <- jsonlite::fromJSON(str_list) # names(str_list) cat(sprintf("\n\n%s\n\n\n",str)) return(str_list) }