| 1234567891011121314151617181920212223242526272829303132333435 |
- class Media {
- constructor(data) {
- this.date = new Date(data.date);
- this.md5sum = data.md5sum;
- this.path = data.path;
- this.meta = data.meta || {};
- this.tags = data.tags || [];
- this.thumbnail = `/api/media/thumbnail/${data.md5sum}.png`;
- this.ui = null;
- }
- }
- class MediaStorage extends EventTarget
- {
- constructor() {
- super();
- this.medias = [];
- this.oldest = null;
- this.newest = null;
- }
- pushAll(arr) {
- for (let i of arr) {
- this.medias.push(i);
- this.oldest = !this.oldest || this.oldest.date.getTime() < i.date.getTime() ? i : this.oldest;
- this.newest = !this.newest || this.newest.date.getTime() > i.date.getTime() ? i : this.newest;
- }
- for (let i of arr)
- this.dispatchEvent(new CustomEvent("newMedia", { detail: i }));
- }
- }
- MediaStorage.Instance = new MediaStorage();
|