(Array: listElement[], type, logger = con.m('release'))
| 107 | } |
| 108 | |
| 109 | async function multiple(Array: listElement[], type, logger = con.m('release')) { |
| 110 | if (!Array) { |
| 111 | logger.log('No MAL Id List'); |
| 112 | } else { |
| 113 | Array.forEach(el => { |
| 114 | let mode = el.options!.p; |
| 115 | if (!mode) mode = 'default'; |
| 116 | logger.m(el.apiCacheKey).log(el.title, el.cacheKey, el.apiCacheKey, `Mode: ${mode}`); |
| 117 | }); |
| 118 | } |
| 119 | |
| 120 | if (!api.settings.get('epPredictions')) { |
| 121 | logger.log('epPredictions disabled'); |
| 122 | return; |
| 123 | } |
| 124 | |
| 125 | async function asyncForEach(array, callback) { |
| 126 | for (let index = 0; index < array.length; index++) { |
| 127 | await callback(array[index], index, array); |
| 128 | } |
| 129 | } |
| 130 | |
| 131 | const remoteUpdateList: listElement[] = []; |
| 132 | await asyncForEach(Array, async el => { |
| 133 | if (!el.apiCacheKey) return; |
| 134 | |
| 135 | const releaseItem: undefined | releaseItemInterface = await api.storage.get( |
| 136 | `release/${type}/${el.cacheKey}`, |
| 137 | ); |
| 138 | |
| 139 | if (releaseItem && releaseItem.value) { |
| 140 | el.fn.progress = releaseItem.value; |
| 141 | } |
| 142 | |
| 143 | let mode = el.options!.p; |
| 144 | if (!mode) mode = 'default'; |
| 145 | logger.m(el.apiCacheKey).m('Load').log(releaseItem); |
| 146 | |
| 147 | if (releaseItem && releaseItem.mode && releaseItem.mode !== mode) { |
| 148 | remoteUpdateList.push(el); |
| 149 | } else if ( |
| 150 | releaseItem && |
| 151 | releaseItem.timestamp && |
| 152 | Date.now() - releaseItem.timestamp < 2 * 60 * 1000 |
| 153 | ) { |
| 154 | logger.m(el.apiCacheKey).log('Up to date'); |
| 155 | } else if ( |
| 156 | releaseItem && |
| 157 | releaseItem.finished && |
| 158 | releaseItem.timestamp && |
| 159 | Date.now() - releaseItem.timestamp < 7 * 24 * 60 * 60 * 1000 |
| 160 | ) { |
| 161 | logger.m(el.apiCacheKey).log('Finished'); |
| 162 | } else if ( |
| 163 | releaseItem && |
| 164 | !releaseItem.value && |
| 165 | releaseItem.timestamp && |
| 166 | Date.now() - releaseItem.timestamp < 1 * 24 * 60 * 60 * 1000 |
no test coverage detected