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:
102
count_all_sessions.py
Normal file
102
count_all_sessions.py
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import codecs
|
||||
from datetime import datetime
|
||||
|
||||
# UTF-8 encoding for Windows console
|
||||
if sys.platform == "win32":
|
||||
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer, 'strict')
|
||||
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')
|
||||
|
||||
def count_all_sessions():
|
||||
"""Zählt alle Sessions getrennt nach Kategorien"""
|
||||
|
||||
chat_index_path = "chat-logs/chat-index.json"
|
||||
|
||||
if not os.path.exists(chat_index_path):
|
||||
print("❌ chat-index.json nicht gefunden!")
|
||||
return
|
||||
|
||||
with open(chat_index_path, 'r', encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
|
||||
chats = data.get('chats', [])
|
||||
|
||||
# Kategorisiere Sessions
|
||||
categories = {}
|
||||
total_sessions = len(chats)
|
||||
total_messages = 0
|
||||
|
||||
for chat in chats:
|
||||
category = chat.get('category', 'unknown')
|
||||
messages = chat.get('messages', 0)
|
||||
date = chat.get('date', '')
|
||||
|
||||
if category not in categories:
|
||||
categories[category] = {
|
||||
'sessions': [],
|
||||
'total_messages': 0,
|
||||
'count': 0
|
||||
}
|
||||
|
||||
categories[category]['sessions'].append({
|
||||
'date': date,
|
||||
'messages': messages,
|
||||
'title': chat.get('title', ''),
|
||||
'participants': len(chat.get('participants', []))
|
||||
})
|
||||
categories[category]['total_messages'] += messages
|
||||
categories[category]['count'] += 1
|
||||
total_messages += messages
|
||||
|
||||
print("=== MINECRAFT CHAT WEBSITE - VOLLSTÄNDIGE ÜBERSICHT ===")
|
||||
print(f"Total Sessions: {total_sessions}")
|
||||
print(f"Total Messages: {total_messages:,}")
|
||||
print("=" * 60)
|
||||
|
||||
# Kategorie-Details
|
||||
for category, info in sorted(categories.items()):
|
||||
if category == 'crea-1':
|
||||
print(f"\n🏰 CREATIVE MODE ({info['count']} Sessions)")
|
||||
print(f" 📊 Total Messages: {info['total_messages']:,}")
|
||||
elif category == 'survival-1':
|
||||
print(f"\n⛏️ SURVIVAL MODE ({info['count']} Sessions)")
|
||||
print(f" 📊 Total Messages: {info['total_messages']:,}")
|
||||
elif category == 'event':
|
||||
print(f"\n🎉 THESUR EVENT ({info['count']} Sessions)")
|
||||
print(f" 📊 Total Messages: {info['total_messages']:,}")
|
||||
elif category == 'test':
|
||||
print(f"\n🔧 TESTING ({info['count']} Sessions)")
|
||||
print(f" 📊 Total Messages: {info['total_messages']:,}")
|
||||
else:
|
||||
print(f"\n❓ {category.upper()} ({info['count']} Sessions)")
|
||||
print(f" 📊 Total Messages: {info['total_messages']:,}")
|
||||
|
||||
# Sortiere Sessions nach Datum
|
||||
sessions = sorted(info['sessions'], key=lambda x: x['date'])
|
||||
|
||||
# Zeige Sessions
|
||||
for session in sessions:
|
||||
date_obj = datetime.strptime(session['date'], '%Y-%m-%d')
|
||||
date_formatted = date_obj.strftime('%B %d, %Y')
|
||||
print(f" 📅 {session['date']}: {session['messages']:,} messages, {session['participants']} players")
|
||||
|
||||
if category == 'event':
|
||||
# Spezielle THESUR Statistiken
|
||||
dates = [s['date'] for s in sessions]
|
||||
if dates:
|
||||
print(f" 📊 Date range: {min(dates)} to {max(dates)}")
|
||||
print(f" 📊 Timespan: {len(set(dates))} different days")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("🎯 ZUSAMMENFASSUNG:")
|
||||
for category, info in sorted(categories.items()):
|
||||
icon = {'crea-1': '🏰', 'survival-1': '⛏️', 'event': '🎉', 'test': '🔧'}.get(category, '❓')
|
||||
print(f" {icon} {category}: {info['count']} sessions, {info['total_messages']:,} messages")
|
||||
|
||||
if __name__ == "__main__":
|
||||
count_all_sessions()
|
||||
Reference in New Issue
Block a user