diff --git a/scripts/Website Blocker/README.md b/scripts/Website Blocker/README.md new file mode 100644 index 0000000..86c1b71 --- /dev/null +++ b/scripts/Website Blocker/README.md @@ -0,0 +1,22 @@ +### About + +A Python3 script to block certain websites. + +### Setup + +* Install Python3 from [here](https://python.org). +* Open cmd/terminal +* Navigate inside the ```scripts\Website Blocker``` directory. +* Run using Python + ```bash + sudo python admin.py + ``` +Note: Add your end time in the `admin.py` file. + +Blocking: +![img.png](assets/img.png) +![img_2.png](assets/img_2.png) + +Unblocking: +![img_1.png](assets/img_1.png) +![img_3.png](assets/img_3.png) \ No newline at end of file diff --git a/scripts/Website Blocker/admin.py b/scripts/Website Blocker/admin.py new file mode 100644 index 0000000..de53648 --- /dev/null +++ b/scripts/Website Blocker/admin.py @@ -0,0 +1,7 @@ +from datetime import datetime +from start_website_blocker import Blocker + +end_time = datetime(2021, 10, 1, 20) # y, m, d, h, min +sites_to_block = ['www.facebook.com', 'facebook.com'] +block = Blocker(end_time, sites_to_block) +block.block_websites() diff --git a/scripts/Website Blocker/assets/img.png b/scripts/Website Blocker/assets/img.png new file mode 100644 index 0000000..4f0a8a3 Binary files /dev/null and b/scripts/Website Blocker/assets/img.png differ diff --git a/scripts/Website Blocker/assets/img_1.png b/scripts/Website Blocker/assets/img_1.png new file mode 100644 index 0000000..3c534d7 Binary files /dev/null and b/scripts/Website Blocker/assets/img_1.png differ diff --git a/scripts/Website Blocker/assets/img_2.png b/scripts/Website Blocker/assets/img_2.png new file mode 100644 index 0000000..8c5fd74 Binary files /dev/null and b/scripts/Website Blocker/assets/img_2.png differ diff --git a/scripts/Website Blocker/assets/img_3.png b/scripts/Website Blocker/assets/img_3.png new file mode 100644 index 0000000..0c6d16a Binary files /dev/null and b/scripts/Website Blocker/assets/img_3.png differ diff --git a/scripts/Website Blocker/start_website_blocker.py b/scripts/Website Blocker/start_website_blocker.py new file mode 100644 index 0000000..9e1a8af --- /dev/null +++ b/scripts/Website Blocker/start_website_blocker.py @@ -0,0 +1,42 @@ +# a simple script to block websites +from datetime import datetime +import sys + +if sys.platform == 'win32': + hosts_path = r"C:\Windows\System32\drivers\etc\hosts" +else: + hosts_path = '/private/etc/hosts' + +redirect = "127.0.0.1" + + +class Blocker: + def __init__(self, time, block): + self.time = time + self.block = block + + def block_websites(self): + if datetime.now() < self.time: + print("Block sites") + with open(hosts_path, 'r+') as hostfile: + hosts_content = hostfile.read() + for site in self.block: + if site not in hosts_content: + hostfile.write(redirect + " " + site + "\n") + else: + print('Unblock sites') + with open(hosts_path, 'r+') as hostfile: + lines = hostfile.readlines() + hostfile.seek(0) + for line in lines: + if not any(site in line for site in self.block): + hostfile.write(line) + hostfile.truncate() + + +# sudo python main.py +if __name__ == '__main__': + end_time = datetime(2021, 10, 1, 20) # y, m, d, h, min + sites_to_block = ['www.facebook.com', 'facebook.com'] + block = Blocker(end_time, sites_to_block) + block.block_websites()