Files
Nuliga2/Trainingsplan.ipynb
2024-11-18 08:49:52 +01:00

262 lines
8.1 KiB
Plaintext

{
"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\\>(.*)\\<\\/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\\>(.*)\\<\\/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
}