diff --git a/.paul/governance/governance_2026-05-11.jsonl b/.paul/governance/governance_2026-05-11.jsonl index 4054c68..b7564a8 100644 --- a/.paul/governance/governance_2026-05-11.jsonl +++ b/.paul/governance/governance_2026-05-11.jsonl @@ -8,3 +8,158 @@ {"ts":"2026-05-10T22:07:15Z","tool":"Bash","cmd":"python tools/generowanie/akrylowe_podziekowanie_ojciec_chrzestny_wzor1.py --klient \"Angelika Hirth\" --imie \"Zuzia\" --data \"17.05.2026\" --zdjecie \"C:/tmp/orderpro_photos/angelika_03_zuzia.jpg\" ","cwd":"/c/visual studio code/projekty/orderPRO"} {"ts":"2026-05-10T22:07:32Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"oliwiaczapiewska3@wp.pl\" --days 60 --json 2>&1 | head -3 && python tools/generowanie/pudelko_komunia_golabek_uv.py --klient \"Oliwia Czapie","cwd":"/c/visual studio code/projekty/orderPRO"} {"ts":"2026-05-10T22:07:46Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python tools/generowanie/pudelko_komunia_golabek_uv.py --klient \"Oliwia Czapiewska\" --imie \"Antoniego\" --data \"16 | 05 | 2026\" --od-kogo \"Twoja siostra Oliwka\" --zyczeni","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:01:31Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"SELECT id, product_name_pat","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:01:43Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch -e \"\\nSELECT \\n oi","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:02:54Z","tool":"Bash","cmd":"tasklist //FI \"IMAGENAME eq Photoshop.exe\" 2>&1 | grep -i photoshop\",\"description\":\"Check Photoshop running\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\"\",\"interrupted\":false,\"isImage\","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:05:51Z","tool":"Bash","cmd":"until Get-Process -Name Photoshop -ErrorAction SilentlyContinue >$null 2>&1 && powershell -Command \"(Get-Process -Name Photoshop -ErrorAction SilentlyContinue).MainWindowTitle\" | grep -q \"Photoshop","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:06:39Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"marta.michnicka@gmail.com\" --days 60 --json 2>&1 | tail -20\",\"description\":\"Check email for OP1002\"},\"tool_response\":{\"stdout\":\"B","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:06:53Z","tool":"Bash","cmd":"ZYCZ=$'Niech Bóg bÅ‚ogosÅ‚awi CiÄ™ każdego dnia\\\\ri czuwa nad Twoimi krokami.'\\npython tools/generowanie/pudelko_komunia_kielich.py --klient \"Marta Gałązka\" --imie \"Maksymiliana\" --data \"1","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:07:03Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:07:11Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"naaataluska@gmail.com\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znalezi","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:07:24Z","tool":"Bash","cmd":"ZYCZ=$'Idź drogÄ… bez przeszkód,\\\\rmiej w sercu wiarÄ™,\\\\ruczciwość i miÅ‚ość,\\\\raby Bóg prowadziÅ‚ CiÄ™ przez życie\\\\rgodnie i szczęśliwie.'\\npython tools/generowanie/pudelko_komun","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:07:32Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:07:40Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"katarzyna.fabisiak@adres.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie z","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:07:55Z","tool":"Bash","cmd":"python tools/generowanie/pudelko_komunia_dziewczynka.py --klient \"Katarzyna Fabisiak\" --imie \"Michalinki\" --data \"24.05.2026\" --od-kogo \"Ojciec Chrzestny z rodzinÄ…\" 2>&1 | tail -10\",\"timeou","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:08:03Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:08:12Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"angelika-falkowska96@wp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie zn","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:08:24Z","tool":"Bash","cmd":"ZYCZ=$'W dniu tak piÄ™knym i radosnym,\\\\rniczym kwiat w promieniach wiosny,\\\\rżyczymy Ci miÅ‚oÅ›ci, szczęścia, pomyÅ›lnoÅ›ci.\\\\rTo, o czym marzysz, by Ci siÄ™ speÅ‚niÅ‚o,\\\\ra to, co pokocha","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:08:32Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:08:40Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"dagmara0789@wp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:08:52Z","tool":"Bash","cmd":"python tools/generowanie/prosba_chrzestny_zlota_plexi_uv.py --klient \"Dagmara Lange\" --imie-dziecka \"Gabriel\" --matka-wolacz \"Ciociu Julio\" --ojciec-wolacz \"Wujku Hubercie\" 2>&1 | tail -15\",\","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:09:00Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:09:07Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"kondratowiczmaria1@gmail.com\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:09:25Z","tool":"Bash","cmd":"python tools/generowanie/prosba_chrzestny_zlota_plexi_uv.py --klient \"Maria Kondratowicz\" --imie-dziecka \"Oliwia\" --matka-wolacz \"Ciociu Aniu\" --ojciec-wolacz \"Wujku RadosÅ‚awie\" 2>&1 | tail -","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:09:32Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:09:39Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"asiad80@vp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono wiad","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:09:55Z","tool":"Bash","cmd":"ZYCZ=$'Chociaż jesteÅ› jeszcze maÅ‚y,\\\\rkochaj Boga sercem caÅ‚ym,\\\\ra On zawsze, dniem i nocÄ…,\\\\rbÄ™dzie sÅ‚użyÅ‚ Ci z pomocÄ….'\\npython tools/generowanie/pudelko_chrzest_dlonie_uv.py --kli","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:10:02Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:10:10Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"sycia_382@wp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono wi","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:10:23Z","tool":"Bash","cmd":"ZYCZ=$'Niech Pan Jezus, którego przyjęłaÅ› dziÅ› do swojego serca\\\\rzostanie Twoim najlepszym towarzyszem podróży przez życie.\\\\rNiech prowadzi CiÄ™ drogami peÅ‚nymi miÅ‚oÅ›ci do siebie i Å›","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:10:31Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:10:38Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"dudkiewicz.paulina@wp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znal","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:10:57Z","tool":"Bash","cmd":"ZYCZ=$'Z okazji Twojej Pierwszej Komunii ÅšwiÄ™tej\\\\rżyczymy Ci, abyÅ› zawsze umiaÅ‚a sÅ‚uchać gÅ‚osu serca,\\\\rbo to wÅ‚aÅ›nie tam mieszka Bóg.\\\\rNiech Twoje życie bÄ™dzie peÅ‚ne Å›wiatÅ‚a,\","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:11:05Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:11:12Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"lusia_117@onet.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:11:26Z","tool":"Bash","cmd":"ZYCZ=$'Z okazji przyjÄ™cia do serca Bożej miÅ‚oÅ›ci\\\\rdumni z Ciebie i peÅ‚ni radoÅ›ci,\\\\rże nadszedÅ‚ ten Wielki DzieÅ„,\\\\rżyczymy by Twoje życie byÅ‚o jak przyjemny sen!\\\\rTakie piÄ™kne ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:11:33Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:11:43Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"anna-zapadka@o2.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:11:55Z","tool":"Bash","cmd":"ZYCZ=$'Niech Twoje serce zawsze pozostanie wrażliwe na dobro,\\\\ra w życiu niech towarzyszÄ… Ci wiara, uczciwość i miÅ‚ość.'\\npython tools/generowanie/pudelko_komunia_kielich.py --klient \"Ann","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:12:02Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:12:10Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"joanna.sobieraj1503@gmail.com\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:12:27Z","tool":"Bash","cmd":"ZYCZ=$'„Powierz Panu swÄ… drogÄ™ i zaufaj Mu: On sam bÄ™dzie dziaÅ‚aÅ‚\" (Ps 37, 5)\\\\r\\\\rW dniu Twojej Pierwszej Komunii ÅšwiÄ™tej\\\\rniech AnioÅ‚owie CiÄ™ otaczajÄ…,\\\\ra Bóg prowadzi CiÄ™ n","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:12:34Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:12:42Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"woodkoa@wp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono wiad","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:12:56Z","tool":"Bash","cmd":"ZYCZ=$'PrzyjÄ™cie Komunii ÅšwiÄ™tej to wielka radość ale i odpowiedzialność.\\\\rNiech ciaÅ‚o Boże da Ci odwagÄ™ i siłę\\\\roraz chroni od wszelkiego zÅ‚a,\\\\ra miÅ‚ość Jezusa prowadzi na wÅ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:13:05Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:13:13Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"gabiadasik99@vp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:13:31Z","tool":"Bash","cmd":"python tools/generowanie/buteleczki_slub_wzor6.py --klient \"Gabriela Adasik\" --imie_zenskie \"Gabriela\" --imie_meskie \"Dawid\" --data \"06.06.2026\" 2>&1 | tail -10\",\"timeout\":300000,\"descript","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:13:39Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:13:46Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"kasiapietrzyk88@interia.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie zn","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:14:03Z","tool":"Bash","cmd":"ZYCZ=$'Serduszko dziecka maÅ‚e,\\\\rjak lilia musi być biaÅ‚e,\\\\rjak lilia musi być czyste,\\\\rjak toÅ„ wody przejrzyste…\\\\r\\\\rNa pamiÄ…tkÄ™ Pierwszej Komunii ÅšwiÄ™tej\\\\rwielu obfitych Å","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:14:11Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:14:18Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"paulina5114@wp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:14:31Z","tool":"Bash","cmd":"ZYCZ=$'W dniu Twojej Pierwszej Komunii ÅšwiÄ™tej życzymy Ci,\\\\raby Pan Bóg zawsze byÅ‚ obecny w Twoim sercu i codziennoÅ›ci.\\\\rNiech Jego miÅ‚ość daje Ci siłę, spokój i radość,\\\\ra modl","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:14:39Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:14:47Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"emilkalove@wp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono w","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:14:58Z","tool":"Bash","cmd":"python tools/generowanie/pudelko_komunia_kwiaty.py --klient \"Emilia Zimoch\" --imie \"Wiktorii\" --data \"17 | 05 | 2026\" --od-kogo \"Chrzestna Emilia z wujkiem Tomkiem i Tymkiem\" 2>&1 | tail -10\"","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:15:05Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:15:13Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"m.cieplinska@sp9konin.edu.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:15:27Z","tool":"Bash","cmd":"ZYCZ=$'W tym wyjÄ…tkowym dniu życzymy Ci,\\\\raby Twoje serce zawsze byÅ‚o peÅ‚ne wiary, odwagi i radoÅ›ci.\\\\rNiech Bóg czuwa nad TobÄ… każdego dnia,\\\\ra ja – jako Twój ojciec chrzestny –\","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:15:34Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:15:42Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"anna-klimkowska1@wp.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znalez","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:16:04Z","tool":"Bash","cmd":"ZYCZ_J=$'Kochana Julciu,\\\\rw dniu Twojej Pierwszej Komunii ÅšwiÄ™tej życzymy Ci, aby Twoje serduszko zawsze byÅ‚o peÅ‚ne radoÅ›ci, miÅ‚oÅ›ci i spokoju.\\\\rNiech Jezus prowadzi CiÄ™ przez życie, d","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:16:19Z","tool":"Bash","cmd":"ZYCZ_S=$'Kochany Szymonku,\\\\rw dniu Twojej Pierwszej Komunii ÅšwiÄ™tej życzymy Ci, aby Jezus zawsze mieszkaÅ‚ w Twoim sercu\\\\ri prowadziÅ‚ CiÄ™ przez życie drogÄ… peÅ‚nÄ… dobra, miÅ‚oÅ›ci i rado","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:16:36Z","tool":"Bash","cmd":"ZYCZ_S=$'Kochany Szymonku,\\\\rw dniu Twojej Pierwszej Komunii ÅšwiÄ™tej życzymy Ci, aby Jezus zawsze mieszkaÅ‚ w Twoim sercu\\\\ri prowadziÅ‚ CiÄ™ przez życie drogÄ… peÅ‚nÄ… dobra, miÅ‚oÅ›ci i rado","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:16:46Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:16:53Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"martyna.galat@op.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znalezion","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:17:14Z","tool":"Bash","cmd":"ZYCZ=$'DziÅ› radość dla Ciebie niesÅ‚ychana,\\\\rbo idziesz z miÅ‚oÅ›ciÄ… na spotkanie Pana.\\\\rPamiÄ™taj, że On CiÄ™ zawsze usÅ‚yszy,\\\\rczy modlisz siÄ™ gÅ‚oÅ›no, czy w głębokiej ciszy'\\npyt","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:17:22Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:17:29Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"kasiakujawska@amorki.pl\" --days 60 --json 2>&1 | tail -5\",\"description\":\"Email check\"},\"tool_response\":{\"stdout\":\"BRAK: nie znale","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:17:42Z","tool":"Bash","cmd":"python tools/generowanie/prosba_chrzestny_zlota_plexi_uv.py --klient \"Kasia CieÅ›lak\" --imie-dziecka \"Bruno\" --matka-wolacz \"Ciociu Ewelino\" --ojciec-wolacz \"Wujku Maćku\" 2>&1 | tail -10\",\"","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T07:17:51Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:07:25Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"SELECT id, product_name_pat","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:07:36Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"SELECT oi.id AS item_id, oi","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:07:55Z","tool":"Bash","cmd":"python tools/generowanie/pudelko_komunia_biblia.py --help 2>&1 | head -60\",\"description\":\"Inspect script params\"},\"tool_response\":{\"stdout\":\"usage: pudelko_komunia_biblia.py [-h] --klient KL","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:08:01Z","tool":"Bash","cmd":"tasklist //FI \"IMAGENAME eq Photoshop.exe\" 2>/dev/null | grep -i photoshop\",\"description\":\"Check Photoshop running\"},\"tool_response\":{\"stdout\":\"Binary file (standard input) matches\",\"std","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:08:35Z","tool":"Bash","cmd":"python -c \"import os; d=r'd:\\\\pomysloweprezenty.pl\\\\projekty\\\\komunia Å›wiÄ™ta - pudeÅ‚ka na pieniÄ…dze\\\\PudeÅ‚ko na pieniÄ…dze z życzeniami na Komunie ÅšwiÄ™tÄ… - Biblia\\\\_gotowe'; print(","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:10:20Z","tool":"Bash","cmd":"python -c \"import subprocess,sys; zyczenia='Kochana, w dniu Twojej Pierwszej Komunii ÅšwiÄ™tej życzymy Ci, aby ten wyjÄ…tkowy moment byÅ‚ poczÄ…tkiem piÄ™knej drogi peÅ‚nej miÅ‚oÅ›ci, radoÅ›ci i dob","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:10:37Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:32:54Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"SELECT oi.id AS item_id, oi","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:33:02Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"patka2104@poczta.onet.pl\" --days 60 --json 2>&1 | head -20\",\"description\":\"Check customer emails\"},\"tool_response\":{\"stdout\":\"BRA","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:33:09Z","tool":"Bash","cmd":"python tools/generowanie/prosba_chrzestny_zlota_plexi_uv.py --help 2>&1\",\"description\":\"Script help\"},\"tool_response\":{\"stdout\":\"usage: prosba_chrzestny_zlota_plexi_uv.py [-h] --klient KLIEN","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:33:18Z","tool":"Bash","cmd":"python -c \"import os; d=r'd:\\\\pomysloweprezenty.pl\\\\projekty\\\\chrzest Å›wiÄ™ty\\\\proÅ›by o zostanie chrzestnym'; import glob; print(glob.glob(d+'/**/_gotowe/Patrycja Ilnicka*', recursive=True)","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:33:30Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python tools/generowanie/prosba_chrzestny_zlota_plexi_uv.py --klient \"Patrycja Ilnicka\" --imie-dziecka \"Michalinka\" --matka-wolacz \"Ciociu Paulino\" --ojciec-wolacz \"Wujku","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T08:33:38Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:03:27Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"SELECT oi.id AS item_id, oi","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:03:35Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"magdadariusz@tlen.pl\" --days 60 --json 2>&1 | head -40\",\"description\":\"Check customer emails\"},\"tool_response\":{\"stdout\":\"BRAK: n","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:04:10Z","tool":"Bash","cmd":"python tools/generowanie/pudelko_komunia_dziewczynka.py --help 2>&1\",\"description\":\"Check script params\"},\"tool_response\":{\"stdout\":\"usage: pudelko_komunia_dziewczynka.py [-h] --klient KLIEN","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:04:23Z","tool":"Bash","cmd":"python -c \"import os; d=r'd:\\\\pomysloweprezenty.pl\\\\projekty\\\\komunia Å›wiÄ™ta - pudeÅ‚ka na pieniÄ…dze\\\\PudeÅ‚ko na pieniÄ…dze z życzeniami na Komunie ÅšwiÄ™tÄ… z nadrukiem UV - Dziewczynka","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:04:39Z","tool":"Bash","cmd":"python -c \"import subprocess,os,sys; zyczenia='Niech ÅšwiÄ™ta Komunia bÄ™dzie dniem, który zapamiÄ™tasz na zawsze. Å»yczymy Ci, abyÅ› podążaÅ‚a Å›cieżkÄ… wyznaczonÄ… przez Boga i codziennie czuÅ‚","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:04:50Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:25:47Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"SELECT oi.id AS item_id, oi","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:25:54Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"monika.j.kontakt@gmail.com\" --days 60 --json 2>&1 | head -10\",\"description\":\"Check emails\"},\"tool_response\":{\"stdout\":\"BRAK: nie ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:26:14Z","tool":"Bash","cmd":"python -c \"import os; d=r'd:\\\\pomysloweprezenty.pl\\\\projekty\\\\komunia Å›wiÄ™ta - pudeÅ‚ka na pieniÄ…dze\\\\PudeÅ‚ko na pieniÄ…dze z życzeniami na Komunie ÅšwiÄ™tÄ… z nadrukiem UV - ChÅ‚opiec\\","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:26:29Z","tool":"Bash","cmd":"python -c \"\\nimport subprocess,os,sys\\nzyczenia1='PrzyjÄ™cie Komunii ÅšwiÄ™tej\\\\rto wielka radość, ale i odpowiedzialność.\\\\rNiech ciaÅ‚o Boże da Ci siłę i odwagÄ™\\\\roraz chroni od wsz","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:26:42Z","tool":"Bash","cmd":"python -c \"\\nimport subprocess,os,sys\\nzyczenia2='Niech w Twoim sercu zawsze goÅ›ci\\\\rBóg dobroci, Bóg miÅ‚oÅ›ci.\\\\rNiech w każdej życia godzinie\\\\rstrzeże CiÄ™ Bóg Å‚askawy.\\\\rNiech ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:26:51Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:40:40Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"SELECT oi.id AS item_id, oi","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:40:47Z","tool":"Bash","cmd":"python tools/generowanie/email_message_fetcher.py --email \"ukumaszka@wp.pl\" --days 60 --json 2>&1 | head -5\",\"description\":\"Check emails\"},\"tool_response\":{\"stdout\":\"BRAK: nie znaleziono w","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:40:58Z","tool":"Bash","cmd":"python -c \"import os; d=r'd:\\\\pomysloweprezenty.pl\\\\projekty\\\\komunia Å›wiÄ™ta - pudeÅ‚ka na pieniÄ…dze\\\\PudeÅ‚ko na pieniÄ…dze z życzeniami na Komunie ÅšwiÄ™tÄ… z nadrukiem UV - Dziewczynka","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:41:15Z","tool":"Bash","cmd":"python -c \"\\nimport subprocess,os,sys\\nzyczenia='Serduszko dziecka maÅ‚e, jak lilia musi być biaÅ‚e, jak Å‚za musi być czyste, jak toÅ„ wody przejrzyste…\\\\rNa pamiÄ…tkÄ™ pierwszej Komunii Åšw","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T09:41:24Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --default-character-set=utf8mb4 -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:31:09Z","tool":"Bash","cmd":"cd /d/temp/pomysloweprezenty.pl && python -c \"from docx import Document; d=Document('buteleczki.docx'); [print(p.text) for p in d.paragraphs]\" 2>&1 | head -100\",\"description\":\"Read docx contents","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:31:27Z","tool":"Bash","cmd":"pip install python-docx --quiet 2>&1 | tail -3\",\"description\":\"install python-docx\"},\"tool_response\":{\"stdout\":\"[notice] A new release of pip is available: 25.0.1 -> 26.1.1\\r\\n[notice] To ","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:31:35Z","tool":"Bash","cmd":"python -c \"\\nfrom docx import Document\\nd = Document(r'd:\\\\temp\\\\pomysloweprezenty.pl\\\\buteleczki.docx')\\nfor p in d.paragraphs:\\n if p.text.strip(): print(repr(p.text))\\nfor t in d.tab","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:31:45Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python -c \"\\nimport sys, io\\nsys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')\\nfrom docx import Document\\nd = Document(r'd:\\\\temp\\\\pomysloweprezenty.p","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:37:07Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_explore_buteleczki_klaudia.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:37:19Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_explore_buteleczki_klaudia.py\" 2>&1\",\"timeout\":120000,\"description\":\"Explore PSD str","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:37:46Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_explore_buteleczki_klaudia.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:38:08Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_explore_buteleczki_klaudia.py\" 2>&1\",\"timeout\":180000,\"description\":\"Explore PSD sma","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:38:44Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python -c \"\\nimport re\\nwith open(r'C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_pudelko_komunia_core.py', encoding='utf-8') as f:\\n s = f","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:39:22Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:39:54Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:40:09Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:40:36Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:41:15Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:41:43Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py\" --only 1 2>&1\",\"timeout\":300000,\"description\":\"Cl","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:42:19Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:42:31Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:43:00Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py\" --only 1 2>&1\",\"timeout\":300000,\"description\":\"Te","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T10:50:59Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py\" --from 2 --to 23 2>&1\",\"timeout\":600000,\"descriptio","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:11:03Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:11:11Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:11:23Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:11:50Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py\" --only 1 2>&1\",\"timeout\":300000,\"description\":\"Te","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:12:57Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:13:24Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:13:32Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:14:04Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py\" --only 1 2>&1\",\"timeout\":300000,\"description\":\"Te","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:20:49Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:20:56Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:21:27Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py\" --only 1 2>&1\",\"timeout\":300000,\"description\":\"Te","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:29:59Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py\" --from 2 --to 23 2>&1 | tail -100\",\"timeout\":900000,","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:33:19Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:33:27Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:33:48Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\buteleczki_klaudia_buczma_batch.py\" --names \"Bartenders For You;Bartenders For You\" --ind","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:34:43Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"SELECT id, product_name_pat","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:34:57Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch -e \"\\nSELECT\\n oi.","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:35:06Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch -e \"SELECT o.internal_o","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:35:14Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch -e \"SELECT id, name FRO","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:35:22Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch -e \"SELECT id, name FRO","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:35:42Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_query_zarnowska.sql","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:35:50Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch < \"C:/visual studio cod","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:36:14Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python tools/generowanie/email_message_fetcher.py --email \"agnieszkazarnowska998@gmail.com\" --days 60 --json 2>&1\",\"description\":\"Check emails\"},\"tool_response\":{\"stdo","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:36:23Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python tools/generowanie/email_photo_fetcher.py --email \"agnieszkazarnowska998@gmail.com\" --out \"C:/tmp/orderpro_photos\" --days 365 2>&1\",\"description\":\"Fetch photo\"},\","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:37:48Z","tool":"Bash","cmd":"tasklist //FI \"IMAGENAME eq Photoshop.exe\" 2>&1 | grep -i photoshop\",\"description\":\"Check Photoshop running\"},\"tool_response\":{\"stdout\":\"Binary file (standard input) matches\",\"stderr\":\","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:38:38Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python tools/generowanie/akrylowe_podziekowanie_ojciec_chrzestny_wzor2.py --klient \"Agnieszka Å»arnowska\" --imie \"Nela\" --plec k --data \"31.05.2026\" --zdjecie \"C:/tmp/ord","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:38:54Z","tool":"Bash","cmd":"PYTHONIOENCODING=utf-8 python tools/generowanie/akrylowe_podziekowanie_matka_chrzestna_wzor2.py --klient \"Agnieszka Å»arnowska\" --imie \"Nela\" --plec k --data \"31.05.2026\" --zdjecie \"C:/tmp/orde","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:39:03Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_mark_zarnowska.sql","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T11:39:12Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch < \"C:/visual studio cod","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T12:15:46Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_query_1009.sql","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T12:15:54Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch < \"C:/visual studio cod","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T12:16:05Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_update_1009.sql","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T12:16:13Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch < \"C:/visual studio cod","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T12:19:40Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_query_1009_full.sql","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T12:19:47Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro < \"C:/visual studio code/projek","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T12:20:32Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\tools\\\\generowanie\\\\_update_1009_total.sql","cwd":"/c/visual studio code/projekty/orderPRO"} +{"ts":"2026-05-11T12:20:43Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro --batch < \"C:/visual studio cod","cwd":"/c/visual studio code/projekty/orderPRO"} diff --git a/tools/generowanie/__pycache__/_pudelko_komunia_core.cpython-312.pyc b/tools/generowanie/__pycache__/_pudelko_komunia_core.cpython-312.pyc index 8f19521..d96b322 100644 Binary files a/tools/generowanie/__pycache__/_pudelko_komunia_core.cpython-312.pyc and b/tools/generowanie/__pycache__/_pudelko_komunia_core.cpython-312.pyc differ diff --git a/tools/generowanie/_explore_buteleczki_klaudia.py b/tools/generowanie/_explore_buteleczki_klaudia.py new file mode 100644 index 0000000..cb2041b --- /dev/null +++ b/tools/generowanie/_explore_buteleczki_klaudia.py @@ -0,0 +1,112 @@ +"""Inspekcja PSD: wejscie do kazdego SO i wypisanie jego warstw.""" +import os +import subprocess +import time +import photoshop.api as ps + +PSD = r"d:\pomysloweprezenty.pl\projekty\buteleczki - indywidualny wzór\Klaudia Buczma.psd" + +PHOTOSHOP_EXE_CANDIDATES = [ + r"C:\Program Files\Adobe\Adobe Photoshop 2024\Photoshop.exe", + r"C:\Program Files\Adobe\Adobe Photoshop 2023\Photoshop.exe", + r"C:\Program Files\Adobe\Adobe Photoshop 2025\Photoshop.exe", + r"C:\Program Files\Adobe\Adobe Photoshop 2026\Photoshop.exe", +] + + +def ensure_photoshop(): + try: + return ps.Application() + except Exception: + for exe in PHOTOSHOP_EXE_CANDIDATES: + if os.path.exists(exe): + subprocess.Popen([exe]) + break + for _ in range(30): + time.sleep(2) + try: + return ps.Application() + except Exception: + continue + raise RuntimeError("brak PS") + + +def open_smart_object(app): + desc = ps.ActionDescriptor() + ref = ps.ActionReference() + ref.putEnumerated( + app.stringIDToTypeID("layer"), + app.stringIDToTypeID("ordinal"), + app.stringIDToTypeID("targetEnum"), + ) + desc.putReference(app.stringIDToTypeID("null"), ref) + app.executeAction(app.stringIDToTypeID("placedLayerEditContents"), desc) + + +def walk(layer, prefix=""): + try: + name = layer.name + except Exception: + name = "?" + kind = type(layer).__name__ + extra = "" + try: + if hasattr(layer, "kind"): + extra = f" kind={layer.kind}" + except Exception: + pass + try: + bounds = [float(b) for b in layer.bounds] + extra += f" bounds={bounds}" + except Exception: + pass + content = "" + try: + if hasattr(layer, "textItem"): + content = f" text=\"{layer.textItem.contents}\"" + except Exception: + pass + print(f"{prefix}- {name} [{kind}]{extra}{content}") + for attr in ("layerSets", "artLayers"): + try: + for c in getattr(layer, attr): + walk(c, prefix + " ") + except Exception: + pass + + +def dump_doc(doc, label): + print(f"=== {label}: {doc.name} ===") + for ls in doc.layerSets: + walk(ls, "") + for al in doc.artLayers: + walk(al, "") + + +def main(): + app = ensure_photoshop() + doc = app.open(PSD) + dump_doc(doc, "ROOT") + + so_names = ["Warstwa 2", "Warstwa 2 kopia", "Warstwa 2 kopia 2", "Warstwa 2 kopia 3"] + for so_name in so_names: + try: + target = doc.artLayers[so_name] + except Exception: + print(f"!! brak warstwy {so_name}") + continue + doc.activeLayer = target + try: + open_smart_object(app) + except Exception as e: + print(f"!! nie udalo sie wejsc do {so_name}: {e}") + continue + so_doc = app.activeDocument + dump_doc(so_doc, f"SO[{so_name}]") + so_doc.close(ps.SaveOptions.DoNotSaveChanges) + + doc.close(ps.SaveOptions.DoNotSaveChanges) + + +if __name__ == "__main__": + main() diff --git a/tools/generowanie/_mark_zarnowska.sql b/tools/generowanie/_mark_zarnowska.sql new file mode 100644 index 0000000..98d5698 --- /dev/null +++ b/tools/generowanie/_mark_zarnowska.sql @@ -0,0 +1,3 @@ +SET NAMES utf8mb4; +UPDATE order_items SET project_generated = 1, project_generated_at = NOW() WHERE id IN (5911, 5912); +SELECT id, project_generated, project_generated_at FROM order_items WHERE id IN (5911, 5912); diff --git a/tools/generowanie/_query_1009.sql b/tools/generowanie/_query_1009.sql new file mode 100644 index 0000000..55bc72d --- /dev/null +++ b/tools/generowanie/_query_1009.sql @@ -0,0 +1,5 @@ +SET NAMES utf8mb4; +SELECT oi.id, oi.original_name, oi.quantity, oi.project_generated +FROM order_items oi +WHERE oi.order_id = 1009 +ORDER BY oi.id; diff --git a/tools/generowanie/_query_1009_full.sql b/tools/generowanie/_query_1009_full.sql new file mode 100644 index 0000000..7cfa98c --- /dev/null +++ b/tools/generowanie/_query_1009_full.sql @@ -0,0 +1,8 @@ +SET NAMES utf8mb4; +SHOW COLUMNS FROM orders; +SELECT '---'; +SHOW COLUMNS FROM order_items; +SELECT '---'; +SELECT * FROM order_items WHERE id = 5898\G +SELECT '---'; +SELECT * FROM orders WHERE id = 1009\G diff --git a/tools/generowanie/_query_zarnowska.sql b/tools/generowanie/_query_zarnowska.sql new file mode 100644 index 0000000..d22743f --- /dev/null +++ b/tools/generowanie/_query_zarnowska.sql @@ -0,0 +1,27 @@ +SET NAMES utf8mb4; +SELECT + oi.id AS item_id, + oi.original_name AS product_name, + oi.personalization, + oi.quantity, + o.id AS order_id, + o.internal_order_number, + o.status_code AS status_code, + oa.name AS buyer_name, + oa.email AS buyer_email, + pm.script_name, + pm.output_dir, + pm.requires_photo, + (SELECT GROUP_CONCAT(n.comment SEPARATOR '\n---\n') FROM order_notes n WHERE n.order_id = o.id AND n.note_type = 'message') AS customer_message +FROM order_items oi +JOIN orders o ON oi.order_id = o.id +JOIN order_statuses os ON o.status_code = os.code +JOIN order_status_groups osg ON os.group_id = osg.id +JOIN project_mappings pm ON pm.is_active = 1 AND oi.original_name = pm.product_name_pattern +LEFT JOIN order_addresses oa ON o.id = oa.order_id AND oa.address_type = 'customer' +WHERE osg.id = 2 + AND oi.project_generated = 0 + AND oi.personalization IS NOT NULL + AND oi.personalization <> '' + AND oa.name LIKE '%Å»arnowska%' +ORDER BY o.id; diff --git a/tools/generowanie/_update_1009.sql b/tools/generowanie/_update_1009.sql new file mode 100644 index 0000000..57963c2 --- /dev/null +++ b/tools/generowanie/_update_1009.sql @@ -0,0 +1,3 @@ +SET NAMES utf8mb4; +UPDATE order_items SET quantity = 1 WHERE id = 5898; +SELECT id, original_name, quantity FROM order_items WHERE id = 5898; diff --git a/tools/generowanie/_update_1009_total.sql b/tools/generowanie/_update_1009_total.sql new file mode 100644 index 0000000..9032b69 --- /dev/null +++ b/tools/generowanie/_update_1009_total.sql @@ -0,0 +1,3 @@ +SET NAMES utf8mb4; +UPDATE orders SET total_with_tax = 89.00, total_paid = 89.00 WHERE id = 1009; +SELECT id, internal_order_number, total_with_tax, total_paid FROM orders WHERE id = 1009; diff --git a/tools/generowanie/buteleczki_klaudia_buczma_batch.py b/tools/generowanie/buteleczki_klaudia_buczma_batch.py new file mode 100644 index 0000000..40272a1 --- /dev/null +++ b/tools/generowanie/buteleczki_klaudia_buczma_batch.py @@ -0,0 +1,275 @@ +""" +Generator wsadowy PSD: buteleczki "Klaudia Buczma" (4 gosci per PSD). + +Otwiera szablon `Klaudia Buczma.psd`, dla kazdej z 4 warstw Smart Object +(Warstwa 2, Warstwa 2 kopia, Warstwa 2 kopia 2, Warstwa 2 kopia 3) wchodzi +do srodka i podmienia warstwe tekstowa `gosc` (sciezka: Warstwa 4 -> gosc). +Zapisuje jako `Klaudia Buczma NN.psd` w `_gotowe/`. + +Lista gosci pobierana z .docx (komorki tabeli). +Grupy < 4 osob -> brakujace SO sa ukrywane (visible=False). + +Uzycie: + python buteleczki_klaudia_buczma_batch.py # wszystkie grupy + python buteleczki_klaudia_buczma_batch.py --only 1 # tylko pierwsza grupa (test) + python buteleczki_klaudia_buczma_batch.py --from 5 --to 7 # zakres grup +""" + +import argparse +import os +import subprocess +import sys +import time + +import photoshop.api as ps +from docx import Document + + +PROJEKT_DIR = r"d:\pomysloweprezenty.pl\projekty\buteleczki - indywidualny wzór" +SZABLON_PATH = os.path.join(PROJEKT_DIR, "Klaudia Buczma.psd") +GOTOWE_DIR = os.path.join(PROJEKT_DIR, "_gotowe_edytowalne") +DOCX_PATH = r"d:\temp\pomysloweprezenty.pl\buteleczki.docx" + +SO_LAYER_NAMES = [ + "Warstwa 2 kopia 2", # lewy gora + "Warstwa 2 kopia 3", # prawy gora + "Warstwa 2 kopia", # lewy dol + "Warstwa 2", # prawy dol +] + +# Sciezka do warstwy `gosc` wewnatrz SO +SO_GROUP_NAME = "Warstwa 4" +GOSC_LAYER_NAME = "gosc" + +PHOTOSHOP_EXE_CANDIDATES = [ + r"C:\Program Files\Adobe\Adobe Photoshop 2024\Photoshop.exe", + r"C:\Program Files\Adobe\Adobe Photoshop 2023\Photoshop.exe", + r"C:\Program Files\Adobe\Adobe Photoshop 2025\Photoshop.exe", + r"C:\Program Files\Adobe\Adobe Photoshop 2026\Photoshop.exe", +] + + +def ensure_photoshop(): + try: + return ps.Application() + except Exception: + for exe in PHOTOSHOP_EXE_CANDIDATES: + if os.path.exists(exe): + subprocess.Popen([exe]) + break + for _ in range(30): + time.sleep(2) + try: + return ps.Application() + except Exception: + continue + raise RuntimeError("Nie udalo sie uruchomic Photoshopa") + + +def open_smart_object(app): + """Otwiera zawartosc aktywnej warstwy Smart Object do edycji.""" + desc = ps.ActionDescriptor() + ref = ps.ActionReference() + ref.putEnumerated( + app.stringIDToTypeID("layer"), + app.stringIDToTypeID("ordinal"), + app.stringIDToTypeID("targetEnum"), + ) + desc.putReference(app.stringIDToTypeID("null"), ref) + app.executeAction(app.stringIDToTypeID("placedLayerEditContents"), desc) + + +def delete_active_layer(app): + """Usuwa aktywna warstwe (przez action manager - dziala na surowych COM).""" + desc = ps.ActionDescriptor() + ref = ps.ActionReference() + ref.putEnumerated( + app.stringIDToTypeID("layer"), + app.stringIDToTypeID("ordinal"), + app.stringIDToTypeID("targetEnum"), + ) + desc.putReference(app.stringIDToTypeID("null"), ref) + app.executeAction(app.stringIDToTypeID("delete"), desc) + + +def smart_object_make_copy(app): + """Layer > Smart Objects > New Smart Object Via Copy. + Odlacza aktywny SO od pozostalych zlinkowanych instancji.""" + app.executeAction( + app.stringIDToTypeID("placedLayerMakeCopy"), ps.ActionDescriptor() + ) + + +def set_text(layer, new_text): + """Zmienia tekst zachowujac srodek bounding boxa.""" + b = [float(x) for x in layer.bounds] + cx_before = (b[0] + b[2]) / 2 + cy_before = (b[1] + b[3]) / 2 + layer.textItem.contents = new_text + b2 = [float(x) for x in layer.bounds] + cx_after = (b2[0] + b2[2]) / 2 + cy_after = (b2[1] + b2[3]) / 2 + dx = cx_before - cx_after + dy = cy_before - cy_after + if dx or dy: + layer.translate(dx, dy) + + +def split_two_lines(name): + """Lamie nazwe na 2 linie - przy spacji najblizszej srodkowi. + Dla 1-slowowych zwraca bez zmian.""" + parts = name.split(" ") + if len(parts) < 2: + return name + mid = len(name) / 2 + best_i = None + best_dist = None + pos = 0 + for i, part in enumerate(parts[:-1]): + pos += len(part) + dist = abs(pos - mid) + if best_dist is None or dist < best_dist: + best_dist = dist + best_i = i + pos += 1 # spacja + left = " ".join(parts[: best_i + 1]) + right = " ".join(parts[best_i + 1 :]) + return f"{left}\r{right}" + + +def read_names(docx_path): + doc = Document(docx_path) + names = [] + for t in doc.tables: + for row in t.rows: + for cell in row.cells: + txt = cell.text.strip() + if txt: + names.append(txt) + return names + + +def chunk4(items): + for i in range(0, len(items), 4): + yield items[i:i + 4] + + +def find_layer_by_name(container, name): + """Rekurencyjnie szuka warstwy po nazwie w doc/layerSet.""" + for ls in container.layerSets: + if ls.name == name: + return ls + found = find_layer_by_name(ls, name) + if found is not None: + return found + for al in container.artLayers: + if al.name == name: + return al + return None + + +def edit_so_gosc(app, doc, so_layer_name, gosc_text): + """Wchodzi do SO, podmienia gosc, zapisuje i wraca.""" + target = find_layer_by_name(doc, so_layer_name) + if target is None: + raise RuntimeError(f"Nie znaleziono warstwy {so_layer_name}") + doc.activeLayer = target + # 4 SO w szablonie sa zlinkowane (wspolny kontener). "New Smart Object Via + # Copy" tworzy niezalezna kopie obok zrodla. Kasujemy oryginal i + # przemianowujemy kopie - efekt: ta sama warstwa w tym samym miejscu, + # ale juz odpieta od pozostalych instancji. + smart_object_make_copy(app) + independent = doc.activeLayer + independent_name_tmp = independent.name + # Skasuj oryginal (target) - aktywuj go i usun przez action manager + doc.activeLayer = target + delete_active_layer(app) + # Wroc do niezaleznej kopii i nadaj jej nazwe oryginalu + doc.activeLayer = independent + independent.name = so_layer_name + open_smart_object(app) + so_doc = app.activeDocument + gosc_layer = find_layer_by_name(so_doc, GOSC_LAYER_NAME) + if gosc_layer is None: + raise RuntimeError(f"Nie znaleziono warstwy '{GOSC_LAYER_NAME}' w SO {so_layer_name}") + old = gosc_layer.textItem.contents + set_text(gosc_layer, gosc_text) + so_doc.save() + so_doc.close() + print(f" {so_layer_name}: '{old.strip()}' -> '{gosc_text}'") + + +def generate_group(app, names_group, index): + """Generuje jeden PSD dla grupy do 4 nazwisk.""" + os.makedirs(GOTOWE_DIR, exist_ok=True) + out_name = f"Klaudia Buczma {index:02d}.psd" + out_path = os.path.join(GOTOWE_DIR, out_name) + + doc = app.open(SZABLON_PATH) + print(f"[{index:02d}] otwarto szablon ({len(names_group)} osob)") + + for slot_idx, so_name in enumerate(SO_LAYER_NAMES): + if slot_idx < len(names_group): + edit_so_gosc(app, doc, so_name, split_two_lines(names_group[slot_idx])) + else: + doc.artLayers[so_name].visible = False + print(f" {so_name}: UKRYTE (brak osoby)") + + psd_opts = ps.PhotoshopSaveOptions() + doc.saveAs(out_path, psd_opts, True) + print(f"[{index:02d}] zapisano: {out_path}") + doc.close(ps.SaveOptions.DoNotSaveChanges) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--only", type=int, help="Tylko jedna grupa (1-based)") + parser.add_argument("--from", dest="from_", type=int, default=1, help="Od grupy N") + parser.add_argument("--to", type=int, help="Do grupy N (wlacznie)") + parser.add_argument( + "--names", + help="Lista nazwisk oddzielona ';' (1-4 sztuk). Generuje jeden PSD.", + ) + parser.add_argument( + "--index", + type=int, + help="Numer wynikowego PSD przy uzyciu --names (np. 24 -> 'Klaudia Buczma 24.psd')", + ) + args = parser.parse_args() + + app = ensure_photoshop() + + while app.documents.length > 0: + app.activeDocument.close(ps.SaveOptions.DoNotSaveChanges) + + if args.names: + if args.index is None: + raise SystemExit("--names wymaga --index N") + custom = [n.strip() for n in args.names.split(";") if n.strip()] + if not (1 <= len(custom) <= 4): + raise SystemExit("--names: 1-4 nazwisk oddzielonych ';'") + generate_group(app, custom, args.index) + print("Gotowe!") + return + + names = read_names(DOCX_PATH) + groups = list(chunk4(names)) + print(f"Wczytano {len(names)} osob -> {len(groups)} grup po 4") + + if args.only: + indices = [args.only] + else: + end = args.to or len(groups) + indices = list(range(args.from_, end + 1)) + + for idx in indices: + if not (1 <= idx <= len(groups)): + print(f"Pominieto grupe {idx} (poza zakresem)") + continue + generate_group(app, groups[idx - 1], idx) + + print("Gotowe!") + + +if __name__ == "__main__": + main()