示例#1
0
 def consumer(queue, rep, total_files, print_progress):
     if print_progress:
         bar = ProgressBar(total_files, width=50)
             
     counter = 0
     try:
         while counter < total_files: # run until all images are fetched
             thread = queue.get(True)
             thread.join()
             if thread.has_result:
                 rep.add_site(thread.tag, thread.id, thread.page)
                 rep.add_image(thread.tag, thread.id, thread.image)
                 counter += 1
                 if print_progress:
                     bar.add()
             else:
                 total_files -= 1
                 if print_progress:
                     bar = ProgressBar(total_files, width=50)
                     bar.add(counter)
 
             if print_progress:
                 sys.stdout.write("%i%% %r fetched %i of %i \r" %( counter*100/total_files, bar, counter, total_files))
                 sys.stdout.flush()
     except KeyboardInterrupt:
         raise