BackupProfile.uc.js - div. Fragen dazu

  • Das würde ich gerne mal testen.

    Na dann ;)

    Die Pfade und die genauen Bezeichnungen für deinen genutzten Loader musst du dir dann natürlich für dich anpassen.

  • Wenn es gestartet ist, dann bleibt der Hintergrund vom Button bei mir grau, bis die Meldung erscheint, dass das Backup fertig ist.

    :/ Wodurch wird das denn ausgelöst?

    Ich hab ein eigenes Icon von Platte eingebunden - welches benutzt Du?

    Außerdam haben alle meine Buttons einen Güldenen Backgound...

    Ist es möglich das Script auf für Thunderbird anzupassen?

    Drüben fragen ;)

    Ich warte noch auf meine Update-Einladung für 78.14 auf 91 oder 92 und da bastel ich ersma nicht mehr weiter dran rum...

    Da fehlt noch die Sekunde..

    Hastes hinbekommen, oder soll ich gleich mal versuchen?

    Wie genau soll das denn aussehen?

    SS.MM.SS statt wie in Deinem letzten Bild nur SS.MM.S ?

    W11 Home 64bit - FF128.x

  • Hallo harff182,

    Drüben fragen

    bei uns im Forum ist keiner der so etwas kann, alle Scripts und Anpassungen kommen von hier.

    Ich warte noch auf meine Update-Einladung für 78.14 auf 91 oder 92

    TB 91 soll in ca 2 Wochen kommen.
    TB 92 ist schon längst Geschichte, zur Zeit ist Beta 94 und Daily 95 aktuell.
    Der nächste große Update dürfe dann TB 102 sein.

    Gruß

    EDV-Oldie

    WIN11 Home Version 23H2 (Build 22631.4460)

    Firefox 132.0.2(64-Bit)

    Thunderbird 128.4.3esr (64-Bit)

    Meine Erweiterungen

  • TB 91 soll in ca 2 Wochen kommen.

    Wenn ichs hab und die Zeit finde, setz ich mich da vielleicht mal dran. Aber nix versprochen.


    Da fehlt noch die Sekunde..

    So gewüscht?

    JavaScript
    //            Börsi-Variante
                var localnow = new Date().toLocaleString();
                localnow = localnow.replace(/T/g, "_").replace(/\W+/g, ".");
                var my_localnow = localnow.substr(0,10)+ ' ' + localnow.substr(11,8);
                var archiveName = 'Profil Nightly ' + ' ' + my_localnow + '.zip';

    W11 Home 64bit - FF128.x

    Einmal editiert, zuletzt von harff182 (21. Oktober 2021 um 20:30) aus folgendem Grund: Ein Beitrag von harff182 mit diesem Beitrag zusammengefügt.


  • So gewünscht?

    JavaScript
    //            Börsi-Variante
                var localnow = new Date().toLocaleString();
                localnow = localnow.replace(/T/g, "_").replace(/\W+/g, ".");
                var my_localnow = localnow.substr(0,10)+ ' ' + localnow.substr(11,8);
                var archiveName = 'Profil Nightly ' + ' ' + my_localnow + '.zip';

    Jo, so sieht es schick aus.. vielen Dank... ich war gestern schon raus... :) :thumbup:

  • Ich habe bezüglich des Namens der Sicherungsdatei auch noch einen frommen Wunsch: Nach DIN 5008 werden die Teile Uhrzeit nicht durch Punkt, sondern durch Doppelpunkt getrennt. Das hätte ich gern so - wenn schon denn schon. :) Es ergeben sich aber zwei Probleme:

    1. Der Doppelpunkt kann ja auch ein reserviertes Zeichen sein, müsste also maskiert werden. Ich habe da schon diverse Varianten ausprobiert: \:, \003A, \x3A, \u003A. Leider ohne Erfolg.

    2. Natürlich wird das Datum aber mit Punkt dargestellt. Daher muss der localnow-String noch etwas erweitert werden. Da bin ich im Moment aber auch überfordert.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • milupo:

    Besser bekomme ich es auch nicht hin:

    und zwar so:

    Code
    //            Meine (harff182) Variante
    //            Ziel:    ProfilBU_211022_18:14.zip
                var localnow = new Date().toLocaleString();    
                localnow = localnow.replace(/T/g, ".").replace(/\W+/g, ".");
                
                var myDZG = localnow.substr(8,2) + localnow.substr(3,2) + localnow.substr(0,2) + '_' + localnow.substr(11,2)+ '\u2982' + localnow.substr(14,2);
                var archiveName = 'ProfilBU_' + myDZG + '.zip';

    W11 Home 64bit - FF128.x

  • Danke, harff182. Immerhin ist das Problem mit dem Doppelpunkt gelöst. Ich hatte allerdings versucht, den Doppelpunkt in der zweiten replace-Funktion unterzubringen. Das klappte nicht. Mal sehen, ob ich ansonsten noch etwas nach meinem Gusto schaukeln kann. :)

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Hier gibts noch ja andere "Doppelpunkte". Ich hatte 4-5 ausprobiert, aber keinen besseren gefindet ;)

    Mal sehen, ob ich ansonsten noch etwas nach meinem Gusto schaukeln kann.

    Wenn ich kann, versuch ich zu helfen - allerdings hab ichs nich so mit Din/ISO ;)

    W11 Home 64bit - FF128.x

  • Hier gibts noch ja andere "Doppelpunkte". Ich hatte 4-5 ausprobiert, aber keinen besseren gefindet

    Ich habe einen gefunden und zwar den mathematischen Operator \u2236. Ein Rätsel bleibt weiterhin, warum \u003A, also der ganz normale Doppelpunkt, nicht funktioniert.

    Wenn ich kann, versuch ich zu helfen - allerdings hab ichs nich so mit Din/ISO

    Danke für das Angebot, aber du hast ja schon geholfen. :)

    So, ich stelle euch jetzt die Trio-Variante vor, ein Mix von Harff182-, Boersi- und milupo-Variante. :D

    JavaScript
    var localnow = new Date().toLocaleString();    
        localnow = localnow.replace(/T/g, "_").replace(/\W+/g, ".");
    var my_localnow = localnow.substr(0,10)+  ' ' + localnow.substr(11,2) + '\u2236' + localnow.substr(14,2)+ '\u2236' + localnow.substr(17,2);
    var archiveName = 'Profil Nightly ' + ' ' + my_localnow + '.zip';

    Diese Variante zeigt den Text von Boersenfeger, beim Datum das Format TT.MM.JJJJ, also die Reihenfolge Tag-Monat-volles Jahr durch Punkte getrennt. Datum ist von der Uhrzeit durch ein Leerzeichen getrennt. Die Teile der Uhrzeit (hh:mm:ss) sind hier durch einen Doppelpunkt getrennt, wie es DIN 5008 festlegt.

    Herzlichen Dank harff182!

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Es ist schon lustig, was ihr da macht. Diverse Ersetzungen durchführen, die strikt von der Position und Anzahl der Zeichen abhängig sind, was nicht nur extrem fragil und unflexibel ist, sondern am Ende zum praktisch identischen Ergebnis führt als würdet ihr es einfach komplett lassen. :D

    Nehmen wir den letzten Beitrag als Beispiel. Drei Zeilen Code, RegEx, diverse positions- und längenabhängige Ersetzungen. Ergebnis:

    > 23.10.2021 10:09:56

    Ergebnis, wenn man einfach nur new Date().toLocaleString() (1.Zeile) verwendet:

    > 23.10.2021, 10:09:56

    So viel Aufwand, aber am Ende wurde nur ein Komma entfernt. Das Komma kann man dann auch mit einem einfachen replace() loswerden, ohne dass man die Position und Anzahl zählen muss:

    new Date().toLocaleString().replace(',', '');

    Ansonsten kann man aber auch einfach direkt mit dem Datumsobjekt arbeiten:

    JavaScript
    let d = new Date();
    d = d.getDate() + '.' + (d.getMonth() + 1) + '.' + d.getFullYear() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();

    Beziehungsweise, wenn man führende Nullen haben möchte, dann etwas länger:

    JavaScript
    let d = new Date();
    d = d.getDate().toString().padStart(2, '0') + '.' + (d.getMonth() + 1).toString().padStart(2, '0') + '.' + d.getFullYear() + ' ' + d.getHours().toString().padStart(2, '0') + ':' + d.getMinutes().toString().padStart(2, '0') + ':' + d.getSeconds().toString().padStart(2, '0');

    Aber immer noch intutiver, weil man sieht, was welche Komponente macht, z.B. Monat oder Jahr, ohne Abhängigkeit von Zeichen-Anzahl und -Position und ohne RegEx, was immer schlecht für die Performance ist.

    Oder in modernerem JavaScript:

    JavaScript
    let d = new Intl.DateTimeFormat('de', { dateStyle: 'medium', timeStyle: 'medium' }).format(new Date());

    Beziehungsweise, falls man das Komma wieder weghaben will:

    JavaScript
    let d = new Intl.DateTimeFormat('de', { dateStyle: 'medium', timeStyle: 'medium' }).format(new Date()).replace(',', '');

    Und falls man ein spezielles Datums- und Uhrzeitformat benötigt:

    JavaScript
    let parts = new Intl.DateTimeFormat('de', { dateStyle: 'medium', timeStyle: 'medium' }).formatToParts(new Date());

    Dann erhält man mit parts ein Array, in dem man alle Bestandteile von Datum und Uhrzeit hat, die man sich beliebig zusammenbasteln kann. Auch wieder ohne Abhängigkeit von Zeichen-Anzahl und -Position und ohne RegEx.

  • CSS
    let d = new Intl.DateTimeFormat('de', { dateStyle: 'medium', timeStyle: 'medium' }).format(new Date()).replace(',', '');

    Wie würde denn die Zeile Code eingebettet in dem von Milupo #53 aussehen?

  • Es ist schon lustig, was ihr da macht.

    Das glaube ich gern, ich hatte so etwas schon geahnt. Von deinem Wissensstand über JavaScript aus, erscheint unsere Vorgehensweise primitiv. Wir mussten aber von dem ausgehen, was das Original-Skript an Code bietet. Die Funktionen des Datums-Objektes sind mir nicht unbekannt und ich hätte verstanden, was sie tun, wenn sie im Skript schon gestanden hätten. Aber meine Kenntnisse reichen nicht so weit, dass ich mit diesem Wissensstand diese Funktionen selbst auch in den Code hätte einbringen können. Da greift man dann nach jedem Strohhalm.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Vermutlich so:

    Code
    var my_localnow = new Intl.DateTimeFormat('de', { dateStyle: 'medium', timeStyle: 'medium' }).format(new Date()).replace(',', '');
    
    var archiveName = 'Profil Nightly ' + ' ' + my_localnow + '.zip';

    Alles andere, wenn ich das richtig verstanden habe, ist überflüssig.

    Wir sind keine Beschwerdestelle, hier gibt es nur Lösungen! Meine Glückszahl hier: 92.

  • Wenn ich dies deaktiviere:

    CSS
                var localnow = new Date().toLocaleString();
                localnow = localnow.replace(/T/g, "_").replace(/\W+/g, ".");
                var my_localnow = localnow.substr(0,10)+ ' ' + localnow.substr(11,8);
                var archiveName = 'Profil Nightly ' + ' ' + my_localnow + '.zip';

    und dann deinen Schnipsel einfüge, passiert nach Neustart und manuellem Anstupsen nix... :(

  • Dann kann console() dir weiterhelfen.

    Die Browser-Konsole gibt für

     new Intl.DateTimeFormat('de', { dateStyle: 'medium', timeStyle: 'medium' }).format(new Date()).replace(',', '');

    Das hier aus

    "23.10.2021 17:27:28"

    (vermutlich sind die "" nur in der Konsole zu sehen, denn alert(Date()) zeigt sie nicht an)

    Mehr kann ich in der Konsole nicht testen.

    Allerdings lässt Windows in Dateinamen kein : zu, ergo ist das auch noch zu ersetzen.

    Anmerkung - oben ist U2236 zu sehen

    Finde alle Unicode Zeichen von Hieroglyphen bis zu Glyphen – Unicode Compart
    U+2236 ist der Unicode-Hexadezimal-Wert des Zeichens Verhältniszeichen. Code U+2236, Kodierungen, HTML-Entitäten:∶,∶,∶, UTF-8 (hex), UTF-16…
    www.compart.com

    Das wird wohl akzeptiert, aber man sollte solche Sonderzeichen unter Windows tunlichst in Dateinamen vermeiden!

    Du bekommst die so nicht eingegeben im ungünstigen Fall, allenfalls über die Zeichentabelle, hilft nur alles nichts, wenn du kein Windows hast für das Backup, sei es die Oberfläche oder gar kein Windows.

    Nachtrag, so:new Intl.DateTimeFormat('de', { dateStyle: 'medium', timeStyle: 'medium' }).format(new Date()).replace(/[,:]/g, function(m) { return {',':'',':':'-'}[m];});

    Quelle der Anregung

    Replace multiple characters in one replace call
    Very simple little question, but I don't quite understand how to do it. I need to replace every instance of '_' with a space, and every instance of '#' with…
    stackoverflow.com

    Das replace ersetzt das : durch ein - und das kann man immer eingeben, ohne Nachzudenken.

    Wir sind keine Beschwerdestelle, hier gibt es nur Lösungen! Meine Glückszahl hier: 92.

    5 Mal editiert, zuletzt von .DeJaVu (23. Oktober 2021 um 17:48)

  • Du weißt ja, das das alles böhmische Dörfer für mich sind :D

    Konkret: Wie muss der Codeschnipsel aussehen, wenn statt der 2 Punkte bei der Uhrzeit 2 Doppelpunkte sein sollen...

    CSS
    var localnow = new Date().toLocaleString();
    localnow = localnow.replace(/T/g, "_").replace(/\W+/g, ".");
    var my_localnow = localnow.substr(0,10)+ ' ' + localnow.substr(11,8);
    var archiveName = 'Profil Nightly ' + ' ' + my_localnow + '.zip';
    var xpi = fu.File(path + '\\' + archiveName);

    Ansonsten belasse ich es bei den Punkten.