new file: .gitignore
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
This commit is contained in:
70
process_thesur_logs.py
Normal file
70
process_thesur_logs.py
Normal file
@@ -0,0 +1,70 @@
|
||||
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")
|
||||
)
|
||||
Reference in New Issue
Block a user