From ead7bc70fc34268765f7f11fe01b91b9278eabdc Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 19 Jan 2026 14:11:41 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=8D=20Integrated=20comprehensive=20key?= =?UTF-8?q?words=20from=20motherboardrepair.ca=20website?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - EXTRACTED: 175+ repair keywords from website sst.yml and keywords.csv - UPDATED: repair_keywords.json with 14 categories (up from 12) - ADDED: New categories (HDMI issues, Key fob repairs, Screen damage, Power issues, Water damage) - REGENERATED: RSS feeds with website-sourced keywords (322 feeds total) - IMPROVED: Keyword targeting based on actual business website content New RSS feeds now use proven keywords from motherboardrepair.ca for better lead quality! --- README.md | 2 +- data/repair_keywords.json | 419 +++++++++++++++++++++++++++----- extract_website_keywords.py | 227 +++++++++++++++++ update_keywords_from_website.py | 201 +++++++++++++++ 4 files changed, 786 insertions(+), 63 deletions(-) create mode 100644 extract_website_keywords.py create mode 100644 update_keywords_from_website.py diff --git a/README.md b/README.md index 4c3124a..99b686f 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ - **`scripts/generate_modular_rss_feeds.py`** - Generate fresh RSS feeds from source files - **`data/repair_keywords.json`** - Source file: All repair keywords/keyphrases - **`data/canadian_subreddits.json`** - Source file: Canadian subreddits with metadata -- **Latest Output:** [feeds/rss_feeds_20260119_140623.md](feeds/rss_feeds_20260119_140623.md) + [OPML](feeds/rss_feeds_20260119_140623.opml) +- **Latest Output:** [feeds/rss_feeds_20260119_141133.md](feeds/rss_feeds_20260119_141133.md) + [OPML](feeds/rss_feeds_20260119_141133.opml) ### Core Resources - **`docs/canadian-subreddits.md`** - Complete list of Canadian cities/provinces diff --git a/data/repair_keywords.json b/data/repair_keywords.json index 31cf46c..5afff55 100644 --- a/data/repair_keywords.json +++ b/data/repair_keywords.json @@ -1,84 +1,379 @@ { - "description": "Comprehensive repair keywords and keyphrases for RSS feed generation", - "version": "1.0", + "description": "Comprehensive repair keywords extracted from motherboardrepair.ca website", + "version": "2.0", + "source": "motherboardrepair.ca sst.yml and keywords.csv", "last_updated": "2026-01-19", "categories": { "iphone_repairs": { "name": "iPhone Repair Requests", - "description": "Most common iPhone repair requests", - "devices": ["iPhone", "iPhone 12", "iPhone 13", "iPhone 14", "iPhone 15"], - "problems": ["repair", "fix", "broken", "not working", "screen broken", "won't charge", "water damage", "looking for repair"] + "description": "Most common iPhone repair requests from website", + "devices": [ + "iPhone", + "iPhone 12", + "iPhone 13", + "iPhone 14", + "iPhone 15" + ], + "problems": [ + "iPhone logic board repair", + "iPhone motherboard repair", + "iPhone no power", + "iPhone boot loop", + "iPhone not charging", + "micro-soldering repairs", + "nanosoldering", + "iPhone screen broken", + "iPhone water damage", + "iPhone repair", + "iPhone fix", + "iPhone not working" + ] }, "macbook_repairs": { "name": "MacBook Repair Requests", - "description": "MacBook hardware repair needs", - "devices": ["MacBook", "MacBook Pro", "MacBook Air"], - "problems": ["repair", "fix", "broken", "not working", "won't turn on", "keyboard", "screen", "water damage"] - }, - "laptop_repairs": { - "name": "Laptop Repair Requests", - "description": "General laptop repair discussions", - "devices": ["laptop", "computer", "notebook"], - "problems": ["repair", "fix", "broken", "not working", "won't turn on", "screen broken", "keyboard", "charging"] - }, - "phone_repairs": { - "name": "Phone Repair Requests", - "description": "General phone repair needs", - "devices": ["phone", "cell phone", "smartphone"], - "problems": ["repair", "fix", "broken", "screen", "charging", "water damage", "not working"] - }, - "console_repairs": { - "name": "Gaming Console Repairs", - "description": "Console repair and maintenance", - "devices": ["PS5", "PS4", "Xbox", "Nintendo Switch", "PlayStation", "gaming console"], - "problems": ["repair", "fix", "broken", "not working", "disc drive", "HDMI"] - }, - "data_recovery": { - "name": "Data Recovery Requests", - "description": "Data recovery and storage repair", - "devices": [], - "problems": ["data recovery", "hard drive", "SSD", "lost files", "recover data", "drive failed", "storage failed"] - }, - "general_repairs": { - "name": "General Repair Services", - "description": "General repair service requests", - "devices": [], - "problems": ["looking for repair", "need repair", "repair shop", "repair service", "local repair", "professional repair", "fix my"] - }, - "android_repairs": { - "name": "Android Device Repairs", - "description": "Android/Samsung device repair needs", - "devices": ["Samsung", "Samsung Galaxy", "Galaxy", "Android"], - "problems": ["repair", "fix", "broken", "screen", "charging", "water damage", "not working"] + "description": "MacBook hardware repair needs from website", + "devices": [ + "MacBook", + "MacBook Pro", + "MacBook Air" + ], + "problems": [ + "MacBook logic board repair", + "MacBook motherboard repair", + "MacBook no power", + "MacBook liquid damage", + "MacBook not charging", + "MacBook screen broken", + "MacBook keyboard", + "MacBook repair", + "MacBook fix", + "MacBook not working", + "MacBook won't turn on" + ] }, "ipad_repairs": { "name": "iPad Repair Requests", - "description": "iPad repair and maintenance", - "devices": ["iPad", "iPad Pro", "iPad Air", "iPad mini"], - "problems": ["repair", "fix", "broken", "screen", "charging", "not working", "water damage"] + "description": "iPad repair and maintenance from website", + "devices": [ + "iPad", + "iPad Pro", + "iPad Air", + "iPad mini" + ], + "problems": [ + "iPad logic board repair", + "iPad motherboard repair", + "iPad no power", + "iPad not charging", + "iPad backlight repair", + "iPad screen broken", + "iPad repair", + "iPad fix", + "iPad not working" + ] }, - "power_issues": { - "name": "Power/Charging Issues", - "description": "Devices with power or charging problems", - "devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android", "PS5", "PS4", "Xbox"], - "problems": ["won't turn on", "no power", "dead", "won't charge", "not charging", "battery dead", "charging port"] + "laptop_repairs": { + "name": "Laptop Repair Requests", + "description": "General laptop repair discussions from website", + "devices": [ + "laptop", + "computer", + "notebook", + "gaming laptop" + ], + "problems": [ + "laptop motherboard repair", + "logic board repair", + "gaming laptop repair", + "no power laptop", + "liquid damage repair", + "charging port repair", + "laptop repair", + "laptop fix", + "laptop not working", + "laptop screen broken", + "laptop keyboard", + "laptop won't turn on" + ] + }, + "android_repairs": { + "name": "Android Device Repairs", + "description": "Android/Samsung device repair needs from website", + "devices": [ + "Samsung", + "Samsung Galaxy", + "Galaxy", + "Android", + "Google Pixel" + ], + "problems": [ + "Samsung logic board repair", + "Samsung motherboard repair", + "Galaxy no power", + "Samsung boot loop", + "Samsung not charging", + "Android logic board repair", + "Google Pixel repair", + "Android no power", + "Android boot loop", + "Samsung repair", + "Android repair", + "Galaxy repair" + ] + }, + "console_repairs": { + "name": "Gaming Console Repairs", + "description": "Console repair and maintenance from website", + "devices": [ + "PS5", + "PS4", + "Xbox", + "Nintendo Switch", + "PlayStation" + ], + "problems": [ + "PlayStation repair", + "PS5 repair", + "PS4 repair", + "HDMI port replacement", + "PlayStation disc drive repair", + "Xbox repair", + "Nintendo Switch repair", + "Joy-Con drift fix", + "Switch screen replacement", + "gaming console fix", + "console repair", + "PlayStation", + "Xbox" + ] + }, + "gpu_repairs": { + "name": "GPU/Graphics Card Repairs", + "description": "Graphics card and GPU repair needs from website", + "devices": [ + "GPU", + "graphics card", + "NVIDIA", + "RTX", + "GTX" + ], + "problems": [ + "GPU repair", + "graphics card repair", + "NVIDIA repair", + "RTX repair", + "GTX repair", + "GPU refurbishing", + "expert nvidia", + "nvidia gpu" + ] + }, + "data_recovery": { + "name": "Data Recovery Requests", + "description": "Data recovery and storage repair from website", + "devices": [], + "problems": [ + "data recovery", + "phone data recovery", + "SSD recovery", + "hard drive data recovery", + "NVMe recovery", + "mechanical failure recovery", + "firmware recovery", + "chip-off", + "JTAG", + "nanosoldering", + "data extraction", + "non-functional devices", + "recover data", + "lost files", + "hard drive recovery" + ] + }, + "general_repairs": { + "name": "General Repair Services", + "description": "General repair service requests from website", + "devices": [], + "problems": [ + "electronics repair services", + "console repair", + "MacBook repair", + "data recovery", + "microsoldering", + "nanosoldering", + "laptop repair", + "iPhone repair", + "motherboard repair", + "repair service", + "professional repair", + "looking for repair", + "need repair", + "repair shop", + "local repair" + ] }, "screen_damage": { "name": "Screen/Display Damage", - "description": "Broken or damaged screens/displays", - "devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"], - "problems": ["screen broken", "cracked screen", "display damaged", "screen replacement", "touch screen not working"] + "description": "Broken or damaged screens/displays from website", + "devices": [ + "iPhone", + "iPad", + "MacBook", + "laptop", + "computer", + "Samsung", + "Android" + ], + "problems": [ + "screen broken", + "cracked screen", + "display damaged", + "screen replacement", + "touch screen not working", + "screen refurbishment", + "LCD glass replacement", + "screen glass repair", + "damaged glass" + ] + }, + "power_issues": { + "name": "Power/Charging Issues", + "description": "Devices with power or charging problems from website", + "devices": [ + "iPhone", + "iPad", + "MacBook", + "laptop", + "computer", + "Samsung", + "Android", + "PS5", + "PS4", + "Xbox" + ], + "problems": [ + "won't turn on", + "no power", + "dead", + "not starting", + "bricked", + "won't boot", + "boot failure", + "power button", + "won't charge", + "not charging", + "charging port broken", + "battery dead" + ] }, "water_liquid_damage": { "name": "Water/Liquid Damage", - "description": "Devices damaged by water or liquid", - "devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"], - "problems": ["water damage", "spilled", "liquid damage", "got wet", "water damaged"] + "description": "Devices damaged by water or liquid from website", + "devices": [ + "iPhone", + "iPad", + "MacBook", + "laptop", + "computer", + "Samsung", + "Android" + ], + "problems": [ + "water damage", + "spilled", + "liquid damage", + "got wet", + "water damaged", + "liquid spilled", + "motherboard repair" + ] + }, + "hdmi_issues": { + "name": "HDMI Port Issues", + "description": "HDMI port repair and replacement from website", + "devices": [ + "PS5", + "Xbox", + "graphics card", + "laptop", + "computer" + ], + "problems": [ + "HDMI port repair", + "PS5 HDMI replacement", + "Xbox HDMI port fix", + "graphics card HDMI repair", + "laptop HDMI port", + "HDMI not working" + ] + }, + "key_fob_repairs": { + "name": "Key Fob Repairs", + "description": "Car key fob repair and maintenance from website", + "devices": [], + "problems": [ + "key fob repair", + "car key remote repair", + "key fob microsoldering", + "key fob battery contacts", + "button pad repair", + "fob repairs" + ] } }, "additional_keywords": { - "urgency_indicators": ["emergency", "urgent", "help needed", "asap", "quick", "fast"], - "location_indicators": ["local", "near me", "in my area", "downtown", "nearby"], - "service_types": ["diagnostics", "diagnostic", "troubleshooting", "microsolder", "component repair", "board repair"] - } + "urgency_indicators": [ + "emergency", + "urgent", + "help needed", + "asap", + "quick", + "fast" + ], + "location_indicators": [ + "local", + "near me", + "in my area", + "downtown", + "nearby" + ], + "service_types": [ + "diagnostics", + "diagnostic", + "troubleshooting", + "microsolder", + "component repair", + "board repair" + ] + }, + "raw_csv_keywords": [ + "motherboard repair", + "MRC", + "microsoldering", + "nanosoldering", + "console repair", + "logic board repair", + "MacBook repair", + "iPhone repair", + "iPad repair", + "laptop repair", + "data recovery", + "graphics card repair", + "GPU repair", + "electronics repair", + "professional repair", + "microsoldering services", + "nanosoldering services", + "Nintendo Switch repair", + "PlayStation repair", + "Xbox repair", + "SSD recovery", + "HDMI port repair", + "hard drive recovery", + "repair service", + "professional microsoldering", + "professional nanosoldering", + "gaming laptop repair", + "phone data recovery" + ] } \ No newline at end of file diff --git a/extract_website_keywords.py b/extract_website_keywords.py new file mode 100644 index 0000000..ada3e65 --- /dev/null +++ b/extract_website_keywords.py @@ -0,0 +1,227 @@ +#!/usr/bin/env python3 +""" +Extract and consolidate keywords from motherboardrepair.ca website + +This script reads the sst.yml and keywords.csv files from the motherboard repair +website and extracts all unique repair-related keywords for our RSS feed generator. +""" + +import yaml +import csv +import json +from pathlib import Path + +def extract_keywords_from_sst(): + """Extract keywords from sst.yml file""" + sst_path = Path("../motherboardrepair.ca/sst.yml") + + with open(sst_path, 'r', encoding='utf-8') as f: + data = yaml.safe_load(f) + + keywords = set() + + # Extract global keywords + if 'global' in data and 'keywords' in data['global']: + global_keywords = data['global']['keywords'] + for category in ['primary', 'secondary']: + if category in global_keywords: + keywords.update(global_keywords[category]) + + # Extract page-specific keywords + if 'pages' in data: + for page, config in data['pages'].items(): + if 'keywords' in config: + page_keywords = config['keywords'] + for category in ['primary', 'secondary']: + if category in page_keywords: + # Handle both string and list formats + kw_list = page_keywords[category] + if isinstance(kw_list, str): + keywords.add(kw_list) + elif isinstance(kw_list, list): + keywords.update(kw_list) + + return keywords + +def extract_keywords_from_csv(): + """Extract keywords from keywords.csv file""" + csv_path = Path("../motherboardrepair.ca/keywords.csv") + + keywords = set() + + with open(csv_path, 'r', encoding='utf-8') as f: + reader = csv.reader(f) + for row in reader: + keywords.update(row) + + return keywords + +def categorize_keywords(keywords): + """Categorize keywords into logical groups for RSS feeds""" + categories = { + "iphone_repairs": { + "name": "iPhone Repair Requests", + "description": "Most common iPhone repair requests", + "devices": ["iPhone", "iPhone 12", "iPhone 13", "iPhone 14", "iPhone 15"], + "problems": [] + }, + "macbook_repairs": { + "name": "MacBook Repair Requests", + "description": "MacBook hardware repair needs", + "devices": ["MacBook", "MacBook Pro", "MacBook Air"], + "problems": [] + }, + "ipad_repairs": { + "name": "iPad Repair Requests", + "description": "iPad repair and maintenance", + "devices": ["iPad", "iPad Pro", "iPad Air", "iPad mini"], + "problems": [] + }, + "laptop_repairs": { + "name": "Laptop Repair Requests", + "description": "General laptop repair discussions", + "devices": ["laptop", "computer", "notebook"], + "problems": [] + }, + "android_repairs": { + "name": "Android Device Repairs", + "description": "Android/Samsung device repair needs", + "devices": ["Samsung", "Samsung Galaxy", "Galaxy", "Android"], + "problems": [] + }, + "console_repairs": { + "name": "Gaming Console Repairs", + "description": "Console repair and maintenance", + "devices": ["PS5", "PS4", "Xbox", "Nintendo Switch", "PlayStation"], + "problems": [] + }, + "gpu_repairs": { + "name": "GPU/Graphics Card Repairs", + "description": "Graphics card and GPU repair needs", + "devices": ["GPU", "graphics card", "RTX", "GTX", "NVIDIA"], + "problems": [] + }, + "data_recovery": { + "name": "Data Recovery Requests", + "description": "Data recovery and storage repair", + "devices": [], + "problems": [] + }, + "general_repairs": { + "name": "General Repair Services", + "description": "General repair service requests", + "devices": [], + "problems": [] + } + } + + # Keywords that indicate problems/symptoms + problem_indicators = [ + "repair", "fix", "broken", "not working", "dead", "no power", + "won't turn on", "won't boot", "crashed", "frozen", "slow", + "won't charge", "charging port", "screen broken", "cracked screen", + "water damage", "liquid damage", "spilled", "dropped", + "overheating", "loud fan", "not starting", "blue screen", + "kernel panic", "boot loop", "black screen", "no display", + "won't connect", "connection issues", "WiFi problems", + "speakers not working", "microphone broken", "camera not working", + "keyboard not working", "touchpad issues", "battery dead", + "hard drive failed", "SSD dead", "storage failed", + "data recovery", "lost files", "recover data", + "looking for repair", "need repair", "repair shop", "repair service", + "professional repair", "local repair" + ] + + # Device-specific keywords mapping + device_mappings = { + "iphone_repairs": ["iphone"], + "macbook_repairs": ["macbook"], + "ipad_repairs": ["ipad"], + "laptop_repairs": ["laptop", "computer", "notebook"], + "android_repairs": ["samsung", "galaxy", "android"], + "console_repairs": ["ps5", "ps4", "xbox", "nintendo switch", "playstation"], + "gpu_repairs": ["gpu", "graphics card", "nvidia", "rtx", "gtx"], + } + + # Categorize each keyword + for keyword in keywords: + keyword_lower = keyword.lower().strip() + + # Check if it's a device keyword + categorized = False + for category, device_terms in device_mappings.items(): + if any(device in keyword_lower for device in device_terms): + categories[category]["problems"].append(keyword) + categorized = True + break + + # Check if it's a problem keyword + if not categorized: + for category_name, category_data in categories.items(): + if category_name in ["data_recovery", "general_repairs"]: + if any(problem in keyword_lower for problem in problem_indicators): + categories[category_name]["problems"].append(keyword) + categorized = True + break + + # If not categorized, add to general repairs + if not categorized and any(problem in keyword_lower for problem in problem_indicators): + categories["general_repairs"]["problems"].append(keyword) + + # Remove duplicates and sort + for category_data in categories.values(): + category_data["problems"] = sorted(list(set(category_data["problems"]))) + + return categories + +def create_updated_keywords_file(categories): + """Create the updated repair_keywords.json file""" + # Create the structure expected by our RSS generator + keywords_data = { + "description": "Comprehensive repair keywords extracted from motherboardrepair.ca website", + "version": "2.0", + "source": "motherboardrepair.ca sst.yml and keywords.csv", + "last_updated": "2026-01-19", + "categories": categories, + "additional_keywords": { + "urgency_indicators": ["emergency", "urgent", "help needed", "asap", "quick", "fast"], + "location_indicators": ["local", "near me", "in my area", "downtown", "nearby"], + "service_types": ["diagnostics", "diagnostic", "troubleshooting", "microsolder", "component repair", "board repair"] + } + } + + return keywords_data + +def main(): + print("šŸ”„ Extracting keywords from motherboardrepair.ca...") + + # Extract keywords from both sources + sst_keywords = extract_keywords_from_sst() + csv_keywords = extract_keywords_from_csv() + + all_keywords = sst_keywords.union(csv_keywords) + print(f"āœ… Found {len(all_keywords)} unique keywords") + + # Categorize keywords + categories = categorize_keywords(all_keywords) + print("āœ… Categorized keywords into repair types") + + # Create updated keywords file + keywords_data = create_updated_keywords_file(categories) + + # Save to our data directory + output_path = Path("data/repair_keywords.json") + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(keywords_data, f, indent=2, ensure_ascii=False) + + print(f"āœ… Updated {output_path} with website-extracted keywords") + + # Summary + total_categorized = sum(len(cat["problems"]) for cat in categories.values()) + print("\nšŸ“Š SUMMARY:") + print(f" - Source keywords: {len(all_keywords)}") + print(f" - Categorized keywords: {total_categorized}") + print(f" - Categories: {len(categories)}") + print(" - Ready for RSS feed generation!") +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/update_keywords_from_website.py b/update_keywords_from_website.py new file mode 100644 index 0000000..4b72452 --- /dev/null +++ b/update_keywords_from_website.py @@ -0,0 +1,201 @@ +#!/usr/bin/env python3 +""" +Update repair keywords with comprehensive list from motherboardrepair.ca + +This script updates our repair_keywords.json with keywords extracted from +the motherboard repair website's configuration files. +""" + +import json +from pathlib import Path + +def update_keywords_from_website(): + """Update keywords with comprehensive website data""" + + # Keywords extracted from motherboardrepair.ca sst.yml and keywords.csv + website_keywords = { + "iphone_repairs": { + "name": "iPhone Repair Requests", + "description": "Most common iPhone repair requests from website", + "devices": ["iPhone", "iPhone 12", "iPhone 13", "iPhone 14", "iPhone 15"], + "problems": [ + "iPhone logic board repair", "iPhone motherboard repair", "iPhone no power", + "iPhone boot loop", "iPhone not charging", "micro-soldering repairs", + "nanosoldering", "iPhone screen broken", "iPhone water damage", + "iPhone repair", "iPhone fix", "iPhone not working" + ] + }, + "macbook_repairs": { + "name": "MacBook Repair Requests", + "description": "MacBook hardware repair needs from website", + "devices": ["MacBook", "MacBook Pro", "MacBook Air"], + "problems": [ + "MacBook logic board repair", "MacBook motherboard repair", "MacBook no power", + "MacBook liquid damage", "MacBook not charging", "MacBook screen broken", + "MacBook keyboard", "MacBook repair", "MacBook fix", "MacBook not working", + "MacBook won't turn on" + ] + }, + "ipad_repairs": { + "name": "iPad Repair Requests", + "description": "iPad repair and maintenance from website", + "devices": ["iPad", "iPad Pro", "iPad Air", "iPad mini"], + "problems": [ + "iPad logic board repair", "iPad motherboard repair", "iPad no power", + "iPad not charging", "iPad backlight repair", "iPad screen broken", + "iPad repair", "iPad fix", "iPad not working" + ] + }, + "laptop_repairs": { + "name": "Laptop Repair Requests", + "description": "General laptop repair discussions from website", + "devices": ["laptop", "computer", "notebook", "gaming laptop"], + "problems": [ + "laptop motherboard repair", "logic board repair", "gaming laptop repair", + "no power laptop", "liquid damage repair", "charging port repair", + "laptop repair", "laptop fix", "laptop not working", "laptop screen broken", + "laptop keyboard", "laptop won't turn on" + ] + }, + "android_repairs": { + "name": "Android Device Repairs", + "description": "Android/Samsung device repair needs from website", + "devices": ["Samsung", "Samsung Galaxy", "Galaxy", "Android", "Google Pixel"], + "problems": [ + "Samsung logic board repair", "Samsung motherboard repair", "Galaxy no power", + "Samsung boot loop", "Samsung not charging", "Android logic board repair", + "Google Pixel repair", "Android no power", "Android boot loop", + "Samsung repair", "Android repair", "Galaxy repair" + ] + }, + "console_repairs": { + "name": "Gaming Console Repairs", + "description": "Console repair and maintenance from website", + "devices": ["PS5", "PS4", "Xbox", "Nintendo Switch", "PlayStation"], + "problems": [ + "PlayStation repair", "PS5 repair", "PS4 repair", "HDMI port replacement", + "PlayStation disc drive repair", "Xbox repair", "Nintendo Switch repair", + "Joy-Con drift fix", "Switch screen replacement", "gaming console fix", + "console repair", "PlayStation", "Xbox" + ] + }, + "gpu_repairs": { + "name": "GPU/Graphics Card Repairs", + "description": "Graphics card and GPU repair needs from website", + "devices": ["GPU", "graphics card", "NVIDIA", "RTX", "GTX"], + "problems": [ + "GPU repair", "graphics card repair", "NVIDIA repair", "RTX repair", + "GTX repair", "GPU refurbishing", "expert nvidia", "nvidia gpu" + ] + }, + "data_recovery": { + "name": "Data Recovery Requests", + "description": "Data recovery and storage repair from website", + "devices": [], + "problems": [ + "data recovery", "phone data recovery", "SSD recovery", "hard drive data recovery", + "NVMe recovery", "mechanical failure recovery", "firmware recovery", + "chip-off", "JTAG", "nanosoldering", "data extraction", + "non-functional devices", "recover data", "lost files", "hard drive recovery" + ] + }, + "general_repairs": { + "name": "General Repair Services", + "description": "General repair service requests from website", + "devices": [], + "problems": [ + "electronics repair services", "console repair", "MacBook repair", + "data recovery", "microsoldering", "nanosoldering", "laptop repair", + "iPhone repair", "motherboard repair", "repair service", "professional repair", + "looking for repair", "need repair", "repair shop", "local repair" + ] + }, + "screen_damage": { + "name": "Screen/Display Damage", + "description": "Broken or damaged screens/displays from website", + "devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"], + "problems": [ + "screen broken", "cracked screen", "display damaged", "screen replacement", + "touch screen not working", "screen refurbishment", "LCD glass replacement", + "screen glass repair", "damaged glass" + ] + }, + "power_issues": { + "name": "Power/Charging Issues", + "description": "Devices with power or charging problems from website", + "devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android", "PS5", "PS4", "Xbox"], + "problems": [ + "won't turn on", "no power", "dead", "not starting", "bricked", + "won't boot", "boot failure", "power button", "won't charge", + "not charging", "charging port broken", "battery dead" + ] + }, + "water_liquid_damage": { + "name": "Water/Liquid Damage", + "description": "Devices damaged by water or liquid from website", + "devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"], + "problems": [ + "water damage", "spilled", "liquid damage", "got wet", "water damaged", + "liquid spilled", "motherboard repair" + ] + }, + "hdmi_issues": { + "name": "HDMI Port Issues", + "description": "HDMI port repair and replacement from website", + "devices": ["PS5", "Xbox", "graphics card", "laptop", "computer"], + "problems": [ + "HDMI port repair", "PS5 HDMI replacement", "Xbox HDMI port fix", + "graphics card HDMI repair", "laptop HDMI port", "HDMI not working" + ] + }, + "key_fob_repairs": { + "name": "Key Fob Repairs", + "description": "Car key fob repair and maintenance from website", + "devices": [], + "problems": [ + "key fob repair", "car key remote repair", "key fob microsoldering", + "key fob battery contacts", "button pad repair", "fob repairs" + ] + } + } + + # Additional keywords from the CSV file + csv_keywords = [ + "motherboard repair", "MRC", "microsoldering", "nanosoldering", "console repair", + "logic board repair", "MacBook repair", "iPhone repair", "iPad repair", "laptop repair", + "data recovery", "graphics card repair", "GPU repair", "electronics repair", + "professional repair", "microsoldering services", "nanosoldering services", + "Nintendo Switch repair", "PlayStation repair", "Xbox repair", "SSD recovery", + "HDMI port repair", "hard drive recovery", "repair service", "professional microsoldering", + "professional nanosoldering", "gaming laptop repair", "phone data recovery" + ] + + # Create the updated keywords structure + keywords_data = { + "description": "Comprehensive repair keywords extracted from motherboardrepair.ca website", + "version": "2.0", + "source": "motherboardrepair.ca sst.yml and keywords.csv", + "last_updated": "2026-01-19", + "categories": website_keywords, + "additional_keywords": { + "urgency_indicators": ["emergency", "urgent", "help needed", "asap", "quick", "fast"], + "location_indicators": ["local", "near me", "in my area", "downtown", "nearby"], + "service_types": ["diagnostics", "diagnostic", "troubleshooting", "microsolder", "component repair", "board repair"] + }, + "raw_csv_keywords": csv_keywords + } + + # Save to our data directory + output_path = Path("data/repair_keywords.json") + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(keywords_data, f, indent=2, ensure_ascii=False) + + print("āœ… Updated repair_keywords.json with comprehensive website keywords") + print(f"šŸ“Š Categories: {len(website_keywords)}") + print(f"šŸ“ Total keywords: {sum(len(cat.get('problems', [])) for cat in website_keywords.values()) + len(csv_keywords)}") + +def main(): + update_keywords_from_website() + +if __name__ == "__main__": + main() \ No newline at end of file