From 00000d941e3e83ecd58d3a16c47aef85484c4d44 Mon Sep 17 00:00:00 2001 From: doms9 <96013514+doms9@users.noreply.github.com> Date: Tue, 23 Sep 2025 20:55:52 -0400 Subject: [PATCH] e --- M3U8/scrapers/livetvsx.py | 4 +- M3U8/scrapers/utils/config.py | 2 + M3U8/scrapers/utils/leagues.json | 416 ++++++++++++++++--------------- 3 files changed, 215 insertions(+), 207 deletions(-) diff --git a/M3U8/scrapers/livetvsx.py b/M3U8/scrapers/livetvsx.py index 221a7fa..94457fa 100644 --- a/M3U8/scrapers/livetvsx.py +++ b/M3U8/scrapers/livetvsx.py @@ -308,10 +308,10 @@ async def scrape(client: httpx.AsyncClient) -> None: key = f"[{sport}: {event}] {title} (LTVSX)" - tvg_id, logo = league_info(sport) + tvg_id, logo = league_info(event) if not tvg_id: - tvg_id, logo = league_info(event) + tvg_id, logo = league_info(sport) entry = { "url": url, diff --git a/M3U8/scrapers/utils/config.py b/M3U8/scrapers/utils/config.py index 826f085..c2a3c9f 100644 --- a/M3U8/scrapers/utils/config.py +++ b/M3U8/scrapers/utils/config.py @@ -18,6 +18,8 @@ LEAGUES: dict[str, dict[str, str]] = json.loads( def league_info(name: str) -> tuple[str | None, str]: + name = name.upper() + if match := next( ( (tvg_id, league_data.get("logo")) diff --git a/M3U8/scrapers/utils/leagues.json b/M3U8/scrapers/utils/leagues.json index 5c74039..b442066 100644 --- a/M3U8/scrapers/utils/leagues.json +++ b/M3U8/scrapers/utils/leagues.json @@ -1,7 +1,7 @@ { "Basketball.Dummy.us": [ { - "Basketball": { + "BASKETBALL": { "logo": "https://1000logos.net/wp-content/uploads/2024/04/Basketball-Emoji-1536x864.png", "names": [] } @@ -9,10 +9,18 @@ ], "Golf.Dummy.us": [ { - "Golf": { + "GOLF": { "logo": "https://i.gyazo.com/14a883f22796f631e6f97c34dbeb6ada.png", "names": [] } + }, + { + "PGA": { + "logo": "https://1000logos.net/wp-content/uploads/2024/10/PGA-Tour-Logo-500x281.png", + "names": [ + "PGA TOUR" + ] + } } ], "MLB.Baseball.Dummy.us": [ @@ -20,8 +28,8 @@ "MLB": { "logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/mlb.png", "names": [ - "Baseball", - "Major League Baseball" + "BASEBALL", + "MAJOR LEAGUE BASEBALL" ] } } @@ -31,8 +39,8 @@ "NBA": { "logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/nba.png", "names": [ - "NBA Preseason", - "National Basketball Association" + "NATIONAL BASKETBALL ASSOCIATION", + "NBA PRESEASON" ] } } @@ -55,9 +63,9 @@ "NFL": { "logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/nfl.png", "names": [ - "American Football", - "NFL Preseason", - "National Football League", + "AMERICAN FOOTBALL", + "NATIONAL FOOTBALL LEAGUE", + "NFL PRESEASON", "USA NFL" ] } @@ -68,26 +76,26 @@ "NHL": { "logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/nhl.png", "names": [ - "Hockey", - "NHL Preseason", - "National Hockey League" + "HOCKEY", + "NATIONAL HOCKEY LEAGUE", + "NHL PRESEASON" ] } } ], "PPV.EVENTS.Dummy.us": [ { - "Pay Per View": { + "PAY PER VIEW": { "logo": null, "names": [ - "PPV", - "Pay-Per-View", - "PayPerView" + "PAY-PER-VIEW", + "PAYPERVIEW", + "PPV" ] } }, { - "Wrestling": { + "WRESTLING": { "logo": null, "names": [ "AEW", @@ -101,21 +109,21 @@ "F1": { "logo": "https://1000logos.net/wp-content/uploads/2021/06/F1-logo-500x281.png", "names": [ - "Formula 1", - "Formula One" + "FORMULA 1", + "FORMULA ONE" ] } }, { - "Moto GP": { + "MOTO GP": { "logo": "https://1000logos.net/wp-content/uploads/2021/03/MotoGP-Logo-500x281.png", "names": [ - "MotoGP" + "MOTOGP" ] } }, { - "Racing": { + "RACING": { "logo": null, "names": [] } @@ -123,29 +131,29 @@ ], "Soccer.Dummy.us": [ { - "2. Bundesliga": { + "2. BUNDESLIGA": { "logo": "https://i.gyazo.com/6c343e57acf501f4df3502d7ec646897.png", "names": [] } }, { - "3. Liga": { + "3. LIGA": { "logo": "https://i.gyazo.com/9f4f2e8370377b6214b4103003196de7.png", "names": [] } }, { - "AFC Champions League": { + "AFC CHAMPIONS LEAGUE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2200.png&scale=crop&cquality=40&location=origin&w=500&h=500", "names": [ "ACL", - "ACL Elite", - "Asian Champions League" + "ACL ELITE", + "ASIAN CHAMPIONS LEAGUE" ] } }, { - "Africa Cup of Nations": { + "AFRICA CUP OF NATIONS": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/76.png", "names": [ "AFCON" @@ -153,142 +161,142 @@ } }, { - "Austria 2 Liga": { + "AUSTRIA 2 LIGA": { "logo": "https://i.gyazo.com/5d1464502b841fef6e5d78c8b0764b52.png", "names": [ - "Admiral 2. Liga" + "ADMIRAL 2. LIGA" ] } }, { - "Austria Bundesliga": { + "AUSTRIA BUNDESLIGA": { "logo": "https://i.gyazo.com/83d851fb1110f1e395690403f9cf01bb.webp", "names": [ - "Admiral Bundesliga", - "Federal League" + "ADMIRAL BUNDESLIGA", + "FEDERAL LEAGUE" ] } }, { - "Bundesliga": { + "BUNDESLIGA": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/10.png", "names": [ - "Bundeslig", - "German Bundesliga" + "BUNDESLIG", + "GERMAN BUNDESLIGA" ] } }, { - "CAF Champions League": { + "CAF CHAMPIONS LEAGUE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2391.png", "names": [] } }, { - "CONCACAF Champions League": { - "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2298.png", - "names": [ - "CONCACAF Champions Cup" - ] - } - }, - { - "CONCACAF Gold Cup": { - "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/59.png", - "names": [ - "Copa Oro CONCACAF" - ] - } - }, - { - "Canadian Premier League": { + "CANADIAN PREMIER LEAGUE": { "logo": "https://i.gyazo.com/f61986e2ccfbf88f7d753b4e7f2c9fdc.png", "names": [ - "CPL", - "CanPL" + "CANPL", + "CPL" ] } }, { - "Championship": { + "CHAMPIONSHIP": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/24.png", "names": [ - "English Championship", - "English Football League Championship", - "Sky Bet Championship" + "ENGLISH CHAMPIONSHIP", + "ENGLISH FOOTBALL LEAGUE CHAMPIONSHIP", + "SKY BET CHAMPIONSHIP" ] } }, { - "Copa América": { + "CONCACAF CHAMPIONS LEAGUE": { + "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2298.png", + "names": [ + "CONCACAF CHAMPIONS CUP" + ] + } + }, + { + "CONCACAF GOLD CUP": { + "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/59.png", + "names": [ + "COPA ORO CONCACAF" + ] + } + }, + { + "COPA AMéRICA": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/83.png", "names": [ - "CONMEBOL Copa America", - "CONMEBOL Copa América", - "Copa America", - "South American Football Championship" + "CONMEBOL COPA AMERICA", + "COPA AMERICA", + "COPA LIBERTADORES DE AMÉRICA", + "SOUTH AMERICAN FOOTBALL CHAMPIONSHIP" ] } }, { - "Copa Libertadores": { + "COPA LIBERTADORES": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/58.png", "names": [ - "CONMEBOL Libertadores", - "Copa Libertadores de America", - "Copa Libertadores de América", - "Libertadores" + "CONMEBOL LIBERTADORES", + "COPA LIBERTADORES DE AMERICA", + "COPA LIBERTADORES DE AMéRICA", + "LIBERTADORES" ] } }, { - "Copa Sudamericana": { + "COPA SUDAMERICANA": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/1208.png", "names": [ - "CONMEBOL Sudamericana", - "Copa CONMEBOL Sudamericana" + "CONMEBOL SUDAMERICANA", + "COPA CONMEBOL SUDAMERICANA" ] } }, { - "EFL League One": { + "EFL LEAGUE ONE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/25.png", "names": [ - "English Football League One", - "League One", - "Sky Bet League One" + "ENGLISH FOOTBALL LEAGUE ONE", + "LEAGUE ONE", + "SKY BET LEAGUE ONE" ] } }, { - "EFL League Two": { + "EFL LEAGUE TWO": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/26.png", "names": [ - "English Football League Two", - "League Two", - "Sky Bet League Two" + "ENGLISH FOOTBALL LEAGUE TWO", + "LEAGUE TWO", + "SKY BET LEAGUE TWO" ] } }, { - "Ekstraklasa": { + "EKSTRAKLASA": { "logo": "https://i.gyazo.com/362e31efdd0dad03b00858f4fb0901b5.png", "names": [ - "PKO Bank Polski Ekstraklasa", - "Poland Ekstraklasa" + "PKO BANK POLSKI EKSTRAKLASA", + "POLAND EKSTRAKLASA" ] } }, { - "Eredivisie": { + "EREDIVISIE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/11.png", "names": [ - "VriendenLoterij Eredivisie" + "VRIENDENLOTERIJ EREDIVISIE" ] } }, { - "FIFA Club World Cup": { + "FIFA CLUB WORLD CUP": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/1932.png", "names": [ "FIFA CWC" @@ -296,7 +304,7 @@ } }, { - "Fifa World Cup": { + "FIFA WORLD CUP": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/4.png", "names": [ "FIFA WC", @@ -305,128 +313,126 @@ } }, { - "Fifa's Women World Cup": { + "FIFA'S WOMEN WORLD CUP": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/60.png", "names": [ - "FIFA Women WC" + "FIFA WOMEN WC" ] } }, { - "Football": { + "FOOTBALL": { "logo": "https://i.gyazo.com/1c4aa937f5ea01b0f29bb27adb59884c.png", "names": [] } }, { - "Frauen Bundesliga": { + "FRAUEN BUNDESLIGA": { "logo": "https://i.gyazo.com/d13d4c0330be96801aa4b2d8b83d3a8f.png", "names": [ - "Google Pixel Frauen-Bundesliga", - "Women's Federal League" + "GOOGLE PIXEL FRAUEN-BUNDESLIGA", + "WOMEN'S FEDERAL LEAGUE" ] } }, { - "J1 League": { + "J1 LEAGUE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2199.png", "names": [ - "J.League", - "Japanese J.League", - "Meiji Yasuda J1 League" + "J.LEAGUE", + "JAPANESE J.LEAGUE", + "MEIJI YASUDA J1 LEAGUE" ] } }, { - "K League 1": { + "K LEAGUE 1": { "logo": "https://i.gyazo.com/721eba6c954e2015d999ead7a0bd5c69.png", "names": [] } }, { - "La Liga": { + "LA LIGA": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/15.png", "names": [ - "Campeonato Nacional de Liga de Primera Division", - "Campeonato Nacional de Liga de Primera División", + "CAMPEONATO NACIONAL DE LIGA DE PRIMERA DIVISION", + "CAMPEONATO NACIONAL DE LIGA DE PRIMERA DIVISIÓN", "LALIGA", - "Laliga", - "Primera Division", - "Primera División", - "Spanish LALIGA", - "Spanish La Liga" + "PRIMERA DIVISION", + "PRIMERA DIVISIÓN", + "SPANISH LA LIGA", + "SPANISH LALIGA" ] } }, { - "La Liga 2": { + "LA LIGA 2": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/107.png", "names": [ - "Campeonato Nacional de Liga de Segunda Division", - "Campeonato Nacional de Liga de Segunda División", - "LaLiga 2", - "Segunda Division", - "Segunda División", - "Spain Segunda Division", - "Spanish LALIGA 2", - "Spanish La Liga 2" + "CAMPEONATO NACIONAL DE LIGA DE SEGUNDA DIVISION", + "CAMPEONATO NACIONAL DE LIGA DE SEGUNDA DIVISIÓN", + "LALIGA 2", + "SEGUNDA DIVISION", + "SEGUNDA DIVISIÓN", + "SPAIN SEGUNDA DIVISION", + "SPANISH LA LIGA 2", + "SPANISH LALIGA 2" ] } }, { - "Liga I": { + "LIGA I": { "logo": "https://i.gyazo.com/3fd4b38d5263ca391e45850eb58d11e6.png", "names": [ - "Romania Liga 1", - "Romania Liga I", - "Romanian Liga 1", - "Romanian Liga I", - "SuperLiga", - "Superliga" + "ROMANIA LIGA 1", + "ROMANIA LIGA I", + "ROMANIAN LIGA 1", + "ROMANIAN LIGA I", + "SUPERLIGA" ] } }, { - "Liga MX": { + "LIGA MX": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/22.png", "names": [ - "Liga BBVA MX", - "Liga Mayor", - "Mexican Liga BBVA MX", - "Primera Division de Mexico", - "Primera División de México" + "LIGA BBVA MX", + "LIGA MAYOR", + "MEXICAN LIGA BBVA MX", + "PRIMERA DIVISION DE MEXICO", + "PRIMERA DIVISIÓN DE MÉXICO" ] } }, { - "Liga Profesional Argentina": { + "LIGA PROFESIONAL ARGENTINA": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/1.png", "names": [ - "Argentine Primera Division", - "Argentine Primera División", - "Liga Profesional de Futbol", - "Liga Profesional de Fútbol", - "Primera Division", - "Primera División", - "Torneo Betano" + "ARGENTINE PRIMERA DIVISION", + "ARGENTINE PRIMERA DIVISIÓN", + "LIGA PROFESIONAL DE FUTBOL", + "LIGA PROFESIONAL DE FÚTBOL", + "PRIMERA DIVISION", + "PRIMERA DIVISIÓN", + "TORNEO BETANO" ] } }, { - "Ligue 1": { + "LIGUE 1": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/9.png", "names": [ - "France Ligue 1", - "French Ligue 1" + "FRANCE LIGUE 1", + "FRENCH LIGUE 1" ] } }, { - "Ligue 2": { + "LIGUE 2": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/96.png", "names": [ - "France Ligue 2", - "French Ligue 2" + "FRANCE LIGUE 2", + "FRENCH LIGUE 2" ] } }, @@ -434,7 +440,7 @@ "MLS": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/19.png", "names": [ - "Major League Soccer" + "MAJOR LEAGUE SOCCER" ] } }, @@ -442,187 +448,187 @@ "NWSL": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2323.png", "names": [ - "NWSL Women", - "National Women's Soccer League" + "NATIONAL WOMEN'S SOCCER LEAGUE", + "NWSL WOMEN" ] } }, { - "Premier League": { + "PREMIER LEAGUE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/23.png", "names": [ - "EPL", - "English Premier League" + "ENGLISH PREMIER LEAGUE", + "EPL" ] } }, { - "Primeira Liga": { + "PRIMEIRA LIGA": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/14.png", "names": [ - "Liga Portugal", - "Portuguese Primeira Liga" + "LIGA PORTUGAL", + "PORTUGUESE PRIMEIRA LIGA" ] } }, { - "Primera A": { + "PRIMERA A": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/1543.png", "names": [ - "Colombian Primera A" + "COLOMBIAN PRIMERA A" ] } }, { - "Primera B": { + "PRIMERA B": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2295.png", "names": [ - "Colombian Primera B" + "COLOMBIAN PRIMERA B" ] } }, { - "Scottish Premiership": { + "SCOTTISH PREMIERSHIP": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/45.png", "names": [ - "Premiership", + "PREMIERSHIP", "SPFL" ] } }, { - "Serbia Superliga": { + "SERBIA SUPERLIGA": { "logo": "https://i.gyazo.com/0992f078dcacfef489477fc7bb1f5220.webp", "names": [ - "Mozzart SuperLiga", - "Serbian Super League" + "MOZZART SUPERLIGA", + "SERBIAN SUPER LEAGUE" ] } }, { - "Serie A": { + "SERIE A": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/12.png", "names": [ - "Italian Serie A" + "ITALIAN SERIE A" ] } }, { - "Serie B": { + "SERIE B": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/99.png", "names": [ - "Italian Serie B" + "ITALIAN SERIE B" ] } }, { - "Soccer": { + "SOCCER": { "logo": "https://i.gyazo.com/1c4aa937f5ea01b0f29bb27adb59884c.png", "names": [] } }, { - "Super League Greece": { + "SUPER LEAGUE GREECE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/98.png", "names": [ - "A1 Ethniki Katigoria", - "Greece Super League", - "Greek Super League", - "Super League 1" + "A1 ETHNIKI KATIGORIA", + "GREECE SUPER LEAGUE", + "GREEK SUPER LEAGUE", + "SUPER LEAGUE 1" ] } }, { - "Süper Lig": { + "SüPER LIG": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/18.png", "names": [ - "Super Lig", - "SuperLig", - "SüperLig", - "Turkish Super Lig" + "SUPER LIG", + "SUPERLIG", + "SÜPERLIG", + "TURKISH SUPER LIG" ] } }, { - "Turkey 1 Lig": { + "TURKEY 1 LIG": { "logo": "https://i.gyazo.com/730673f84223a85c9b9ae66123907bba.png", "names": [ - "TFF 1. Lig", - "Trendyol 1. Lig" + "TFF 1. LIG", + "TRENDYOL 1. LIG" ] } }, { - "UEFA Champions League": { + "UEFA CHAMPIONS LEAGUE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2.png", "names": [ - "Champions League", + "CHAMPIONS LEAGUE", "UCL" ] } }, { - "UEFA Conference League": { + "UEFA CONFERENCE LEAGUE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/20296.png", "names": [] } }, { - "UEFA Europa League": { + "UEFA EUROPA LEAGUE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2310.png", "names": [ - "Europa League" + "EUROPA LEAGUE" ] } }, { - "UEFA European Championship": { + "UEFA EUROPEAN CHAMPIONSHIP": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/74.png", "names": [ - "Euros", - "UEFA Euros" + "EUROS", + "UEFA EUROS" ] } }, { - "UEFA Super Cup": { + "UEFA SUPER CUP": { "logo": "https://i.gyazo.com/3b786181aba130321b85c0e2f9604652.png", "names": [ - "European Super Cup" + "EUROPEAN SUPER CUP" ] } }, { - "UEFA Women's Champions League": { + "UEFA WOMEN'S CHAMPIONS LEAGUE": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2408.png", "names": [ - "UCL Women", - "UEFA Women", - "Women's Champions League" + "UCL WOMEN", + "UEFA WOMEN", + "WOMEN'S CHAMPIONS LEAGUE" ] } }, + { + "WORLD CUP QUALIFIERS": { + "logo": "https://i.gyazo.com/1c4aa937f5ea01b0f29bb27adb59884c.png", + "names": [] + } + }, { "WSL": { "logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/2314.png", "names": [ - "Barclay's Women's Super League", - "English Women's Super League", + "BARCLAY'S WOMEN'S SUPER LEAGUE", + "ENGLISH WOMEN'S SUPER LEAGUE", "FA WSL", - "Women's Super League" + "WOMEN'S SUPER LEAGUE" ] } - }, - { - "World Cup Qualifiers": { - "logo": "https://i.gyazo.com/1c4aa937f5ea01b0f29bb27adb59884c.png", - "names": [] - } } ], "Tennis.Dummy.us": [ { - "Tennis": { + "TENNIS": { "logo": "https://i.gyazo.com/b5e83afc3a75dacfb831abe975fd3821.png", "names": [] } @@ -633,7 +639,7 @@ "UFC": { "logo": "https://1000logos.net/wp-content/uploads/2017/06/Logo-UFC-500x313.png", "names": [ - "UFC Fight Night" + "UFC FIGHT NIGHT" ] } } @@ -644,7 +650,7 @@ "logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/wnba.png", "names": [ "NBA W", - "Women's National Basketball Association" + "WOMEN'S NATIONAL BASKETBALL ASSOCIATION" ] } }