Skip to content

Commit 0271b36

Browse files
committed
Working with Image Downloading
1 parent dc8c76f commit 0271b36

File tree

6 files changed

+33
-39
lines changed

6 files changed

+33
-39
lines changed

Image/Download.py

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,44 @@
11
import errno
22
import os.path
3-
3+
import Models.Queue.Image
4+
import Models.Complete.Image
45
from Image import Save
56

67

78
class Download():
8-
def __init__(self, file_name, path=''):
9-
self.links = set()
10-
self.completed = set()
11-
self.file_name = file_name
12-
self.file_to_set()
13-
self.path = path
9+
path = 'storage/images'
1410

15-
def file_to_set(self) -> object:
16-
"""
17-
Load links from file and set to Set()
18-
:return: object
19-
"""
20-
if not os.path.exists(self.file_name):
21-
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), self.file_name)
22-
with open(self.file_name, 'rt') as f:
23-
for line in f:
24-
self.links.add(line.replace('\n', ''))
25-
return sorted(self.links)
11+
def __init__(self, take=None):
12+
self.queue = Models.Queue.Image.Image()
13+
self.complete = Models.Complete.Image.Image()
14+
self.limit = take
15+
if not os.path.exists(self.path):
16+
os.makedirs(self.path)
2617

2718
def start(self) -> object:
2819
"""
2920
Start Downloading file
3021
:rtype: object
3122
"""
32-
for file in self.links:
23+
if isinstance(self.limit, int) and len(self.queue.links) >= self.limit:
24+
links = sorted(self.queue.links)[0:self.limit]
25+
else:
26+
links = self.queue.links
27+
28+
for file in links:
3329
try:
34-
img = Save.SaveFile(file, self.path)
30+
img = Save.Save(file, self.path)
3531
img.save()
36-
except:
37-
continue
38-
self.completed.add(file)
39-
self.set_to_file()
32+
except Exception as e:
33+
print(str(e))
34+
self.complete.add(file)
35+
self.save()
4036

41-
def set_to_file(self) -> object:
37+
def save(self) -> object:
4238
"""
4339
Update links txt file
4440
:return : None
4541
"""
46-
remaining = self.links.difference(self.completed)
47-
with open(self.file_name, 'w') as f:
48-
if len(remaining) > 0:
49-
for line in self.links:
50-
f.write(line + "\n")
51-
f.write("")
42+
self.queue.links = self.queue.links.difference(self.complete.links)
43+
self.queue.save()
44+
self.complete.save()
-248 Bytes
Binary file not shown.

Models/Complete/Image.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@ class Image(Model):
55
file_path = 'storage/complete/images.txt'
66

77
def __init__(self):
8-
self.links.clear()
9-
self.fetch()
108
Model.__init__(self)
9+
self.fetch()

Models/Complete/Link.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ class Link(Model):
55
file_path = 'storage/complete/links.txt'
66

77
def __init__(self):
8-
self.links.clear()
9-
self.fetch()
108
Model.__init__(self)
9+
self.fetch()
1110

-26 Bytes
Binary file not shown.

test.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
import os.path;
44
from Crawler.Page import Page
55
from Crawler.Image import Image
6+
from Image.Download import Download
67

78
if __name__ == '__main__':
9+
# page=Page('https://gopostie.com')
10+
# page.save_links()
811

9-
#page=Page('https://gopostie.com')
10-
#page.save_links()
12+
# img = Image('https://gopostie.com')
13+
# img.save_links()
1114

12-
img = Image('https://gopostie.com')
13-
img.save_links()
15+
down = Download()
16+
down.start()

0 commit comments

Comments
 (0)