|
| 1 | +#this is for unorganized versioness data (e.g. a single zip file for all |
| 2 | +#sites). we could turn this into a function, and make a separate function for |
| 3 | +#versionless data that's separated into several files. |
| 4 | + |
| 5 | +loginfo('Beginning retrieve (versionless products)', |
| 6 | + logger = logger_module) |
| 7 | + |
| 8 | +prod_info <- get_product_info(network = network, |
| 9 | + domain = domain, |
| 10 | + status_level = 'retrieve', |
| 11 | + get_statuses = 'ready') %>% |
| 12 | + filter(grepl(pattern = '^VERSIONLESS', |
| 13 | + x = prodcode)) |
| 14 | + |
| 15 | +if(! is.null(prodname_filter)){ |
| 16 | + prod_info <- filter(prod_info, prodname %in% prodname_filter) |
| 17 | +} |
| 18 | + |
| 19 | +if(nrow(prod_info) == 0) return() |
| 20 | + |
| 21 | +site_code <- 'sitename_NA' |
| 22 | + |
| 23 | +## i = 4 |
| 24 | +for(i in seq_len(nrow(prod_info))){ |
| 25 | + |
| 26 | + prodcode <- prod_info$prodcode[i] |
| 27 | + |
| 28 | + prodname_ms <<- paste0(prod_info$prodname[i], |
| 29 | + '__', |
| 30 | + prodcode) |
| 31 | + |
| 32 | + held_data <<- get_data_tracker(network = network, |
| 33 | + domain = domain) |
| 34 | + |
| 35 | + if(! product_is_tracked(tracker = held_data, |
| 36 | + prodname_ms = prodname_ms)){ |
| 37 | + |
| 38 | + held_data <<- track_new_product(tracker = held_data, |
| 39 | + prodname_ms = prodname_ms) |
| 40 | + } |
| 41 | + |
| 42 | + if(! site_is_tracked(tracker = held_data, |
| 43 | + prodname_ms = prodname_ms, |
| 44 | + site_code = site_code)){ |
| 45 | + |
| 46 | + held_data <<- insert_site_skeleton( |
| 47 | + tracker = held_data, |
| 48 | + prodname_ms = prodname_ms, |
| 49 | + site_code = site_code, |
| 50 | + site_components = prod_info$components[i], |
| 51 | + versionless = TRUE |
| 52 | + ) |
| 53 | + } |
| 54 | + |
| 55 | + update_data_tracker_r(network = network, |
| 56 | + domain = domain, |
| 57 | + tracker = held_data) |
| 58 | + |
| 59 | + dest_dir <- glue('data/{n}/{d}/raw/{p}/{s}', |
| 60 | + n = network, |
| 61 | + d = domain, |
| 62 | + p = prodname_ms, |
| 63 | + s = site_code) |
| 64 | + |
| 65 | + dir.create(path = dest_dir, |
| 66 | + showWarnings = FALSE, |
| 67 | + recursive = TRUE) |
| 68 | + |
| 69 | + retrieval_s <- held_data[[prodname_ms]][['sitename_NA']][['retrieve']][['status']] |
| 70 | + |
| 71 | + if(retrieval_s == 'ok'){ |
| 72 | + loginfo(glue('Nothing to do for {s} {p}', |
| 73 | + s=site_code, p=prodname_ms), logger=logger_module) |
| 74 | + next |
| 75 | + } else { |
| 76 | + loginfo(glue('Retrieving {s} {p}', |
| 77 | + s=site_code, p=prodname_ms), logger=logger_module) |
| 78 | + } |
| 79 | + |
| 80 | + retrieve_sleepers_product(network = network, |
| 81 | + domain = domain, |
| 82 | + prodname_ms = prodname_ms, |
| 83 | + site_code = site_code, |
| 84 | + tracker = held_data, |
| 85 | + url = prod_info$url[i]) |
| 86 | + |
| 87 | + if(! is.na(prod_info$munge_status[i])){ |
| 88 | + update_data_tracker_m(network = network, |
| 89 | + domain = domain, |
| 90 | + tracker_name = 'held_data', |
| 91 | + prodname_ms = prodname_ms, |
| 92 | + site_code = site_code, |
| 93 | + new_status = 'pending') |
| 94 | + } |
| 95 | + # } |
| 96 | + |
| 97 | + gc() |
| 98 | +} |
| 99 | + |
| 100 | +loginfo('Retrieval complete for all versionless products', |
| 101 | + logger = logger_module) |
0 commit comments