diff --git a/F.png b/F.png new file mode 100644 index 0000000..d4e2f8c Binary files /dev/null and b/F.png differ diff --git a/F2.png b/F2.png new file mode 100644 index 0000000..c115b13 Binary files /dev/null and b/F2.png differ diff --git a/Mi.png b/Mi.png new file mode 100644 index 0000000..d212424 Binary files /dev/null and b/Mi.png differ diff --git a/Trainingsplan.ipynb b/Trainingsplan.ipynb new file mode 100644 index 0000000..e4f18a6 --- /dev/null +++ b/Trainingsplan.ipynb @@ -0,0 +1,261 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "import re\n", + "from bs4 import BeautifulSoup\n", + "#import qrcode\n", + "import os\n", + "import sys\n", + "import subprocess\n", + "import time\n", + "response = requests.get('https://www.esg-handball.de/training/index')\n", + "Fi =str(response.content.decode('utf-8', 'ignore'))\n", + "Fi_cleaned = re.sub('(\\s{2,})',' ',str(Fi))\n", + "soup = BeautifulSoup(Fi_cleaned, 'html.parser')\n", + " \n", + "tabelle=soup.find_all(class_='content-box m-bot-15')\n", + "\n", + "rows = soup.find_all('table')\n", + "#print(rows[0])\n", + "header = soup.find_all('h2')\n", + "#print(header)\n", + "parse=re.compile(r\"\\(.*)\\<\\/h2\\>\")\n", + "headers =[]\n", + "for head in header:\n", + " name=parse.findall(str(head))\n", + " try:\n", + " headers.append(name[0])\n", + " except:\n", + " continue\n", + "dates = []\n", + "for row in rows:\n", + " training = row.find_all('p')\n", + " parse=re.compile(r\"\\(.*)\\<\\/p\\>\")\n", + " date = []\n", + " for ele in training:\n", + " name=parse.findall(str(ele))\n", + " date.append(name[0])\n", + " dates.append(date)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#print(dates)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "done.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "sh: /usr/local/TeX/bin/x86_64-darwin/pdflatex: No such file or directory\n" + ] + }, + { + "data": { + "text/plain": [ + "32512" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tex_code = r\"\"\"\n", + "\\documentclass[12pt,a4paper,landscape]{extarticle}\n", + "\\usepackage[T1]{fontenc}\n", + "\\usepackage[default]{opensans}\n", + "\\usepackage[utf8]{inputenc}\n", + "\\usepackage[table]{xcolor}\n", + "\\usepackage[margin=0.1in]{geometry}\n", + "\\usepackage{array}\n", + "\\usepackage{arev}\n", + "%\\usepackage[T1]{fontenc}\n", + "\\usepackage{scalefnt}\n", + "\\usepackage{caption}\n", + "\\usepackage{array}\n", + "\\usepackage{graphicx}\n", + "\\usepackage[absolute]{textpos}\n", + "\\usepackage{threeparttable}\n", + "\\newcolumntype{L}[1]{>{\\raggedright\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n", + "\\newcolumntype{C}[1]{>{\\centering\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n", + "\\newcolumntype{R}[1]{>{\\raggedleft\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n", + "\\makeatletter\n", + "\\newcommand{\\thickhline}{%\n", + " \\noalign {\\ifnum 0=`}\\fi \\hrule height 2pt\n", + " \\futurelet \\reserved@a \\@xhline\n", + "}\n", + "\\setlength{\\tabcolsep}{.16667em}\n", + "\\newcolumntype{\"}{@{\\hskip\\tabcolsep\\vrule width 2pt\\hskip\\tabcolsep}}\n", + "\\makeatother\n", + "\\usepackage{color, colortbl}\n", + "\\definecolor{LRed}{rgb}{1,.8,.8}\n", + "\\definecolor{LGreen}{rgb}{.8,1,.8}\n", + "\\definecolor{LBlue}{rgb}{8,39,142}\n", + "\\renewcommand{\\rmdefault}{ptm}\n", + "\\setlength{\\topmargin}{-3.5cm}\n", + "\\begin{document}\n", + "\\begin{center}\n", + "\\vspace{-2cm}\n", + "{\\scalefont{3}Trainingszeiten\"\"\"\n", + "tex_code +=r\"\"\"}\\\\\\scalefont{2}\\end{center}\"\"\"\n", + "#tex_code +=r\"\"\"\\begin{table}[h]\"\"\"\n", + "tex_code +=r\"\"\"\\centering\"\"\"\n", + "tex_code +=r\"\"\"\\begin{tabular}{|L{6cm}|L{5.5cm}|C{4cm}|L{13cm}|}\"\"\"\n", + "tex_code +=r\"\"\"\\hline \"\"\"\n", + "tex_code +=r\"\"\"Mannschaft. & Tag &Uhrzeit& Halle\\\\\"\"\"\n", + "tex_code +=r\"\"\"\\hline \"\"\"\n", + "for x in range(len(headers)):\n", + "\n", + " #print(headers[x])\n", + " for y in range(3):\n", + " if (x % 2) == 0:\n", + " tex_code +=r\"\"\"\\rowcolor{gray!25}\"\"\"\n", + " else:\n", + " tex_code +=r\"\"\"\\rowcolor{white}\"\"\"\n", + " if y == 0:\n", + " tex_code +=r\"\"\"{}&{}&{}&{}\\\\\"\"\".format(headers[x],dates[x][y*4], dates[x][(y*4)+1], (dates[x][(y*4)+2])[7:])\n", + " else:\n", + " try: \n", + " tex_code +=r\"\"\"{}&{}&{}&{}\\\\\"\"\".format(' ',dates[x][y*4], dates[x][(y*4)+1], (dates[x][(y*4)+2])[7:])\n", + " except:\n", + " continue\n", + " tex_code +=r\"\"\"\\hline \"\"\"\n", + "tex_code+=r\"\"\"\\end{tabular}\"\"\" \n", + "#tex_code+=r\"\"\"\\end{table}\"\"\" \n", + "tex_code+=r\"\"\"\\end{document}\"\"\"\n", + "#print(tex_code)\n", + "tex_file = \"training.tex\"\n", + "with open(tex_file, \"w\") as out_file:\n", + " out_file.write(tex_code)\n", + "print(\"done.\")\n", + "os.system(\"/usr/local/texlive/2023/bin/universal-darwin/pdflatex training.tex\")\n", + "os.system(\"rm -f *.log *.aux\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#print(headers)\n", + "parse=re.compile(r\"([mw])\\S*\\s(\\w\\-\\w*)\\s(\\d?)|(\\d\\.)\\s(\\w*)|([mw])\\S*\\s(\\w\\-\\w*)|^(\\w\\-\\w*)|^(\\w*)\\Z\")\n", + "headers2 =[]\n", + "for head in headers:\n", + " name=parse.findall(head)\n", + " headers2.append(name)\n", + "#print(headers2) \n", + "mails=[]\n", + "for head in headers2:\n", + " res=''\n", + " try:\n", + " for x in head[0]:\n", + " res+=str(x)\n", + " except:\n", + " continue\n", + " if res=='Damen':\n", + " res='1.Damen'\n", + " #res+=\"@esg-handball.de\"\n", + " mails.append(res)\n", + "print(mails)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from datetime import datetime\n", + "day_of_year = datetime.now().timetuple().tm_yday\n", + "year=datetime.now().timetuple().tm_year\n", + "#print(day_of_year)\n", + "#print(year)\n", + "if day_of_year<182:\n", + " add_off=-1\n", + "else:\n", + " add_off=0\n", + "Offsets_2nd=[18, 16,14,12,10,8,6]\n", + "Shift=[-1,-1,-1,-1,-1,-1,-2]\n", + "Jahrgänge=[]\n", + "for x in range(len(Offsets_2nd)):\n", + " Jahrgänge.append(str(year-Offsets_2nd[x]+add_off)+'-'+str(year-(Offsets_2nd[x]+Shift[x]+add_off)))\n", + "Jugenden=['A-Jugend','B-Jugend', 'C-Jugend', 'D-Jugend', 'E-Jugend', 'F-Jugend','Minis']\n", + "Mannschaften = [[0 for x in range(2)] for y in range(7)]\n", + "for i in range(len(Jugenden)):\n", + " Mannschaften[i][1]=Jahrgänge[i]\n", + " Mannschaften[i][0]=Jugenden[i]\n", + "#print(Mannschaften)\n", + "Teams = [[0 for x in range(3)] for y in range(len(mails))]\n", + "for i in range(len(mails)):\n", + " Teams[i][0]=mails[i] \n", + " for x in range(len(Jugenden)):\n", + " if Jugenden[x][0] in str(Teams[i][0]):\n", + " Teams[i][1] = Mannschaften[x][1]\n", + " Teams[i][2] = Mannschaften[x][0]\n", + " break\n", + "print(Teams)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for x in range(len(headers)):\n", + " for y in range(3):\n", + " try:\n", + " Teams[x][2].append(dates[x][y*4], dates[x][(y*4)+1], dates[x][(y*4)+2])\n", + " except:\n", + " continue\n", + "print(Teams)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..03ceae2 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +httplib2 +httpclient