Razpoložljivost
0 je bilo izbranih Ponastavi
Cena
Najvišja cena je $79.90 Ponastavi
$
$
Razvrščanje: Priporočeno
Razvrščanje:
2542 del izdelkov
Zaslon
Zaslon
Razpoložljivost
0 je bilo izbranih Ponastavi
Cena
Najvišja cena je $79.90 Ponastavi
$
$
2542 del izdelkov
Jasen
Priporočeno
Razvrščanje:
2542 del izdelkov

Recently viewed

import re import csv from dataclasses import dataclass, field from typing import Optional # ============================== # 1. League Database # ============================== league_db = { "Premier League": ["premier league", "epl"], "La Liga": ["la liga", "laliga"], "Serie A": ["serie a"], "Bundesliga": ["bundesliga"], "Ligue 1": ["ligue 1"], "UEFA Champions League": ["champions league", "ucl"], "FIFA World Cup": ["world cup"], "MLS": ["mls"], "NCAA": ["ncaa", "college football", "college basketball"], "NFL": ["nfl", "national football league"], "NBA": ["nba", "national basketball association"], "MLB": ["mlb", "major league baseball"], "NHL": ["nhl", "national hockey league"], } # ============================== # 2. Club Team Database # ============================== team_db = { # European Soccer "Manchester United": ["manchester united", "man utd"], "Manchester City": ["manchester city", "man city"], "Liverpool": ["liverpool"], "Arsenal": ["arsenal"], "Chelsea": ["chelsea"], "Tottenham Hotspur": ["tottenham", "spurs", "tottenham hotspur"], "Real Madrid": ["real madrid"], "Barcelona": ["barcelona", "barca"], "Juventus": ["juventus", "juve"], "AC Milan": ["ac milan"], "Inter Milan": ["inter milan", "inter"], "Bayern Munich": ["bayern", "bayern munich"], "Paris Saint-Germain": ["psg", "paris saint-germain"], # NFL "Arizona Cardinals": ["arizona cardinals"], "Atlanta Falcons": ["atlanta falcons"], "Baltimore Ravens": ["baltimore ravens"], "Buffalo Bills": ["buffalo bills"], "Carolina Panthers": ["carolina panthers"], "Chicago Bears": ["chicago bears"], "Cincinnati Bengals": ["cincinnati bengals"], "Cleveland Browns": ["cleveland browns"], "Dallas Cowboys": ["dallas cowboys"], "Denver Broncos": ["denver broncos"], "Detroit Lions": ["detroit lions"], "Green Bay Packers": ["green bay packers"], "Houston Texans": ["houston texans"], "Indianapolis Colts": ["indianapolis colts"], "Jacksonville Jaguars": ["jacksonville jaguars"], "Kansas City Chiefs": ["kansas city chiefs"], "Las Vegas Raiders": ["raiders", "las vegas raiders"], "Los Angeles Chargers": ["la chargers", "los angeles chargers"], "Los Angeles Rams": ["la rams", "los angeles rams"], "Miami Dolphins": ["miami dolphins"], "Minnesota Vikings": ["minnesota vikings"], "New England Patriots": ["new england patriots"], "New Orleans Saints": ["new orleans saints"], "New York Giants": ["ny giants", "new york giants"], "New York Jets": ["ny jets", "new york jets"], "Philadelphia Eagles": ["philadelphia eagles"], "Pittsburgh Steelers": ["pittsburgh steelers"], "San Francisco 49ers": ["49ers", "san francisco 49ers"], "Seattle Seahawks": ["seattle seahawks"], "Tampa Bay Buccaneers": ["tampa bay buccaneers"], "Tennessee Titans": ["tennessee titans"], "Washington Commanders": ["washington commanders"], # NBA "Atlanta Hawks": ["atlanta hawks"], "Boston Celtics": ["boston celtics"], "Brooklyn Nets": ["brooklyn nets"], "Charlotte Hornets": ["charlotte hornets"], "Chicago Bulls": ["chicago bulls"], "Cleveland Cavaliers": ["cleveland cavaliers"], "Dallas Mavericks": ["dallas mavericks"], "Denver Nuggets": ["denver nuggets"], "Detroit Pistons": ["detroit pistons"], "Golden State Warriors": ["golden state warriors"], "Houston Rockets": ["houston rockets"], "Indiana Pacers": ["indiana pacers"], "Los Angeles Clippers": ["la clippers", "los angeles clippers"], "Los Angeles Lakers": ["la lakers", "los angeles lakers"], "Memphis Grizzlies": ["memphis grizzlies"], "Miami Heat": ["miami heat"], "Milwaukee Bucks": ["milwaukee bucks"], "Minnesota Timberwolves": ["minnesota timberwolves"], "New Orleans Pelicans": ["new orleans pelicans"], "New York Knicks": ["ny knicks", "new york knicks"], "Oklahoma City Thunder": ["okc thunder", "oklahoma city thunder"], "Orlando Magic": ["orlando magic"], "Philadelphia 76ers": ["76ers", "philadelphia 76ers"], "Phoenix Suns": ["phoenix suns"], "Portland Trail Blazers": ["portland trail blazers"], "Sacramento Kings": ["sacramento kings"], "San Antonio Spurs": ["san antonio spurs"], "Toronto Raptors": ["toronto raptors"], "Utah Jazz": ["utah jazz"], "Washington Wizards": ["washington wizards"], # MLB "Arizona Diamondbacks": ["arizona diamondbacks"], "Atlanta Braves": ["atlanta braves"], "Baltimore Orioles": ["baltimore orioles"], "Boston Red Sox": ["boston red sox"], "Chicago Cubs": ["chicago cubs"], "Chicago White Sox": ["chicago white sox"], "Cincinnati Reds": ["cincinnati reds"], "Cleveland Guardians": ["cleveland guardians"], "Colorado Rockies": ["colorado rockies"], "Detroit Tigers": ["detroit tigers"], "Houston Astros": ["houston astros"], "Kansas City Royals": ["kansas city royals"], "Los Angeles Angels": ["la angels", "los angeles angels"], "Los Angeles Dodgers": ["la dodgers", "los angeles dodgers"], "Miami Marlins": ["miami marlins"], "Milwaukee Brewers": ["milwaukee brewers"], "Minnesota Twins": ["minnesota twins"], "New York Mets": ["ny mets", "new york mets"], "New York Yankees": ["ny yankees", "new york yankees"], "Oakland Athletics": ["oakland athletics"], "Philadelphia Phillies": ["philadelphia phillies"], "Pittsburgh Pirates": ["pittsburgh pirates"], "San Diego Padres": ["san diego padres"], "San Francisco Giants": ["san francisco giants"], "Seattle Mariners": ["seattle mariners"], "St. Louis Cardinals": ["st louis cardinals"], "Tampa Bay Rays": ["tampa bay rays"], "Texas Rangers": ["texas rangers"], "Toronto Blue Jays": ["toronto blue jays"], "Washington Nationals": ["washington nationals"], # NHL "Anaheim Ducks": ["anaheim ducks"], "Arizona Coyotes": ["arizona coyotes"], "Boston Bruins": ["boston bruins"], "Buffalo Sabres": ["buffalo sabres"], "Carolina Hurricanes": ["carolina hurricanes"], "Chicago Blackhawks": ["chicago blackhawks"], "Colorado Avalanche": ["colorado avalanche"], "Columbus Blue Jackets": ["columbus blue jackets"], "Dallas Stars": ["dallas stars"], "Detroit Red Wings": ["detroit red wings"], "Edmonton Oilers": ["edmonton oilers"], "Florida Panthers": ["florida panthers"], "Los Angeles Kings": ["la kings", "los angeles kings"], "Minnesota Wild": ["minnesota wild"], "Montreal Canadiens": ["montreal canadiens"], "Nashville Predators": ["nashville predators"], "New Jersey Devils": ["new jersey devils"], "New York Islanders": ["new york islanders"], "New York Rangers": ["new york rangers"], "Ottawa Senators": ["ottawa senators"], "Philadelphia Flyers": ["philadelphia flyers"], "Pittsburgh Penguins": ["pittsburgh penguins"], "San Jose Sharks": ["san jose sharks"], "Seattle Kraken": ["seattle kraken"], "St. Louis Blues": ["st louis blues"], "Tampa Bay Lightning": ["tampa bay lightning"], "Toronto Maple Leafs": ["toronto maple leafs"], "Vancouver Canucks": ["vancouver canucks"], "Vegas Golden Knights": ["vegas golden knights"], "Washington Capitals": ["washington capitals"], "Winnipeg Jets": ["winnipeg jets"], # NCAA sample "Alabama Crimson Tide": ["alabama crimson tide"], "Ohio State Buckeyes": ["ohio state buckeyes"], "Clemson Tigers": ["clemson tigers"], "LSU Tigers": ["lsu tigers"], "Oklahoma Sooners": ["oklahoma sooners"], "Georgia Bulldogs": ["georgia bulldogs"], "Texas Longhorns": ["texas longhorns"], "Michigan Wolverines": ["michigan wolverines"], "Notre Dame Fighting Irish": ["notre dame fighting irish"], "Penn State Nittany Lions": ["penn state nittany lions"], "Florida State Seminoles": ["florida state seminoles"], "Auburn Tigers": ["auburn tigers"], "USC Trojans": ["usc trojans"], "Oregon Ducks": ["oregon ducks"], "Miami Hurricanes": ["miami hurricanes"], "Duke Blue Devils": ["duke blue devils"], "Kentucky Wildcats": ["kentucky wildcats"], "Kansas Jayhawks": ["kansas jayhawks"], "North Carolina Tar Heels": ["north carolina tar heels"], } # ============================== # 3. National Team Database (Full World Cup Participants) # ============================== country_db = { # UEFA Europe "England National Team": ["england"], "France National Team": ["france"], "Germany National Team": ["germany"], "Spain National Team": ["spain"], "Italy National Team": ["italy"], "Portugal National Team": ["portugal"], "Netherlands National Team": ["netherlands", "holland"], "Croatia National Team": ["croatia"], "Belgium National Team": ["belgium"], "Switzerland National Team": ["switzerland"], "Sweden National Team": ["sweden"], "Austria National Team": ["austria"], "Scotland National Team": ["scotland"], "Norway National Team": ["norway"], "Turkey National Team": ["turkey", "türkiye"], "Ukraine National Team": ["ukraine"], "Slovenia National Team": ["slovenia"], "Bosnia and Herzegovina National Team": ["bosnia", "bosnia and herzegovina"], "Czech Republic National Team": ["czech", "czechia"], "Greece National Team": ["greece"], "Iceland National Team": ["iceland"], "Romania National Team": ["romania"], "Russia National Team": ["russia"], "Poland National Team": ["poland"], "Denmark National Team": ["denmark"], "Hungary National Team": ["hungary"], "Serbia National Team": ["serbia"], "Slovakia National Team": ["slovakia"], "Wales National Team": ["wales"], "North Macedonia National Team": ["north macedonia", "macedonia"], # CONMEBOL South America "Brazil National Team": ["brazil"], "Argentina National Team": ["argentina"], "Uruguay National Team": ["uruguay"], "Colombia National Team": ["colombia"], "Ecuador National Team": ["ecuador"], "Paraguay National Team": ["paraguay"], "Peru National Team": ["peru"], "Chile National Team": ["chile"], "Bolivia National Team": ["bolivia"], "Venezuela National Team": ["venezuela"], # CAF Africa "Morocco National Team": ["morocco"], "Senegal National Team": ["senegal"], "Tunisia National Team": ["tunisia"], "Algeria National Team": ["algeria"], "Egypt National Team": ["egypt"], "Ghana National Team": ["ghana"], "South Africa National Team": ["south africa"], "Ivory Coast National Team": ["ivory coast", "côte d'ivoire"], "Cameroon National Team": ["cameroon"], "Nigeria National Team": ["nigeria"], "DR Congo National Team": ["dr congo", "congo dr"], "Cape Verde National Team": ["cape verde"], "Togo National Team": ["togo"], "Mali National Team": ["mali"], "Burkina Faso National Team": ["burkina faso"], "Guinea National Team": ["guinea"], "Zambia National Team": ["zambia"], # AFC Asia "Japan National Team": ["japan"], "South Korea National Team": ["south korea", "korea"], "Iran National Team": ["iran"], "Saudi Arabia National Team": ["saudi arabia"], "Qatar National Team": ["qatar"], "Australia National Team": ["australia"], "Iraq National Team": ["iraq"], "Jordan National Team": ["jordan"], "Uzbekistan National Team": ["uzbekistan"], "United Arab Emirates National Team": ["uae"], "Oman National Team": ["oman"], "Thailand National Team": ["thailand"], "Kuwait National Team": ["kuwait"], "China National Team": ["china", "pr china"], # CONCACAF "USA National Team": ["usa", "united states"], "Mexico National Team": ["mexico"], "Canada National Team": ["canada"], "Panama National Team": ["panama"], "Costa Rica National Team": ["costa rica"], "Honduras National Team": ["honduras"], "El Salvador National Team": ["el salvador"], "Haiti National Team": ["haiti"], "Curaçao National Team": ["curaçao"], "Jamaica National Team": ["jamaica"], "Trinidad and Tobago National Team": ["trinidad", "trinidad and tobago"], "Guatemala National Team": ["guatemala"], "Nicaragua National Team": ["nicaragua"], # OFC Oceania "New Zealand National Team": ["new zealand"] } # ============================== # 4. Sport Category Mapping # ============================== sport_db = { "Soccer": ["soccer", "football jersey", "football kit"], "Basketball": ["basketball"], "American Football": ["american football", "nfl jersey", "college football"], "Baseball": ["baseball"], "Ice Hockey": ["ice hockey", "hockey"], } # ============================== # 5. Fixed Description Templates # ============================== sport_templates = { "Soccer": { "sport_desc": "Soccer unites fans across continents through thrilling matchdays, legendary rivalries and tactical battles. More than a sport, it forms a global culture built on shared passion, historic trophies and lifelong fan loyalty.", "league_desc": "{league_name} delivers world-class soccer drama each season, combining elite athletic skill, tactical depth and cross-border fan communities. Every fixture carries legacy and bragging rights.", "team_desc": "{team_name} is etched into soccer history, home to iconic players and unforgettable triumphs supported by a worldwide fanbase. Wear your loyalty proudly at the stadium, watch party or as everyday street style.", "national_team_desc": "{country_name} carries national pride onto the global pitch. World Cup tournaments unite supporters as one community; this kit is a timeless way to represent your nation’s football identity." }, "Basketball": { "sport_desc": "Basketball thrives on speed, precision and momentum swings. From sharp crossover moves to game-clinching buzzer beaters, it blends athletic flair, street culture and playoff drama.", "league_desc": "{league_name} is basketball’s global stage, featuring generational talent, creative offense and high-stakes postseason series. Every contest builds storylines fans revisit for years.", "team_desc": "{team_name} has built an enduring legacy through championship campaigns, iconic stars and citywide pride. Made for courtside viewing, casual outings and fan meetups, this jersey visibly connects you to the team’s journey.", "national_team_desc": "{country_name} brings elite basketball talent to international competition, mixing domestic stardom with national pride. Wear this jersey to celebrate your nation’s basketball heritage anywhere." }, "American Football": { "sport_desc": "American Football is a strategic physical game with specialized units, calculated play calls and explosive game-changing moments. It rewards patience, discipline and championship mindset.", "league_desc": "{league_name} turns weekly matchups into cultural events, with layered strategy, storied franchises and playoff drama bringing casual viewers and diehard fans together.", "team_desc": "{team_name} stands for tradition, grit and regional identity. Whether tailgating, hosting watch parties or building your fan wardrobe, this jersey boldly shows your commitment on every snap and drive.", "national_team_desc": "{country_name} represents its nation in international American Football competition, showcasing the sport’s tactical richness and competitive spirit. Support with authentic team styling." }, "Baseball": { "sport_desc": "Baseball unfolds gradually with tense pitcher-batter duels, defensive craft and season-long narratives. It is a game of routines, records and multi-generational family fandom.", "league_desc": "{league_name} builds drama over a long regular season, featuring division races, late-season surges and postseason series that become lasting baseball folklore.", "team_desc": "{team_name} carries decades of baseball heritage, from legendary lineups to memorable playoff runs. This jersey works for stadium days, vintage streetwear and as a meaningful gift for lifelong fans.", "national_team_desc": "{country_name} competes on the global diamond, bringing national pride to international baseball tournaments. Represent your nation with clean, timeless team apparel." }, "Ice Hockey": { "sport_desc": "Ice Hockey is fast, physical and relentless: quick line changes, goaltender duels and sudden momentum shifts make every period unpredictable. Rivalries and playoff intensity define the sport’s soul.", "league_desc": "{league_name} hosts iconic ice battles, historic franchises and the chase for the Stanley Cup. Breakaway chances, big hits and overtime drama keep fans locked in from puck drop.", "team_desc": "{team_name} has grown a passionate local fanbase through memorable playoff campaigns and enduring hockey tradition. This jersey fits arena nights, watch parties and everyday fan looks with authentic team graphics.", "national_team_desc": "{country_name} showcases top international ice hockey talent in global tournaments. Wear this jersey to honor your nation’s skating, checking and goaltending legacy." } } # ============================== # 6. Data Class # ============================== @dataclass class ProductAnalysis: title: str subtitle: str sport: Optional[str] = None leagues: list = field(default_factory=list) teams: list = field(default_factory=list) countries: list = field(default_factory=list) category_intro: str = "" # ============================== # 7. Matching Logic # ============================== def analyze_product(title: str, subtitle: str) -> ProductAnalysis: text = f"{title} {subtitle}".lower() res = ProductAnalysis(title=title, subtitle=subtitle) # Match sport for sport_name, keywords in sport_db.items(): if any(k in text for k in keywords): res.sport = sport_name break # Match leagues for league_name, keywords in league_db.items(): if any(k in text for k in keywords): res.leagues.append(league_name) # Match club teams for team_name, keywords in team_db.items(): if any(k in text for k in keywords): res.teams.append(team_name) # Match national teams for nation_name, keywords in country_db.items(): if any(k in text for k in keywords): res.countries.append(nation_name) res.category_intro = build_description(res) return res # ============================== # 8. Description Builder【Shopline单行模式】 # ============================== def build_description(analysis: ProductAnalysis) -> str: if not analysis.sport or analysis.sport not in sport_templates: return "General sports apparel item for sports fans. Classic team styling suitable for casual wear, match viewing and fan collections." tmpl = sport_templates[analysis.sport] parts = [] parts.append(f"Sport: {tmpl['sport_desc']}") for lg in analysis.leagues: parts.append(f"League: {tmpl['league_desc'].format(league_name=lg)}") for tm in analysis.teams: parts.append(f"Team: {tmpl['team_desc'].format(team_name=tm)}") for nt in analysis.countries: parts.append(f"National Team: {tmpl['national_team_desc'].format(country_name=nt)}") ending = "Crafted from lightweight breathable fabric, this jersey offers a relaxed comfortable fit, ideal for match days, casual outings, fan meetups and gifting to fellow supporters." parts.append(ending) # Shopline:单行,禁止换行符 return " ".join(parts) # ============================== # 9. Batch Export【Shopline UTF-8 无BOM】 # ============================== def batch_export(products, csv_filename="sport_product_description.csv"): rows = [] for p in products: ana = analyze_product(p.get("Title", ""), p.get("Subtitle", "")) row = { "Title": ana.title, "Subtitle": ana.subtitle, "Sport": ana.sport or "Unidentified", "Leagues": "; ".join(ana.leagues), "Teams": "; ".join(ana.teams), "NationalTeams": "; ".join(ana.countries), "CategoryDescription": ana.category_intro } rows.append(row) headers = ["Title","Subtitle","Sport","Leagues","Teams","NationalTeams","CategoryDescription"] # UTF-8 不带BOM,Shopline标准 with open(csv_filename, "w", newline="", encoding="utf-8") as f: writer = csv.DictWriter(f, fieldnames=headers) writer.writeheader() writer.writerows(rows) print(f"✅ Exported to {csv_filename}") # ============================== # 10. Test Demo # ============================== if __name__ == "__main__": sample_products = [ {"Title": "Croatia National Team World Cup Home Jersey", "Subtitle": "Soccer Uniform"}, {"Title": "Morocco National Team Away Football Kit", "Subtitle": "World Cup Shirt"}, {"Title": "Brazil National Team Home Soccer Jersey", "Subtitle": "World Cup Kit"}, {"Title": "Los Angeles Lakers Basketball Jersey", "Subtitle": "NBA Uniform"}, {"Title": "Dallas Cowboys Game Jersey", "Subtitle": "NFL Apparel"}, {"Title": "New York Yankees Home Jersey", "Subtitle": "MLB Shirt"}, {"Title": "Toronto Maple Leafs Ice Hockey Jersey", "Subtitle": "NHL Uniform"}, ] batch_export(sample_products) # Print preview print("\n=== Preview Samples ===") for item in sample_products: result = analyze_product(item["Title"], item["Subtitle"]) print("\nTitle:", result.title) print("Description:\n", result.category_intro) print("-" * 80)

Vaša košarica

Nalaganje