From 70d7406a299e894f9c878e1acf750e870f5971d3 Mon Sep 17 00:00:00 2001 From: thrylokya Date: Fri, 20 Mar 2026 09:04:26 +0530 Subject: [PATCH] Delete skills/build_cms_search_input.py --- skills/build_cms_search_input.py | 179 ------------------------------- 1 file changed, 179 deletions(-) delete mode 100644 skills/build_cms_search_input.py diff --git a/skills/build_cms_search_input.py b/skills/build_cms_search_input.py deleted file mode 100644 index 05d750c..0000000 --- a/skills/build_cms_search_input.py +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env python3 -""" -Build CMS Search Input JSON - -Generates properly formatted input JSON for search_media_cms_channels MCP tool. - -Usage: - python3 build_cms_search_input.py --keywords "car,automobile,vehicle" --taxonomies "Modern,Luxury" --locale "en_US" - - # With empty keywords - python3 build_cms_search_input.py --keywords "" --taxonomies "Bright,Spacious" --locale "en_US" - - # With empty taxonomies - python3 build_cms_search_input.py --keywords "logo,brand" --taxonomies "" --locale "en_US" - - # With page parameters - python3 build_cms_search_input.py --keywords "car" --taxonomies "Luxury" --locale "en_US" --limit 10 --offset 0 -""" - -import argparse -import json -import sys - - -def build_search_keyword(keywords): - """ - Convert comma-separated keywords to OR-separated format. - - Args: - keywords: Comma-separated string of keywords, or empty string - - Returns: - OR-separated keyword string, or empty string - - Examples: - "car,automobile,vehicle" -> "car OR automobile OR vehicle" - "" -> "" - "logo" -> "logo" - """ - if not keywords or keywords.strip() == "": - return "" - - # Split by comma, strip whitespace, filter empty - keyword_list = [k.strip() for k in keywords.split(',') if k.strip()] - - if not keyword_list: - return "" - - # Join with OR - return " OR ".join(keyword_list) - - -def build_taxonomy_expression(taxonomies): - """ - Convert comma-separated taxonomies to JSON string format. - - Args: - taxonomies: Comma-separated string of taxonomy labels, or empty string - - Returns: - JSON string in format: {"OR": ["Label1", "Label2", "Label3"]}, or "{}" - - Examples: - "Modern,Luxury,Premium" -> "{\"OR\": [\"Modern\", \"Luxury\", \"Premium\"]}" - "" -> "{}" - "Bright" -> "{\"OR\": [\"Bright\"]}" - """ - if not taxonomies or taxonomies.strip() == "": - return "{}" - - # Split by comma, strip whitespace, filter empty - taxonomy_list = [t.strip() for t in taxonomies.split(',') if t.strip()] - - if not taxonomy_list: - return "{}" - - # Build JSON object and convert to string - taxonomy_obj = {"OR": taxonomy_list} - return json.dumps(taxonomy_obj) - - -def build_cms_search_input(keywords, taxonomies, locale="en_US", page_offset=0, page_limit=5): - """ - Build the complete input JSON for search_media_cms_channels. - - Args: - keywords: Comma-separated string of keywords - taxonomies: Comma-separated string of taxonomy labels - locale: Language locale (e.g., "en_US", "es_MX", "fr_CA") - page_offset: Starting offset for pagination (default: 0) - page_limit: Number of results to return (default: 5) - - Returns: - Dictionary with properly formatted input - """ - return { - "inputs": [{ - "searchKeyword": build_search_keyword(keywords), - "taxonomyExpression": build_taxonomy_expression(taxonomies), - "searchLanguage": locale, - "channelIds": "", - "channelType": "PublicUnauthenticated", - "contentTypeFqns": "sfdc_cms__image", - "pageOffset": page_offset, - "pageLimit": page_limit - }] - } - - -def main(): - parser = argparse.ArgumentParser( - description='Build properly formatted input JSON for CMS image search', - formatter_class=argparse.RawDescriptionHelpFormatter, - epilog=""" -Examples: - # Basic search - python3 build_cms_search_input.py --keywords "car,automobile,vehicle" --taxonomies "Modern,Luxury" --locale "en_US" - - # Search with only taxonomies (no keywords) - python3 build_cms_search_input.py --keywords "" --taxonomies "Bright,Spacious,Airy" --locale "en_US" - - # Search with only keywords (no taxonomies) - python3 build_cms_search_input.py --keywords "logo,brand,corporate" --taxonomies "" --locale "en_US" - - # With custom page limit - python3 build_cms_search_input.py --keywords "apartment" --taxonomies "Luxury" --locale "en_US" --limit 20 - """ - ) - - parser.add_argument( - '--keywords', - required=True, - help='Comma-separated keywords (e.g., "car,automobile,vehicle"). Use empty string "" for no keywords.' - ) - - parser.add_argument( - '--taxonomies', - required=True, - help='Comma-separated taxonomy labels (e.g., "Modern,Luxury,Premium"). Use empty string "" for no taxonomies.' - ) - - parser.add_argument( - '--locale', - default='en_US', - help='Language locale (e.g., "en_US", "es_MX", "fr_CA"). Default: "en_US"' - ) - - parser.add_argument( - '--offset', - type=int, - default=0, - help='Page offset for pagination. Default: 0' - ) - - parser.add_argument( - '--limit', - type=int, - default=5, - help='Number of results to return. Default: 5' - ) - - args = parser.parse_args() - - # Build the input - input_json = build_cms_search_input( - keywords=args.keywords, - taxonomies=args.taxonomies, - locale=args.locale, - page_offset=args.offset, - page_limit=args.limit - ) - - # Output JSON - print(json.dumps(input_json, indent=2)) - return 0 - - -if __name__ == "__main__": - sys.exit(main())