Compare commits

..

2 Commits

Author SHA1 Message Date
46666a6088 created code, for printing the Ruder-IDs 2026-03-27 07:38:56 +01:00
cfe8aaa4e9 cleared outputs 2026-03-26 14:40:48 +01:00
8 changed files with 402 additions and 55 deletions

15
LaTex/Ruder-IDs.csv Normal file
View File

@@ -0,0 +1,15 @@
Ruder-ID
S-C2-H-201X-98-B-sk
S-C2-H-201X-97-B-sk
S-C2-H-201X-99-B-sk
S-C2-H-201X-96-B-sk
S-C2-H-201X-98-B-sk
S-C2-H-201X-97-B-sk
S-C2-H-201X-99-B-sk
S-C2-H-201X-96-B-sk
S-C2-H-201X-98-B-sk
S-C2-H-201X-97-B-sk
S-C2-H-201X-99-B-sk
S-C2-H-201X-96-B-sk
S-C2-H-201X-98-B-sk
S-C2-H-201X-97-B-sk
1 Ruder-ID
2 S-C2-H-201X-98-B-sk
3 S-C2-H-201X-97-B-sk
4 S-C2-H-201X-99-B-sk
5 S-C2-H-201X-96-B-sk
6 S-C2-H-201X-98-B-sk
7 S-C2-H-201X-97-B-sk
8 S-C2-H-201X-99-B-sk
9 S-C2-H-201X-96-B-sk
10 S-C2-H-201X-98-B-sk
11 S-C2-H-201X-97-B-sk
12 S-C2-H-201X-99-B-sk
13 S-C2-H-201X-96-B-sk
14 S-C2-H-201X-98-B-sk
15 S-C2-H-201X-97-B-sk

BIN
LaTex/print_Ruder-IDs.pdf Normal file

Binary file not shown.

27
LaTex/print_Ruder-IDs.tex Normal file
View File

@@ -0,0 +1,27 @@
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{csvsimple}
\usepackage{geometry}
\usepackage{array}
\usepackage{longtable}
\usepackage{anyfontsize}
\usepackage{xcolor}
\usepackage{colortbl}
\geometry{a4paper, margin=0in}
% Define light grey color
\definecolor{lightgrey}{gray}{0.9}
\begin{document}
\begin{center}
\renewcommand{\arraystretch}{1.6}
\bfseries
\fontsize{40}{50}\selectfont % Set font size to 50pt, line spacing to 60pt
\begin{longtable}{>{\centering\arraybackslash}p{\textwidth}}
\\[20pt]
\csvreader[head to column names]{Ruder-IDs.csv}{}{\csvcoli \\[20pt] \arrayrulecolor{lightgrey}\hline \\[20pt]}
\end{longtable}
\end{center}
\end{document}

View File

@@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 8, "execution_count": null,
"id": "152c4ce0", "id": "152c4ce0",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@@ -12,7 +12,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 9, "execution_count": null,
"id": "041b0ab6", "id": "041b0ab6",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@@ -30,7 +30,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 10, "execution_count": null,
"id": "19ec4c3e", "id": "19ec4c3e",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@@ -45,7 +45,7 @@
" # WebDAV returns 405 Method Not Allowed if the folder already exists\n", " # WebDAV returns 405 Method Not Allowed if the folder already exists\n",
" print(f\"⏩ Skipped: Folder already exists at {folder_url}\")\n", " print(f\"⏩ Skipped: Folder already exists at {folder_url}\")\n",
" elif response.status_code == 409:\n", " elif response.status_code == 409:\n",
" print(f\" Error: Parent folder doesn't exist for {folder_url}\")\n", " print(f\" Error: Parent folder doesn't exist for {folder_url}\")\n",
" else:\n", " else:\n",
" print(f\"❌ Error {response.status_code}: Could not create folder.\")\n", " print(f\"❌ Error {response.status_code}: Could not create folder.\")\n",
" print(response.text)" " print(response.text)"
@@ -53,7 +53,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 11, "execution_count": null,
"id": "b4c04efb", "id": "b4c04efb",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@@ -107,43 +107,10 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 12, "execution_count": null,
"id": "306aef25", "id": "306aef25",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"⏩ Skipped: Folder already exists at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse\n",
"Fetching contacts from the 'rv-villach-athletinnen' address book...\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Aufegger%20Tobias\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Praschnig%20Flora\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Buchacher%20Eva\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Gigacher%20Olivia\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/McGrath%20Samuel\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Magdalena%20Truppe\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Yang%20Ruien\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Yang%20Xiaoen\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Kofler%20Hannah\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Tropea%20Manfredi\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Spath-Glantschnig%20%20Christoph\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Acerbi%20Sofia\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Aufegger%20Emilia\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Henriks%20Alva\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Tscherne%20Tobias\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Pressinger%20Laurin\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Bodner%20Emma\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Jop%20Nicolas\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Assmann-Hafenscherer%20Felix\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Henriks%20Konstantin\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Loidl%20Lieselotte\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Poga%C4%8Dar%20Anamary\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Polessnig%20Valentina\n",
"✅ Success: Created folder at https://nextcloud.karnelegger.eu/remote.php/dav/files/Georg Brantegger/Shared/Ruderverein/Videoanalyse/Paulik%20Elena\n"
]
}
],
"source": [ "source": [
"# 1. Create the main base folder first (just in case it doesn't exist)\n", "# 1. Create the main base folder first (just in case it doesn't exist)\n",
"create_nextcloud_folder(WEBDAV_BASE_URL)\n", "create_nextcloud_folder(WEBDAV_BASE_URL)\n",

View File

@@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 83, "execution_count": null,
"id": "152c4ce0", "id": "152c4ce0",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@@ -15,7 +15,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 84, "execution_count": null,
"id": "041b0ab6", "id": "041b0ab6",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@@ -29,7 +29,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 85, "execution_count": null,
"id": "b4c04efb", "id": "b4c04efb",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@@ -86,18 +86,10 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 86, "execution_count": null,
"id": "3efe3bb1", "id": "3efe3bb1",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [],
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fetching contacts from the 'rv-villach-athletinnen' address book...\n"
]
}
],
"source": [ "source": [
"a,b,c,d = get_athlete_data()\n", "a,b,c,d = get_athlete_data()\n",
"data_dict = {'Nachname':a,'Vorname':b,'Gender':c,'Jahrgang':d}\n", "data_dict = {'Nachname':a,'Vorname':b,'Gender':c,'Jahrgang':d}\n",
@@ -107,7 +99,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 87, "execution_count": null,
"id": "a65d7693", "id": "a65d7693",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
@@ -152,7 +144,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 90, "execution_count": null,
"id": "7ff6f41c", "id": "7ff6f41c",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],

View File

@@ -0,0 +1,165 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "f46948ac",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"import pandas as pd\n",
"from io import BytesIO"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3a1de802",
"metadata": {},
"outputs": [],
"source": [
"# --- Configuration ---\n",
"NEXTCLOUD_URL = \"https://nextcloud.karnelegger.eu\"\n",
"USERNAME = \"Georg Brantegger\"\n",
"with open('app_pw.txt','r') as f:\n",
" APP_PASSWORD = f.readline()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1fdfef34",
"metadata": {},
"outputs": [],
"source": [
"# read list of boats\n",
"\n",
"FILE_PATH = \"Shared/Ruderverein/Material/Bootsliste.xlsx\"\n",
"\n",
"# Build the WebDAV URL\n",
"# Note: Path should be URL-encoded if it contains spaces or special characters\n",
"webdav_url = f\"{NEXTCLOUD_URL}/remote.php/dav/files/{USERNAME}/{FILE_PATH}\"\n",
"\n",
"# --- The Request ---\n",
"response = requests.get(webdav_url, auth=(USERNAME, APP_PASSWORD))\n",
"\n",
"if response.status_code == 200:\n",
" # Use BytesIO to turn the raw binary content into a file-like object\n",
" boats_df = pd.read_excel(BytesIO(response.content))\n",
" print(\"File loaded successfully!\")\n",
"else:\n",
" print(f\"Failed to fetch file. Status code: {response.status_code}\")\n",
" print(response.text)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "80f97e18",
"metadata": {},
"outputs": [],
"source": [
"def analyse_class(row):\n",
" boot_class = row['Bootsklasse']\n",
"\n",
" number_seats = 0\n",
" variable = False\n",
"\n",
" for i in range(8+1):\n",
" if str(i) in boot_class:\n",
" number_seats = i\n",
" break\n",
" \n",
" if '/' in boot_class:\n",
" variable = True\n",
"\n",
" return number_seats, variable\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "70fb2327",
"metadata": {},
"outputs": [],
"source": [
"boats_df[['number_seats','variable']] = boats_df.apply(analyse_class,axis=1,result_type='expand')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bf18a0fd",
"metadata": {},
"outputs": [],
"source": [
"boat_names = []\n",
"variants = []\n",
"places = []\n",
"\n",
"for boat_name in df['Name'].unique():\n",
" number_seats = df.loc[df['Name']==boat_name,'number_seats'].values[0]\n",
" variable = df.loc[df['Name']==boat_name,'variable'].values[0]\n",
"\n",
" if bool(variable) is False:\n",
" for place in range(1,number_seats+1):\n",
" boat_names.append(boat_name)\n",
" variants.append(f\"{number_seats}x\")\n",
" places.append(place)\n",
" elif bool(variable) is True:\n",
" for place in range(1,number_seats+1):\n",
" boat_names.append(boat_name)\n",
" variants.append(f\"{number_seats}x\")\n",
" places.append(place)\n",
" for place in range(1,number_seats+1):\n",
" boat_names.append(boat_name)\n",
" variants.append(f\"{number_seats}-\")\n",
" places.append(place)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "85059518",
"metadata": {},
"outputs": [],
"source": [
"data_dict = {'Bootsname':boat_names,'Trimmung':variants,'Bootsplatz':places,'Ruder-ID':[None for _ in boat_names]}\n",
"places_df = pd.DataFrame(data_dict)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3071bf52",
"metadata": {},
"outputs": [],
"source": [
"places_df.to_excel('temp.xlsx')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@@ -0,0 +1,91 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "3a384a62",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"import pandas as pd\n",
"from io import BytesIO\n",
"import os"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "05055b94",
"metadata": {},
"outputs": [],
"source": [
"# --- Configuration ---\n",
"NEXTCLOUD_URL = \"https://nextcloud.karnelegger.eu\"\n",
"USERNAME = \"Georg Brantegger\"\n",
"with open('app_pw.txt','r') as f:\n",
" APP_PASSWORD = f.readline()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "13fb9852",
"metadata": {},
"outputs": [],
"source": [
"# read list of boats\n",
"\n",
"FILE_PATH = \"Shared/Ruderverein/Material/Ruderliste.xlsx\"\n",
"\n",
"# Build the WebDAV URL\n",
"# Note: Path should be URL-encoded if it contains spaces or special characters\n",
"webdav_url = f\"{NEXTCLOUD_URL}/remote.php/dav/files/{USERNAME}/{FILE_PATH}\"\n",
"\n",
"# --- The Request ---\n",
"response = requests.get(webdav_url, auth=(USERNAME, APP_PASSWORD))\n",
"\n",
"if response.status_code == 200:\n",
" # Use BytesIO to turn the raw binary content into a file-like object\n",
" oars_df = pd.read_excel(BytesIO(response.content))\n",
" print(\"File loaded successfully!\")\n",
"else:\n",
" print(f\"Failed to fetch file. Status code: {response.status_code}\")\n",
" print(response.text)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d6394323",
"metadata": {},
"outputs": [],
"source": [
"parent_folder = os.path.dirname(os.getcwd())\n",
"target_path = os.path.join(parent_folder,'LaTex','Ruder-IDs.csv')\n",
"oars_df['Ruder-ID'].to_csv(target_path,index=False)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@@ -0,0 +1,90 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "e4755f4e",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"import os"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "689fd1ef",
"metadata": {},
"outputs": [],
"source": [
"# --- Configuration ---\n",
"NEXTCLOUD_URL = \"https://nextcloud.karnelegger.eu\"\n",
"USERNAME = \"Georg Brantegger\"\n",
"with open('app_pw.txt','r') as f:\n",
" APP_PASSWORD = f.readline()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4967214a",
"metadata": {},
"outputs": [],
"source": [
"parent_folder = os.path.dirname(os.getcwd())\n",
"LOCAL_FILE_PATH = os.path.join(parent_folder,'LaTex','print_Ruder-IDs.pdf')\n",
"REMOTE_FILE_PATH = \"Shared/Ruderverein/Material/print_Ruder-IDs.pdf\""
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "515eaaac",
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"# --- Construction ---\n",
"# The WebDAV endpoint for files is /remote.php/dav/files/USER/\n",
"upload_url = f\"{NEXTCLOUD_URL}/remote.php/dav/files/{USERNAME}/{REMOTE_FILE_PATH}\"\n",
"\n",
"with open(LOCAL_FILE_PATH, 'rb') as f:\n",
" response = requests.put(\n",
" upload_url, \n",
" data=f, \n",
" auth=(USERNAME, APP_PASSWORD)\n",
" )\n",
"\n",
"# --- Results ---\n",
"if response.status_code in [201, 204]:\n",
" print(\"Upload successful!\")\n",
"else:\n",
" print(f\"Failed! Status code: {response.status_code}\")\n",
" print(response.text)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}