60 lines
1.0 KiB
Python
Executable File
60 lines
1.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import requests
|
|
from sys import argv
|
|
|
|
latest_file = "/home/user/polybar-scripts/notification-xkcd-latest"
|
|
icon = "#"
|
|
|
|
|
|
read = False
|
|
if len(argv) > 1:
|
|
if argv[1] == "read":
|
|
read = True
|
|
|
|
|
|
def useFile(doc, mode, write):
|
|
f = open(doc, mode)
|
|
if mode == 'r':
|
|
doc = f.read()
|
|
f.close()
|
|
return doc
|
|
else:
|
|
f.write(write)
|
|
f.close()
|
|
|
|
try:
|
|
latest = int(useFile(latest_file, 'r', '')[0:4])
|
|
except FileNotFoundError:
|
|
useFile(latest_file, 'x', "2350")
|
|
latest = 2350
|
|
|
|
newComic = False
|
|
while True:
|
|
try:
|
|
status = requests.get('https://www.xkcd.com/' + str(latest + 1) + '/').status_code
|
|
except requests.exceptions.ConnectionError:
|
|
status = 404
|
|
|
|
if status == 200:
|
|
latest += 1
|
|
newComic = True
|
|
|
|
elif status == 404:
|
|
toPrint = ""
|
|
|
|
if useFile(latest_file, 'r', '')[4:] == 'Unread':
|
|
toPrint = "New: "
|
|
|
|
if read:
|
|
toPrint = ""
|
|
useFile(latest_file, 'w', str(latest) + 'Read')
|
|
elif newComic:
|
|
useFile(latest_file, 'w', str(latest) + 'Unread')
|
|
toPrint = "New: "
|
|
|
|
toPrint += str(latest)
|
|
print(icon + toPrint)
|
|
break
|
|
|