| 224 | } |
| 225 | |
| 226 | function parseLatest(redownload_text) { |
| 227 | var latest = null; |
| 228 | var redownload_object = null; |
| 229 | try { |
| 230 | redownload_object = JSON.parse(redownload_text); |
| 231 | } catch (e) { |
| 232 | console.log("[DEMOD] Failed to parse re-downloaded response."); |
| 233 | } |
| 234 | if (redownload_object !== null && redownload_object.hasOwnProperty('mapping')) { |
| 235 | var latest_time = 0; |
| 236 | for (var map_key in redownload_object.mapping) { |
| 237 | var map_obj = redownload_object.mapping[map_key]; |
| 238 | if (map_obj.hasOwnProperty('message') && map_obj.message != null |
| 239 | && map_obj.message.hasOwnProperty('create_time') && map_obj.message.create_time > latest_time) { |
| 240 | latest = map_obj.message; |
| 241 | } |
| 242 | } |
| 243 | } |
| 244 | |
| 245 | return latest; |
| 246 | } |
| 247 | |
| 248 | async function redownloadLatest() { |
| 249 | var original_request = init_cache; |