67 lines
1.9 KiB
Python
Executable file
67 lines
1.9 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
from datetime import date
|
|
from datetime import datetime
|
|
import socket
|
|
import os
|
|
import time
|
|
from threading import Thread
|
|
import subprocess
|
|
|
|
date_format = "%Y-%m-%d"
|
|
youtube_focused = False
|
|
|
|
time_remaining = int(0)
|
|
|
|
def update_file():
|
|
with open('/home/rafayahmad/dotfiles/scripts/youtubeData', 'w') as file:
|
|
file.write(date.today().strftime(date_format))
|
|
file.write('\n')
|
|
file.write(time_remaining.__str__())
|
|
|
|
def read_file():
|
|
global time_remaining
|
|
with open('/home/rafayahmad/dotfiles/scripts/youtubeData') as file:
|
|
date_t = file.readline().strip()
|
|
date_t = datetime.strptime(date_t, date_format).date()
|
|
time_remaining = int(file.readline())
|
|
|
|
if date_t != date.today():
|
|
print('differnt date, resetting')
|
|
time_remaining = 60
|
|
update_file()
|
|
|
|
|
|
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
|
path = os.path.expandvars('$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock')
|
|
sock.connect(path)
|
|
|
|
def time_counter():
|
|
while True:
|
|
global time_remaining
|
|
if youtube_focused:
|
|
read_file()
|
|
if time_remaining == 0:
|
|
subprocess.run(['hyprctl', 'dispatch', 'killactive'])
|
|
subprocess.run(['notify-send', 'time\'s up buddy'])
|
|
time.sleep(1)
|
|
continue
|
|
time.sleep(60)
|
|
time_remaining -= 1
|
|
update_file()
|
|
print('Remainng Youtube Time is: ', time_remaining)
|
|
|
|
Thread(target=time_counter).start()
|
|
|
|
while True:
|
|
data = sock.recv(1024)
|
|
lines = data.decode().split('\n')
|
|
for line in lines:
|
|
if line.startswith('activewindow>>'):
|
|
print(line)
|
|
if line.__contains__('YouTube'):
|
|
youtube_focused = True
|
|
print('youtube focused')
|
|
else:
|
|
youtube_focused = False
|
|
print('youtube unfocused')
|