diff --git a/categories.json b/categories.json index 4aaae61..b28ef0b 100644 --- a/categories.json +++ b/categories.json @@ -29,12 +29,6 @@ "portal_id": "518", "url": "https://www.euro.com.pl/glosniki-komputerowe.bhtml" }, - { - "id": "7", - "name": "Ноутбуки", - "portal_id": "702", - "url": "https://www.euro.com.pl/laptopy-i-netbooki.bhtml" - }, { "id": "8", "name": "Smart Watch Годинники", @@ -64,5 +58,275 @@ "name": "Роботи пилососи", "portal_id": "63023", "url": "https://www.euro.com.pl/odkurzacze-automatyczne.bhtml" + }, + { + "id": "13", + "name": "Кавоварки", + "portal_id": "638", + "url": "https://www.euro.com.pl/ekspresy-cisnieniowe.bhtml" + }, + { + "id": "14", + "name": "Фритюрниці", + "portal_id": "64306", + "url": "https://www.euro.com.pl/frytkownice.bhtml" + }, + { + "id": "15", + "name": "Ігрові приставки", + "portal_id": "70801", + "url": "https://www.euro.com.pl/kierownice-pc,strona-2.bhtml" + }, + { + "id": "16", + "name": "Ігрові крісла", + "portal_id": "15030309", + "url": "https://www.euro.com.pl/fotele-i-stojaki-do-kierownicy.bhtml" + }, + { + "id": "17", + "name": " Вертикальні пилососи", + "portal_id": "63021", + "url": "https://www.euro.com.pl/odkurzacze-pionowe.bhtml" + }, + { + "id": "18", + "name": " Мінімийки", + "portal_id": "121105", + "url": "https://www.euro.com.pl/myjki-wysokocisnieniowe.bhtml" + }, + { + "id": "19", + "name": " Робот-косарка", + "portal_id": "1250308", + "url": "https://www.euro.com.pl/roboty-koszace.bhtml" + }, + { + "id": "20", + "name": " Сантехніка", + "portal_id": "130103", + "url": "https://www.euro.com.pl/baterie-kuchenne.bhtml" + }, + { + "id": "21", + "name": "Кухонні мийки", + "portal_id": "1302", + "url": "https://www.euro.com.pl/zestawy-armatury-kuchennej.bhtml" + }, + { + "id": "22", + "name": "Витяжки", + "portal_id": "642", + "url": "https://www.euro.com.pl/okapy.bhtml" + }, + { + "id": "23", + "name": "Парогенератори", + "portal_id": "147008", + "url": "https://www.euro.com.pl/zelazka-systemowe,strona-2.bhtml" + }, + { + "id": "24", + "name": "Вбудовані варочні поверхні", + "portal_id": "61911", + "url": "https://www.euro.com.pl/plyty-do-zabudowy.bhtml" + }, + { + "id": "25", + "name": "Духовки", + "portal_id": "61903", + "url": "https://www.euro.com.pl/piekarniki-do-zabudowy.bhtml" + }, + { + "id": "26", + "name": " Вбудовані мікрохвильові печі", + "portal_id": "605", + "url": "https://www.euro.com.pl/kuchenki-mikrofalowe-do-zabudowy.bhtml" + }, + { + "id": "27", + "name": "Грилі", + "portal_id": "63009", + "url": "https://www.euro.com.pl/grille,strona-4.bhtml" + }, + { + "id": "28", + "name": " Електрочайники", + "portal_id": "640", + "url": "https://www.euro.com.pl/czajniki,strona-2.bhtml" + }, + { + "id": "29", + "name": "Соковижималки (соковичавниці)", + "portal_id": "611", + "url": "https://www.euro.com.pl/wyciskarki-wolnoobrotowe.bhtml" + }, + { + "id": "30", + "name": "Блендери", + "portal_id": "64301", + "url": "https://www.euro.com.pl/miksery-kielichowe.bhtml" + }, + { + "id": "31", + "name": " Тостери", + "portal_id": "639", + "url": "https://www.euro.com.pl/tostery.bhtml" + }, + { + "id": "32", + "name": "Електробритви", + "portal_id": "3314", + "url": "https://www.euro.com.pl/golarki.bhtml" + }, + { + "id": "33", + "name": "Зубні щітки та іригатори", + "portal_id": "63301", + "url": "https://www.euro.com.pl/szczoteczki-elektryczne.bhtml" + }, + { + "id": "35", + "name": " Плойки", + "portal_id": "63303", + "url": "https://www.euro.com.pl/prostownice-i-karbownice.bhtml" + }, + { + "id": "37", + "name": "Графічні планшети", + "portal_id": "70804", + "url": "https://www.euro.com.pl/tablety-graficzne.bhtml" + }, + { + "id": "39", + "name": "Акустична система", + "portal_id": "63701", + "url": "https://www.euro.com.pl/wzmacniacze.bhtml" + }, + { + "id": "40", + "name": "Програвачі вінілових дисків", + "portal_id": "6371201", + "url": "https://www.euro.com.pl/gramofony.bhtml" + }, + { + "id": "41", + "name": "Портативні колонки", + "portal_id": "6371101", + "url": "https://www.euro.com.pl/power-audio.bhtml" + }, + { + "id": "42", + "name": "Планшети", + "portal_id": "70105", + "url": "https://www.euro.com.pl/ipad-i-tablety-multimedialne.bhtml" + }, + { + "id": "43", + "name": "Прасувальні дошки", + "portal_id": "151602", + "url": "https://www.euro.com.pl/systemy-do-prasowania.bhtml" + }, + { + "id": "44", + "name": "Кухонні ножі", + "portal_id": "15230410", + "url": "https://www.euro.com.pl/noze-kuchenne.bhtml" + }, + { + "id": "45", + "name": " Кавомолки", + "portal_id": "638", + "url": "https://www.euro.com.pl/mlynki-do-kawy.bhtml" + }, + { + "id": "46", + "name": "Фені", + "portal_id": " 617", + "url": "https://www.euro.com.pl/suszarki-do-wlosow.bhtml" + }, + { + "id": "47", + "name": "Електросамокати", + "portal_id": "205302", + "url": "https://www.euro.com.pl/hulajnogi-elektryczne.bhtml" + }, + { + "id": "48", + "name": "Очишчувачі повітря", + "portal_id": "625", + "url": "https://www.euro.com.pl/oczyszczacze-powietrza.bhtml" + }, + { + "id": "49", + "name": " Екшн-камери", + "portal_id": "1902", + "url": "https://www.euro.com.pl/kamery-sportowe.bhtml" + }, + { + "id": "50", + "name": "Фотоапарати", + "portal_id": "1909", + "url": "https://www.euro.com.pl/kompakty-z-wymienna-optyka.bhtml" + }, + { + "id": "51", + "name": "Фотоапарати", + "portal_id": "1909", + "url": "https://www.euro.com.pl/aparaty-cyfrowe.bhtml" + }, + { + "id": "52", + "name": "Очишчувачі повітря", + "portal_id": "625", + "url": "https://www.euro.com.pl/nawilzacze,strona-2.bhtml" + }, + { + "id": "53", + "name": "Мікрофони", + "portal_id": "6371204", + "url": "https://www.euro.com.pl/mikrofony.bhtml" + }, + { + "id": "54", + "name": "Миші", + "portal_id": "70805", + "url": "https://www.euro.com.pl/myszy,strona-2.bhtml" + }, + { + "id": "55", + "name": "Принтери", + "portal_id": "70812", + "url": "https://www.euro.com.pl/urzadzenia-wielofunkcyjne.bhtml" + }, + { + "id": "56", + "name": "Принтери", + "portal_id": "70812", + "url": "https://www.euro.com.pl/drukarki-atramentowe.bhtml" + }, + { + "id": "58", + "name": "SSD накопичувачі", + "portal_id": "70704", + "url": "https://www.euro.com.pl/dyski-wewnetrzne-ssd.bhtml" + }, + { + "id": "59", + "name": "Модулі пам'яті", + "portal_id": "70705", + "url": "https://www.euro.com.pl/pamieci-ram.bhtml" + }, + { + "id": "60", + "name": "SSD накопичувачі", + "portal_id": "70704", + "url": "https://www.euro.com.pl/archiwizacja-danych1.bhtml" + }, + { + "id": "61", + "name": "Корпуси для комп'ютерів", + "portal_id": "720", + "url": "https://www.euro.com.pl/obudowy-pc.bhtml" } -] \ No newline at end of file +] diff --git a/euro_scraper.py b/euro_scraper.py index 669438b..fa3b915 100644 --- a/euro_scraper.py +++ b/euro_scraper.py @@ -357,7 +357,8 @@ def extract_product_info( "shop": shop_delivery, "home": home_delivery, }, - "in_stock": shop_delivery in ("FOR_TOMORROW", "IMMEDIATE") or home_delivery in ("FOR_TOMORROW", "IMMEDIATE"), + # "in_stock": shop_delivery in ("FOR_TOMORROW", "IMMEDIATE") or home_delivery in ("FOR_TOMORROW", "IMMEDIATE"), + "in_stock": all(code not in ("UNAVAILABLE", "TEMPORARILY_UNAVAILABLE", None) for code in [shop_delivery, home_delivery]) } @@ -459,7 +460,8 @@ def fetch_products( driver, # Передаем driver в clean_description filtered_product["plu"], ) - all_products.append(filtered_product) + if filtered_product["prices"]["mainPrice"] >= 300: + all_products.append(filtered_product) current_product += 1 if status is not None: diff --git a/feed_generator.py b/feed_generator.py index 22d2ff1..27328e1 100644 --- a/feed_generator.py +++ b/feed_generator.py @@ -214,11 +214,16 @@ class RobotVacuumYMLGenerator: if not list(self.categories): raise ValueError("No categories added to the YML feed.") - # Add offers for each product - for product in products: + # ✅ Фильтрация товаров дороже 300 злотых + filtered_products = [ + product + for product in products + if product.get("prices", {}).get("mainPrice", 0) > 300 + ] + + for product in filtered_products: self.add_offer(product) - # Write the XML tree tree = ET.ElementTree(self.root) tree.write(output_yml, encoding="UTF-8", xml_declaration=True) print(f"YML feed generated: {output_yml}") diff --git a/static/css/styles.css b/static/css/styles.css index dc868eb..065765f 100644 --- a/static/css/styles.css +++ b/static/css/styles.css @@ -261,7 +261,7 @@ button:disabled { border-color: var(--blue); } -.items-limit-group { +.items-button-group { display: flex; align-items: center; gap: 0.5rem; @@ -269,25 +269,6 @@ button:disabled { height: 44px; } -.items-limit-group label { - color: var(--subtext0); - font-size: 14px; -} - -#items-limit { - margin: 0; - text-align: center; - max-width: 4rem; -} - -.items-limit-group input[type="number"] { - height: 44px; - width: 4rem; - padding: 0 0.75rem; - flex-shrink: 0; - text-align: center; -} - .categories-section { margin-bottom: 2rem; background: var(--surface0); diff --git a/templates/index.html b/templates/index.html index 10ea1e5..539f116 100644 --- a/templates/index.html +++ b/templates/index.html @@ -13,25 +13,19 @@
🕓 Фід оновлено: {{ feed_file_info.modified }}
{% endif %} -