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

8.1 KiB

In [2]:
import requests
import re
from bs4 import BeautifulSoup
#import qrcode
import os
import sys
import subprocess
import time
response = requests.get('https://www.esg-handball.de/training/index')
Fi =str(response.content.decode('utf-8', 'ignore'))
Fi_cleaned = re.sub('(\s{2,})',' ',str(Fi))
soup = BeautifulSoup(Fi_cleaned, 'html.parser')
 
tabelle=soup.find_all(class_='content-box m-bot-15')

rows = soup.find_all('table')
#print(rows[0])
header = soup.find_all('h2')
#print(header)
parse=re.compile(r"\<h2\>(.*)\<\/h2\>")
headers =[]
for head in header:
    name=parse.findall(str(head))
    try:
        headers.append(name[0])
    except:
        continue
dates = []
for row in rows:
    training = row.find_all('p')
    parse=re.compile(r"\<p\>(.*)\<\/p\>")
    date = []
    for ele in training:
        name=parse.findall(str(ele))
        date.append(name[0])
    dates.append(date)
In [ ]:
#print(dates)
In [3]:
tex_code = r"""
\documentclass[12pt,a4paper,landscape]{extarticle}
\usepackage[T1]{fontenc}
\usepackage[default]{opensans}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage[margin=0.1in]{geometry}
\usepackage{array}
\usepackage{arev}
%\usepackage[T1]{fontenc}
\usepackage{scalefnt}
\usepackage{caption}
\usepackage{array}
\usepackage{graphicx}
\usepackage[absolute]{textpos}
\usepackage{threeparttable}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\makeatletter
\newcommand{\thickhline}{%
    \noalign {\ifnum 0=`}\fi \hrule height 2pt
    \futurelet \reserved@a \@xhline
}
\setlength{\tabcolsep}{.16667em}
\newcolumntype{"}{@{\hskip\tabcolsep\vrule width 2pt\hskip\tabcolsep}}
\makeatother
\usepackage{color, colortbl}
\definecolor{LRed}{rgb}{1,.8,.8}
\definecolor{LGreen}{rgb}{.8,1,.8}
\definecolor{LBlue}{rgb}{8,39,142}
\renewcommand{\rmdefault}{ptm}
\setlength{\topmargin}{-3.5cm}
\begin{document}
\begin{center}
\vspace{-2cm}
{\scalefont{3}Trainingszeiten"""
tex_code +=r"""}\\\scalefont{2}\end{center}"""
#tex_code +=r"""\begin{table}[h]"""
tex_code +=r"""\centering"""
tex_code +=r"""\begin{tabular}{|L{6cm}|L{5.5cm}|C{4cm}|L{13cm}|}"""
tex_code +=r"""\hline """
tex_code +=r"""Mannschaft. & Tag &Uhrzeit& Halle\\"""
tex_code +=r"""\hline """
for x in range(len(headers)):

    #print(headers[x])
    for y in range(3):
        if (x % 2) == 0:
            tex_code +=r"""\rowcolor{gray!25}"""
        else:
            tex_code +=r"""\rowcolor{white}"""
        if y == 0:
            tex_code +=r"""{}&{}&{}&{}\\""".format(headers[x],dates[x][y*4], dates[x][(y*4)+1], (dates[x][(y*4)+2])[7:])
        else:
            try: 
                tex_code +=r"""{}&{}&{}&{}\\""".format(' ',dates[x][y*4], dates[x][(y*4)+1], (dates[x][(y*4)+2])[7:])
            except:
                continue
    tex_code +=r"""\hline """
tex_code+=r"""\end{tabular}"""    
#tex_code+=r"""\end{table}""" 
tex_code+=r"""\end{document}"""
#print(tex_code)
tex_file = "training.tex"
with open(tex_file, "w") as out_file:
    out_file.write(tex_code)
print("done.")
os.system("/usr/local/texlive/2023/bin/universal-darwin/pdflatex training.tex")
os.system("rm -f *.log *.aux")
Out [3]:
done.
sh: /usr/local/TeX/bin/x86_64-darwin/pdflatex: No such file or directory
32512
In [ ]:
#print(headers)
parse=re.compile(r"([mw])\S*\s(\w\-\w*)\s(\d?)|(\d\.)\s(\w*)|([mw])\S*\s(\w\-\w*)|^(\w\-\w*)|^(\w*)\Z")
headers2 =[]
for head in headers:
    name=parse.findall(head)
    headers2.append(name)
#print(headers2) 
mails=[]
for head in headers2:
    res=''
    try:
        for x in head[0]:
            res+=str(x)
    except:
        continue
    if res=='Damen':
        res='1.Damen'
    #res+="@esg-handball.de"
    mails.append(res)
print(mails)
In [ ]:
from datetime import datetime
day_of_year = datetime.now().timetuple().tm_yday
year=datetime.now().timetuple().tm_year
#print(day_of_year)
#print(year)
if day_of_year<182:
    add_off=-1
else:
    add_off=0
Offsets_2nd=[18, 16,14,12,10,8,6]
Shift=[-1,-1,-1,-1,-1,-1,-2]
Jahrgänge=[]
for x in range(len(Offsets_2nd)):
    Jahrgänge.append(str(year-Offsets_2nd[x]+add_off)+'-'+str(year-(Offsets_2nd[x]+Shift[x]+add_off)))
Jugenden=['A-Jugend','B-Jugend', 'C-Jugend', 'D-Jugend', 'E-Jugend', 'F-Jugend','Minis']
Mannschaften = [[0 for x in range(2)] for y in range(7)]
for i in range(len(Jugenden)):
    Mannschaften[i][1]=Jahrgänge[i]
    Mannschaften[i][0]=Jugenden[i]
#print(Mannschaften)
Teams = [[0 for x in range(3)] for y in range(len(mails))]
for i in range(len(mails)):
    Teams[i][0]=mails[i] 
    for x in range(len(Jugenden)):
        if Jugenden[x][0] in str(Teams[i][0]):
            Teams[i][1] = Mannschaften[x][1]
            Teams[i][2] = Mannschaften[x][0]
            break
print(Teams)
In [ ]:
for x in range(len(headers)):
    for y in range(3):
        try:
            Teams[x][2].append(dates[x][y*4], dates[x][(y*4)+1], dates[x][(y*4)+2])
        except:
            continue
print(Teams)