def search(win, text): if not win.is_searching: win.is_searching = True win.label_status.config(text="Initiation ...", foreground='green') try: finder = Finder() finder.max_page = 2 win.label_status.config( text="Searching in https://www.pdfdrive.com ...") win.progress_bar_reset(50) win.progress_bar.start() win.update() finder.pdfdrive(text) win.label_status.config( text="Searching in http://www.allitebooks.org ...") win.update() finder.allitebooks(text) win.progress_bar.stop() win.label_status.config(text="Loading data ...") win.progress_bar_reset(len(finder.result)) win.update() for data in finder.result: win.progress_bar.step(1) win.label_status.config(text="Loading title ...") win.update() win.insert_text(data["TITLE"].decode(), 'title') win.update() data.pop('TITLE') win.insert_text('\n') if win.show_img: win.label_status.config(text="Downloading img ...") win.update() re = requests.get(data["IMG"].decode()) data.pop('IMG') if re.status_code == 200: #This text permet to center the image win.insert_text('.', 'title') win.label_status.config(text="Loading img ...") #We insert the image after the text win.insert_img(data=re.content) win.insert_text('\n') else: win.insert_text('IMG NOT FOUND', 'error') win.insert_text('\n') win.label_status.config(text="Loading img failed ...", foreground='red') win.update() win.label_status.config(text="Loading others data ...", foreground='green') win.update() for key in data: win.insert_text("%s: %s" % (key, data[key].decode())) win.insert_text('\n') win.update() except requests.exceptions.ConnectionError: win.label_status.config(text="Connection Error", foreground="red") except Exception as err: win.label_status.config(text=str(err), foreground="red") else: win.label_status.config(text="Success") win.progress_bar.stop() win.update() win.is_searching = False else: print("Searching is running")