From 1c20bfc408bb0da189a0e6573ebc5d6c85e6a55d Mon Sep 17 00:00:00 2001 From: sriram Date: Wed, 2 Sep 2026 15:52:31 +0530 Subject: [PATCH] Brand Images Repairs --- ...d_image_repair_backup_20260902_153945.json | 1486 ++++++++++++++++ ...d_image_repair_backup_20260902_154645.json | 1506 +++++++++++++++++ scripts/repair_brand_images.py | 158 +- 3 files changed, 3140 insertions(+), 10 deletions(-) create mode 100644 data/brand_image_repair_backup_20260902_153945.json create mode 100644 data/brand_image_repair_backup_20260902_154645.json diff --git a/data/brand_image_repair_backup_20260902_153945.json b/data/brand_image_repair_backup_20260902_153945.json new file mode 100644 index 0000000..d9c43df --- /dev/null +++ b/data/brand_image_repair_backup_20260902_153945.json @@ -0,0 +1,1486 @@ +{ + "created_at": "2026-09-02T15:39:45.726625", + "db_host": "31.97.228.132", + "db_name": "pgvector", + "tables": { + "brand_aachi": [ + { + "image_id": "aachi_aachi_masala_powder_7g", + "product_name": "Aachi Masala Powder 7g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masala_powder_50g", + "product_name": "Aachi Masala Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masala_powder_100g", + "product_name": "Aachi Masala Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masala_powder_200g", + "product_name": "Aachi Masala Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masala_powder_500g", + "product_name": "Aachi Masala Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_masala_50g", + "product_name": "Aachi Chicken Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_masala_100g", + "product_name": "Aachi Chicken Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_masala_200g", + "product_name": "Aachi Chicken Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_masala_500g", + "product_name": "Aachi Chicken Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mutton_masala_50g", + "product_name": "Aachi Mutton Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mutton_masala_100g", + "product_name": "Aachi Mutton Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mutton_masala_200g", + "product_name": "Aachi Mutton Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mutton_masala_500g", + "product_name": "Aachi Mutton Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_masala_50g", + "product_name": "Aachi Fish Fry Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_masala_100g", + "product_name": "Aachi Fish Fry Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_masala_200g", + "product_name": "Aachi Fish Fry Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_masala_500g", + "product_name": "Aachi Fish Fry Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_15_g", + "product_name": "Aachi Garam Masala 15 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_50g", + "product_name": "Aachi Garam Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_100g", + "product_name": "Aachi Garam Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_200g", + "product_name": "Aachi Garam Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_500g", + "product_name": "Aachi Garam Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_100g", + "product_name": "Aachi Pickles 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_200g", + "product_name": "Aachi Pickles 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_pickles_26d3329d", + "product_name": "Aachi Pickles 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_375_g", + "product_name": "Aachi Pickles 375 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_500g", + "product_name": "Aachi Pickles 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_1kg", + "product_name": "Aachi Pickles 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_mix_400g", + "product_name": "Aachi Rasam Mix 400g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_lime_pickle_100g", + "product_name": "Aachi Lime Pickle 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_lime_pickle_300g", + "product_name": "Aachi Lime Pickle 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_lime_pickle_500g", + "product_name": "Aachi Lime Pickle 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_lime_pickle_1kg", + "product_name": "Aachi Lime Pickle 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_90g", + "product_name": "Aachi Fish Fry Mix 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_100g", + "product_name": "Aachi Mixed Pickle 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_200g", + "product_name": "Aachi Mixed Pickle 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_300g", + "product_name": "Aachi Mixed Pickle 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_375g", + "product_name": "Aachi Mixed Pickle 375g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_100g", + "product_name": "Aachi Fish Fry Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_500g", + "product_name": "Aachi Mixed Pickle 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_100g", + "product_name": "Aachi Mango Pickle 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_200g", + "product_name": "Aachi Mango Pickle 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_300g", + "product_name": "Aachi Mango Pickle 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_500g", + "product_name": "Aachi Mango Pickle 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_1kg", + "product_name": "Aachi Mango Pickle 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_appalams_100g", + "product_name": "Aachi Appalams 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_appalams_500g", + "product_name": "Aachi Appalams 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_150g", + "product_name": "Aachi Fish Fry Mix 150g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_appalams_1kg", + "product_name": "Aachi Appalams 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fryums_100g", + "product_name": "Aachi Fryums 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fryums_500g", + "product_name": "Aachi Fryums 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fryums_1kg", + "product_name": "Aachi Fryums 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_30g", + "product_name": "Aachi Ginger Paste 30g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_baby_fryums_100g", + "product_name": "Aachi Baby Fryums 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_baby_fryums_500g", + "product_name": "Aachi Baby Fryums 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_baby_fryums_1kg", + "product_name": "Aachi Baby Fryums 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_cumin_and_coriander_100g", + "product_name": "Aachi Masalas - Cumin and Coriander 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_cumin_and_coriander_200g", + "product_name": "Aachi Masalas - Cumin and Coriander 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_cumin_and_coriander_500g", + "product_name": "Aachi Masalas - Cumin and Coriander 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_cumin_and_coriander_1kg", + "product_name": "Aachi Masalas - Cumin and Coriander 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_turmeric_and_ginger_100g", + "product_name": "Aachi Masalas - Turmeric and Ginger 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_turmeric_and_ginger_200g", + "product_name": "Aachi Masalas - Turmeric and Ginger 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_turmeric_and_ginger_500g", + "product_name": "Aachi Masalas - Turmeric and Ginger 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_turmeric_and_ginger_1kg", + "product_name": "Aachi Masalas - Turmeric and Ginger 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_paprika_and_garlic_100g", + "product_name": "Aachi Masalas - Paprika and Garlic 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_paprika_and_garlic_500g", + "product_name": "Aachi Masalas - Paprika and Garlic 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_paprika_and_garlic_1kg", + "product_name": "Aachi Masalas - Paprika and Garlic 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_ginger_and_garlic_100g", + "product_name": "Aachi Masalas - Ginger and Garlic 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_ginger_and_garlic_300g", + "product_name": "Aachi Masalas - Ginger and Garlic 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_masalas_ginger_and_garlic_0f99ecc8", + "product_name": "Aachi Masalas - Ginger and Garlic 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_ginger_and_garlic_1kg", + "product_name": "Aachi Masalas - Ginger and Garlic 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_40g", + "product_name": "Aachi Biryani Mix 40g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_50g", + "product_name": "Aachi Biryani Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_200g", + "product_name": "Aachi Fish Fry Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_100g", + "product_name": "Aachi Biryani Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_250g", + "product_name": "Aachi Biryani Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_500g", + "product_name": "Aachi Biryani Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_1kg", + "product_name": "Aachi Biryani Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_40g", + "product_name": "Aachi Ginger Paste 40g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_50g", + "product_name": "Aachi Chicken Fry Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_100g", + "product_name": "Aachi Chicken Fry Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_250g", + "product_name": "Aachi Chicken Fry Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_500g", + "product_name": "Aachi Chicken Fry Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_50g", + "product_name": "Aachi Ginger Paste 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_1kg", + "product_name": "Aachi Chicken Fry Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_meat_mix_100g", + "product_name": "Aachi Meat Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_meat_mix_200g", + "product_name": "Aachi Meat Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_meat_mix_250g", + "product_name": "Aachi Meat Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_60g", + "product_name": "Aachi Ginger Paste 60g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_meat_mix_500g", + "product_name": "Aachi Meat Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_meat_mix_2e3bfece", + "product_name": "Aachi Meat Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_50_g", + "product_name": "Aachi Biryani Masala 50 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_160g", + "product_name": "Aachi Biryani Masala 160g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_mix_100g", + "product_name": "Aachi Rasam Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_200g", + "product_name": "Aachi Biryani Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_250g", + "product_name": "Aachi Biryani Masala 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_500g", + "product_name": "Aachi Biryani Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_1kg", + "product_name": "Aachi Biryani Masala 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chilli_powder_100gm", + "product_name": "Aachi Chilli Powder 100gm", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chilli_powder_200g", + "product_name": "Aachi Chilli Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chilli_powder_500g", + "product_name": "Aachi Chilli Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_turmeric_powder_50g", + "product_name": "Aachi Turmeric Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_turmeric_powder_100g", + "product_name": "Aachi Turmeric Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_turmeric_powder_200g", + "product_name": "Aachi Turmeric Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_turmeric_powder_500g", + "product_name": "Aachi Turmeric Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_5g", + "product_name": "Aachi Coriander Powder 5g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_10g", + "product_name": "Aachi Coriander Powder 10g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_20g", + "product_name": "Aachi Coriander Powder 20g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_50g", + "product_name": "Aachi Coriander Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_100g", + "product_name": "Aachi Coriander Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_200g", + "product_name": "Aachi Coriander Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_powder_50g", + "product_name": "Aachi Sambar Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_powder_500g", + "product_name": "Aachi Sambar Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_powder_50g", + "product_name": "Aachi Rasam Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_powder_200g", + "product_name": "Aachi Rasam Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_powder_500g", + "product_name": "Aachi Rasam Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_powder_1kg", + "product_name": "Aachi Rasam Powder 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_curry_powder_50g", + "product_name": "Aachi Curry Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_curry_powder_90g", + "product_name": "Aachi Curry Powder 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_curry_powder_1kg", + "product_name": "Aachi Curry Powder 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_50g", + "product_name": "Aachi Tandoori Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_100g", + "product_name": "Aachi Tandoori Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_200g", + "product_name": "Aachi Tandoori Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_500g", + "product_name": "Aachi Tandoori Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_1kg", + "product_name": "Aachi Tandoori Masala 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paneer_tikka_masala_50ml", + "product_name": "Aachi Paneer Tikka Masala 50ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paneer_tikka_masala_100g", + "product_name": "Aachi Paneer Tikka Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paneer_tikka_masala_200ml", + "product_name": "Aachi Paneer Tikka Masala 200ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paneer_tikka_masala_500g", + "product_name": "Aachi Paneer Tikka Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paste_100g", + "product_name": "Aachi Paste 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paste_200g", + "product_name": "Aachi Paste 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paste_300g", + "product_name": "Aachi Paste 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_10g", + "product_name": "Aachi Ginger Paste 10g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_20g", + "product_name": "Aachi Ginger Paste 20g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garlic_paste_30g", + "product_name": "Aachi Garlic Paste 30g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garlic_paste_90g", + "product_name": "Aachi Garlic Paste 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garlic_paste_300g", + "product_name": "Aachi Garlic Paste 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garlic_paste_1kg", + "product_name": "Aachi Garlic Paste 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_5g", + "product_name": "Aachi Ginger Garlic Paste 5g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_10g", + "product_name": "Aachi Ginger Garlic Paste 10g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_15g", + "product_name": "Aachi Ginger Garlic Paste 15g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_20g", + "product_name": "Aachi Ginger Garlic Paste 20g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_300g", + "product_name": "Aachi Ginger Garlic Paste 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ready_to_cook_mixes_100g", + "product_name": "Aachi Ready To Cook Mixes 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ready_to_cook_mixes_200g", + "product_name": "Aachi Ready To Cook Mixes 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ready_to_cook_mixes_500g", + "product_name": "Aachi Ready To Cook Mixes 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_100g", + "product_name": "Aachi Sambar Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_mix_200g", + "product_name": "Aachi Rasam Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_200g", + "product_name": "Aachi Sambar Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_250g", + "product_name": "Aachi Sambar Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_300g", + "product_name": "Aachi Sambar Mix 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_500g", + "product_name": "Aachi Sambar Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_mix_50g", + "product_name": "Aachi Rasam Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_50g", + "product_name": "Aachi Kulambu Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_100g", + "product_name": "Aachi Kulambu Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_200g", + "product_name": "Aachi Kulambu Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_250g", + "product_name": "Aachi Kulambu Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_300g", + "product_name": "Aachi Kulambu Mix 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_50g", + "product_name": "Aachi Kurma Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_100g", + "product_name": "Aachi Kurma Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_200g", + "product_name": "Aachi Kurma Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_500g", + "product_name": "Aachi Kurma Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_1kg", + "product_name": "Aachi Kurma Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_50g", + "product_name": "Aachi Chettinad Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_100g", + "product_name": "Aachi Chettinad Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_167g", + "product_name": "Aachi Chettinad Mix 167g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_250g", + "product_name": "Aachi Chettinad Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_365g", + "product_name": "Aachi Chettinad Mix 365g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_500g", + "product_name": "Aachi Chettinad Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_50g", + "product_name": "Aachi Fish Fry Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kuzhambu_powder_100g", + "product_name": "Aachi Kuzhambu Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kuzhambu_powder_250g", + "product_name": "Aachi Kuzhambu Powder 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kuzhambu_powder_500g", + "product_name": "Aachi Kuzhambu Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_powder_100g", + "product_name": "Aachi Sambar Powder 100g", + "image_url": "https://bazaar-foods.co.uk/cdn/shop/products/aachi-madras-sambar-powder-200g.jpg?v=1649053567", + "image_urls": [ + "https://bazaar-foods.co.uk/cdn/shop/products/aachi-madras-sambar-powder-200g.jpg?v=1649053567", + "https://www.quicklly.com/upload_images/product/1586997830-aachi-sambar-powder.jpg", + "https://1.bp.blogspot.com/-e3VV3maJBrY/XzD_WavE3vI/AAAAAAAAAfA/48RXX5xw2nUt-BRO5SBjfCOZl-rwYovUQCLcBGAsYHQ/s800/6-Aachi-sambar_powder-50-grams.jpg", + "https://aachifoods.com/cdn/shop/files/aachi-hotel-sambar-powder.webp", + "https://indianfoodstore.de/wp-content/uploads/2022/04/aachi-madras-sambar-powder.webp", + "http://www.grocerywala.co.uk/cdn/shop/files/Aachi-200-g-Madras-Sambar-Powder_grande.webp?v=1765957918", + "https://m.media-amazon.com/images/I/51fk8yE90iL._SX300_SY300_QL70_ML2_.jpg", + "https://images.openfoodfacts.org/images/products/890/602/112/8568/front_fr.3.400.jpg", + "https://i.pinimg.com/originals/2e/dd/43/2edd439e8b96a9b6b8d3571fc8449b70.jpg", + "https://meghagrocery.com/wp-content/uploads/2022/05/Achi-sambar-powder.jpg" + ] + }, + { + "image_id": "aachi_aachi_sambar_powder_200g", + "product_name": "Aachi Sambar Powder 200g", + "image_url": "https://bazaar-foods.co.uk/cdn/shop/products/aachi-madras-sambar-powder-200g.jpg?v=1649053567", + "image_urls": [ + "https://bazaar-foods.co.uk/cdn/shop/products/aachi-madras-sambar-powder-200g.jpg?v=1649053567", + "https://www.quicklly.com/upload_images/product/1586997830-aachi-sambar-powder.jpg", + "https://1.bp.blogspot.com/-e3VV3maJBrY/XzD_WavE3vI/AAAAAAAAAfA/48RXX5xw2nUt-BRO5SBjfCOZl-rwYovUQCLcBGAsYHQ/s800/6-Aachi-sambar_powder-50-grams.jpg", + "https://aachifoods.com/cdn/shop/files/aachi-hotel-sambar-powder.webp", + "https://indianfoodstore.de/wp-content/uploads/2022/04/aachi-madras-sambar-powder.webp", + "http://www.grocerywala.co.uk/cdn/shop/files/Aachi-200-g-Madras-Sambar-Powder_grande.webp?v=1765957918", + "https://m.media-amazon.com/images/I/51fk8yE90iL._SX300_SY300_QL70_ML2_.jpg", + "https://images.openfoodfacts.org/images/products/890/602/112/8568/front_fr.3.400.jpg", + "https://i.pinimg.com/originals/2e/dd/43/2edd439e8b96a9b6b8d3571fc8449b70.jpg", + "https://meghagrocery.com/wp-content/uploads/2022/05/Achi-sambar-powder.jpg" + ] + } + ], + "brand_mtr": [ + { + "image_id": "mtr_mtr_dosa_mix_50g", + "product_name": "MTR Dosa Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_dosa_mix_f82827a0", + "product_name": "MTR Dosa Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_dosa_mix_200g", + "product_name": "MTR Dosa Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_dosa_mix_500g", + "product_name": "MTR Dosa Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rasam_powder_100g", + "product_name": "MTR Rasam Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_breakfast_mix_90g", + "product_name": "MTR Breakfast Mix 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_breakfast_mix_160g", + "product_name": "MTR Breakfast Mix 160g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_breakfast_mix_500g", + "product_name": "MTR Breakfast Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_breakfast_mix_1_5kg", + "product_name": "MTR Breakfast Mix 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rasam_powder_200g", + "product_name": "MTR Rasam Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rava_idli_mix_90g", + "product_name": "MTR Rava Idli Mix 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rava_idli_mix_1kg", + "product_name": "MTR Rava Idli Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rava_idli_mix_1_5kg", + "product_name": "MTR Rava Idli Mix 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rasam_powder_400g", + "product_name": "MTR Rasam Powder 400g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_sambar_powder_90g", + "product_name": "MTR Sambar Powder 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_sambar_powder_200g", + "product_name": "MTR Sambar Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_sambar_powder_500g", + "product_name": "MTR Sambar Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_sambar_powder_1_5kg", + "product_name": "MTR Sambar Powder 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_10g", + "product_name": "MTR Ready To Eat 10g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_50g", + "product_name": "MTR Ready To Eat 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_160g", + "product_name": "MTR Ready To Eat 160g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_200g", + "product_name": "MTR Ready To Eat 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_250g", + "product_name": "MTR Ready To Eat 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_300g", + "product_name": "MTR Ready To Eat 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_90g", + "product_name": "MTR Vermicelli 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_180g", + "product_name": "MTR Vermicelli 180g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_400g", + "product_name": "MTR Vermicelli 400g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_850_g", + "product_name": "MTR Vermicelli 850 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_1_5kg", + "product_name": "MTR Vermicelli 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_6g", + "product_name": "MTR Masala 6g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_12g", + "product_name": "MTR Masala 12g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_90g", + "product_name": "MTR Masala 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_200g", + "product_name": "MTR Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_300g", + "product_name": "MTR Masala 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_1_5kg", + "product_name": "MTR Masala 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_pickle_100g", + "product_name": "MTR Pickle 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_pickle_250g", + "product_name": "MTR Pickle 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_pickle_300_g", + "product_name": "MTR Pickle 300 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_pickle_500g", + "product_name": "MTR Pickle 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rava_idli_mix_500g", + "product_name": "MTR Rava Idli Mix 500g", + "image_url": "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_000.webp", + "image_urls": [ + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_000.webp", + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_001.png", + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_002.png", + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_003.jpg", + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_004.jpg" + ] + } + ], + "brand_idhayam": [ + { + "image_id": "idhayam_idhayam_gingelly_oil_500ml", + "product_name": "Idhayam Gingelly Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_gingelly_oil_1l", + "product_name": "Idhayam Gingelly Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_sesame_oil_1l", + "product_name": "Idhayam Sesame Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_groundnut_oil_500ml", + "product_name": "Idhayam Groundnut Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_groundnut_oil_2l", + "product_name": "Idhayam Groundnut Oil 2L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_groundnut_oil_5kg", + "product_name": "Idhayam Groundnut Oil 5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_coconut_oil_500ml", + "product_name": "Idhayam Coconut Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_100g", + "product_name": "Idhayam Mantra Groundnut Oil 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_coconut_oil_1l", + "product_name": "Idhayam Coconut Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mustard_oil_500ml", + "product_name": "Idhayam Mustard Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mustard_oil_1l", + "product_name": "Idhayam Mustard Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mustard_oil_5kg", + "product_name": "Idhayam Mustard Oil 5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_sunflower_oil_500ml", + "product_name": "Idhayam Sunflower Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_sunflower_oil_1l", + "product_name": "Idhayam Sunflower Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_refined_oil_500ml", + "product_name": "Idhayam Refined Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_refined_oil_1l", + "product_name": "Idhayam Refined Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_250g", + "product_name": "Idhayam Mantra Groundnut Oil 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_500g", + "product_name": "Idhayam Mantra Groundnut Oil 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_1kg", + "product_name": "Idhayam Mantra Groundnut Oil 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_5kg", + "product_name": "Idhayam Mantra Groundnut Oil 5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_refined_oil_500ml", + "product_name": "Idhayam Mantra Refined Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_refined_oil_1l", + "product_name": "Idhayam Mantra Refined Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_refined_oil_5kg", + "product_name": "Idhayam Mantra Refined Oil 5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_sesame_oil_500ml", + "product_name": "Idhayam Sesame Oil 500ml", + "image_url": "https://watanindiafood.com/wp-content/uploads/2024/02/Idhayam-Sesame-Gingelly-Oil-500ML-Pack.jpg", + "image_urls": [ + "https://watanindiafood.com/wp-content/uploads/2024/02/Idhayam-Sesame-Gingelly-Oil-500ML-Pack.jpg", + "https://shivashaktifoods.co.uk/wp-content/uploads/2024/08/IDHAYAM-Sesame-Oil-\u2013-1-Ltr-Bottle2.png", + "https://www.idhayam.com/wp-content/uploads/2024/04/IDHAYAM-Sesame-Oil-\u2013-1-Ltr-Bottle34.png", + "https://www.idhayam.com/wp-content/uploads/2020/09/Product-3-1-1-scaled.jpg", + "https://www.idhayam.com/wp-content/uploads/2021/11/Product-1--1024x1024.png", + "https://5.imimg.com/data5/SELLER/Default/2025/11/562921347/IV/CY/MF/41544304/1litre-idhayam-sesame-oil-500x500.jpg", + "https://upload.wikimedia.org/wikipedia/commons/a/a7/Idhayam_Logo.png?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=thumbnail_unscaled", + "http://juradelivery.com/wp-content/uploads/2023/08/idhayam-oil.jpg", + "https://m.media-amazon.com/images/I/61p5wfX7KuL.jpg", + "https://images.openfoodfacts.org/images/products/890/400/180/0237/front_en.25.400.jpg" + ] + } + ] + } +} \ No newline at end of file diff --git a/data/brand_image_repair_backup_20260902_154645.json b/data/brand_image_repair_backup_20260902_154645.json new file mode 100644 index 0000000..d6b628e --- /dev/null +++ b/data/brand_image_repair_backup_20260902_154645.json @@ -0,0 +1,1506 @@ +{ + "created_at": "2026-09-02T15:46:45.426663", + "db_host": "31.97.228.132", + "db_name": "pgvector", + "tables": { + "brand_everest": [ + { + "image_id": "everest_everest_garam_masala_100g", + "product_name": "Everest Garam Masala 100g", + "image_url": "https://nearledaily.s3.ap-south-1.amazonaws.com/daily/brands/everest/everest_everest_garam_masala_100g/image_000.jpg", + "image_urls": [ + "https://nearledaily.s3.ap-south-1.amazonaws.com/daily/brands/everest/everest_everest_garam_masala_100g/image_000.jpg" + ] + } + ], + "brand_naga": [ + { + "image_id": "naga_naga_maida_2kg", + "product_name": "Naga Maida 2kg", + "image_url": "https://nearledaily.s3.ap-south-1.amazonaws.com/daily/brands/naga/naga_naga_maida_2kg/image_000.jpg", + "image_urls": [ + "https://nearledaily.s3.ap-south-1.amazonaws.com/daily/brands/naga/naga_naga_maida_2kg/image_000.jpg" + ] + } + ], + "brand_aachi": [ + { + "image_id": "aachi_aachi_masala_powder_50g", + "product_name": "Aachi Masala Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masala_powder_200g", + "product_name": "Aachi Masala Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_masala_50g", + "product_name": "Aachi Chicken Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_masala_100g", + "product_name": "Aachi Chicken Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mutton_masala_50g", + "product_name": "Aachi Mutton Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mutton_masala_200g", + "product_name": "Aachi Mutton Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_masala_50g", + "product_name": "Aachi Fish Fry Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_masala_200g", + "product_name": "Aachi Fish Fry Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_15_g", + "product_name": "Aachi Garam Masala 15 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_50g", + "product_name": "Aachi Garam Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_500g", + "product_name": "Aachi Garam Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_100g", + "product_name": "Aachi Pickles 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_200g", + "product_name": "Aachi Pickles 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_1kg", + "product_name": "Aachi Pickles 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_mix_400g", + "product_name": "Aachi Rasam Mix 400g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_375_g", + "product_name": "Aachi Pickles 375 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_pickles_500g", + "product_name": "Aachi Pickles 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_lime_pickle_300g", + "product_name": "Aachi Lime Pickle 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_lime_pickle_500g", + "product_name": "Aachi Lime Pickle 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_lime_pickle_1kg", + "product_name": "Aachi Lime Pickle 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_90g", + "product_name": "Aachi Fish Fry Mix 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_200g", + "product_name": "Aachi Mixed Pickle 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_300g", + "product_name": "Aachi Mixed Pickle 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_375g", + "product_name": "Aachi Mixed Pickle 375g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_100g", + "product_name": "Aachi Fish Fry Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_100g", + "product_name": "Aachi Mango Pickle 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_200g", + "product_name": "Aachi Mango Pickle 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_300g", + "product_name": "Aachi Mango Pickle 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_1kg", + "product_name": "Aachi Mango Pickle 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_appalams_100g", + "product_name": "Aachi Appalams 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_appalams_500g", + "product_name": "Aachi Appalams 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_150g", + "product_name": "Aachi Fish Fry Mix 150g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fryums_100g", + "product_name": "Aachi Fryums 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fryums_500g", + "product_name": "Aachi Fryums 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fryums_1kg", + "product_name": "Aachi Fryums 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_30g", + "product_name": "Aachi Ginger Paste 30g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_baby_fryums_500g", + "product_name": "Aachi Baby Fryums 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_baby_fryums_1kg", + "product_name": "Aachi Baby Fryums 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_cumin_and_coriander_100g", + "product_name": "Aachi Masalas - Cumin and Coriander 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_cumin_and_coriander_500g", + "product_name": "Aachi Masalas - Cumin and Coriander 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_cumin_and_coriander_1kg", + "product_name": "Aachi Masalas - Cumin and Coriander 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_turmeric_and_ginger_100g", + "product_name": "Aachi Masalas - Turmeric and Ginger 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_turmeric_and_ginger_500g", + "product_name": "Aachi Masalas - Turmeric and Ginger 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_turmeric_and_ginger_1kg", + "product_name": "Aachi Masalas - Turmeric and Ginger 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_paprika_and_garlic_100g", + "product_name": "Aachi Masalas - Paprika and Garlic 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_paprika_and_garlic_1kg", + "product_name": "Aachi Masalas - Paprika and Garlic 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_ginger_and_garlic_100g", + "product_name": "Aachi Masalas - Ginger and Garlic 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_ginger_and_garlic_300g", + "product_name": "Aachi Masalas - Ginger and Garlic 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_ginger_and_garlic_1kg", + "product_name": "Aachi Masalas - Ginger and Garlic 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_40g", + "product_name": "Aachi Biryani Mix 40g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_50g", + "product_name": "Aachi Biryani Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_200g", + "product_name": "Aachi Fish Fry Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_250g", + "product_name": "Aachi Biryani Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_500g", + "product_name": "Aachi Biryani Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_1kg", + "product_name": "Aachi Biryani Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_40g", + "product_name": "Aachi Ginger Paste 40g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_100g", + "product_name": "Aachi Chicken Fry Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_250g", + "product_name": "Aachi Chicken Fry Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_500g", + "product_name": "Aachi Chicken Fry Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_50g", + "product_name": "Aachi Ginger Paste 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_meat_mix_100g", + "product_name": "Aachi Meat Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_meat_mix_200g", + "product_name": "Aachi Meat Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_meat_mix_250g", + "product_name": "Aachi Meat Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_60g", + "product_name": "Aachi Ginger Paste 60g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_meat_mix_2e3bfece", + "product_name": "Aachi Meat Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_160g", + "product_name": "Aachi Biryani Masala 160g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_mix_100g", + "product_name": "Aachi Rasam Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_250g", + "product_name": "Aachi Biryani Masala 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_500g", + "product_name": "Aachi Biryani Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_1kg", + "product_name": "Aachi Biryani Masala 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chilli_powder_200g", + "product_name": "Aachi Chilli Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chilli_powder_500g", + "product_name": "Aachi Chilli Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_turmeric_powder_50g", + "product_name": "Aachi Turmeric Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_turmeric_powder_200g", + "product_name": "Aachi Turmeric Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_turmeric_powder_500g", + "product_name": "Aachi Turmeric Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_5g", + "product_name": "Aachi Coriander Powder 5g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_20g", + "product_name": "Aachi Coriander Powder 20g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_50g", + "product_name": "Aachi Coriander Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_100g", + "product_name": "Aachi Coriander Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_200g", + "product_name": "Aachi Coriander Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_powder_50g", + "product_name": "Aachi Sambar Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_powder_50g", + "product_name": "Aachi Rasam Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_powder_200g", + "product_name": "Aachi Rasam Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_powder_500g", + "product_name": "Aachi Rasam Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_curry_powder_50g", + "product_name": "Aachi Curry Powder 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_curry_powder_90g", + "product_name": "Aachi Curry Powder 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_curry_powder_1kg", + "product_name": "Aachi Curry Powder 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_100g", + "product_name": "Aachi Tandoori Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_200g", + "product_name": "Aachi Tandoori Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_500g", + "product_name": "Aachi Tandoori Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paneer_tikka_masala_50ml", + "product_name": "Aachi Paneer Tikka Masala 50ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paneer_tikka_masala_200ml", + "product_name": "Aachi Paneer Tikka Masala 200ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paneer_tikka_masala_500g", + "product_name": "Aachi Paneer Tikka Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paste_200g", + "product_name": "Aachi Paste 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paste_300g", + "product_name": "Aachi Paste 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_10g", + "product_name": "Aachi Ginger Paste 10g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_paste_20g", + "product_name": "Aachi Ginger Paste 20g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garlic_paste_90g", + "product_name": "Aachi Garlic Paste 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garlic_paste_300g", + "product_name": "Aachi Garlic Paste 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garlic_paste_1kg", + "product_name": "Aachi Garlic Paste 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_10g", + "product_name": "Aachi Ginger Garlic Paste 10g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_15g", + "product_name": "Aachi Ginger Garlic Paste 15g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_20g", + "product_name": "Aachi Ginger Garlic Paste 20g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ready_to_cook_mixes_100g", + "product_name": "Aachi Ready To Cook Mixes 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ready_to_cook_mixes_200g", + "product_name": "Aachi Ready To Cook Mixes 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ready_to_cook_mixes_500g", + "product_name": "Aachi Ready To Cook Mixes 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_100g", + "product_name": "Aachi Sambar Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_mix_200g", + "product_name": "Aachi Rasam Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_250g", + "product_name": "Aachi Sambar Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_300g", + "product_name": "Aachi Sambar Mix 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_500g", + "product_name": "Aachi Sambar Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_mix_50g", + "product_name": "Aachi Rasam Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_100g", + "product_name": "Aachi Kulambu Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_250g", + "product_name": "Aachi Kulambu Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_50g", + "product_name": "Aachi Kurma Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_100g", + "product_name": "Aachi Kurma Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_200g", + "product_name": "Aachi Kurma Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_1kg", + "product_name": "Aachi Kurma Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_100g", + "product_name": "Aachi Chettinad Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_250g", + "product_name": "Aachi Chettinad Mix 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_365g", + "product_name": "Aachi Chettinad Mix 365g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_500g", + "product_name": "Aachi Chettinad Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_mix_50g", + "product_name": "Aachi Fish Fry Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kuzhambu_powder_250g", + "product_name": "Aachi Kuzhambu Powder 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_powder_100g", + "product_name": "Aachi Sambar Powder 100g", + "image_url": "https://bazaar-foods.co.uk/cdn/shop/products/aachi-madras-sambar-powder-200g.jpg?v=1649053567", + "image_urls": [ + "https://bazaar-foods.co.uk/cdn/shop/products/aachi-madras-sambar-powder-200g.jpg?v=1649053567", + "https://www.quicklly.com/upload_images/product/1586997830-aachi-sambar-powder.jpg", + "https://1.bp.blogspot.com/-e3VV3maJBrY/XzD_WavE3vI/AAAAAAAAAfA/48RXX5xw2nUt-BRO5SBjfCOZl-rwYovUQCLcBGAsYHQ/s800/6-Aachi-sambar_powder-50-grams.jpg", + "https://aachifoods.com/cdn/shop/files/aachi-hotel-sambar-powder.webp", + "https://indianfoodstore.de/wp-content/uploads/2022/04/aachi-madras-sambar-powder.webp", + "http://www.grocerywala.co.uk/cdn/shop/files/Aachi-200-g-Madras-Sambar-Powder_grande.webp?v=1765957918", + "https://m.media-amazon.com/images/I/51fk8yE90iL._SX300_SY300_QL70_ML2_.jpg", + "https://images.openfoodfacts.org/images/products/890/602/112/8568/front_fr.3.400.jpg", + "https://i.pinimg.com/originals/2e/dd/43/2edd439e8b96a9b6b8d3571fc8449b70.jpg", + "https://meghagrocery.com/wp-content/uploads/2022/05/Achi-sambar-powder.jpg" + ] + }, + { + "image_id": "aachi_aachi_masala_powder_100g", + "product_name": "Aachi Masala Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masala_powder_500g", + "product_name": "Aachi Masala Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_masala_200g", + "product_name": "Aachi Chicken Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_powder_200g", + "product_name": "Aachi Sambar Powder 200g", + "image_url": "https://bazaar-foods.co.uk/cdn/shop/products/aachi-madras-sambar-powder-200g.jpg?v=1649053567", + "image_urls": [ + "https://bazaar-foods.co.uk/cdn/shop/products/aachi-madras-sambar-powder-200g.jpg?v=1649053567", + "https://www.quicklly.com/upload_images/product/1586997830-aachi-sambar-powder.jpg", + "https://1.bp.blogspot.com/-e3VV3maJBrY/XzD_WavE3vI/AAAAAAAAAfA/48RXX5xw2nUt-BRO5SBjfCOZl-rwYovUQCLcBGAsYHQ/s800/6-Aachi-sambar_powder-50-grams.jpg", + "https://aachifoods.com/cdn/shop/files/aachi-hotel-sambar-powder.webp", + "https://indianfoodstore.de/wp-content/uploads/2022/04/aachi-madras-sambar-powder.webp", + "http://www.grocerywala.co.uk/cdn/shop/files/Aachi-200-g-Madras-Sambar-Powder_grande.webp?v=1765957918", + "https://m.media-amazon.com/images/I/51fk8yE90iL._SX300_SY300_QL70_ML2_.jpg", + "https://images.openfoodfacts.org/images/products/890/602/112/8568/front_fr.3.400.jpg", + "https://i.pinimg.com/originals/2e/dd/43/2edd439e8b96a9b6b8d3571fc8449b70.jpg", + "https://meghagrocery.com/wp-content/uploads/2022/05/Achi-sambar-powder.jpg" + ] + }, + { + "image_id": "aachi_aachi_chicken_masala_500g", + "product_name": "Aachi Chicken Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mutton_masala_100g", + "product_name": "Aachi Mutton Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mutton_masala_500g", + "product_name": "Aachi Mutton Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_masala_100g", + "product_name": "Aachi Fish Fry Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_fish_fry_masala_500g", + "product_name": "Aachi Fish Fry Masala 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masala_powder_7g", + "product_name": "Aachi Masala Powder 7g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_100g", + "product_name": "Aachi Garam Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garam_masala_200g", + "product_name": "Aachi Garam Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_pickles_26d3329d", + "product_name": "Aachi Pickles 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_lime_pickle_100g", + "product_name": "Aachi Lime Pickle 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_100g", + "product_name": "Aachi Mixed Pickle 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mixed_pickle_500g", + "product_name": "Aachi Mixed Pickle 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_mango_pickle_500g", + "product_name": "Aachi Mango Pickle 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_appalams_1kg", + "product_name": "Aachi Appalams 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_baby_fryums_100g", + "product_name": "Aachi Baby Fryums 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_cumin_and_coriander_200g", + "product_name": "Aachi Masalas - Cumin and Coriander 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_turmeric_and_ginger_200g", + "product_name": "Aachi Masalas - Turmeric and Ginger 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_masalas_paprika_and_garlic_500g", + "product_name": "Aachi Masalas - Paprika and Garlic 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_masalas_ginger_and_garlic_0f99ecc8", + "product_name": "Aachi Masalas - Ginger and Garlic 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_mix_100g", + "product_name": "Aachi Biryani Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_50g", + "product_name": "Aachi Chicken Fry Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chicken_fry_mix_1kg", + "product_name": "Aachi Chicken Fry Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_meat_mix_500g", + "product_name": "Aachi Meat Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_50_g", + "product_name": "Aachi Biryani Masala 50 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_biryani_masala_200g", + "product_name": "Aachi Biryani Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chilli_powder_100gm", + "product_name": "Aachi Chilli Powder 100gm", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_turmeric_powder_100g", + "product_name": "Aachi Turmeric Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_coriander_powder_10g", + "product_name": "Aachi Coriander Powder 10g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_powder_500g", + "product_name": "Aachi Sambar Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_rasam_powder_1kg", + "product_name": "Aachi Rasam Powder 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_50g", + "product_name": "Aachi Tandoori Masala 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_tandoori_masala_1kg", + "product_name": "Aachi Tandoori Masala 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paneer_tikka_masala_100g", + "product_name": "Aachi Paneer Tikka Masala 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_paste_100g", + "product_name": "Aachi Paste 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_garlic_paste_30g", + "product_name": "Aachi Garlic Paste 30g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_5g", + "product_name": "Aachi Ginger Garlic Paste 5g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_ginger_garlic_paste_300g", + "product_name": "Aachi Ginger Garlic Paste 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_sambar_mix_200g", + "product_name": "Aachi Sambar Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_50g", + "product_name": "Aachi Kulambu Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_200g", + "product_name": "Aachi Kulambu Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kulambu_mix_300g", + "product_name": "Aachi Kulambu Mix 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kurma_mix_500g", + "product_name": "Aachi Kurma Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_50g", + "product_name": "Aachi Chettinad Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_chettinad_mix_167g", + "product_name": "Aachi Chettinad Mix 167g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kuzhambu_powder_100g", + "product_name": "Aachi Kuzhambu Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "aachi_aachi_kuzhambu_powder_500g", + "product_name": "Aachi Kuzhambu Powder 500g", + "image_url": null, + "image_urls": [] + } + ], + "brand_mtr": [ + { + "image_id": "mtr_dosa_mix_f82827a0", + "product_name": "MTR Dosa Mix 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_dosa_mix_200g", + "product_name": "MTR Dosa Mix 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_dosa_mix_500g", + "product_name": "MTR Dosa Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rasam_powder_100g", + "product_name": "MTR Rasam Powder 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_breakfast_mix_160g", + "product_name": "MTR Breakfast Mix 160g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_breakfast_mix_500g", + "product_name": "MTR Breakfast Mix 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_breakfast_mix_1_5kg", + "product_name": "MTR Breakfast Mix 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rasam_powder_200g", + "product_name": "MTR Rasam Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rava_idli_mix_90g", + "product_name": "MTR Rava Idli Mix 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rava_idli_mix_1kg", + "product_name": "MTR Rava Idli Mix 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rava_idli_mix_1_5kg", + "product_name": "MTR Rava Idli Mix 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rasam_powder_400g", + "product_name": "MTR Rasam Powder 400g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_sambar_powder_200g", + "product_name": "MTR Sambar Powder 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_sambar_powder_1_5kg", + "product_name": "MTR Sambar Powder 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_50g", + "product_name": "MTR Ready To Eat 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_200g", + "product_name": "MTR Ready To Eat 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_250g", + "product_name": "MTR Ready To Eat 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_90g", + "product_name": "MTR Vermicelli 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_400g", + "product_name": "MTR Vermicelli 400g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_1_5kg", + "product_name": "MTR Vermicelli 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_12g", + "product_name": "MTR Masala 12g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_200g", + "product_name": "MTR Masala 200g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_1_5kg", + "product_name": "MTR Masala 1.5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_pickle_300_g", + "product_name": "MTR Pickle 300 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_rava_idli_mix_500g", + "product_name": "MTR Rava Idli Mix 500g", + "image_url": "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_000.webp", + "image_urls": [ + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_000.webp", + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_001.png", + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_002.png", + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_003.jpg", + "https://nearle.sgp1.digitaloceanspaces.com/daily/brands/mtr/mtr_mtr_rava_idli_mix_500g/image_004.jpg" + ] + }, + { + "image_id": "mtr_mtr_dosa_mix_50g", + "product_name": "MTR Dosa Mix 50g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_breakfast_mix_90g", + "product_name": "MTR Breakfast Mix 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_sambar_powder_90g", + "product_name": "MTR Sambar Powder 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_sambar_powder_500g", + "product_name": "MTR Sambar Powder 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_10g", + "product_name": "MTR Ready To Eat 10g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_160g", + "product_name": "MTR Ready To Eat 160g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_ready_to_eat_300g", + "product_name": "MTR Ready To Eat 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_180g", + "product_name": "MTR Vermicelli 180g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_vermicelli_850_g", + "product_name": "MTR Vermicelli 850 g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_6g", + "product_name": "MTR Masala 6g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_90g", + "product_name": "MTR Masala 90g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_masala_300g", + "product_name": "MTR Masala 300g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_pickle_100g", + "product_name": "MTR Pickle 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_pickle_250g", + "product_name": "MTR Pickle 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "mtr_mtr_pickle_500g", + "product_name": "MTR Pickle 500g", + "image_url": null, + "image_urls": [] + } + ], + "brand_idhayam": [ + { + "image_id": "idhayam_idhayam_gingelly_oil_500ml", + "product_name": "Idhayam Gingelly Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_sesame_oil_1l", + "product_name": "Idhayam Sesame Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_groundnut_oil_2l", + "product_name": "Idhayam Groundnut Oil 2L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_groundnut_oil_5kg", + "product_name": "Idhayam Groundnut Oil 5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_100g", + "product_name": "Idhayam Mantra Groundnut Oil 100g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mustard_oil_500ml", + "product_name": "Idhayam Mustard Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mustard_oil_1l", + "product_name": "Idhayam Mustard Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mustard_oil_5kg", + "product_name": "Idhayam Mustard Oil 5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_sunflower_oil_1l", + "product_name": "Idhayam Sunflower Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_refined_oil_500ml", + "product_name": "Idhayam Refined Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_1kg", + "product_name": "Idhayam Mantra Groundnut Oil 1kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_refined_oil_500ml", + "product_name": "Idhayam Mantra Refined Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_gingelly_oil_1l", + "product_name": "Idhayam Gingelly Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_groundnut_oil_500ml", + "product_name": "Idhayam Groundnut Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_sesame_oil_500ml", + "product_name": "Idhayam Sesame Oil 500ml", + "image_url": "https://watanindiafood.com/wp-content/uploads/2024/02/Idhayam-Sesame-Gingelly-Oil-500ML-Pack.jpg", + "image_urls": [ + "https://watanindiafood.com/wp-content/uploads/2024/02/Idhayam-Sesame-Gingelly-Oil-500ML-Pack.jpg", + "https://shivashaktifoods.co.uk/wp-content/uploads/2024/08/IDHAYAM-Sesame-Oil-\u2013-1-Ltr-Bottle2.png", + "https://www.idhayam.com/wp-content/uploads/2024/04/IDHAYAM-Sesame-Oil-\u2013-1-Ltr-Bottle34.png", + "https://www.idhayam.com/wp-content/uploads/2020/09/Product-3-1-1-scaled.jpg", + "https://www.idhayam.com/wp-content/uploads/2021/11/Product-1--1024x1024.png", + "https://5.imimg.com/data5/SELLER/Default/2025/11/562921347/IV/CY/MF/41544304/1litre-idhayam-sesame-oil-500x500.jpg", + "https://upload.wikimedia.org/wikipedia/commons/a/a7/Idhayam_Logo.png?utm_source=commons.wikimedia.org&utm_campaign=imageinfo&utm_content=thumbnail_unscaled", + "http://juradelivery.com/wp-content/uploads/2023/08/idhayam-oil.jpg", + "https://m.media-amazon.com/images/I/61p5wfX7KuL.jpg", + "https://images.openfoodfacts.org/images/products/890/400/180/0237/front_en.25.400.jpg" + ] + }, + { + "image_id": "idhayam_idhayam_coconut_oil_500ml", + "product_name": "Idhayam Coconut Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_coconut_oil_1l", + "product_name": "Idhayam Coconut Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_sunflower_oil_500ml", + "product_name": "Idhayam Sunflower Oil 500ml", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_refined_oil_1l", + "product_name": "Idhayam Refined Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_250g", + "product_name": "Idhayam Mantra Groundnut Oil 250g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_500g", + "product_name": "Idhayam Mantra Groundnut Oil 500g", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_groundnut_oil_5kg", + "product_name": "Idhayam Mantra Groundnut Oil 5kg", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_refined_oil_1l", + "product_name": "Idhayam Mantra Refined Oil 1L", + "image_url": null, + "image_urls": [] + }, + { + "image_id": "idhayam_idhayam_mantra_refined_oil_5kg", + "product_name": "Idhayam Mantra Refined Oil 5kg", + "image_url": null, + "image_urls": [] + } + ] + } +} \ No newline at end of file diff --git a/scripts/repair_brand_images.py b/scripts/repair_brand_images.py index d08fcaa..a002293 100644 --- a/scripts/repair_brand_images.py +++ b/scripts/repair_brand_images.py @@ -62,6 +62,7 @@ from __future__ import annotations import argparse import json import logging +import re import sys import time from concurrent.futures import ThreadPoolExecutor @@ -86,6 +87,12 @@ logger = logging.getLogger("repair_brand_images") DATA_DIR = Path(__file__).resolve().parents[1] / "data" +# How many ranked URLs to store per repaired row. Ingestion keeps up to 20; +# a repair keeps fewer on purpose. Ranking demotes a bad match rather than +# dropping it, so a long tail is where a contaminated image survives - and the +# only one that reaches the UI is the first. +MAX_STORED_IMAGES = 5 + HEALTHY = "healthy" # at least one URL resolves BROKEN = "broken" # has URLs, none resolve EMPTY = "empty" # no URLs at all @@ -315,6 +322,104 @@ def _backup(tables: Dict[str, List[Dict[str, Any]]]) -> Path: return path +# One search per PRODUCT, not per pack size. +# +# These tables are mostly size variants of one item - Aachi alone has 175 rows +# that collapse to a few dozen distinct products ("Aachi Masala Powder" at 7g, +# 50g, 100g, ...). Searching each size separately means three to five times the +# network traffic for the same answer, and the providers throttle: DuckDuckGo +# already 403s and the pipeline falls through to Bing, which will not tolerate +# hundreds of near-identical queries in a row. +# +# Sharing one image across sizes is also correct rather than merely cheap: it is +# the same product in a different pack, and the ingestion pipeline's own +# size-variant explosion produces exactly these rows from a single source +# product. +_SEARCH_CACHE: Dict[Tuple[str, str], List[str]] = {} + +_SIZE_TAIL = re.compile( + r"\s+\d+(?:\.\d+)?\s*(?:g|gm|gms|kg|ml|l|ltr|litre|liter|pcs|pc|n|no|nos)\b\.?\s*$", + re.IGNORECASE, +) + + +# --- Open Food Facts cross-check ------------------------------------------- +# OFF is the first provider find_all_image_urls consults and it matches on NAME, +# not brand. Asked for "Aachi Pickles" it returned the front-of-pack photo for +# "Ducros Green Pitted Olives" - a French product, barcode 3275928006633 - and +# that image validated perfectly happily because it IS a real image. It was +# written to six Aachi rows before this check existed. +# +# The barcode is embedded in the image path, so the product is one cheap lookup +# away. If OFF's own record does not mention our brand, the image is somebody +# else's product and is dropped. Nothing else can catch this: the URL is opaque +# digits, so no amount of filename matching would help. +_OFF_CACHE: Dict[str, bool] = {} +_OFF_BARCODE = re.compile(r"/images/products/((?:\d+/)+)") + + +def _brand_tokens(brand: str) -> List[str]: + return [w for w in re.split(r"[^a-z0-9]+", (brand or "").lower()) if len(w) > 2] + + +def _off_product_matches_brand(url: str, brand: str) -> bool: + """False only when OFF positively says this barcode is another brand.""" + if "openfoodfacts.org" not in url: + return True + match = _OFF_BARCODE.search(url) + if not match: + return True + barcode = match.group(1).replace("/", "") + tokens = _brand_tokens(brand) + if not tokens: + return True + + key = f"{barcode}:{brand.lower()}" + if key in _OFF_CACHE: + return _OFF_CACHE[key] + + verdict = True + try: + import requests + resp = requests.get( + f"https://world.openfoodfacts.org/api/v2/product/{barcode}.json", + params={"fields": "brands,product_name"}, + timeout=10, + headers={"User-Agent": "nearle-catalogue-repair/1.0"}, + ) + if resp.ok: + product = (resp.json() or {}).get("product") or {} + haystack = f"{product.get('brands') or ''} {product.get('product_name') or ''}".lower() + if haystack.strip(): + verdict = any(t in haystack for t in tokens) + except Exception: # noqa: BLE001 - a lookup failure must not reject a good image + verdict = True + + _OFF_CACHE[key] = verdict + return verdict + + +def _names_product(url: str, product_name: str, brand: str) -> bool: + """True when the URL itself corroborates the match. + + Not a requirement - Zepto and Flipkart serve opaque hashed paths for + perfectly correct images - but a strong signal, so corroborated URLs are + ranked ahead of uncorroborated ones. + """ + lowered = url.lower() + words = [ + w for w in re.split(r"[^a-z0-9]+", (product_name or "").lower()) + if len(w) > 2 and not re.fullmatch(r"\d+(?:g|kg|ml|l)?", w) + ] + return any(w in lowered for w in words + _brand_tokens(brand)) + + +def _search_key(product_name: str, brand: str) -> Tuple[str, str]: + """Collapse trailing pack size so sizes of one product share a search.""" + base = _SIZE_TAIL.sub("", product_name or "").strip() + return (brand.lower(), (base or product_name or "").lower()) + + def _search_replacement(product_name: str, brand: str, max_results: int) -> List[str]: """Validated image URLs for one product, best first. @@ -323,20 +428,53 @@ def _search_replacement(product_name: str, brand: str, max_results: int) -> List the ingestion pipeline uses, so a repaired row is ranked by the rules tests/test_image_selection.py already pins. """ + key = _search_key(product_name, brand) + if key in _SEARCH_CACHE: + return _SEARCH_CACHE[key] + from app.services.image_search import find_all_image_urls urls = find_all_image_urls(product_name, brand=brand, validate=True, max_results=max_results) if not urls: + _SEARCH_CACHE[key] = [] return [] - try: - from app.core.catalog_engine import CatalogEngine - urls = CatalogEngine._select_best_images( - CatalogEngine, urls, product_name, brand, max_images=10 - ) - except Exception: # noqa: BLE001 - ranking is a nicety; a live URL is the point - pass - # https first, mirroring _pick_sample_image, so the two layers cannot - # disagree about which of a row's URLs is the good one. - return sorted(urls, key=lambda u: 0 if u.startswith("https://") else 1) + # Ranking is NOT optional, and this must not be wrapped in a bare except. + # + # find_all_image_urls only proves a URL serves an image - it does not prove + # the image is of THIS product. A search for "MTR Dosa Mix 50g" returned an + # anatomy-and-physiology textbook plate that validated perfectly happily. + # _select_best_images is the contamination filter that demotes it, scoring + # on the distinctive words of the title, and it is the same ranking stage 6 + # applies during ingestion. + # + # An earlier version of this call named the class wrongly and swallowed the + # resulting ImportError, so ranking silently never ran and the textbook + # image would have been written as the primary image of four MTR products. + # Let an error here raise: unranked output is not safe to store. + from app.core.catalog_engine import ProductCatalogEngine + urls = ProductCatalogEngine._select_best_images( + ProductCatalogEngine, urls, product_name, brand, max_images=MAX_STORED_IMAGES + ) + if not urls: + _SEARCH_CACHE[key] = [] + return [] + # Drop other brands' products before anything else looks at them. + urls = [u for u in urls if _off_product_matches_brand(u, brand)] + if not urls: + _SEARCH_CACHE[key] = [] + return [] + + # Rank: corroborated first, then https, then the ranker's own order. A URL + # that names the product or the brand is the one to show; an opaque CDN path + # is kept but never preferred over a corroborated sibling. + ranked = sorted( + urls, + key=lambda u: ( + 0 if _names_product(u, product_name, brand) else 1, + 0 if u.startswith("https://") else 1, + ), + ) + _SEARCH_CACHE[key] = ranked + return ranked def repair(cur, conn, brands: List[str], apply: bool, timeout: int, workers: int,