A photo manager for VRChat.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at f431de45345d561525c4ba87dff6d186b5747c57 56 lines 1.9 kB view raw
1import { invoke } from "@tauri-apps/api/core"; 2import { listen } from "@tauri-apps/api/event"; 3import { Accessor, createSignal, Setter } from "solid-js"; 4 5export class SyncManager{ 6 private _setIsSyncing: Setter<boolean>; 7 private _setSyncPhotoTotal: Setter<number>; 8 private _setSyncPhotoTransfers: Setter<number>; 9 private _setSyncType: Setter<string>; 10 private _setSyncError: Setter<string>; 11 12 public IsSyncing: Accessor<boolean>; 13 public SyncPhotoTotal: Accessor<number>; 14 public SyncPhotoTransfers: Accessor<number> 15 public SyncType: Accessor<string>; 16 public SyncError: Accessor<string>; 17 18 constructor(){ 19 [ this.IsSyncing, this._setIsSyncing ] = createSignal(false); 20 [ this.SyncPhotoTotal, this._setSyncPhotoTotal ] = createSignal(-1); 21 [ this.SyncPhotoTransfers, this._setSyncPhotoTransfers ] = createSignal(-1); 22 [ this.SyncType, this._setSyncType ] = createSignal(""); 23 [ this.SyncError, this._setSyncError ] = createSignal(""); 24 25 listen('photos-upload-meta', ( e: any ) => { 26 this._setIsSyncing(true); 27 this._setSyncPhotoTotal(e.payload.photos_total); 28 this._setSyncPhotoTransfers(e.payload.photos_total - e.payload.photos_uploading); 29 this._setSyncType('Upload'); 30 31 console.log(e.payload) 32 }) 33 34 listen('photos-download-meta', ( e: any ) => { 35 this._setIsSyncing(true); 36 this._setSyncPhotoTotal(e.payload.photos_total); 37 this._setSyncPhotoTransfers(e.payload.photos_total - e.payload.photos_uploading); 38 this._setSyncType('Download'); 39 40 console.log(e.payload) 41 }) 42 43 listen('sync-finished', () => { 44 this._setIsSyncing(false); 45 }) 46 47 listen('sync-failed', ( e: any ) => { 48 this._setSyncError(e.payload); 49 }) 50 } 51 52 public async TriggerSync(){ 53 this._setIsSyncing(true); 54 invoke('sync_photos', { token: (await invoke('get_config_value_string', { key: 'token' })) }); 55 } 56}