Skip to content

Commit 990cce0

Browse files
committed
change item to target
1 parent 4f03032 commit 990cce0

File tree

9 files changed

+8627
-34
lines changed

9 files changed

+8627
-34
lines changed

FunPy02_SanDealTiki/DealHunter.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from threading import Thread
22
import time
33
import random
4-
from os import system, name
54

6-
from Item import Item
5+
6+
from Target import Target
77

88
class DealHunter (Thread):
99
DELAY_TIME = 0.2
@@ -13,22 +13,26 @@ def __init__(self, targetItem):
1313
Thread.__init__(self)
1414
self.item = targetItem
1515
self.name = self.item.name
16+
self.foundUrl = ""
17+
self.status = "...INIT..."
1618

1719

1820
def start(self):
19-
print("=== [" + self.name + "] STARTED ===")
21+
# print("=== [" + self.name + "] STARTED ===")
22+
self.status = "...STARTED..."
2023
return super().start()
2124

2225

2326
def run(self):
2427
i = 0
25-
# time.sleep(1)
28+
self.status = "...RUNNING..."
2629
while True:
2730
i += 1
28-
# system("clear")
29-
print(self.name + " - " + str(i))
31+
# print(self.name + " - " + str(i))
3032
# time.sleep(random.random())
3133
time.sleep(DealHunter.DELAY_TIME)
32-
if i > DealHunter.LOOP_COUNT:
34+
if i > random.randrange(10, 30): #DealHunter.LOOP_COUNT
3335
break
34-
print("=== [" + self.name +"] FINISHED ===")
36+
# print("=== [" + self.name +"] FINISHED ===")
37+
self.foundUrl = "...FINISHED..."
38+
self.status = self.foundUrl

FunPy02_SanDealTiki/Helper.py

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
from Item import Item
1+
from threading import Thread
2+
from Target import Target
3+
from os import system, name
4+
import time
25

36
def getItems(fileName):
47
inputFile = open(fileName, "r")
@@ -9,12 +12,39 @@ def getItems(fileName):
912
listItem = []
1013

1114
i = 0
12-
while i < lineCount:
15+
while (i+2) < lineCount:
1316
# print(lines[i])
1417
if(len(lines) == 0):
1518
break
16-
item = Item(lines[i].strip(), lines[i+1].strip())
19+
item = Target(lines[i].strip(), lines[i+1].strip(), lines[i+2].strip())
1720
listItem.append(item)
18-
i += 2
21+
i += 3
1922

2023
return listItem
24+
25+
26+
class Display(Thread):
27+
28+
def __init__(self):
29+
Thread.__init__(self)
30+
self.listHunter = []
31+
32+
def addHunter(self, hunter):
33+
self.listHunter.append(hunter)
34+
35+
def display(self):
36+
for hunter in self.listHunter:
37+
print(hunter.name + ": " + hunter.status)
38+
39+
def isRuning(self):
40+
bIsRunning = False
41+
for hunter in self.listHunter:
42+
bIsRunning |= hunter.is_alive()
43+
return bIsRunning
44+
45+
def run(self):
46+
while self.isRuning():
47+
self.display()
48+
time.sleep(0.5)
49+
system("clear")
50+
self.display()

FunPy02_SanDealTiki/Item.py

Lines changed: 0 additions & 7 deletions
This file was deleted.

FunPy02_SanDealTiki/SanDealTiki.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
# import Item as it
2-
from Item import Item
1+
from Target import Target
32
from threading import Thread
43
from DealHunter import DealHunter
54
import Helper
@@ -10,26 +9,30 @@
109
INPUT_FILE = "items_25.txt"
1110

1211
def main(fileName):
12+
# get data from file
1313
listItem = Helper.getItems(fileName)
14-
gang = []
14+
15+
listThread = []
16+
17+
# create display thread
18+
displayThread = Helper.Display()
19+
listThread.append(displayThread)
1520

16-
start = timeit.default_timer()
21+
# create hunter threads
1722
for item in listItem:
1823
hunter = DealHunter(item)
24+
25+
listThread.append(hunter)
26+
displayThread.addHunter(hunter)
27+
1928
hunter.start()
20-
gang.append(hunter)
21-
# hunter.join()
2229

23-
24-
# time.sleep(3)
25-
for hunter in gang:
26-
hunter.join()
27-
28-
start = timeit.default_timer() - start
29-
print("=========== "+ str(start) +" ==============")
30-
time.sleep(3)
31-
print("============2=============")
30+
displayThread.start()
3231

32+
# join all thread
33+
for t in listThread:
34+
t.join()
35+
3336
if __name__ == '__main__':
3437
if(len(sys.argv) > 1):
3538
main(sys.argv[1])

FunPy02_SanDealTiki/Target.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Target:
2+
def __init__(self, name = "N/A", maxPrice = 1000, url = "None"):
3+
self.name = name
4+
self.url = url
5+
self.maxPrice = maxPrice
6+
7+
def info(self):
8+
print("Name: " + self.name + "\n" + "PRICE: " + self.maxPrice + "\n" + "Url: " + self.url + "\n")

FunPy02_SanDealTiki/Test.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import requests
2+
from bs4 import BeautifulSoup
3+
4+
URL = "https://tiki.vn/search?q=Apple%20AirPods%202&_lc=Vk4wMzQwMjcwMDM=&headphone_type=108271"
5+
6+
req = requests.get(URL)
7+
file = open("template.html", "w+")
8+
file.writelines(req.text)
9+
file.close()
10+
soup = BeautifulSoup(req.text, "lxml")

FunPy02_SanDealTiki/items_25.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
Apple AirPods 2
2+
1000
23
https://tiki.vn/search?q=Apple%20AirPods%202&_lc=Vk4wMzQwMjcwMDM=&headphone_type=108271
34
Macbook Air 2017
5+
10000
46
https://tiki.vn/macbook-imac/c2458?q=macbook+air+2017&ref=searchBar&_lc=Vk4wMzQwMjcwMDM=
57
Samsung Galaxy A11
8+
1000
69
https://tiki.vn/dien-thoai-smartphone/c1795?q=samsung+galaxy+a11&ref=searchBar&_lc=Vk4wMzQwMjcwMDM=

FunPy02_SanDealTiki/items_26.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
iPhone 11 Pro
2+
10000
23
https://tiki.vn/thuong-hieu/apple.html?q=iphone%2011%20pro&_lc=Vk4wMzQwMjcwMDM=
34
Sony WF-XB700
5+
1000
46
https://tiki.vn/tai-nghe-bluetooth/c1811?q=sony%20wf-xb700&_lc=Vk4wMzQwMjcwMDM=&headphone_type=108271

0 commit comments

Comments
 (0)