// // Downloader.swift // TournamentStats // // Created by Laurent Morvillier on 02/10/2021. // Copyright © 2021 Stax River. All rights reserved. // import Foundation import RealmSwift class Downloader { struct TS { var id: String var date: String } static func downloadWSOPResults() { let infos: [TS] = [ TS(id: "19728", date: "02/10/2021"), TS(id: "19729", date: "03/10/2021"), TS(id: "19730", date: "02/10/2021"), TS(id: "19732", date: "04/10/2021"), TS(id: "19733", date: "05/10/2021"), TS(id: "19731", date: "06/10/2021"), TS(id: "19734", date: "06/10/2021"), TS(id: "19926", date: "06/10/2021"), TS(id: "19927", date: "06/10/2021"), TS(id: "19737", date: "06/10/2021"), TS(id: "19735", date: "07/10/2021"), TS(id: "19736", date: "08/10/2021"), TS(id: "19738", date: "08/10/2021"), TS(id: "19739", date: "08/10/2021"), TS(id: "19740", date: "09/10/2021"), TS(id: "19741", date: "09/10/2021"), TS(id: "19742", date: "11/10/2021"), TS(id: "19743", date: "11/10/2021"), TS(id: "19745", date: "12/10/2021"), TS(id: "19747", date: "12/10/2021"), TS(id: "19748", date: "12/10/2021"), TS(id: "19749", date: "13/10/2021"), TS(id: "19744", date: "14/10/2021"), TS(id: "19751", date: "14/10/2021"), TS(id: "19752", date: "14/10/2021"), TS(id: "19750", date: "15/10/2021"), TS(id: "19754", date: "15/10/2021"), TS(id: "19753", date: "16/10/2021"), TS(id: "19755", date: "16/10/2021"), TS(id: "19756", date: "17/10/2021"), TS(id: "19757", date: "17/10/2021"), TS(id: "19759", date: "17/10/2021"), TS(id: "19761", date: "19/10/2021"), TS(id: "19762", date: "19/10/2021"), TS(id: "19758", date: "20/10/2021"), TS(id: "19763", date: "20/10/2021"), TS(id: "19764", date: "20/10/2021"), TS(id: "19765", date: "21/10/2021"), TS(id: "19766", date: "21/10/2021"), TS(id: "19767", date: "22/10/2021"), TS(id: "19768", date: "23/10/2021"), TS(id: "19769", date: "24/10/2021"), TS(id: "19770", date: "24/10/2021"), TS(id: "19771", date: "24/10/2021"), TS(id: "19832", date: "25/10/2021"), TS(id: "19774", date: "26/10/2021"), TS(id: "19772", date: "27/10/2021"), TS(id: "19773", date: "27/10/2021"), TS(id: "19775", date: "27/10/2021"), TS(id: "19776", date: "28/10/2021"), TS(id: "19778", date: "28/10/2021"), TS(id: "19779", date: "28/10/2021"), TS(id: "19780", date: "28/10/2021"), TS(id: "19782", date: "31/10/2021"), TS(id: "19784", date: "31/10/2021"), TS(id: "19781", date: "01/11/2021"), TS(id: "19786", date: "01/11/2021"), TS(id: "19785", date: "02/11/2021"), TS(id: "19788", date: "02/11/2021"), ] for info in infos { sleep(1) downloadWSOPResults(tournamentInfo: info) } // for i in 19728...19732 { // DispatchQueue.global(qos: .utility).async { // // downloadWSOPResults(tournamentId: "\(i)") // // } // } } fileprivate static func downloadWSOPResults(tournamentInfo: TS) { print("Importing tournament \(tournamentInfo.id)") guard let url = URL(string: "https://www.wsop.com/tournaments/results/?aid=2&grid=4865&tid=\(tournamentInfo.id)&rr=5") else { return } let realm = try! Realm() do { try realm.write { self.downloadWSOPResults(url: url, date: tournamentInfo.date) } } catch { print("error = \(error)") } } fileprivate static func downloadWSOPResults(url: URL, date: String, currentTournament: Tournament? = nil) { let realm = try! Realm() let nf = NumberFormatter() nf.numberStyle = .decimal nf.locale = Locale.init(identifier: "en_US") nf.groupingSeparator = "," do { let string = try String(contentsOf: url) let infos = string.slice(from: "