visit
Requirements
We are going to use time and Datetime Module only which comes by default with the Python Standard Library therefore you don’t need to install anything.
Instead of adding
'www.facebook.com'
we will add
'127.0.0.1 www.facebook.com'
if working_time:
add mapped websites url to host file
else:
remove the website files from the host fle
Location of hosts file
Host file that we need to edit are being stored on different path depending on Operating system you’re usingFor those in Linux:Linux_host = "/etc/hosts"
Window_host = r"C:\Windows\System32\drivers\etc\hosts"
import time
from datetime import datetime as dt
sites_to_block = [
'www.facebook.com', 'facebook.com',
'www.youtube.com', 'youtube.com',
'www.gmail.com', 'gmail.com'
]
Linux_host = '/etc/hosts'
Window_host = r"C:\Windows\System32\drivers\etc\hosts"
redirect = "127.0.0.1"
import time
from datetime import datetime as dt
sites_to_block = [
'www.facebook.com', 'facebook.com',
'www.youtube.com', 'youtube.com',
'www.gmail.com', 'gmail.com'
]
Linux_host = '/etc/hosts'
Window_host = r"C:\Windows\System32\drivers\etc\hosts"
default_hoster = Linux_host
redirect = "127.0.0.1"
def block_websites(start_hour , end_hour):
while True:
if dt(dt.now().year, dt.now().month, dt.now().day,start_hour)< dt.now() < dt(dt.now().year, dt.now().month, dt.now().day,end_hour):
print("Do the work ....")
with open(default_hoster, 'r+') as hostfile:
hosts = hostfile.read()
for site in sites_to_block:
if site not in hosts:
hostfile.write(redirect+' '+site+'\n')
else:
with open(default_hoster, 'r+') as hostfile:
hosts = hostfile.readlines()
hostfile.seek(0)
for host in hosts:
if not any(site in host for site in sites_to_block):
hostfile.write(host)
hostfile.truncate()
print('Good Time')
time.sleep(3)
if __name__ == '__main__':
block_websites(9, 18)
Previously published at