new file: Dockerfile new file: README.md new file: app.py new file: chat-logs/chat-index.json new file: chat-logs/crea-1-10.08.2020-merged.txt new file: chat-logs/crea-1-11.08.2020-merged.txt new file: chat-logs/crea-1-12.08.2020-merged.txt new file: chat-logs/crea-1-13.08.2020-merged.txt new file: chat-logs/crea-1-14.08.2020-merged.txt new file: chat-logs/crea-1-15.08.2020-merged.txt new file: chat-logs/crea-1-18.08.2020-merged.txt new file: chat-logs/crea-1-20.08.2020-merged.txt new file: chat-logs/crea-1-2020-07-27-1-filtered.txt new file: chat-logs/crea-1-2020-07-28-1-filtered.txt new file: chat-logs/crea-1-2020-07-29-1-filtered.txt new file: chat-logs/crea-1-2020-07-30-1-filtered.txt new file: chat-logs/crea-1-2020-08-03-1-filtered.txt new file: chat-logs/crea-1-2020-08-04-1-filtered.txt new file: chat-logs/crea-1-2020-08-08-1-filtered.txt new file: chat-logs/crea-1-2020-08-09-1-filtered.txt new file: chat-logs/crea-1-2020-08-10-1-filtered.txt new file: chat-logs/crea-1-2020-08-11-1-filtered.txt new file: chat-logs/crea-1-2020-08-13-1-filtered.txt new file: chat-logs/crea-1-2020-08-16-1-filtered.txt new file: chat-logs/crea-1-2020-08-17-1-filtered.txt new file: chat-logs/crea-1-2020-08-18-1-filtered.txt new file: chat-logs/crea-1-2020-08-20-1-filtered.txt new file: chat-logs/crea-1-2020-08-24-1-filtered.txt new file: chat-logs/crea-1-2020-08-29-1-filtered.txt new file: chat-logs/crea-1-2020-08-30-1-filtered.txt new file: chat-logs/crea-1-21.08.2020-merged.txt new file: chat-logs/crea-1-22.08.2020-merged.txt new file: chat-logs/crea-1-23.08.2020-merged.txt new file: chat-logs/crea-1-24.07.2020-merged.txt new file: chat-logs/crea-1-25.07.2020-merged.txt new file: chat-logs/crea-1-25.08.2020-merged.txt new file: chat-logs/crea-1-26.07.2020-merged.txt new file: chat-logs/crea-1-26.08.2020-merged.txt new file: chat-logs/crea-1-27.08.2020-merged.txt new file: chat-logs/crea-1-28.08.2020-merged.txt new file: chat-logs/crea-1-crea-1-10.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-11.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-12.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-14.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-15.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-18.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-20.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-21.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-22.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-23.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-24.07.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-25.07.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-25.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-26.07.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-26.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-27.08.2020-merged-filtered.txt new file: chat-logs/crea-1-crea-1-28.08.2020-merged-filtered.txt new file: chat-logs/survival-1-15.08.2020-merged.txt new file: chat-logs/survival-1-2020-07-27-1-filtered.txt new file: chat-logs/survival-1-2020-07-28-1-filtered.txt new file: chat-logs/survival-1-2020-08-07-1-filtered.txt new file: chat-logs/survival-1-2020-08-08-1-filtered.txt new file: chat-logs/survival-1-2020-08-11-1-filtered.txt new file: chat-logs/survival-1-2020-08-13-1-filtered.txt new file: chat-logs/survival-1-2020-08-14-1-filtered.txt new file: chat-logs/survival-1-2020-08-17-1-filtered.txt new file: chat-logs/survival-1-2020-08-18-1-filtered.txt new file: chat-logs/survival-1-2020-08-19-1-filtered.txt new file: chat-logs/survival-1-25.07.2020-merged.txt new file: chat-logs/survival-1-survival-1-15.08.2020-merged-filtered.txt new file: chat-logs/survival-1-survival-1-25.07.2020-merged-filtered.txt new file: chat-logs/thesur-1-2020-08-17-1-filtered.txt new file: chat-logs/thesur-1-2020-08-31-1-filtered.txt new file: count_all_sessions.py new file: count_sessions.py new file: index.html new file: local-chat-analyzer.js new file: merge_daily_logs.py new file: process_thesur_logs.py new file: quick_add.py new file: requirements.txt new file: script.js new file: server.py new file: statistics-integration.js new file: statistics.css new file: statistics.js new file: style.css
71 lines
2.4 KiB
Python
71 lines
2.4 KiB
Python
import re
|
|
import os
|
|
|
|
def filter_minecraft_log(input_file, output_file):
|
|
"""Filter a Minecraft log file to keep only relevant chat messages and join/leave events"""
|
|
|
|
chat_patterns = [
|
|
# Chat messages
|
|
r'\[(\d{2}:\d{2}:\d{2})\] \[Async Chat Thread.*?\]: (.+?) : (.+)',
|
|
# Join/leave messages
|
|
r'\[(\d{2}:\d{2}:\d{2})\] \[Server thread/INFO\]: (.+?) joined the game',
|
|
r'\[(\d{2}:\d{2}:\d{2})\] \[Server thread/INFO\]: (.+?) left the game',
|
|
]
|
|
|
|
filtered_lines = []
|
|
|
|
with open(input_file, 'r', encoding='utf-8', errors='ignore') as f:
|
|
for line in f:
|
|
line = line.strip()
|
|
if not line:
|
|
continue
|
|
|
|
# Check chat messages
|
|
chat_match = re.search(chat_patterns[0], line)
|
|
if chat_match:
|
|
time = chat_match.group(1)
|
|
player = chat_match.group(2)
|
|
message = chat_match.group(3)
|
|
filtered_lines.append(f"[{time}] {player}: {message}")
|
|
continue
|
|
|
|
# Check join messages
|
|
join_match = re.search(chat_patterns[1], line)
|
|
if join_match:
|
|
time = join_match.group(1)
|
|
player = join_match.group(2)
|
|
filtered_lines.append(f"[{time}] : {player} joined the game")
|
|
continue
|
|
|
|
# Check leave messages
|
|
leave_match = re.search(chat_patterns[2], line)
|
|
if leave_match:
|
|
time = leave_match.group(1)
|
|
player = leave_match.group(2)
|
|
filtered_lines.append(f"[{time}] : {player} left the game")
|
|
continue
|
|
|
|
# Write filtered content
|
|
with open(output_file, 'w', encoding='utf-8') as f:
|
|
for line in filtered_lines:
|
|
f.write(line + '\n')
|
|
|
|
print(f"Processed {input_file} -> {output_file}")
|
|
print(f"Found {len(filtered_lines)} relevant lines")
|
|
|
|
# Process the two missing THESUR-1 logs
|
|
raw_logs_dir = "raw logs/THESUR-1"
|
|
chat_logs_dir = "chat-logs"
|
|
|
|
# Process 17. August 2020
|
|
filter_minecraft_log(
|
|
os.path.join(raw_logs_dir, "2020-08-17-1.log"),
|
|
os.path.join(chat_logs_dir, "thesur-1-2020-08-17-1-filtered.txt")
|
|
)
|
|
|
|
# Process 31. August 2020
|
|
filter_minecraft_log(
|
|
os.path.join(raw_logs_dir, "2020-08-31-1.log"),
|
|
os.path.join(chat_logs_dir, "thesur-1-2020-08-31-1-filtered.txt")
|
|
)
|