🔍 Integrated comprehensive keywords from motherboardrepair.ca website
- 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!
This commit is contained in:
parent
ce306e7f2b
commit
ead7bc70fc
|
|
@ -20,7 +20,7 @@
|
||||||
- **`scripts/generate_modular_rss_feeds.py`** - Generate fresh RSS feeds from source files
|
- **`scripts/generate_modular_rss_feeds.py`** - Generate fresh RSS feeds from source files
|
||||||
- **`data/repair_keywords.json`** - Source file: All repair keywords/keyphrases
|
- **`data/repair_keywords.json`** - Source file: All repair keywords/keyphrases
|
||||||
- **`data/canadian_subreddits.json`** - Source file: Canadian subreddits with metadata
|
- **`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
|
### Core Resources
|
||||||
- **`docs/canadian-subreddits.md`** - Complete list of Canadian cities/provinces
|
- **`docs/canadian-subreddits.md`** - Complete list of Canadian cities/provinces
|
||||||
|
|
|
||||||
|
|
@ -1,84 +1,379 @@
|
||||||
{
|
{
|
||||||
"description": "Comprehensive repair keywords and keyphrases for RSS feed generation",
|
"description": "Comprehensive repair keywords extracted from motherboardrepair.ca website",
|
||||||
"version": "1.0",
|
"version": "2.0",
|
||||||
|
"source": "motherboardrepair.ca sst.yml and keywords.csv",
|
||||||
"last_updated": "2026-01-19",
|
"last_updated": "2026-01-19",
|
||||||
"categories": {
|
"categories": {
|
||||||
"iphone_repairs": {
|
"iphone_repairs": {
|
||||||
"name": "iPhone Repair Requests",
|
"name": "iPhone Repair Requests",
|
||||||
"description": "Most common iPhone repair requests",
|
"description": "Most common iPhone repair requests from website",
|
||||||
"devices": ["iPhone", "iPhone 12", "iPhone 13", "iPhone 14", "iPhone 15"],
|
"devices": [
|
||||||
"problems": ["repair", "fix", "broken", "not working", "screen broken", "won't charge", "water damage", "looking for repair"]
|
"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": {
|
"macbook_repairs": {
|
||||||
"name": "MacBook Repair Requests",
|
"name": "MacBook Repair Requests",
|
||||||
"description": "MacBook hardware repair needs",
|
"description": "MacBook hardware repair needs from website",
|
||||||
"devices": ["MacBook", "MacBook Pro", "MacBook Air"],
|
"devices": [
|
||||||
"problems": ["repair", "fix", "broken", "not working", "won't turn on", "keyboard", "screen", "water damage"]
|
"MacBook",
|
||||||
},
|
"MacBook Pro",
|
||||||
"laptop_repairs": {
|
"MacBook Air"
|
||||||
"name": "Laptop Repair Requests",
|
],
|
||||||
"description": "General laptop repair discussions",
|
"problems": [
|
||||||
"devices": ["laptop", "computer", "notebook"],
|
"MacBook logic board repair",
|
||||||
"problems": ["repair", "fix", "broken", "not working", "won't turn on", "screen broken", "keyboard", "charging"]
|
"MacBook motherboard repair",
|
||||||
},
|
"MacBook no power",
|
||||||
"phone_repairs": {
|
"MacBook liquid damage",
|
||||||
"name": "Phone Repair Requests",
|
"MacBook not charging",
|
||||||
"description": "General phone repair needs",
|
"MacBook screen broken",
|
||||||
"devices": ["phone", "cell phone", "smartphone"],
|
"MacBook keyboard",
|
||||||
"problems": ["repair", "fix", "broken", "screen", "charging", "water damage", "not working"]
|
"MacBook repair",
|
||||||
},
|
"MacBook fix",
|
||||||
"console_repairs": {
|
"MacBook not working",
|
||||||
"name": "Gaming Console Repairs",
|
"MacBook won't turn on"
|
||||||
"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"]
|
|
||||||
},
|
},
|
||||||
"ipad_repairs": {
|
"ipad_repairs": {
|
||||||
"name": "iPad Repair Requests",
|
"name": "iPad Repair Requests",
|
||||||
"description": "iPad repair and maintenance",
|
"description": "iPad repair and maintenance from website",
|
||||||
"devices": ["iPad", "iPad Pro", "iPad Air", "iPad mini"],
|
"devices": [
|
||||||
"problems": ["repair", "fix", "broken", "screen", "charging", "not working", "water damage"]
|
"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": {
|
"laptop_repairs": {
|
||||||
"name": "Power/Charging Issues",
|
"name": "Laptop Repair Requests",
|
||||||
"description": "Devices with power or charging problems",
|
"description": "General laptop repair discussions from website",
|
||||||
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android", "PS5", "PS4", "Xbox"],
|
"devices": [
|
||||||
"problems": ["won't turn on", "no power", "dead", "won't charge", "not charging", "battery dead", "charging port"]
|
"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": {
|
"screen_damage": {
|
||||||
"name": "Screen/Display Damage",
|
"name": "Screen/Display Damage",
|
||||||
"description": "Broken or damaged screens/displays",
|
"description": "Broken or damaged screens/displays from website",
|
||||||
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"],
|
"devices": [
|
||||||
"problems": ["screen broken", "cracked screen", "display damaged", "screen replacement", "touch screen not working"]
|
"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": {
|
"water_liquid_damage": {
|
||||||
"name": "Water/Liquid Damage",
|
"name": "Water/Liquid Damage",
|
||||||
"description": "Devices damaged by water or liquid",
|
"description": "Devices damaged by water or liquid from website",
|
||||||
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"],
|
"devices": [
|
||||||
"problems": ["water damage", "spilled", "liquid damage", "got wet", "water damaged"]
|
"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": {
|
"additional_keywords": {
|
||||||
"urgency_indicators": ["emergency", "urgent", "help needed", "asap", "quick", "fast"],
|
"urgency_indicators": [
|
||||||
"location_indicators": ["local", "near me", "in my area", "downtown", "nearby"],
|
"emergency",
|
||||||
"service_types": ["diagnostics", "diagnostic", "troubleshooting", "microsolder", "component repair", "board repair"]
|
"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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -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()
|
||||||
|
|
@ -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()
|
||||||
Loading…
Reference in New Issue