initial morningpaper script

main
Marcel Heidemann 2026-03-06 08:13:31 +01:00
commit 466d7a89ce
6 changed files with 269 additions and 0 deletions

33
archive/2026-03-04.html Normal file
View File

@ -0,0 +1,33 @@
<html>
<head>
<title>Morning Paper</title>
</head>
<body>
<h3>Kurioser Feiertag</h3>
<h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-snacks/" rel="bookmark">Tag der Snacks der US-amerikanische National Snack Day am 4. März</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-ruehrkuchens/" rel="bookmark">Tag des Rührkuchens am 4. März National Pound Cake Day in den USA</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/march-forth-and-do-something-day/" rel="bookmark">Der US-amerikanische March Forth and Do Something Day am 4. März</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-grammatik/" rel="bookmark">Tag der Grammatik National Grammar Day in den USA</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/internationaler-scrapbooking-tag/" rel="bookmark">Internationaler Scrapbooking-Tag am 4. März International Scrapbooking Day</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-moscow-mule/" rel="bookmark">Tag des Moscow Mule der National Moscow Mule Day in den Vereinigten Staaten</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/internationaler-tag-des-irischen-whiskey/" rel="bookmark">Tag des irischen Whiskey International Irish Whiskey Day 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-ausgefallenen-namen/" rel="bookmark">Tag der ausgefallenen Namen der internationale Unique Names Day 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-aufschnitts/" rel="bookmark">Tag des Aufschnitts am 3. März National Cold Cuts Day in den Vereinigten Staaten</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/mach-andere-gluecklich-tag/" rel="bookmark">Mach-andere-glücklich-Tag der US-amerikanische National I Want You To Be Happy Day</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-artenschutzes/" rel="bookmark">Tag des Artenschutzes der United Nations World Wildlife Day am 3. März</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/adoptiere-eine-katze-tag/" rel="bookmark">Adoptiere-eine-Katze-Tag am 2. März International Rescue Cat Day 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/wissenswertes-ueber-namen-tag/" rel="bookmark">Wissenswertes-über-Namen-Tag der internationale Fun Facts About Names Day 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-alten-dinge/" rel="bookmark">Tag der alten Dinge am 2. März National Old Stuff Day in den Vereinigten Staaten</a></h3>
<h3>Mitarbeiter</h3>
<table>
<thead>
<tr><th>Name </th><th>Geburtstag </th><th>Eintritt </th><th style="text-align: right;"> Tagegesamt</th><th style="text-align: right;"> Jahre</th><th style="text-align: right;"> Monate</th><th style="text-align: right;"> Tage</th></tr>
</thead>
<tbody>
<tr><td>Becky </td><td>12.05.1990 </td><td>01.03.2018</td><td style="text-align: right;"> 2925</td><td style="text-align: right;"> 8</td><td style="text-align: right;"> 0</td><td style="text-align: right;"> 3</td></tr>
<tr><td>Tatjana</td><td>22.08.1988 </td><td>15.06.2020</td><td style="text-align: right;"> 2088</td><td style="text-align: right;"> 5</td><td style="text-align: right;"> 8</td><td style="text-align: right;"> 17</td></tr>
<tr><td>Max </td><td>10.01.1995 </td><td>01.02.2022</td><td style="text-align: right;"> 1492</td><td style="text-align: right;"> 4</td><td style="text-align: right;"> 1</td><td style="text-align: right;"> 3</td></tr>
</tbody>
</table>
<h3>Geburtstage heute</h3>
[]
<h3>Geburtstage im Monat</h3>
[]
<h3>Jubiläum</h3>
[]
</body>
</html>

33
archive/2026-03-05.html Normal file
View File

@ -0,0 +1,33 @@
<html>
<head>
<title>Morning Paper</title>
</head>
<body>
<h3>Kurioser Feiertag</h3>
<h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/world-book-day-irland-und-grossbritannien/" rel="bookmark">World Book Day der Welttag des Buches in Irland und Großbritannien 5. März 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-multiplen-persoenlichkeit/" rel="bookmark">Tag der multiplen Persönlichkeit der US-amerikanische National Multiple Personality Day</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-absinth/" rel="bookmark">Tag des Absinths National Absinthe Day in den Vereinigten Staaten</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-kaese-flips/" rel="bookmark">Tag der Käse Flips der US-amerikanische National Cheese Doodle Day</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-snacks/" rel="bookmark">Tag der Snacks der US-amerikanische National Snack Day am 4. März</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-ruehrkuchens/" rel="bookmark">Tag des Rührkuchens am 4. März National Pound Cake Day in den USA</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/march-forth-and-do-something-day/" rel="bookmark">Der US-amerikanische March Forth and Do Something Day am 4. März</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-grammatik/" rel="bookmark">Tag der Grammatik National Grammar Day in den USA</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/internationaler-scrapbooking-tag/" rel="bookmark">Internationaler Scrapbooking-Tag am 4. März International Scrapbooking Day</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-moscow-mule/" rel="bookmark">Tag des Moscow Mule der National Moscow Mule Day in den Vereinigten Staaten</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/internationaler-tag-des-irischen-whiskey/" rel="bookmark">Tag des irischen Whiskey International Irish Whiskey Day 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-ausgefallenen-namen/" rel="bookmark">Tag der ausgefallenen Namen der internationale Unique Names Day 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-aufschnitts/" rel="bookmark">Tag des Aufschnitts am 3. März National Cold Cuts Day in den Vereinigten Staaten</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/mach-andere-gluecklich-tag/" rel="bookmark">Mach-andere-glücklich-Tag der US-amerikanische National I Want You To Be Happy Day</a></h3>
<h3>Mitarbeiter</h3>
<table>
<thead>
<tr><th>Name </th><th>Geburtstag </th><th>Eintritt </th><th style="text-align: right;"> Tagegesamt</th><th style="text-align: right;"> Jahre</th><th style="text-align: right;"> Monate</th><th style="text-align: right;"> Tage</th></tr>
</thead>
<tbody>
<tr><td>Max </td><td>10.01.1995 </td><td>01.02.2022</td><td style="text-align: right;"> 1493</td><td style="text-align: right;"> 4</td><td style="text-align: right;"> 1</td><td style="text-align: right;"> 4</td></tr>
<tr><td>Becky </td><td>12.05.1990 </td><td>01.03.2018</td><td style="text-align: right;"> 2926</td><td style="text-align: right;"> 8</td><td style="text-align: right;"> 0</td><td style="text-align: right;"> 4</td></tr>
<tr><td>Tatjana</td><td>22.08.1988 </td><td>15.06.2020</td><td style="text-align: right;"> 2089</td><td style="text-align: right;"> 5</td><td style="text-align: right;"> 8</td><td style="text-align: right;"> 18</td></tr>
</tbody>
</table>
<h3>Geburtstage heute</h3>
[]
<h3>Geburtstage im Monat</h3>
[]
<h3>Jubiläum</h3>
[]
</body>
</html>

4
input.csv Normal file
View File

@ -0,0 +1,4 @@
Name;Geburtstag;Eintritt
Becky;12.05.1990;01.03.2018
Tatjana;22.08.1988;15.06.2020
Max;10.01.1995;01.02.2022
1 Name Geburtstag Eintritt
2 Becky 12.05.1990 01.03.2018
3 Tatjana 22.08.1988 15.06.2020
4 Max 10.01.1995 01.02.2022

142
morningpaper.py Normal file
View File

@ -0,0 +1,142 @@
from datetime import datetime
from dateutil.relativedelta import relativedelta
import os
import requests
import re
import shutil
import csv
from tabulate import tabulate
import random
import time
import webbrowser
from bs4 import BeautifulSoup
# url = 'https://www.kuriose-feiertage.de/'
# webbrowser.open(url)
#Dateimanagement
os.chdir(os.path.dirname(__file__))
path =os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
new_file=os.path.join(path ,"goodmorning.html")
shutil.copyfile('template.html', 'template_1.html')
#Datumsaufgaben
date_format = "%d.%m.%Y"
Now = datetime.now()
#Berechnung der Differenz von Einstiegsdatum bis jetzt
def datecalc(employee_row):
date = datetime.strptime(employee_row, date_format)
delta = Now - date
difference = relativedelta(Now, date)
return str(delta.days),str(difference.years),str(difference.months),str(difference.days)
employedata=list(csv.reader((open('input.csv')), delimiter=';'))
employedata[0].extend(['Tagegesamt', 'Jahre', 'Monate', 'Tage'])
for i in range(1, len(employedata)):
a=datecalc(employedata[i][2])
employedata[i].extend([a[0], a[1], a[2], a[3]])
table = tabulate(employedata, tablefmt='html')
def getdateinfo():
response = requests.get('https://welcher-tag-ist-heute.org/')
title= re.sub(r'.*<title>(.*)</title>.*','\g<1>', response.text, flags=re.S)
name_dat= re.sub('.*<a href="#Namenstag" class="box color4" id="name">(.*?</p>).*','\g<1>', response.text, flags=re.S)
spec_day = re.sub('.*<div class="inner">(.*)</div> <!-- .inner -->.*','\g<1>', response.text, flags=re.S)
spec_day = re.sub('</div>.*','', spec_day, flags=re.S)
spec_day = re.sub('<a href=".*?">','', spec_day, flags=re.S)
spec_day = re.sub('</a>','', spec_day, flags=re.S)
return title,name_dat,spec_day
def templator(templatorid, templatorresult):
with open('template_1.html', 'r', encoding="utf-8") as file:
string = file.read()
string = string.replace(templatorid, templatorresult)
with open('template_1.html', 'w', encoding="utf-8") as file:
file.write(string)
# title,name_dat,spec_day = getdateinfo()
def getdateinfo_new():
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
response = requests.get('https://www.kuriose-feiertage.de/', headers=headers)
html = BeautifulSoup(response.text, 'html.parser')
titles = html.find_all(class_='entry-title')
spec_day=''
for title in titles:
#print (str(title))
spec_day+=str(title)
return spec_day
#print ('---->'+str(title_element.text)+'<-----')
spec_day = getdateinfo_new()
#Test:
#Rebecca immer mo-donnerstag ganz oben und Tatjana di-do direkt hinter rebecca, sonst random
tablehead = employedata[0]
tablebody = employedata[1:]
shuffled_tablebody = tablebody[:]
random.shuffle(shuffled_tablebody)
#HTML Tabelle erstellen
tablehead_html = """
<table style='border-collapse: collapse; width: 40%;'>
<thead>
<tr><th>""" + "</th><th>".join(tablehead) + "</th></tr></thead>"
tablebody_html = tabulate(shuffled_tablebody, headers=tablehead, tablefmt='html')
html_table = tablebody_html
def makeitpretty():
with open('template_1.html', 'r', encoding="utf-8") as file:
string = file.read()
string = string.replace('</td></tr></tbody></table><table><tbody>', '')
string= string.replace('h2', 'h3')
with open('template_1.html', 'w', encoding="utf-8") as file:
file.write(string)
def birthdaychecker():
check = Now.strftime('%d.%m')
geburtstagskind = [row[0] for row in employedata if row[1][:5] == check]
return geburtstagskind
def birthdaymonthchecker():
check = Now.strftime('%m')
geburtstagskinddesmonats = [row[0] for row in employedata if row[1][3:5] == check]
return geburtstagskinddesmonats
geburtstagskinddesmonats=str(birthdaymonthchecker())
def anniversarychecker():
return [row[0] for row in employedata if (row[5] == '0' and row[6] == '0') or len(set(str(row[3]).split(" test")[0])) <= 1]
anniversary=anniversarychecker()
geburtstagskind=str(birthdaychecker())
templator('$geburtstagskind$', geburtstagskind)
templator('$geburtstagskinddesmonats$', geburtstagskinddesmonats)
templator('$specialday$', spec_day)
templator('$namenstage$', ' ')
templator('$specialday_d$', ' ')
templator('$tablehead$', tablehead_html)
templator('$table$', html_table)
templator('$anniversary$', str(anniversary))
makeitpretty()
now_file_name = time.strftime('%Y-%m-%d')
print(now_file_name)
archivepath = os.path.join(os.path.dirname(__file__), 'archive')
os.makedirs(archivepath, exist_ok=True)
shutil.copyfile('template_1.html', os.path.join(archivepath, now_file_name + '.html'))
shutil.copyfile('template_1.html', new_file)
os.system(new_file)

24
template.html Normal file
View File

@ -0,0 +1,24 @@
<html>
<head>
<title>Morning Paper</title>
</head>
<body>
<h2>Kurioser Feiertag</h2>
$specialday$
<h2>Mitarbeiter</h2>
$table$
<h2>Geburtstage heute</h2>
$geburtstagskind$
<h2>Geburtstage im Monat</h2>
$geburtstagskinddesmonats$
<h2>Jubiläum</h2>
$anniversary$
</body>
</html>

33
template_1.html Normal file
View File

@ -0,0 +1,33 @@
<html>
<head>
<title>Morning Paper</title>
</head>
<body>
<h3>Kurioser Feiertag</h3>
<h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/world-book-day-irland-und-grossbritannien/" rel="bookmark">World Book Day der Welttag des Buches in Irland und Großbritannien 5. März 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-multiplen-persoenlichkeit/" rel="bookmark">Tag der multiplen Persönlichkeit der US-amerikanische National Multiple Personality Day</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-absinth/" rel="bookmark">Tag des Absinths National Absinthe Day in den Vereinigten Staaten</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-kaese-flips/" rel="bookmark">Tag der Käse Flips der US-amerikanische National Cheese Doodle Day</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-snacks/" rel="bookmark">Tag der Snacks der US-amerikanische National Snack Day am 4. März</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-ruehrkuchens/" rel="bookmark">Tag des Rührkuchens am 4. März National Pound Cake Day in den USA</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/march-forth-and-do-something-day/" rel="bookmark">Der US-amerikanische March Forth and Do Something Day am 4. März</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-grammatik/" rel="bookmark">Tag der Grammatik National Grammar Day in den USA</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/internationaler-scrapbooking-tag/" rel="bookmark">Internationaler Scrapbooking-Tag am 4. März International Scrapbooking Day</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-moscow-mule/" rel="bookmark">Tag des Moscow Mule der National Moscow Mule Day in den Vereinigten Staaten</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/internationaler-tag-des-irischen-whiskey/" rel="bookmark">Tag des irischen Whiskey International Irish Whiskey Day 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-der-ausgefallenen-namen/" rel="bookmark">Tag der ausgefallenen Namen der internationale Unique Names Day 2026</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/tag-des-aufschnitts/" rel="bookmark">Tag des Aufschnitts am 3. März National Cold Cuts Day in den Vereinigten Staaten</a></h3><h3 class="entry-title" itemprop="headline"><a href="https://www.kuriose-feiertage.de/mach-andere-gluecklich-tag/" rel="bookmark">Mach-andere-glücklich-Tag der US-amerikanische National I Want You To Be Happy Day</a></h3>
<h3>Mitarbeiter</h3>
<table>
<thead>
<tr><th>Name </th><th>Geburtstag </th><th>Eintritt </th><th style="text-align: right;"> Tagegesamt</th><th style="text-align: right;"> Jahre</th><th style="text-align: right;"> Monate</th><th style="text-align: right;"> Tage</th></tr>
</thead>
<tbody>
<tr><td>Max </td><td>10.01.1995 </td><td>01.02.2022</td><td style="text-align: right;"> 1493</td><td style="text-align: right;"> 4</td><td style="text-align: right;"> 1</td><td style="text-align: right;"> 4</td></tr>
<tr><td>Becky </td><td>12.05.1990 </td><td>01.03.2018</td><td style="text-align: right;"> 2926</td><td style="text-align: right;"> 8</td><td style="text-align: right;"> 0</td><td style="text-align: right;"> 4</td></tr>
<tr><td>Tatjana</td><td>22.08.1988 </td><td>15.06.2020</td><td style="text-align: right;"> 2089</td><td style="text-align: right;"> 5</td><td style="text-align: right;"> 8</td><td style="text-align: right;"> 18</td></tr>
</tbody>
</table>
<h3>Geburtstage heute</h3>
[]
<h3>Geburtstage im Monat</h3>
[]
<h3>Jubiläum</h3>
[]
</body>
</html>