Example #1
0
 def filling_list_of_letters(self):
     try:
         name_of_folder = self.Main_window.Folders_box.currentText()
     except Exception:
         name_of_folder = 'INBOX'
     list_of_folders = self.Imap.parse_list_of_folders()
     if len(list_of_folders) == 0:
         self.Grid.addWidget(
             QtWidgets.QLabel('Problems with decode folders'), 0, 0)
     for item in list_of_folders:
         if item[0] == name_of_folder:
             self.Imap.select_folder(item[1])
             break
     try:
         count_of_letters = int(self.Imap.get_count_of_letters())
     except Exception:
         self.Imap.select_folder('INBOX')
         print('не упал')
         count_of_letters = int(self.Imap.get_count_of_letters())
         print('упал')
     if count_of_letters == 0:
         self.Grid.addWidget(QtWidgets.QLabel('No letters'), 0, 0)
     else:
         trd = DownloadThread(self.Imap, count_of_letters)
         self.trd = trd
         trd.start()
         trd.finished.connect(self.finished)
         self.set_disabled(True)
Example #2
0
 def start(self):
     if self.stopping:
         return
     self.thread_ = DownloadThread(self.url, self.target)
     self.thread_.completed.connect(self._on_completed)
     self.thread_.aborted.connect(self._on_aborted)
     self.thread_.failed.connect(self._on_failed)
     self.thread_.progressed.connect(self._on_progressed)
     self.thread_.start()
Example #3
0
 def show_more_clicked(self):
     index = self.Index_of_current_letter
     count = int(self.Imap.get_count_of_letters()) - index - 1
     if count <= 0:
         return
     self.trd = DownloadThread(self.Imap, count)
     self.trd.start()
     self.trd.finished.connect(self.finished)
     self.set_disabled(True)
Example #4
0
    def createThread(self):
        """create a download thread"""

        thread = DownloadThread(self)
        self.threads.append(thread)
Example #5
0
 def startDownload(self, downloadInfo):
     """ 通过DonwloadInfo模型中的数据进行下载 """
     name = downloadInfo.title + ".torrent"
     downloadThread = DownloadThread(downloadInfo = downloadInfo, name = name, sem = self.sem)
     downloadThread.start()
Example #6
0
    def download(self):
        try:
            self.d_size = long(self.info['Content-Length'])
            print "File size :", self.d_size
        except:
            print "Resume support not available."
            print "Exiting..."
            sys.exit(1)

        try:
            if self.info['Accept-Ranges'] != 'bytes':
                print 'It seems that server does not support byte ranges.I don\'t know how to handle this, so I am EXITING. If you know what can be done then please inform author at itrishansh[at]gmail[dot]com.'
                sys.exit(1)
        except:
            print "Server doesn\'t support ranges."
        self.parts = []
        end = 0
        while (end + self.part_size) < self.d_size:
            self.parts.append((str(end), str(end + self.part_size - 1)))
            #print (str(end), str(end + self.part_size -1))
            end = end + self.part_size
            #print end
        if end < self.d_size:
            self.parts.append((str(end), ''))
        self.nparts = len(self.parts)

        #print self.parts
        queueLock = threading.Lock()
        workQueue = Queue.Queue(len(self.parts))
        threads = []
        threadID = 1

        # Create new threads
        while threadID <= self.n_threads:
            thread = DownloadThread(threadID, 'Thread-' + str(threadID),
                                    self.name, workQueue, queueLock, self.exit,
                                    self.url)
            thread.start()
            threads.append(thread)
            threadID += 1

        # Fill the queue
        queueLock.acquire()
        i = 0
        for part in self.parts:
            workQueue.put(part + (i, ))
            i += 1
        queueLock.release()
        del i

        # Wait for queue to empty
        while not workQueue.empty():
            time.sleep(1)

        # Notify threads it's time to exit
        #print "Modifying exitFlag"
        self.exitFlag = 1

        # Wait for all threads to complete
        for t in threads:
            t.join()

        print 'Merging downloaded parts'
        self.merge()

        print "Exiting Main Thread"
Example #7
0
def start_download_img(url, file_name):
    t = DownloadThread(arg=(url, file_name))
    t.setDaemon(True)
    t.start()