I'll equi your noxes.
This commit is contained in:
parent
3b750cddd5
commit
4021a8e20e
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from datetime import datetime
|
||||
from bs4 import BeautifulSoup
|
||||
from urllib.request import urlopen
|
||||
from subprocess import check_output
|
||||
|
||||
atf = '%a %b %d %H:%M:00 %Y'
|
||||
|
||||
with urlopen('https://en.wikipedia.org/w/index.php?title=Template:Solstice-equinox') as web:
|
||||
soup = BeautifulSoup(web.read(), 'html.parser')
|
||||
|
||||
table = soup.find('table', attrs={'class': 'wikitable'}).find('tbody')
|
||||
dates = dict()
|
||||
today = datetime.now()
|
||||
|
||||
for tr in table.find_all('tr'):
|
||||
try:
|
||||
year = int(tr.find('th').text.strip())
|
||||
except:
|
||||
continue
|
||||
times = [td.text.strip() for td in tr.find_all('td')]
|
||||
for i, m, text in ((0, 3, 'March equinox'), (2, 6, 'June solstice'), (4, 9, 'September equinox'), (6, 12, 'December solstice')):
|
||||
hour, minute = map(int, times[i+1].split(':'))
|
||||
date = datetime(year=year, month=m, day=int(times[i]), hour=hour, minute=minute)
|
||||
if date > today:
|
||||
dates[date.strftime(atf)] = (date.strftime('%H:%M %B %d %Y'), text)
|
||||
|
||||
atd = filter(None, check_output(['atq', '-q', 's']).decode().strip().split('\n'))
|
||||
atd = set(' '.join(d.split('\t')[1].split(' ')[:-2]) for d in atd)
|
||||
|
||||
for date, text in map(dates.get, set(dates) - atd):
|
||||
text = '/home/zgrep/offtopiabday/happy ' + text
|
||||
print(f'Scheduling {text} at {date}.')
|
||||
try:
|
||||
check_output(['at', '-q', 's', date], universal_newlines=True, input=text)
|
||||
except:
|
||||
print('Failed.')
|
Loading…
Reference in New Issue