-
Notifications
You must be signed in to change notification settings - Fork 0
/
pinger.py
100 lines (84 loc) · 2.51 KB
/
pinger.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
from bs4 import BeautifulSoup
from html.parser import HTMLParser
from time import localtime
from requests import get
from json import dumps, load
from threading import Thread, active_count
#Prints help manual to console
def print_manual():
manual = open('help.txt', 'r')
print (manual.read())
manual.close()
def html_request(url):
try:
new_request = get(url)
except Exception:
print ("Error making HTTP request")
return False
else:
return BeautifulSoup(new_request.text, "html.parser")
#Halts program for configured time before making another request
def wait():
for timer in range(config.interval):
if continue_condition:
sleep(1)
else:
break
#returns string containing the title of the part given by website / makes HTTP request
def get_product_name(url):
html_object = html_request(url)
if not (html_object):
return
html_object = BeautifulSoup(html_object.text, "html.parser")
product_name = html_object.find_all("h1", class_="productName_2KoPa")
return product_name.string
def looper():
while continue_condition:
config.load_config()
checker()
wait()
#start application
def start():
if (active_count() > 1):
print("Checker already running. \n")
return
print ("Starting checker \n")
global continue_condition
continue_condition = True
process = Thread(target=looper)
process.start()
#stop application
def stop():
if (active_count() == 1):
print ("Checker not running.\n")
return
print ("Stopping checker.\n")
global continue_condition
continue_condition = False
def main():
command_dict = {"instock": print_in_stock,
"new": config.add_product,
"del": config.delete_product,
"help": print_manual,
"fresh": config_reset,
"start": start,
"stop": stop}
while True:
print ("-------------------------")
user_input = input()
print ("-------------------------")
if (user_input in command_dict.keys()):
command_dict[user_input]()
elif (user_input == "exit"):
stop()
print("Program exiting.")
break
elif (user_input == ""):
print ("")
else:
print ("Unknown command.")
if __name__ == '__main__':
config = Config()
in_stock_dict = dict()
config.load_config()
main()