Dateien nach "/" hochladen
This commit is contained in:
261
Trainingsplan.ipynb
Normal file
261
Trainingsplan.ipynb
Normal file
@@ -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\\>(.*)\\<\\/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
|
||||
}
|
||||
2
requirements.txt
Normal file
2
requirements.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
httplib2
|
||||
httpclient
|
||||
Reference in New Issue
Block a user