-
Notifications
You must be signed in to change notification settings - Fork 0
/
web_blocker.py
70 lines (59 loc) · 1.85 KB
/
web_blocker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import tkinter as tk
from datetime import datetime as dt
from tkinter import *
import tkinter
hosts_temp = "hosts"
hosts_path = r"/private/etc/hosts"
redirect = "127.0.0.1"
website_list = []
master = tk.Tk()
master.title("Website Blocker")
# Create List
listBox = tkinter.Listbox(master)
listBox.pack()
# Create textbox
entry = tk.Entry(master)
entry.insert(0,"Paste URL")
entry.pack()
#add to list
def list_add():
website_list.append(entry.get())
print(website_list)
listBox.insert(END, entry.get())
entry.delete(0, END)
#remove items from list
def list_remove():
if listBox.curselection() == ():
pass
else:
listBox.delete(listBox.curselection())
indexP = listBox.curselection()
if indexP != ():
website_list.remove(website_list[indexP])
def block():
if dt(dt.now().year, dt.now().month, dt.now().day, 8) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, 16):
print("working hours")
with open(hosts_path, 'r+') as file:
content = file.read()
for website in website_list:
if website in content:
pass
else:
file.write(redirect + " " + website + "\n")
else:
print("non working hours")
with open(hosts_path, 'r+') as file:
content = file.readlines()
file.seek(0)
for line in content:
if not any(website in line for website in website_list):
file.write(line)
file.truncate()
master.after(90000, block)
button_add = tk.Button(master, text="Add Website", command=list_add)
button_add.pack()
button_remove = tk.Button(master, text="Remove Website", command=list_remove)
button_remove.pack()
button_block = tk.Button(master, text="Block", command=block)
button_block.pack()
master.mainloop()