diff --git a/TournamentStats.xcodeproj/project.pbxproj b/TournamentStats.xcodeproj/project.pbxproj index 4523edd..114ecb4 100644 --- a/TournamentStats.xcodeproj/project.pbxproj +++ b/TournamentStats.xcodeproj/project.pbxproj @@ -93,6 +93,7 @@ 4DF7614A22A66675004B0EF1 /* TournamentWinner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF7614922A66675004B0EF1 /* TournamentWinner.swift */; }; 4DF7614D22A6CC0D004B0EF1 /* NotablePlayers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF7614C22A6CC0D004B0EF1 /* NotablePlayers.swift */; }; 4DF7614F22A6CF93004B0EF1 /* PlayerResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF7614E22A6CF93004B0EF1 /* PlayerResult.swift */; }; + 4DF7615122A7AECA004B0EF1 /* TournamentRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF7615022A7AECA004B0EF1 /* TournamentRepresentable.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -196,6 +197,7 @@ 4DF7614922A66675004B0EF1 /* TournamentWinner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TournamentWinner.swift; sourceTree = ""; }; 4DF7614C22A6CC0D004B0EF1 /* NotablePlayers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotablePlayers.swift; sourceTree = ""; }; 4DF7614E22A6CF93004B0EF1 /* PlayerResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerResult.swift; sourceTree = ""; }; + 4DF7615022A7AECA004B0EF1 /* TournamentRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TournamentRepresentable.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -398,6 +400,7 @@ 4DF7614522A59407004B0EF1 /* CumulatedResults.swift */, 4DF7614922A66675004B0EF1 /* TournamentWinner.swift */, 4DF7614E22A6CF93004B0EF1 /* PlayerResult.swift */, + 4DF7615022A7AECA004B0EF1 /* TournamentRepresentable.swift */, ); path = structures; sourceTree = ""; @@ -596,6 +599,7 @@ 4DF7614A22A66675004B0EF1 /* TournamentWinner.swift in Sources */, 4DF760B322A47CAE004B0EF1 /* Realm+Extensions.swift in Sources */, 4DF7608822A3FB96004B0EF1 /* DetailViewController.swift in Sources */, + 4DF7615122A7AECA004B0EF1 /* TournamentRepresentable.swift in Sources */, 4DF7608622A3FB96004B0EF1 /* MasterViewController.swift in Sources */, 4DF7608422A3FB96004B0EF1 /* AppDelegate.swift in Sources */, 4DF760A722A3FD12004B0EF1 /* Model.swift in Sources */, diff --git a/TournamentStats.xcodeproj/project.xcworkspace/xcuserdata/laurent.xcuserdatad/UserInterfaceState.xcuserstate b/TournamentStats.xcodeproj/project.xcworkspace/xcuserdata/laurent.xcuserdatad/UserInterfaceState.xcuserstate index 3145536..a963a84 100644 Binary files a/TournamentStats.xcodeproj/project.xcworkspace/xcuserdata/laurent.xcuserdatad/UserInterfaceState.xcuserstate and b/TournamentStats.xcodeproj/project.xcworkspace/xcuserdata/laurent.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/TournamentStats/Events/event3 b/TournamentStats/Events/event3 index 713ff0e..8b13789 100644 --- a/TournamentStats/Events/event3 +++ b/TournamentStats/Events/event3 @@ -1,618 +1 @@ -1 -United StatesNicholas Haynes -$62,248 -Tampa -FL -United States -2 -United StatesIsaac Hanson -$38,447 -Las Vegas -NV -United States -3 -United StatesJorge Ruiz -$26,642 -West Wendover -NV -United States -4 -United StatesJesse Kertland -$18,758 -Ellensburg -WA -United States -5 -CanadaAdam Lamers -$13,421 -Edmonton -AB -Canada -6 -CanadaJeffrey Fast -$9,761 -Welland -ON -Canada -7 -United StatesChristopher Bowen -$7,219 -San Francisco -CA -United States -8 -United StatesJoseph Appler -$5,430 -Utica -NY -United States -9 -United StatesTravis Williams -$4,155 -Laurel -MD -United States -10 -United StatesErrol Krupiarz -$3,236 -Sussex -NJ -United States -11 -United StatesCosmo Andoloro -$3,236 -Woodinville -WA -United States -12 -United StatesZachary Lee -$3,236 -Las Vegas -NV -United States -13 -United States Justin Wong -$2,565 -Piscataway -NJ -United States -14 -United StatesAustin Roberts -$2,565 -Henderson -NV -United States -15 -United StatesDarrin Phillips -$2,565 -Las Vegas -NV -United States -16 -United StatesJesse Odenheimer -$2,071 -Bozeman -MT -United States -17 -United StatesSergey Babayan -$2,071 -Burien -WA -United States -18 -United StatesYun Zheng -$2,071 -Philadelphia -PA -United States -19 -United StatesDerek Shoemaker -$1,703 -Yakima -WA -United States -20 -CanadaShane Patreau -$1,703 -Lansdowne -ON -Canada -21 -United StatesMiguel Cardenas -$1,703 -Rocklin -CA -United States -22 -United StatesJoseph Lamberta -$1,703 -Bartlett -IL -United States -23 -United StatesPatrick Chung -$1,703 -Seattle -WA -United States -24 -United StatesSteven Mcloughlin -$1,703 -Las Vegas -NV -United States -25 -United StatesAmanda Wheeler -$1,703 -Las Vegas -NV -United States -26 -United StatesBradley Helm -$1,703 -Scottsdale -AZ -United States -27 -United StatesRobert Ostler -$1,703 -San Diego -CA -United States -28 -FranceJulien Martini -$5,055 -Paris -- -France -29 -United StatesDavid "ODB" Baker -$5,055 -Sahuarita -AZ -United States -30 -United StatesDoug Lorgeree -$5,055 -Buffalo Grove -IL -United States -31 -Russian FederationAndrey Zhigalov -$4,419 -Moscow -- -Russian Federation -32 -United StatesScott Abrams -$4,419 -Henderson -NV -United States -33 -Russian FederationVladimir Shchemelev -$4,419 -St Petersburg -- -Russian Federation -34 -United StatesJoel Tushnet -$4,419 -Tarzana -CA -United States -35 -United StatesCody Espeseth -$4,419 -Merrifield -MN -United States -36 -United StatesRandy Ohel -$4,419 -Las Vegas -NV -United States -37 -AustriaIsmael Bojang -$3,994 -Vienna -- -Austria -38 -United StatesTroy Evans -$3,994 -Mount Pleasant -SC -United States -39 -United StatesSteven Wolansky -$3,994 -Cooper City -FL -United States -40 -United StatesAndrew Woodmancey -$3,994 -Coconut Creek -FL -United States -41 -United StatesDavid Moskowitz -$3,994 -Sunset Beach -CA -United States -42 -United StatesJoshua Tieman -$3,994 -Chicago -IL -United States -43 -United StatesChristopher McHugh -$3,737 -Las Vegas -NV -United States -44 -United StatesBariscan Betil -$3,737 -Philadelphia -PA -United States -45 -AustraliaJames Obst -$3,737 -Melbourne -- -Australia -46 -United StatesJon Friedberg -$1,063 -Las Vegas -NV -United States -47 -United StatesCorey Eiferle -$1,063 -De Witt -MI -United States -48 -United StatesThomas Timmons -$1,063 -Diberville -MS -United States -49 -United StatesRios Dagoberto -$1,063 -Coral Gables -FL -United States -50 -United StatesMark Fucile -$1,063 -Las Vegas -NV -United States -51 -United StatesPatrick Fewell -$1,063 -N Las Vegas -NV -United States -52 -United StatesIan Feller -$1,063 -Tampa -FL -United States -53 -United StatesFilimon Zamora -$1,063 -Orange Cove -CA -United States -54 -United StatesCecil Simms -$1,063 -Renton -WA -United States -55 -United StatesEric Fenzke -$944 -Thousand Oaks -CA -United States -56 -United StatesCarlos Aldaz -$944 -Socorro -TX -United States -57 -United StatesRichard Maxie -$944 -Primm -NV -United States -58 -United StatesJustin Slavin -$944 -Port Orange -FL -United States -59 -United StatesGregorios Lamprinos -$944 -Las Vegas -NV -United States -60 -United StatesFredric David -$944 -Las Vegas -NV -United States -61 -United StatesMelchor Espiritu -$944 -Las Vegas -NV -United States -62 -United StatesThomas Kubin -$944 -St. Louis -MI -United States -63 -United StatesKeith Lauder III -$944 -Jamestown -ND -United States -64 -United StatesJordan Ragan -$857 -Henderson -NV -United States -65 -United StatesMichael Parker -$857 -Las Vegas -NV -United States -66 -United StatesDaniel Goldman -$857 -Redondo Beach -CA -United States -67 -United StatesRick Marting -$857 -Las Vegas -NV -United States -68 -United StatesJoshua Greville -$857 -Hamilton -- -United States -69 -United StatesMike Majerus -$857 -Las Vegas -NV -United States -70 -United StatesVincent Ikeh -$857 -South Gate -CA -United States -71 -United StatesJeremy Daum -$857 -Rochester -NY -United States -72 -United StatesScott Hecker -$857 -Fort Lauderdale -FL -United States -73 -United StatesBrian Matthiessen -$794 -Omaha -NE -United States -74 -United StatesAsad Abdullah -$794 -Boston -MA -United States -75 -United StatesStephen Duvall -$794 -Lemoore -CA -United States -76 -United StatesWen Wang -$794 -Weatherby Lake -MO -United States -77 -United StatesFrank Nguyen -$794 -Las Vegas -NV -United States -78 -United StatesLap Nguyen -$794 -Las Vegas -NV -United States -79 -United StatesCarlo Argentino -$794 -Baltimore -MD -United States -80 -United StatesAndrew Proesch -$794 -Maplewood -MN -United States -81 -United StatesBenjamin Chang -$794 -Renton -WA -United States -82 -United StatesChris Conner -$751 -Rosamond -CA -United States -83 -United StatesBrian Mikesh -$751 -Little Canada -MN -United States -84 -United StatesLeon Wheeler -$751 -Las Vegas -NV -United States -85 -United StatesKurtis Hendrickson -$751 -Las Vegas -NV -United States -86 -United StatesAdrian Hollie -$751 -Los Angeles -CA -United States -87 -United StatesBohao Zhu -$751 -Sacramento -CA -United States -88 -United StatesMatthew Schlesinger -$751 -N Las Vegas -NV -United States -89 -United StatesMatthew Mich -$751 -Oskaloosa -IA -United States -90 -United StatesJason Bardol -$751 -Henderson -NV -United States -91 -United StatesArmando Osuna -$726 -Las Vegas -NV -United States -92 -United StatesBrian Wong -$726 -Las Vegas -NV -United States -93 -United StatesGene Lee -$726 -Chicago -IL -United States -94 -United StatesBrian Burgess -$726 -Bullhead City -AZ -United States -95 -United StatesTomasz Trelski -$726 -Middletown -CT -United States -96 -United StatesChaan Thomas -$726 -Las Vegas -NV -United States -97 -United StatesJohn Postl -$726 -Warren -MI -United States -98 -United StatesJeramie Contreras -$726 -Hudson -WI -United States -99 -United StatesEvan Zlock -$726 -Las Vegas -NV -United States -100 -United StatesBrett Janiga -$726 -Columbia Falls -MT -United States -101 -United StatesSpencer Bennett -$726 -Sacramento -CA -United States -102 -United StatesWilliam Strough -$726 -Peculiar -MO -United States -103 -United StatesTimothy Schonherr -$726 -Berkley -MI -United States + diff --git a/TournamentStats/Events/event8 b/TournamentStats/Events/event8 index e69de29..936ac0b 100644 --- a/TournamentStats/Events/event8 +++ b/TournamentStats/Events/event8 @@ -0,0 +1,108 @@ +1 +United StatesAlexander Epstein +$296,227 +Oakland +CA +United States +2 +United StatesThai Ha +$183,081 +Factoryville +PA +United States +3 +Hong KongYan Shing Tsang +$130,482 +Island Harbourview +- +Hong Kong +4 +United StatesChance Kornuth +$93,593 +Las Vegas +NV +United States +5 +NetherlandsRene Van Krevelen +$67,566 +Rotterdam +- +Netherlands +6 +ChinaYong Wang +$49,095 +- +- +China +7 +United StatesAndrew Robl +$35,907 +Las Vegas +NV +United States +8 +ChinaJiaxiu Liu +$35,907 +Beijing +- +China +9 +United StatesGalen Hall +$26,435 +New York City +NY +United States +10 +United StatesEric Kurtzman +$26,435 +Las Vegas +NV +United States +11 +United StatesJustin Bonomo +$19,591 +Las Vegas +NV +United States +12 +United StatesAlex Foxen +$19,591 +Cold Spring Harbor +NY +United States +13 +United StatesDustin Dirksen +$14,615 +Las Vegas +NV +United States +14 +Russian FederationNikolai Yakovenko +$14,615 +Moscow +- +Russian Federation +15 +United StatesKane Kalas +$14,615 +Philadelphia +PA +United States +16 +NetherlandsMartijn Gerrits +$14,615 +- +- +Netherlands +17 +United StatesBill Perkins +$14,615 +Houston +TX +United States +18 +United StatesMatthew Gonzales +$14,615 +San Ramon +CA +United States diff --git a/TournamentStats/NotablePlayers.swift b/TournamentStats/NotablePlayers.swift index 82f1a30..5a1e40b 100644 --- a/TournamentStats/NotablePlayers.swift +++ b/TournamentStats/NotablePlayers.swift @@ -24,8 +24,8 @@ class NotablePlayers { "Stephen Chidwick", "David Peters", "Jason Koon", -// "", -// "", + "Andrew Robl", + "Bill Perkins", // "", // "", // "", diff --git a/TournamentStats/Seed.swift b/TournamentStats/Seed.swift index ac213c5..c0ec070 100644 --- a/TournamentStats/Seed.swift +++ b/TournamentStats/Seed.swift @@ -16,20 +16,26 @@ struct TD { var name: String = "" var number: Int = 0 var buyin: Int = 0 - var entrants: Int = 0 + var entries: Int = 0 var prizePool: Double = 0 } class Seed { static let tournamentsDescriptions = [ - TD(date: "31/05/2019", name: "Casino Employees Event", number: 1, buyin: 500, entrants: 685, prizePool: 297975), - TD(date: "30/05/2019", name: "Super Turbo Bounty", number: 2, buyin: 10000, entrants: 204, prizePool: 1917600), - TD(date: "02/06/2019", name: "Omaha Hi/Lo 8 or Better", number: 4, buyin: 1500, entrants: 853, prizePool: 1151550), - TD(date: "03/06/2019", name: "High Roller No-Limit Hold'em for the 50th Annual", number: 5, buyin: 50000, entrants: 110, prizePool: 5280000), - TD(date: "03/06/2019", name: "Limit Mixed Triple Draw", number: 6, buyin: 2500, entrants: 296, prizePool: 666000), - TD(date: "03/06/2019", name: "WSOP.com ONLINE No-Limit Hold'em", number: 7, buyin: 400, entrants: 2825, prizePool: 1017000), - TD(date: "04/06/2019", name: "Short Deck No-Limit Hold'em", number: 8, buyin: 10000, entrants: 114, prizePool: 1071600), + TD(date: "31/05/2019", name: "Casino Employees Event", number: 1, buyin: 500, entries: 685, prizePool: 297975), + TD(date: "30/05/2019", name: "Super Turbo Bounty", number: 2, buyin: 10000, entries: 204, prizePool: 1917600), + TD(date: "07/06/2019", name: "BIG 50 No-Limit Hold'em", number: 3, buyin: 500, entries: 28371, prizePool: 13509435), + TD(date: "02/06/2019", name: "Omaha Hi/Lo 8 or Better", number: 4, buyin: 1500, entries: 853, prizePool: 1151550), + TD(date: "03/06/2019", name: "High Roller No-Limit Hold'em for the 50th Annual", number: 5, buyin: 50000, entries: 110, prizePool: 5280000), + TD(date: "03/06/2019", name: "Limit Mixed Triple Draw", number: 6, buyin: 2500, entries: 296, prizePool: 666000), + TD(date: "03/06/2019", name: "WSOP.com ONLINE No-Limit Hold'em", number: 7, buyin: 400, entries: 2825, prizePool: 1017000), + TD(date: "05/06/2019", name: "Short Deck No-Limit Hold'em", number: 8, buyin: 10000, entries: 114, prizePool: 1071600), + TD(date: "06/06/2019", name: "No-Limit Hold'em Deepstack", number: 9, buyin: 600, entries: 6151, prizePool: 3229275), + TD(date: "06/06/2019", name: "Dealers Choice", number: 10, buyin: 150, entries: 470, prizePool: 634500), + TD(date: "06/06/2019", name: "No-Limit Hold'em", number: 11, buyin: 5000, entries: 400, prizePool: 1860000), + TD(date: "06/06/2019", name: "No-Limit Hold'em Super Turbo Bounty", number: 12, buyin: 1000, entries: 2452, prizePool: 1471200), +// TD(date: "06/06/2019", name: "No-Limit 2-7 Lowball Draw", number: 13, buyin: 1500, entrants: 114, prizePool: 1071600), ] @@ -47,7 +53,7 @@ class Seed { event.date = Formatter.basicDate.date(from: td.date) ?? Date() event.number = td.number event.buyin = td.buyin - event.entrants = td.entrants + event.entries = td.entries event.prizepool = td.prizePool wsopFestival.tournaments.append(event) } diff --git a/TournamentStats/core/Formatters.swift b/TournamentStats/core/Formatters.swift index 6837626..57fd534 100644 --- a/TournamentStats/core/Formatters.swift +++ b/TournamentStats/core/Formatters.swift @@ -61,11 +61,9 @@ extension Int { case 13: return "13th" default: - var unit = self - while unit > 10 { - unit /= 10 - } - switch unit { + let unit = "\(self)" + let n = Int(String(unit.last!)) + switch n { case 1: return "\(self)st" case 2: diff --git a/TournamentStats/realm/Model.swift b/TournamentStats/realm/Model.swift index 0cf1c4e..5f85f21 100644 --- a/TournamentStats/realm/Model.swift +++ b/TournamentStats/realm/Model.swift @@ -26,11 +26,11 @@ class Tournament : Object, Named { let results = List() @objc dynamic var prizepool: Double = 0.0 - @objc dynamic var entrants: Int = 0 + @objc dynamic var entries: Int = 0 var rows: [Columns] { switch self.number { - case 1: return [.rank, .player, .earnings, .city, .state, .country] + case 1, 8: return [.rank, .player, .earnings, .city, .state, .country] default: return [.rank, .player, .earnings, .poy, .city, .state, .country] } } diff --git a/TournamentStats/report/Queries.swift b/TournamentStats/report/Queries.swift index 5f80cee..48381f0 100644 --- a/TournamentStats/report/Queries.swift +++ b/TournamentStats/report/Queries.swift @@ -43,7 +43,7 @@ class Queries { }) } - static func allWinners(realm: Realm, date: Date? = nil) -> [TournamentWinner] { + static func allWinnersSortedByEvent(realm: Realm, date: Date? = nil) -> [TournamentWinner] { let winners: Results if let day = date { @@ -87,4 +87,13 @@ class Queries { return prs } + static func sortedEvents(realm: Realm, fieldName: String, ascending: Bool) -> [TournamentRepresentable] { + let tournies = realm.objects(Tournament.self).sorted(byKeyPath: fieldName, ascending: ascending) + var trs: [TournamentRepresentable] = [] + for tourny in tournies { + trs.append(TournamentRepresentable(tournament: tourny)) + } + return trs + } + } diff --git a/TournamentStats/report/ReportGenerator.swift b/TournamentStats/report/ReportGenerator.swift index a5fdf0a..327515b 100644 --- a/TournamentStats/report/ReportGenerator.swift +++ b/TournamentStats/report/ReportGenerator.swift @@ -43,8 +43,9 @@ class ReportGenerator { let mostCashes = Queries.mostCashes(realm: realm) mostCashes.writeHTML(fileName: "reports/mostCashes.html", limit: 25) - let tournamentWinners = Queries.allWinners(realm: realm) - tournamentWinners.writeHTML(fileName: "reports/allWinners.html", limit: 500) + let tournamentWinners = Queries.allWinnersSortedByEvent(realm: realm) + tournamentWinners.writeHTML(fileName: "reports/allWinners.html", limit: nil) + tournamentWinners.writeHTML(fileName: "reports/allWinners_top10.html", limit: 10) let tourniesDate = realm.objects(Tournament.self).distinct(by: ["date"]) @@ -53,13 +54,20 @@ class ReportGenerator { let date = tourny.date let fileDate = Formatter.fileDate.string(from: date) - let dayWinners = Queries.allWinners(realm: realm, date: date) + let dayWinners = Queries.allWinnersSortedByEvent(realm: realm, date: date) dayWinners.writeHTML(fileName: "reports/winners/bracelets_\(fileDate).html") let notableCashes = Queries.notableCashes(realm: realm, date: date) notableCashes.writeHTML(fileName: "reports/winners/notables_\(fileDate).html") } + let tourniesByEntries = Queries.sortedEvents(realm: realm, fieldName: "entries", ascending: false) + tourniesByEntries.writeHTML(fileName: "reports/tourniesByEntries.html", limit: nil) + tourniesByEntries.writeHTML(fileName: "reports/tourniesByEntries_top5.html", limit: 5) + let tourniesByPrizepool = Queries.sortedEvents(realm: realm, fieldName: "prizepool", ascending: false) + tourniesByPrizepool.writeHTML(fileName: "reports/tourniesByPrizepool.html", limit: nil) + tourniesByPrizepool.writeHTML(fileName: "reports/tourniesByPrizepool_top5.html", limit: 5) + } } diff --git a/TournamentStats/report/structures/CumulatedResults.swift b/TournamentStats/report/structures/CumulatedResults.swift index db5f1ec..b177856 100644 --- a/TournamentStats/report/structures/CumulatedResults.swift +++ b/TournamentStats/report/structures/CumulatedResults.swift @@ -47,7 +47,7 @@ class CumulatedResults : CSVRepresentable, HTMLRepresentable { strings.append("Total Earnings") strings.append("Cashes") let all = strings.joined(separator: "") - return "\(all)" + return "\(all)" } func html() -> String { diff --git a/TournamentStats/report/structures/PlayerResult.swift b/TournamentStats/report/structures/PlayerResult.swift index f174d3f..b97b70e 100644 --- a/TournamentStats/report/structures/PlayerResult.swift +++ b/TournamentStats/report/structures/PlayerResult.swift @@ -21,7 +21,7 @@ struct PlayerResult : HTMLRepresentable { strings.append("#") strings.append("Event") let all = strings.joined(separator: "") - return "\(all)" + return "\(all)" } func html() -> String { diff --git a/TournamentStats/report/structures/TournamentRepresentable.swift b/TournamentStats/report/structures/TournamentRepresentable.swift new file mode 100644 index 0000000..cd95f64 --- /dev/null +++ b/TournamentStats/report/structures/TournamentRepresentable.swift @@ -0,0 +1,37 @@ +// +// TournamentEntries.swift +// TournamentStats +// +// Created by Laurent Morvillier on 05/06/2019. +// Copyright © 2019 Stax River. All rights reserved. +// + +import Foundation + +struct TournamentRepresentable : HTMLRepresentable { + + var tournament: Tournament + + static func htmlHeaders() -> String { + var strings: [String] = [] + strings.append("#") + strings.append("Buy-in") + strings.append("Event") + strings.append("Prizepool") + strings.append("Entries") + let all = strings.joined(separator: "") + return "\(all)" + } + + func html() -> String { + var strings: [String] = [] + strings.append("\(tournament.number)") + strings.append(tournament.buyin.currencyFormatted) + strings.append(tournament.name) + strings.append(tournament.prizepool.currencyFormatted) + strings.append("\(tournament.entries)") + let all = strings.joined(separator: "") + return "\(all)" + } + +} diff --git a/TournamentStats/report/structures/TournamentWinner.swift b/TournamentStats/report/structures/TournamentWinner.swift index 6856f34..6aeb92a 100644 --- a/TournamentStats/report/structures/TournamentWinner.swift +++ b/TournamentStats/report/structures/TournamentWinner.swift @@ -21,7 +21,7 @@ struct TournamentWinner : HTMLRepresentable { strings.append("Player") strings.append("Prize") let all = strings.joined(separator: "") - return "\(all)" + return "\(all)" } func html() -> String { diff --git a/TournamentStats/utils/CSVUtils.swift b/TournamentStats/utils/CSVUtils.swift index 5d81f65..7cc752a 100644 --- a/TournamentStats/utils/CSVUtils.swift +++ b/TournamentStats/utils/CSVUtils.swift @@ -44,7 +44,7 @@ extension Array where Element : HTMLRepresentable { html.append("\n") html.append(rep.html()) - if index >= max { + if index + 1 >= max { break } }