Update import nethack logfile script

- Add a few roles to the ROLES mapping
- Check if the logfile changed before writing it (avoid updating the timestamp
  if no changes were made)
This commit is contained in:
Eryn Wells 2022-11-20 10:01:07 -08:00
parent d2ab14f649
commit 9e11021ae3
2 changed files with 122 additions and 484 deletions

View file

@ -1,478 +1,8 @@
{
"generated": "2022-11-20T09:20:44.083781",
"generated": "2022-11-20T09:59:06.983143",
"logfile": [
{
"score": 0,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 1,
"descriptive": "Level 1"
}
},
"end_date": "2022-04-05",
"start_date": "2022-04-05",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Sam-Hum-Fem-Law",
"max_level": 1,
"hp": {
"n": 15,
"max": 15
},
"role": {
"short": "Sam",
"descriptive": "Samurai"
},
"race": {
"short": "Hum",
"descriptive": "Human"
},
"gender": {
"short": "Fem",
"descriptive": "Female"
},
"alignment": {
"short": "Law",
"descriptive": "Lawful"
}
},
"death": {
"n": 0,
"cause": "quit"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 1309,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 7,
"descriptive": "Level 7"
}
},
"end_date": "2022-04-05",
"start_date": "2022-04-05",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Sam-Hum-Fem-Law",
"max_level": 7,
"hp": {
"n": 0,
"max": 46
},
"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 pony"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 148,
"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",
"descriptor": "Eryn-Mon-Hum-Fem-Neu",
"max_level": 2,
"hp": {
"n": 0,
"max": 20
},
"role": {
"short": "Mon",
"descriptive": "Monk"
},
"race": {
"short": "Hum",
"descriptive": "Human"
},
"gender": {
"short": "Fem",
"descriptive": "Female"
},
"alignment": {
"short": "Neu",
"descriptive": "Neutral"
}
},
"death": {
"n": 1,
"cause": "killed by a water moccasin"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 2,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 1,
"descriptive": "Level 1"
}
},
"end_date": "2022-04-05",
"start_date": "2022-04-05",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Mon-Hum-Fem-Neu",
"max_level": 1,
"hp": {
"n": 8,
"max": 14
},
"role": {
"short": "Mon",
"descriptive": "Monk"
},
"race": {
"short": "Hum",
"descriptive": "Human"
},
"gender": {
"short": "Fem",
"descriptive": "Female"
},
"alignment": {
"short": "Neu",
"descriptive": "Neutral"
}
},
"death": {
"n": 0,
"cause": "quit"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 370,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 4,
"descriptive": "Level 4"
}
},
"end_date": "2022-04-07",
"start_date": "2022-04-05",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Sam-Hum-Fem-Law",
"max_level": 4,
"hp": {
"n": 0,
"max": 28
},
"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 coyote, while fainted from lack of food"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 0,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 1,
"descriptive": "Level 1"
}
},
"end_date": "2022-04-09",
"start_date": "2022-04-09",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Sam-Hum-Fem-Law",
"max_level": 1,
"hp": {
"n": 15,
"max": 15
},
"role": {
"short": "Sam",
"descriptive": "Samurai"
},
"race": {
"short": "Hum",
"descriptive": "Human"
},
"gender": {
"short": "Fem",
"descriptive": "Female"
},
"alignment": {
"short": "Law",
"descriptive": "Lawful"
}
},
"death": {
"n": 0,
"cause": "quit"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 737,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 4,
"descriptive": "Level 4"
}
},
"end_date": "2022-04-10",
"start_date": "2022-04-04",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Rog-Hum-Fem-Cha",
"max_level": 4,
"hp": {
"n": 0,
"max": 31
},
"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 dwarf, while fainted from lack of food"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 1460,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 6,
"descriptive": "Level 6"
}
},
"end_date": "2022-04-18",
"start_date": "2022-04-12",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Sam-Hum-Fem-Law",
"max_level": 6,
"hp": {
"n": 0,
"max": 58
},
"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 killer bee"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 1500,
"dungeon": {
"n": 2,
"name": "The Gnomish Mines",
"level": {
"n": 6,
"descriptive": "Level 6"
}
},
"end_date": "2022-05-06",
"start_date": "2022-04-19",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Sam-Hum-Fem-Law",
"max_level": 8,
"hp": {
"n": 0,
"max": 53
},
"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 dwarf"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 1136,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 6,
"descriptive": "Level 6"
}
},
"end_date": "2022-05-10",
"start_date": "2022-05-09",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Sam-Hum-Fem-Law",
"max_level": 7,
"hp": {
"n": 0,
"max": 39
},
"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 an invisible Uruk-hai"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 1413,
"score": 1395,
"dungeon": {
"n": 2,
"name": "The Gnomish Mines",
@ -481,19 +11,19 @@
"descriptive": "Level 5"
}
},
"end_date": "2022-05-25",
"start_date": "2022-05-15",
"end_date": "2022-11-19",
"start_date": "2022-11-18",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Sam-Hum-Fem-Law",
"descriptor": "Eryn-Kni-Hum-Fem-Law",
"max_level": 5,
"hp": {
"n": 0,
"max": 58
"max": 45
},
"role": {
"short": "Sam",
"descriptive": "Samurai"
"short": "Kni",
"descriptive": "Knight"
},
"race": {
"short": "Hum",
@ -510,7 +40,101 @@
},
"death": {
"n": 1,
"cause": "killed by a killer bee"
"cause": "killed by a black naga hatchling"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 0,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 1,
"descriptive": "Level 1"
}
},
"end_date": "2022-11-19",
"start_date": "2022-11-19",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Arc-Hum-Fem-Neu",
"max_level": 1,
"hp": {
"n": 13,
"max": 13
},
"role": {
"short": "Arc",
"descriptive": "Archaeologist"
},
"race": {
"short": "Hum",
"descriptive": "Human"
},
"gender": {
"short": "Fem",
"descriptive": "Female"
},
"alignment": {
"short": "Neu",
"descriptive": "Neutral"
}
},
"death": {
"n": 0,
"cause": "quit"
},
"system": {
"hostname": "electra",
"user_id": 501,
"nethack_version": "3.6.6"
}
},
{
"score": 246,
"dungeon": {
"n": 0,
"name": "The Dungeons of Doom",
"level": {
"n": 3,
"descriptive": "Level 3"
}
},
"end_date": "2022-11-19",
"start_date": "2022-11-19",
"character": {
"name": "Eryn",
"descriptor": "Eryn-Val-Hum-Fem-Law",
"max_level": 4,
"hp": {
"n": 0,
"max": 21
},
"role": {
"short": "Val",
"descriptive": "Valkyrie"
},
"race": {
"short": "Hum",
"descriptive": "Human"
},
"gender": {
"short": "Fem",
"descriptive": "Female"
},
"alignment": {
"short": "Law",
"descriptive": "Lawful"
}
},
"death": {
"n": 1,
"cause": "killed by a wand"
},
"system": {
"hostname": "electra",

View file

@ -45,11 +45,14 @@ RACES = {
}
ROLES = {
'Arc': 'Archaeologist',
'Kni': 'Knight',
'Mon': 'Monk',
'Pri': 'Priest',
'Ran': 'Ranger',
'Rog': 'Rogue',
'Sam': 'Samurai',
'Val': 'Valkyrie',
}
GENDERS = {
@ -133,15 +136,26 @@ def main(argv):
'logfile': records,
}
logfile_has_changed = False
output_path = args.output
output_file = None
if output_path and output_path != '-':
with open(output_path, 'r') as existing_logfile:
existing_logfile_object = json.load(existing_logfile)
logfile_has_changed = existing_logfile_object.get('logfile', {}) != records
if logfile_has_changed:
output_file = open(output_path, 'w')
else:
output_file = sys.stdout
if output_file:
json.dump(output_object, output_file, indent=2)
output_file.write('\n')
output_file.close()
else:
print('No changes to logfile')
return 0