(
el: {
uid: number;
apiCacheKey: number | string | null;
title: string;
cacheKey: string;
watchedEp: number;
single: any;
xhr?: object;
},
type,
mode = 'default',
logger = con.m('release'),
)
| 79 | } |
| 80 | |
| 81 | export async function single( |
| 82 | el: { |
| 83 | uid: number; |
| 84 | apiCacheKey: number | string | null; |
| 85 | title: string; |
| 86 | cacheKey: string; |
| 87 | watchedEp: number; |
| 88 | single: any; |
| 89 | xhr?: object; |
| 90 | }, |
| 91 | type, |
| 92 | mode = 'default', |
| 93 | logger = con.m('release'), |
| 94 | ) { |
| 95 | if (!mode) mode = 'default'; |
| 96 | logger = logger.m(el.uid.toString()); |
| 97 | logger.log(el.title, el.cacheKey, el.apiCacheKey, `Mode: ${mode}`); |
| 98 | if (!el.apiCacheKey) { |
| 99 | logger.log('No Api Cache Id'); |
| 100 | return; |
| 101 | } |
| 102 | if (!api.settings.get('epPredictions')) { |
| 103 | logger.log('epPredictions disabled'); |
| 104 | return; |
| 105 | } |
| 106 | const releaseItem: undefined | releaseItemInterface = await api.storage.get( |
| 107 | `release/${type}/${el.cacheKey}`, |
| 108 | ); |
| 109 | |
| 110 | logger.m('Load').log(releaseItem); |
| 111 | |
| 112 | let force = false; |
| 113 | |
| 114 | if (releaseItem && releaseItem.mode && releaseItem.mode !== mode) force = true; |
| 115 | |
| 116 | if ( |
| 117 | releaseItem && |
| 118 | releaseItem.timestamp && |
| 119 | Date.now() - releaseItem.timestamp < 2 * 60 * 1000 && |
| 120 | !force |
| 121 | ) { |
| 122 | logger.log('Up to date'); |
| 123 | return; |
| 124 | } |
| 125 | |
| 126 | if ( |
| 127 | releaseItem && |
| 128 | releaseItem.finished && |
| 129 | releaseItem.timestamp && |
| 130 | Date.now() - releaseItem.timestamp < 7 * 24 * 60 * 60 * 1000 && |
| 131 | !force |
| 132 | ) { |
| 133 | logger.log('Finished'); |
| 134 | return; |
| 135 | } |
| 136 | |
| 137 | if ( |
| 138 | releaseItem && |
nothing calls this directly
no test coverage detected