{"id":23907631,"url":"https://github.com/bradleybonitatibus/frostparse","last_synced_at":"2025-04-11T05:50:35.254Z","repository":{"id":215555783,"uuid":"738702184","full_name":"bradleybonitatibus/frostparse","owner":"bradleybonitatibus","description":"World of Warcraft 3.3.5a Combat Log Parser.","archived":false,"fork":false,"pushed_at":"2024-07-18T21:16:01.000Z","size":495,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T03:51:10.413Z","etag":null,"topics":["combatlog","go","world-of-warcraft","wrath-of-the-lich-king"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradleybonitatibus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-03T21:03:37.000Z","updated_at":"2025-03-03T14:08:47.000Z","dependencies_parsed_at":"2024-01-05T05:25:24.383Z","dependency_job_id":"4ceadf02-40e2-4674-8e27-781c31dbcfdf","html_url":"https://github.com/bradleybonitatibus/frostparse","commit_stats":null,"previous_names":["bradleybonitatibus/frostparse"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleybonitatibus%2Ffrostparse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleybonitatibus%2Ffrostparse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleybonitatibus%2Ffrostparse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradleybonitatibus%2Ffrostparse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradleybonitatibus","download_url":"https://codeload.github.com/bradleybonitatibus/frostparse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248351425,"owners_count":21089271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["combatlog","go","world-of-warcraft","wrath-of-the-lich-king"],"created_at":"2025-01-05T03:13:36.611Z","updated_at":"2025-04-11T05:50:35.184Z","avatar_url":"https://github.com/bradleybonitatibus.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `frostparse`\n\nWorld of Warcraft 3.3.5a Combat Log Parser library, tested against several raids on Warmane's Icecrown server.\n\n## Overview\n\nThis combat log parser is written in `go` and provides a way to structure the\n[COMBAT_LOG_EVENT](https://wowpedia.fandom.com/wiki/COMBAT_LOG_EVENT) into \nwell-known structures.\n\n\n## Data Model\n\nThe `CombatLogRecord` struct aggregates a `BaseCombatEvent`, a `Prefix` and a `Suffix`.\nThe `Prefix` struct is an aggregate to various prefixes, `SpellAndRangePrefix`, `EnchantPrefix`, and `EnvironmentalPrefix`. The member fields of the struct\nare pointers because some properties are not populated based on the `BaseCombatEvent.EventType` field of the log record.\n\n\n## Usage\n\nBasic usage will provide a means to parse the combat log file into a slice of pointers\nto a `frostparse.CombatLogRecord` and you can do with the data as you please:\n```go\npackage main\n\nimport (   \n    \"log\"\n    \"github.com/bradleybonitatibus/frostparse\"\n)\n\nfunc main() {\n    pth := \"C:\\\\Program Files (x86)\\\\World of Warcraft 3.3.5a\\\\Logs\\\\WoWCombatLog.txt\"\n    p := frostparse.New(\n        frostparse.WithLogFile(pth),\n    )\n    data, err := p.Parse()\n    if err != nil {\n        log.Fatal(\"failed to parse combatlog: \", err)\n    }\n    // handle []*frostparse.CombatLogRecord how you please\n}\n```\n\nIf you want basic summary statistics from the combat log, you can use the `Collector` struct:\n```go\npackage main\n\nimport (   \n    \"log\"\n    \"github.com/bradleybonitatibus/frostparse\"\n)\n\nfunc main() {\n    pth := \"C:\\\\Program Files (x86)\\\\World of Warcraft 3.3.5a\\\\Logs\\\\WoWCombatLog.txt\"\n    p := frostparse.New(\n        frostparse.WithLogFile(pth),\n    )\n    data, err := p.Parse()\n    if err != nil {\n        log.Fatal(\"failed to parse combatlog: \", err)\n    }\n    coll := frostparse.NewCollector(\n        frostparse.WithTimeresolution((time.Second*5)),\n    )\n    stats := coll.Run(data)\n    fmt.Println(\"DamageBySource: \", stats.DamageBySource)\n    fmt.Println(\"HealingBySource: \", stats.HealingBySource)\n    fmt.Println(\"DamageTakenBySource: \", stats.DamageTakenBySource)\n    fmt.Println(\"DamageTakenBySpell: \", stats.DamageTakenBySpell)\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradleybonitatibus%2Ffrostparse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradleybonitatibus%2Ffrostparse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradleybonitatibus%2Ffrostparse/lists"}