From c5574e568af69031ae3ab0e7a2812c5ed7508df9 Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 7 Jun 2019 12:38:48 +0200 Subject: [PATCH] Updated data + HTML tables for wordpress --- TournamentStats.xcodeproj/project.pbxproj | 16 +- .../UserInterfaceState.xcuserstate | Bin 72181 -> 74380 bytes TournamentStats/Events/event1 copie 2 | 618 ------------------ TournamentStats/Events/event1 copie 3 | 618 ------------------ TournamentStats/Events/event11 | 420 ++++++++++++ TournamentStats/Events/event13 | 308 +++++++++ TournamentStats/NotablePlayers.swift | 10 + TournamentStats/Seed.swift | 12 +- TournamentStats/core/Formatters.swift | 23 + TournamentStats/realm/Model.swift | 8 + .../report/structures/CumulatedResults.swift | 2 +- .../report/structures/PlayerResult.swift | 2 +- .../report/structures/TournamentWinner.swift | 2 +- TournamentStats/utils/CSVUtils.swift | 6 +- 14 files changed, 790 insertions(+), 1255 deletions(-) delete mode 100644 TournamentStats/Events/event1 copie 2 delete mode 100644 TournamentStats/Events/event1 copie 3 create mode 100644 TournamentStats/Events/event11 create mode 100644 TournamentStats/Events/event13 diff --git a/TournamentStats.xcodeproj/project.pbxproj b/TournamentStats.xcodeproj/project.pbxproj index ec04814..bf64115 100644 --- a/TournamentStats.xcodeproj/project.pbxproj +++ b/TournamentStats.xcodeproj/project.pbxproj @@ -73,13 +73,13 @@ 4DF7613222A56797004B0EF1 /* event2 copie 4 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760F622A56796004B0EF1 /* event2 copie 4 */; }; 4DF7613322A56797004B0EF1 /* event1 copie 10 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760F722A56796004B0EF1 /* event1 copie 10 */; }; 4DF7613422A56797004B0EF1 /* event2 copie 2 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760F822A56796004B0EF1 /* event2 copie 2 */; }; - 4DF7613522A56797004B0EF1 /* event1 copie 3 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760F922A56796004B0EF1 /* event1 copie 3 */; }; + 4DF7613522A56797004B0EF1 /* event13 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760F922A56796004B0EF1 /* event13 */; }; 4DF7613622A56797004B0EF1 /* event1 copie 15 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760FA22A56796004B0EF1 /* event1 copie 15 */; }; 4DF7613722A56797004B0EF1 /* event3 copie 11 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760FB22A56796004B0EF1 /* event3 copie 11 */; }; 4DF7613822A56797004B0EF1 /* event3 copie 6 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760FC22A56796004B0EF1 /* event3 copie 6 */; }; 4DF7613922A56797004B0EF1 /* event1 copie 14 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760FD22A56796004B0EF1 /* event1 copie 14 */; }; 4DF7613A22A56797004B0EF1 /* event4 copie 6 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760FE22A56796004B0EF1 /* event4 copie 6 */; }; - 4DF7613B22A56797004B0EF1 /* event1 copie 2 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760FF22A56796004B0EF1 /* event1 copie 2 */; }; + 4DF7613B22A56797004B0EF1 /* event11 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF760FF22A56796004B0EF1 /* event11 */; }; 4DF7613C22A56797004B0EF1 /* event4 copie in Resources */ = {isa = PBXBuildFile; fileRef = 4DF7610022A56796004B0EF1 /* event4 copie */; }; 4DF7613D22A56797004B0EF1 /* event2 copie 12 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF7610122A56796004B0EF1 /* event2 copie 12 */; }; 4DF7613E22A56797004B0EF1 /* event1 copie 5 in Resources */ = {isa = PBXBuildFile; fileRef = 4DF7610222A56797004B0EF1 /* event1 copie 5 */; }; @@ -177,13 +177,13 @@ 4DF760F622A56796004B0EF1 /* event2 copie 4 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event2 copie 4"; sourceTree = ""; }; 4DF760F722A56796004B0EF1 /* event1 copie 10 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event1 copie 10"; sourceTree = ""; }; 4DF760F822A56796004B0EF1 /* event2 copie 2 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event2 copie 2"; sourceTree = ""; }; - 4DF760F922A56796004B0EF1 /* event1 copie 3 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event1 copie 3"; sourceTree = ""; }; + 4DF760F922A56796004B0EF1 /* event13 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = event13; sourceTree = ""; }; 4DF760FA22A56796004B0EF1 /* event1 copie 15 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event1 copie 15"; sourceTree = ""; }; 4DF760FB22A56796004B0EF1 /* event3 copie 11 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event3 copie 11"; sourceTree = ""; }; 4DF760FC22A56796004B0EF1 /* event3 copie 6 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event3 copie 6"; sourceTree = ""; }; 4DF760FD22A56796004B0EF1 /* event1 copie 14 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event1 copie 14"; sourceTree = ""; }; 4DF760FE22A56796004B0EF1 /* event4 copie 6 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event4 copie 6"; sourceTree = ""; }; - 4DF760FF22A56796004B0EF1 /* event1 copie 2 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event1 copie 2"; sourceTree = ""; }; + 4DF760FF22A56796004B0EF1 /* event11 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = event11; sourceTree = ""; }; 4DF7610022A56796004B0EF1 /* event4 copie */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event4 copie"; sourceTree = ""; }; 4DF7610122A56796004B0EF1 /* event2 copie 12 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event2 copie 12"; sourceTree = ""; }; 4DF7610222A56797004B0EF1 /* event1 copie 5 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "event1 copie 5"; sourceTree = ""; }; @@ -300,8 +300,8 @@ children = ( 4DF760C422A56451004B0EF1 /* event1 */, 4DF760F222A56795004B0EF1 /* event12 */, - 4DF760FF22A56796004B0EF1 /* event1 copie 2 */, - 4DF760F922A56796004B0EF1 /* event1 copie 3 */, + 4DF760FF22A56796004B0EF1 /* event11 */, + 4DF760F922A56796004B0EF1 /* event13 */, 4DF760F522A56796004B0EF1 /* event1 copie 4 */, 4DF7610222A56797004B0EF1 /* event1 copie 5 */, 4DF760E322A56794004B0EF1 /* event1 copie 6 */, @@ -502,7 +502,7 @@ 4DF7612722A56797004B0EF1 /* event4 copie 9 in Resources */, 4DF760B522A47F6D004B0EF1 /* event2 in Resources */, 4DF7614222A56797004B0EF1 /* event3 copie 5 in Resources */, - 4DF7613B22A56797004B0EF1 /* event1 copie 2 in Resources */, + 4DF7613B22A56797004B0EF1 /* event11 in Resources */, 4DF7611B22A56797004B0EF1 /* event4 copie 3 in Resources */, 4DF7613222A56797004B0EF1 /* event2 copie 4 in Resources */, 4DF7612F22A56797004B0EF1 /* event3 copie 8 in Resources */, @@ -527,7 +527,7 @@ 4DF7610D22A56797004B0EF1 /* event2 copie 8 in Resources */, 4DF7613822A56797004B0EF1 /* event3 copie 6 in Resources */, 4DF7614022A56797004B0EF1 /* event2 copie 3 in Resources */, - 4DF7613522A56797004B0EF1 /* event1 copie 3 in Resources */, + 4DF7613522A56797004B0EF1 /* event13 in Resources */, 4DF7612D22A56797004B0EF1 /* event1 copie 11 in Resources */, 4DF760CB22A56765004B0EF1 /* event4 in Resources */, 4DF7610922A56797004B0EF1 /* event3 copie 15 in Resources */, diff --git a/TournamentStats.xcodeproj/project.xcworkspace/xcuserdata/laurent.xcuserdatad/UserInterfaceState.xcuserstate b/TournamentStats.xcodeproj/project.xcworkspace/xcuserdata/laurent.xcuserdatad/UserInterfaceState.xcuserstate index a00495fa8f11691e0d1a692ed2cedd14fc2f0c50..c031665b0da4dece4d7cf25ce1e07411c56f8f38 100644 GIT binary patch delta 29139 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 z zbO~d^lDLw%pZF({NPI{ROwLR$OqM6NB`cB#l9kD-WOed%@?7%IzPm?cF zeN#oLp{e1ik*SHPnW;IcuTt|<-=-F({*(GCRi64ewK26NwLP^nRh7D&BBm%QdWx0e z;8G1Kd&-{*rNSvRl}M#huT$^RZPM-29n(G2ebW8Xh3S#$G3l}C3F$fMdFlD-1?jT% z=JdAo&h+l|@97I^LK;ll(!O*sjie*#_nEGl-kE-x!pz{z=b6!&v6%^(FEdjz(=zii zi!-Y-doqVJCo^X<=Q9^G_zWY1V`VrQUPh1+W@tJw!xYql}ll(l6& zS${T|MY54>Hv0-Iz&c@_u`XCYtPmTFeU5#B4aa6;-(ZVySP8ZiTY;^^wqV<_UD#gi zckB>$7(0p`$IfFUjE{ks98+Oh%z|CTu46Z`TI>nt!VG3;+}zyPx$@km z+|FEOj+v9>q&Y=Sozvy+=N{%B=NfYV String? { + return NSLocale.isoCountryCodes.first { (code) -> Bool in + let name = self.localizedString(forRegionCode: code) + return name == countryName + } + } + + func flagoji(from countryName: String) -> String? { + if let countryCode = self.countryCode(from: countryName) { + let base : UInt32 = 127397 + var s = "" + for v in countryCode.uppercased().unicodeScalars { + s.unicodeScalars.append(UnicodeScalar(base + v.value)!) + } + return s + } + return nil + } + +} + class Formatter { static var currency: NumberFormatter { diff --git a/TournamentStats/realm/Model.swift b/TournamentStats/realm/Model.swift index 8736c8d..4f694a8 100644 --- a/TournamentStats/realm/Model.swift +++ b/TournamentStats/realm/Model.swift @@ -47,6 +47,14 @@ class Player : Object, Named { @objc dynamic var country: String = "" @objc dynamic var notable: Bool = false + var formattedName: String { + if let flagoji = Locale.current.flagoji(from: self.country) { + return "\(flagoji) \(self.name)" + } else { + return self.name + } + } + let results = LinkingObjects(fromType: Result.self, property: "player") } diff --git a/TournamentStats/report/structures/CumulatedResults.swift b/TournamentStats/report/structures/CumulatedResults.swift index b177856..c9f6b33 100644 --- a/TournamentStats/report/structures/CumulatedResults.swift +++ b/TournamentStats/report/structures/CumulatedResults.swift @@ -52,7 +52,7 @@ class CumulatedResults : CSVRepresentable, HTMLRepresentable { func html() -> String { var strings: [String] = [] - strings.append(self.player.name) + strings.append(self.player.formattedName) strings.append(self.total.currencyFormatted) strings.append("\(self.numberOfCashes)") let all = strings.joined(separator: "") diff --git a/TournamentStats/report/structures/PlayerResult.swift b/TournamentStats/report/structures/PlayerResult.swift index b97b70e..c432273 100644 --- a/TournamentStats/report/structures/PlayerResult.swift +++ b/TournamentStats/report/structures/PlayerResult.swift @@ -26,7 +26,7 @@ struct PlayerResult : HTMLRepresentable { func html() -> String { var strings: [String] = [] - strings.append(self.result.player?.name ?? "") + strings.append(self.result.player?.formattedName ?? "") strings.append(self.result.rank.rankFormatted) strings.append(result.earnings.currencyFormatted) strings.append("\(tournament.number)") diff --git a/TournamentStats/report/structures/TournamentWinner.swift b/TournamentStats/report/structures/TournamentWinner.swift index 6aeb92a..58f853f 100644 --- a/TournamentStats/report/structures/TournamentWinner.swift +++ b/TournamentStats/report/structures/TournamentWinner.swift @@ -29,7 +29,7 @@ struct TournamentWinner : HTMLRepresentable { strings.append("\(tournament.number)") strings.append(tournament.buyin.currencyFormatted) strings.append(tournament.name) - strings.append(result.player?.name ?? "") + strings.append(result.player?.formattedName ?? "") strings.append(result.earnings.currencyFormatted) let all = strings.joined(separator: "") return "\(all)" diff --git a/TournamentStats/utils/CSVUtils.swift b/TournamentStats/utils/CSVUtils.swift index 7cc752a..5f3e636 100644 --- a/TournamentStats/utils/CSVUtils.swift +++ b/TournamentStats/utils/CSVUtils.swift @@ -37,8 +37,10 @@ extension Array where Element : HTMLRepresentable { func writeHTML(fileName: String, limit: Int? = 10) { - var html = "\n" + var html = "
\n" + html.append("") html.append(Element.htmlHeaders()) + html.append("\n") let max = limit ?? Int.max for (index, rep) in self.enumerated() { html.append("\n") @@ -50,8 +52,6 @@ extension Array where Element : HTMLRepresentable { } html.append("\n
") - - do { try FileWriter.writeToDocumentDirectory(content: html, fileName: fileName) } catch {