Reformat the logfile
This commit is contained in:
parent
fde5bf81ea
commit
a5a226a5b3
2 changed files with 308 additions and 313 deletions
|
@ -1,299 +1,285 @@
|
|||
{
|
||||
"records": [
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 2652,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 7,
|
||||
"level_descriptive": "Level 7",
|
||||
"max_level": 7,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 60,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-03",
|
||||
"start_date": "2022-01-16",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a Woodland-elf"
|
||||
[
|
||||
{
|
||||
"score": 4171,
|
||||
"dungeon": {
|
||||
"n": 0,
|
||||
"name": "The Dungeons of Doom",
|
||||
"level": {
|
||||
"n": 9,
|
||||
"descriptive": "Level 9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 40,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 1,
|
||||
"level_descriptive": "Level 1",
|
||||
"max_level": 1,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 15,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-03",
|
||||
"start_date": "2022-04-03",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"end_date": "2022-04-16",
|
||||
"start_date": "2022-04-14",
|
||||
"character": {
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by an electric shock"
|
||||
"abbreviated": "Eryn-Sam-Hum-Fem-Law",
|
||||
"max_level": 9,
|
||||
"hp": {
|
||||
"n": 0,
|
||||
"max": 63
|
||||
},
|
||||
"role": {
|
||||
"short": "Sam",
|
||||
"descriptive": "Samurai"
|
||||
},
|
||||
"race": {
|
||||
"short": "Hum",
|
||||
"descriptive": "Human"
|
||||
},
|
||||
"gender": {
|
||||
"short": "Fem",
|
||||
"descriptive": "Female"
|
||||
},
|
||||
"alignment": {
|
||||
"short": "Law",
|
||||
"descriptive": "Lawful"
|
||||
}
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 1973,
|
||||
"dungeon_number": 2,
|
||||
"dungeon_name": "The Gnomish Mines",
|
||||
"level": 6,
|
||||
"level_descriptive": "Level 6",
|
||||
"max_level": 6,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 57,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-03",
|
||||
"start_date": "2022-04-03",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "poisoned by a rotted gnomish wizard corpse"
|
||||
"death": {
|
||||
"n": 1,
|
||||
"cause": "killed by a Green-elf"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 898,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 4,
|
||||
"level_descriptive": "Level 4",
|
||||
"max_level": 5,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 36,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-04",
|
||||
"start_date": "2022-04-03",
|
||||
"system": {
|
||||
"hostname": "nutmeg",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "died of starvation, while fainted"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 399,
|
||||
"dungeon_number": 2,
|
||||
"dungeon_name": "The Gnomish Mines",
|
||||
"level": 3,
|
||||
"level_descriptive": "Level 3",
|
||||
"max_level": 3,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 21,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-04",
|
||||
"start_date": "2022-04-04",
|
||||
"user_id": 1002,
|
||||
"role": "Priest",
|
||||
"race": "Elf",
|
||||
"gender": "Female",
|
||||
"alignment": "Chaotic",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a dwarf"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 138,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 2,
|
||||
"level_descriptive": "Level 2",
|
||||
"max_level": 2,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 14,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-05",
|
||||
"start_date": "2022-04-05",
|
||||
"user_id": 1002,
|
||||
"role": "Ranger",
|
||||
"race": "Gnome",
|
||||
"gender": "Female",
|
||||
"alignment": "Neutral",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a jackal"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 455,
|
||||
"dungeon_number": 2,
|
||||
"dungeon_name": "The Gnomish Mines",
|
||||
"level": 4,
|
||||
"level_descriptive": "Level 4",
|
||||
"max_level": 4,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 37,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-07",
|
||||
"start_date": "2022-04-05",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a little dog"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 397,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 4,
|
||||
"level_descriptive": "Level 4",
|
||||
"max_level": 4,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 15,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-07",
|
||||
"start_date": "2022-04-07",
|
||||
"user_id": 1002,
|
||||
"role": "Rogue",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Chaotic",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a cave spider, while frozen by a monster's gaze"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 2552,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 6,
|
||||
"level_descriptive": "Level 6",
|
||||
"max_level": 6,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 44,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-09",
|
||||
"start_date": "2022-04-08",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a violet fungus"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 391,
|
||||
"dungeon_number": 2,
|
||||
"dungeon_name": "The Gnomish Mines",
|
||||
"level": 3,
|
||||
"level_descriptive": "Level 3",
|
||||
"max_level": 3,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 36,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-09",
|
||||
"start_date": "2022-04-09",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a gnome king"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 567,
|
||||
"dungeon_number": 2,
|
||||
"dungeon_name": "The Gnomish Mines",
|
||||
"level": 5,
|
||||
"level_descriptive": "Level 5",
|
||||
"max_level": 5,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 34,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-09",
|
||||
"start_date": "2022-04-09",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a little dog called Hachi, while fainted from lack of food"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 0,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 1,
|
||||
"level_descriptive": "Level 1",
|
||||
"max_level": 1,
|
||||
"hit_points": 15,
|
||||
"max_hit_points": 15,
|
||||
"number_of_deaths": 0,
|
||||
"end_date": "2022-04-11",
|
||||
"start_date": "2022-04-11",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "quit"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 866,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 4,
|
||||
"level_descriptive": "Level 4",
|
||||
"max_level": 6,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 43,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-12",
|
||||
"start_date": "2022-04-11",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a bolt of cold"
|
||||
},
|
||||
{
|
||||
"nethack_version": "3.6.6",
|
||||
"score": 4143,
|
||||
"dungeon_number": 0,
|
||||
"dungeon_name": "The Dungeons of Doom",
|
||||
"level": 6,
|
||||
"level_descriptive": "Level 6",
|
||||
"max_level": 7,
|
||||
"hit_points": 0,
|
||||
"max_hit_points": 64,
|
||||
"number_of_deaths": 1,
|
||||
"end_date": "2022-04-13",
|
||||
"start_date": "2022-04-12",
|
||||
"user_id": 1002,
|
||||
"role": "Samurai",
|
||||
"race": "Human",
|
||||
"gender": "Female",
|
||||
"alignment": "Lawful",
|
||||
"name": "Eryn",
|
||||
"reason_for_death": "killed by a plains centaur"
|
||||
"nethack_version": "3.6.6"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"score": 4143,
|
||||
"dungeon": {
|
||||
"n": 0,
|
||||
"name": "The Dungeons of Doom",
|
||||
"level": {
|
||||
"n": 6,
|
||||
"descriptive": "Level 6"
|
||||
}
|
||||
},
|
||||
"end_date": "2022-04-13",
|
||||
"start_date": "2022-04-12",
|
||||
"character": {
|
||||
"name": "Eryn",
|
||||
"abbreviated": "Eryn-Sam-Hum-Fem-Law",
|
||||
"max_level": 7,
|
||||
"hp": {
|
||||
"n": 0,
|
||||
"max": 64
|
||||
},
|
||||
"role": {
|
||||
"short": "Sam",
|
||||
"descriptive": "Samurai"
|
||||
},
|
||||
"race": {
|
||||
"short": "Hum",
|
||||
"descriptive": "Human"
|
||||
},
|
||||
"gender": {
|
||||
"short": "Fem",
|
||||
"descriptive": "Female"
|
||||
},
|
||||
"alignment": {
|
||||
"short": "Law",
|
||||
"descriptive": "Lawful"
|
||||
}
|
||||
},
|
||||
"death": {
|
||||
"n": 1,
|
||||
"cause": "killed by a plains centaur"
|
||||
},
|
||||
"system": {
|
||||
"hostname": "nutmeg",
|
||||
"user_id": 1002,
|
||||
"nethack_version": "3.6.6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"score": 2652,
|
||||
"dungeon": {
|
||||
"n": 0,
|
||||
"name": "The Dungeons of Doom",
|
||||
"level": {
|
||||
"n": 7,
|
||||
"descriptive": "Level 7"
|
||||
}
|
||||
},
|
||||
"end_date": "2022-04-03",
|
||||
"start_date": "2022-01-16",
|
||||
"character": {
|
||||
"name": "Eryn",
|
||||
"abbreviated": "Eryn-Sam-Hum-Fem-Law",
|
||||
"max_level": 7,
|
||||
"hp": {
|
||||
"n": 0,
|
||||
"max": 60
|
||||
},
|
||||
"role": {
|
||||
"short": "Sam",
|
||||
"descriptive": "Samurai"
|
||||
},
|
||||
"race": {
|
||||
"short": "Hum",
|
||||
"descriptive": "Human"
|
||||
},
|
||||
"gender": {
|
||||
"short": "Fem",
|
||||
"descriptive": "Female"
|
||||
},
|
||||
"alignment": {
|
||||
"short": "Law",
|
||||
"descriptive": "Lawful"
|
||||
}
|
||||
},
|
||||
"death": {
|
||||
"n": 1,
|
||||
"cause": "killed by a Woodland-elf"
|
||||
},
|
||||
"system": {
|
||||
"hostname": "nutmeg",
|
||||
"user_id": 1002,
|
||||
"nethack_version": "3.6.6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"score": 399,
|
||||
"dungeon": {
|
||||
"n": 2,
|
||||
"name": "The Gnomish Mines",
|
||||
"level": {
|
||||
"n": 3,
|
||||
"descriptive": "Level 3"
|
||||
}
|
||||
},
|
||||
"end_date": "2022-04-04",
|
||||
"start_date": "2022-04-04",
|
||||
"character": {
|
||||
"name": "Eryn",
|
||||
"abbreviated": "Eryn-Pri-Elf-Fem-Cha",
|
||||
"max_level": 3,
|
||||
"hp": {
|
||||
"n": 0,
|
||||
"max": 21
|
||||
},
|
||||
"role": {
|
||||
"short": "Pri",
|
||||
"descriptive": "Priest"
|
||||
},
|
||||
"race": {
|
||||
"short": "Elf",
|
||||
"descriptive": "Elf"
|
||||
},
|
||||
"gender": {
|
||||
"short": "Fem",
|
||||
"descriptive": "Female"
|
||||
},
|
||||
"alignment": {
|
||||
"short": "Cha",
|
||||
"descriptive": "Chaotic"
|
||||
}
|
||||
},
|
||||
"death": {
|
||||
"n": 1,
|
||||
"cause": "killed by a dwarf"
|
||||
},
|
||||
"system": {
|
||||
"hostname": "nutmeg",
|
||||
"user_id": 1002,
|
||||
"nethack_version": "3.6.6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"score": 397,
|
||||
"dungeon": {
|
||||
"n": 0,
|
||||
"name": "The Dungeons of Doom",
|
||||
"level": {
|
||||
"n": 4,
|
||||
"descriptive": "Level 4"
|
||||
}
|
||||
},
|
||||
"end_date": "2022-04-07",
|
||||
"start_date": "2022-04-07",
|
||||
"character": {
|
||||
"name": "Eryn",
|
||||
"abbreviated": "Eryn-Rog-Hum-Fem-Cha",
|
||||
"max_level": 4,
|
||||
"hp": {
|
||||
"n": 0,
|
||||
"max": 15
|
||||
},
|
||||
"role": {
|
||||
"short": "Rog",
|
||||
"descriptive": "Rogue"
|
||||
},
|
||||
"race": {
|
||||
"short": "Hum",
|
||||
"descriptive": "Human"
|
||||
},
|
||||
"gender": {
|
||||
"short": "Fem",
|
||||
"descriptive": "Female"
|
||||
},
|
||||
"alignment": {
|
||||
"short": "Cha",
|
||||
"descriptive": "Chaotic"
|
||||
}
|
||||
},
|
||||
"death": {
|
||||
"n": 1,
|
||||
"cause": "killed by a cave spider, while frozen by a monster's gaze"
|
||||
},
|
||||
"system": {
|
||||
"hostname": "nutmeg",
|
||||
"user_id": 1002,
|
||||
"nethack_version": "3.6.6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"score": 138,
|
||||
"dungeon": {
|
||||
"n": 0,
|
||||
"name": "The Dungeons of Doom",
|
||||
"level": {
|
||||
"n": 2,
|
||||
"descriptive": "Level 2"
|
||||
}
|
||||
},
|
||||
"end_date": "2022-04-05",
|
||||
"start_date": "2022-04-05",
|
||||
"character": {
|
||||
"name": "Eryn",
|
||||
"abbreviated": "Eryn-Ran-Gno-Fem-Neu",
|
||||
"max_level": 2,
|
||||
"hp": {
|
||||
"n": 0,
|
||||
"max": 14
|
||||
},
|
||||
"role": {
|
||||
"short": "Ran",
|
||||
"descriptive": "Ranger"
|
||||
},
|
||||
"race": {
|
||||
"short": "Gno",
|
||||
"descriptive": "Gnome"
|
||||
},
|
||||
"gender": {
|
||||
"short": "Fem",
|
||||
"descriptive": "Female"
|
||||
},
|
||||
"alignment": {
|
||||
"short": "Neu",
|
||||
"descriptive": "Neutral"
|
||||
}
|
||||
},
|
||||
"death": {
|
||||
"n": 1,
|
||||
"cause": "killed by a jackal"
|
||||
},
|
||||
"system": {
|
||||
"hostname": "nutmeg",
|
||||
"user_id": 1002,
|
||||
"nethack_version": "3.6.6"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ import argparse
|
|||
import datetime
|
||||
import json
|
||||
import os.path
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
DUNGEONS = {
|
||||
|
@ -73,6 +74,8 @@ def main(argv):
|
|||
print('Given path is not a real file!', file=sys.stderr)
|
||||
return -1
|
||||
|
||||
hostname = subprocess.check_output(['hostname', '-s']).decode('ascii').strip()
|
||||
|
||||
records = []
|
||||
with open(args.logfile) as logfile:
|
||||
for record in logfile.readlines():
|
||||
|
@ -90,34 +93,40 @@ def main(argv):
|
|||
start_date = datetime.datetime.strptime(fields[9], '%Y%m%d').strftime('%Y-%m-%d')
|
||||
end_date = datetime.datetime.strptime(fields[8], '%Y%m%d').strftime('%Y-%m-%d')
|
||||
|
||||
name, reason = fields[15].split(',', maxsplit=1)
|
||||
name, cause_of_death = (s.strip() for s in fields[15].split(',', maxsplit=1))
|
||||
role = fields[11]
|
||||
race = fields[12]
|
||||
gender = fields[13]
|
||||
alignment = fields[14]
|
||||
|
||||
records.append({
|
||||
'nethack_version': fields[0],
|
||||
'score': int(fields[1]),
|
||||
'dungeon_number': int(fields[2]),
|
||||
'dungeon_name': dungeon_name,
|
||||
'level': dungeon_level,
|
||||
'level_descriptive': dungeon_level_descriptive,
|
||||
'max_level': int(fields[4]),
|
||||
'hit_points': int(fields[5]),
|
||||
'max_hit_points': int(fields[6]),
|
||||
'number_of_deaths': int(fields[7]),
|
||||
'dungeon': {
|
||||
'n': int(fields[2]),
|
||||
'name': dungeon_name,
|
||||
'level': {'n': dungeon_level, 'descriptive': dungeon_level_descriptive},
|
||||
},
|
||||
'end_date': end_date,
|
||||
'start_date': start_date,
|
||||
'user_id': int(fields[10]),
|
||||
'role': ROLES[fields[11]],
|
||||
'race': RACES[fields[12]],
|
||||
'gender': GENDERS[fields[13]],
|
||||
'alignment': ALIGNMENTS[fields[14]],
|
||||
'name': name.strip(),
|
||||
'reason_for_death': reason.strip(),
|
||||
'character': {
|
||||
'name': name,
|
||||
'abbreviated': f'{name}-{role}-{race}-{gender}-{alignment}',
|
||||
'max_level': int(fields[4]),
|
||||
'hp': {'n': int(fields[5]), 'max': int(fields[6])},
|
||||
'role': {'short': role, 'descriptive': ROLES[role]},
|
||||
'race': {'short': race, 'descriptive': RACES[race]},
|
||||
'gender': {'short': gender, 'descriptive': GENDERS[gender]},
|
||||
'alignment': {'short': alignment, 'descriptive': ALIGNMENTS[alignment]},
|
||||
},
|
||||
'death': {'n': int(fields[7]), 'cause': cause_of_death},
|
||||
'system': {
|
||||
'hostname': hostname,
|
||||
'user_id': int(fields[10]),
|
||||
'nethack_version': fields[0],
|
||||
}
|
||||
})
|
||||
|
||||
output_object = {
|
||||
'records': records,
|
||||
}
|
||||
json.dump(output_object, sys.stdout, indent=2)
|
||||
json.dump(records, sys.stdout, indent=2)
|
||||
print('\n')
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue