update
This commit is contained in:
@@ -92,7 +92,7 @@ export class Sync {
|
||||
reply('Dateiabgleich ist aus ("files": false in sync.json)');
|
||||
return;
|
||||
}
|
||||
this._filesCycle()
|
||||
this._filesCycle(true)
|
||||
.then(r => reply(r ? `hoch ${r.uploaded}, gelöscht gemeldet ${r.removed}, runter ${r.written}, lokal gelöscht ${r.deleted}` : 'läuft gerade schon'))
|
||||
.catch(e => reply(`Fehler: ${e.message}`));
|
||||
}
|
||||
@@ -272,10 +272,14 @@ export class Sync {
|
||||
}
|
||||
|
||||
// Eigener Lauf mit eigenem Stand: die Antwort enthält nur Dateien, der Takt der Einträge bleibt unberührt.
|
||||
// Gibt zurück, was übertragen wurde, oder null, wenn gerade ein Lauf aktiv ist.
|
||||
async _filesCycle() {
|
||||
// Gibt zurück, was übertragen wurde, oder null, wenn gerade ein Lauf aktiv ist oder die Verbindung getaktet ist.
|
||||
// Getaktet (Handy-Hotspot, in GNOME als getaktete Verbindung erkannt oder markiert): Sitzungen sind groß,
|
||||
// sie warten auf echtes WLAN. Einträge laufen weiter. force: Aufruf von Hand (make sync-files) läuft trotzdem.
|
||||
async _filesCycle(force = false) {
|
||||
if (this._filesBusy || !this._filesRoot)
|
||||
return null;
|
||||
if (!force && this._metered())
|
||||
return null;
|
||||
this._filesBusy = true;
|
||||
const result = {uploaded: 0, removed: 0, written: 0, deleted: 0};
|
||||
try {
|
||||
@@ -372,6 +376,16 @@ export class Sync {
|
||||
}));
|
||||
}
|
||||
|
||||
// Meldet den Wechsel einmal im Journal, damit klar ist, warum nichts hochgeht
|
||||
_metered() {
|
||||
const metered = Gio.NetworkMonitor.get_default().network_metered;
|
||||
if (metered !== this._wasMetered) {
|
||||
this._wasMetered = metered;
|
||||
console.log(`desktop-app sync: Verbindung ${metered ? 'getaktet, Dateiabgleich pausiert' : 'nicht getaktet, Dateiabgleich läuft'}`);
|
||||
}
|
||||
return metered;
|
||||
}
|
||||
|
||||
_fail(message) {
|
||||
if (this._stopped)
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user