diff --git a/analytics.py b/analytics.py index 8aa1ca5..dec11c5 100644 --- a/analytics.py +++ b/analytics.py @@ -400,12 +400,14 @@ def dashboard(): for rel_path, access_count in rows ] - top20_overall = rows[:20] - top20_predigt = [r for r in rows if r['category'] == 'Predigt'][:20] - top20_chor = [r for r in rows if r['category'] == 'Chor'][:20] - top20_ggesang = [r for r in rows if r['category'] == 'Gemeinsamer Gesang'][:20] - top20_glied = [r for r in rows if r['category'] == 'Gruppenlied'][:20] - + categories = set(r['category'] for r in rows) # distinct categories + top20 = [ + { + 'category': categorie, + 'files': [r for r in rows if r['category'] == categorie][:20] + } + for categorie in categories + ] # 2. Distinct device trend # We'll group by hour if "today", by day if "7days"/"30days", by month if "365days" @@ -612,11 +614,7 @@ def dashboard(): return render_template( "dashboard.html", timeframe=session['timeframe'], - top20_overall = top20_overall, - top20_predigt = top20_predigt, - top20_chor = top20_chor, - top20_ggesang = top20_ggesang, - top20_glied = top20_glied, + top20 = top20, distinct_device_data=distinct_device_data, user_agent_data=user_agent_data, folder_data=folder_data, diff --git a/app.py b/app.py index 7e08fc8..a1ac5f0 100755 --- a/app.py +++ b/app.py @@ -279,13 +279,14 @@ def api_browse(subpath): foldernames = [] files = [] split_path = subpath.split('/') + + valid_categories = ['Predigt', 'Erzählung', 'Gedicht', 'Gemeinsamer Gesang', 'Chor', 'Kinderchor', 'Jugendchor', 'Orchester', 'Instrumental', 'Gruppenlied'] if len(split_path) == 1 and split_path[0] == 'toplist': foldernames = [ - {'name': 'Predigten', 'path': 'toplist/Predigt'}, - {'name': 'Chorlieder', 'path': 'toplist/Chor'}, - {'name': 'Gemeinsamer Gesang', 'path': 'toplist/Gemeinsamer Gesang'}, - {'name': 'Gruppenlieder', 'path': 'toplist/Gruppenlied'}, + { + 'name': categorie, 'path': 'toplist/' + categorie + } for categorie in valid_categories ] elif len(split_path) > 1 and split_path[0] == 'toplist': files = hf.generate_top_list(split_path[1]) diff --git a/helperfunctions.py b/helperfunctions.py index a2f15aa..92ba3c0 100644 --- a/helperfunctions.py +++ b/helperfunctions.py @@ -67,19 +67,25 @@ def extract_structure_from_string(input_string): if 'predig' in left_side.lower(): category = 'Predigt' - elif 'wort' in left_side.lower() or 'einladung' in left_side.lower(): + elif 'wort' in left_side.lower() or 'einladung' in left_side.lower() or 'begrüßung' in left_side.lower() or 'ansprache' in left_side.lower() or 'einleitung' in left_side.lower(): category = 'Vorwort' + elif 'kinderchor' in left_side.lower(): + category = 'Kinderchor' + elif 'jugendchor' in left_side.lower(): + category = 'Jugendchor' + elif 'orchester' in input_string.lower() or 'sinfonie' in input_string.lower() or 'symphonie' in input_string.lower(): + category = 'Orchester' elif 'chor' in left_side.lower(): category = 'Chor' - elif 'orchester' in left_side.lower(): - category = 'Orchester' - elif 'gruppenlied' in left_side.lower() or 'jugendlied' in left_side.lower(): - category = 'Gruppenlied' - elif 'gemeinsam' in left_side.lower() or 'gesang' in left_side.lower() or 'lied' in left_side.lower(): + elif 'gemeinsam' in left_side.lower() or 'gemeindelied' in left_side.lower() or 'gemeinsamer gesang' in input_string.lower(): category = 'Gemeinsamer Gesang' + elif 'gruppenlied' in left_side.lower() or 'jugend' in left_side.lower() or 'lied' in left_side.lower(): + category = 'Gruppenlied' elif 'gedicht' in left_side.lower(): category = 'Gedicht' - elif 'instrumental' in left_side.lower() or 'musikstück' in left_side.lower(): + elif 'vortrag' in left_side.lower() or 'erzä' in left_side.lower() or 'program' in left_side.lower(): + category = 'Erzählung' + elif 'instrumental' in input_string.lower() or 'musikstück' in left_side.lower() or 'harfenstück' in left_side.lower(): category = 'Instrumental' else: category = None diff --git a/templates/dashboard.html b/templates/dashboard.html index 43d56ee..99868e2 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -211,38 +211,25 @@ - {% for top20 in [top20_overall, top20_predigt, top20_chor, top20_ggesang, top20_glied] %} + {% for top20_item in top20 %}
- Top 20 Dateizugriffe - {% if top20 == top20_overall %} - (Gesamt) - {% elif top20 == top20_predigt %} - (Predigt) - {% elif top20 == top20_chor %} - (Chor) - {% elif top20 == top20_ggesang %} - (Gemeinsamer Gesang) - {% elif top20 == top20_glied %} - (Gruppenlieder) - {% endif %} + Top 20 Dateizugriffe ({{ top20_item['category'] }})
- - + - {% for row in top20 %} + {% for row in top20_item['files'] %} - - + {% else %}
File Path Access CountKategorieFile Path
{{ row.rel_path }} {{ row.access_count }}{{ row.category }}{{ row.rel_path }}