From b6d6146e1f5b1c08d4584dea129fde68f6ea5146 Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Wed, 23 Oct 2024 18:06:52 +0200 Subject: [PATCH] Update Apaczka shipment methods and add support for ApaczkaP2P --- apilo.js | 78 +++++++++++++++++++-------------------- autoload/front/.DS_Store | Bin 6148 -> 0 bytes templates/.DS_Store | Bin 6148 -> 0 bytes 3 files changed, 38 insertions(+), 40 deletions(-) delete mode 100644 autoload/front/.DS_Store delete mode 100644 templates/.DS_Store diff --git a/apilo.js b/apilo.js index ed1f92f..8c410cd 100644 --- a/apilo.js +++ b/apilo.js @@ -1,6 +1,6 @@ // ==UserScript== // @name A -// @version 2.0 +// @version 2.2 // @grant none // ==/UserScript== @@ -94,10 +94,11 @@ const buttons = [ createButton('Apaczka D2D Inpost', '#7039df', 'ApaczkaD2D'), - createButton('Furgonetka P2D Inpost', '#007bff', 'P2D.inpost', 'RZE14N||RZE14N'), - createButton('Furgonetka D2P Inpost', '#28a745', 'D2P.inpost'), + createButton('Apaczka P2P Inpost', '#7039df', 'ApaczkaP2P'), + createButton('Furgonetka P2D Inpost', '#ff7800', 'P2D.inpost', 'RZE14N||RZE14N'), + createButton('Furgonetka D2P Inpost', '#ff7800', 'D2P.inpost'), createButton('Furgonetka D2D Inpost', '#ff7800', 'D2D.inpostkurier'), - createButton('Furgonetka P2P Inpost', '#ffc107', 'P2P.inpost', 'RZE14N||RZE14N') + createButton('Furgonetka P2P Inpost', '#ff7800', 'P2P.inpost', 'RZE14N||RZE14N') ]; buttons.forEach(button => buttonContainer.appendChild(button)); @@ -414,8 +415,12 @@ if (method.startsWith('Apaczka')) { console.log('Ustawianie wysyłki Apaczka...'); await setCarrierAccount(); - await setPackageTypeApaczka(); - await setShipmentMethodApaczka(); + await setShipmentMethodApaczka(method); + + if (method === 'ApaczkaP2P') { + await setDropoffPoint('RZE14N||RZE14N'); + } + await setPreferencesContentApaczka(); await setParcelWeight('1'); await submitShipment(); @@ -457,40 +462,33 @@ } /** - * Funkcja ustawiająca typ paczki na "PACZKA" dla Apaczki. - * @returns {Promise} - */ - function setPackageTypeApaczka() { - return waitForElement('#warehousebundle_shipment_packageType').then(packageTypeElement => { - packageTypeElement.value = 'PACZKA'; - const event = new Event('change', { bubbles: true }); - packageTypeElement.dispatchEvent(event); - console.log('Typ paczki ustawiony na PACZKA.'); - }).catch(error => { - console.error('Nie udało się ustawić typu paczki:', error); - throw error; - }); - } - - /** - * Funkcja ustawiająca metodę wysyłki na "42" dla Apaczki. - * @returns {Promise} - */ - function setShipmentMethodApaczka() { - return retryUntilSuccess(() => { - return new Promise((resolve, reject) => { - const methodElement = document.getElementById('warehousebundle_shipment_method'); - if (methodElement) { - methodElement.value = '42'; - const event = new Event('change', { bubbles: true }); - methodElement.dispatchEvent(event); - console.log('Metoda wysyłki ustawiona na 42 (Apaczka).'); - resolve(); - } else { - reject('Nie znaleziono elementu warehousebundle_shipment_method'); - } - }); - }); + * Funkcja ustawiająca metodę wysyłki na podstawie typu Apaczki. + * Upewnia się, że select nie jest pusty przed ustawieniem wartości. + * @param {string} method - Typ Apaczki ('ApaczkaD2D' lub 'ApaczkaP2P'). + * @returns {Promise} + */ + function setShipmentMethodApaczka(method) { + return retryUntilSuccess(() => { + return new Promise((resolve, reject) => { + const methodElement = document.getElementById('warehousebundle_shipment_method'); console.log( methodElement ); + if (methodElement) { + if (methodElement.options.length > 0) { + methodElement.value = (method === 'ApaczkaP2P') ? '41' : '42'; + const event = new Event('change', { bubbles: true }); + methodElement.dispatchEvent(event); + console.log(`Metoda wysyłki ustawiona na ${(method === 'ApaczkaP2P') ? '49 (ApaczkaP2P)' : '42 (ApaczkaD2D)'}.`); + resolve(); + } else { + reject('Select #warehousebundle_shipment_method jest pusty.'); + } + } else { + reject('Nie znaleziono elementu warehousebundle_shipment_method'); + } + }); + }, 500, 20).catch(error => { + console.error('Nie udało się ustawić metody wysyłki:', error); + throw error; + }); } /** diff --git a/autoload/front/.DS_Store b/autoload/front/.DS_Store deleted file mode 100644 index 2bc8d5a9564cbe6ef5ea4bc57e9495c7624a3538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5T0$TNhm@O3OxqA7ObTp#Y?F51&ruHr6#6oFlI}dTBH&_Z zH(<2~Pa<{(cE8#A+0A^A{Q&^cpGNxt4FIsQ5eiaP2$@&9Dkhjvs5vBL@Ep!2<1kq< z(O)#tw_9)v0o*_ipT1v)=y?mrNj%Bh?RQbB);2aR%dzU#m47d1ejeo0Nk7OgXml!N z5|(-pp2eftu(5q4(>#dNQKk~&XoMk`=W!azSzk`mXrgj`?Qk6188({pdAHkcx!vBu zqUFwe9i?{`3&-Bs-8(!PJ|vH+e9=@2WL?RY!4h6k`BK%BpQVXR@6c0bmC=mM05iZ0 zFaztwfH?>3`g)bk)iMLjzz-Op{lUdX=ou_Ds;vV%x;~S?Mo5A>y(I`;gPy@cBYIGT zPDRwI!aOmAPDi_I;yi%)l}ORXuFb`G1VR z%*sdpate=_0cPNzF(7IKf6&LG%-Q;_JUVM#Y}eRGD6Sv{1@)y%01jv$X)34oyQE{B YXRy#nvyfe-Bl1N+5yBla@Cyul0JVxt%K!iX diff --git a/templates/.DS_Store b/templates/.DS_Store deleted file mode 100644 index ad61492ba79c931f281e9e0539aa5c70ba366fa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5T3QsBrQS@3OxqAR;;BU#Y?F51&ruHr6#1<(3mYrY7eE5v%Zi|;`2DO zyM@-a;7O$2fthc1cP3#z*q;Fa))|NA09636PzjAPnl(b}q${$gW(-6ozHtfx_>jR6 z`YX|TLNlNl_-_o*-mTz{9RP=4@tL$0ui(H@#u}n(%i?C&SZ6$f3eHe4w+Tx;HOP zVxGKU1Z9^OIN*>%h$mROB@C>s?MMA{#x(8@18Ub;mE9>>SE?D%4E&M-Iv*TVLRVoS zQ5+p;L<@jO&j=ytQ!ha|jzU*qArV(lm`p{KsZ6yPOs3lk`Y4pc&XI2AI+Hx*aS@-K{Id(Ov7H sKBJOQTp>}Upi$ScaOf(op$fq@ha5y#VIdJ`Q1nAU(4dWG;7=L&27(-pt^fc4