update
This commit is contained in:
@@ -92,7 +92,7 @@ export class Sync {
|
|||||||
reply('Dateiabgleich ist aus ("files": false in sync.json)');
|
reply('Dateiabgleich ist aus ("files": false in sync.json)');
|
||||||
return;
|
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'))
|
.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}`));
|
.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.
|
// 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.
|
// Gibt zurück, was übertragen wurde, oder null, wenn gerade ein Lauf aktiv ist oder die Verbindung getaktet ist.
|
||||||
async _filesCycle() {
|
// 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)
|
if (this._filesBusy || !this._filesRoot)
|
||||||
return null;
|
return null;
|
||||||
|
if (!force && this._metered())
|
||||||
|
return null;
|
||||||
this._filesBusy = true;
|
this._filesBusy = true;
|
||||||
const result = {uploaded: 0, removed: 0, written: 0, deleted: 0};
|
const result = {uploaded: 0, removed: 0, written: 0, deleted: 0};
|
||||||
try {
|
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) {
|
_fail(message) {
|
||||||
if (this._stopped)
|
if (this._stopped)
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user