def getSmryNormal(self, event): titlefont = Font(family="Times New Roman", size=20, weight="bold", underline=1) contentfont = Font(family="Interstate", size=14) self.reset_button.configure(state=tk.DISABLED) link = self.entry_link.get() self.entry_link.configure(state='readonly') self.smry_text.configure(state=tk.NORMAL) self.smry_text.delete('1.0', tk.END) self.smry_text.update() time.sleep(0.5) title, smry = lxrTest.generateSummary(link, 'default') self.smry_text.insert(tk.END, title+"\n\n") self.smry_text.tag_add("title", "1.0", "1.end") self.smry_text.tag_configure("title", font=titlefont, foreground="gray") self.smry_text.insert(tk.END, smry) self.smry_text.tag_add("content", "2.0", tk.END) self.smry_text.tag_configure("content", font=contentfont) self.smry_text.configure(state=tk.DISABLED) self.reset_button.configure(state=tk.NORMAL) self.entry_link.configure(state=tk.NORMAL)
def getSmryCustom(self, event): titlefont = Font(family="Times New Roman", size=20, weight="bold", underline=1) contentfont = Font(family="Interstate", size=14) DEFAULT_SUMMARY = 5 # Disable reset button during processing, will enable later self.reset_button.configure(state=tk.DISABLED) # Get text from User Link link = self.entry_link.get() self.entry_link.configure(state='readonly') # Allows editing of the TextBox to insert summary self.smry_text.configure(state=tk.NORMAL) # Delete previous content self.smry_text.delete('1.0', tk.END) # In order for the GUI to update, this line is necessary self.smry_text.update() time.sleep(0.5) # Generate base summary of size 5 self.title, self.sentences, self.scores = lxrTest.generateSummary(link, 'custom') leng = self.scores.__len__() choices = ['# SENTENCES'] for i in range(leng): choices.append(str(i + 1)) ''' self.size_drop.grid_remove() self.size_drop = ttk.Combobox(self.prog1, value=choices, width=14) self.size_drop.grid(row=0, column=2, sticky="") ''' self.size_drop['values'] = choices final_list = np.sort(self.scores[:DEFAULT_SUMMARY]) summary = [self.sentences[i] for i in final_list] # Getting the summary based on summary length prt = '' for val, s in enumerate(summary): prt += str(val + 1) + ". " + s + "\n\n" self.size_drop.current(5) # Inserting summary into the Textfield self.smry_text.insert(tk.END, self.title + "\n\n") self.smry_text.tag_add("title", "1.0", "1.end") self.smry_text.tag_configure("title", font=titlefont, foreground="gray") self.smry_text.insert(tk.END, prt) self.smry_text.tag_add("content", "2.0", tk.END) self.smry_text.tag_configure("content", font=contentfont) self.smry_text.configure(state=tk.DISABLED) self.reset_button.configure(state=tk.NORMAL) self.entry_link.configure(state=tk.NORMAL)
def getSmryCustom(self, event): # DEFAULT_SUMMARY = 5 # Disable reset button during processing, will enable later self.reset_button.configure(state=tk.DISABLED) self.slider.configure(state=tk.DISABLED) # Get text from User Link link = self.entry_link.get() self.entry_link.configure(state='readonly') # Allows editing of the TextBox to insert summary self.smry_text.configure(state=tk.NORMAL) # Delete previous content self.smry_text.delete('1.0', tk.END) # In order for the GUI to update, this line is necessary self.smry_text.update() time.sleep(0.5) # Generate base summary of size 5 try: self.status, self.title, self.sentences, self.scores, self.bound, self.keywords = lxrTest.generateSummary( link, 'custom') except Exception as e: tk.messagebox.showerror('Error', traceback.format_exc()) self.reset_button.configure(state=tk.NORMAL) self.entry_link.configure(state=tk.NORMAL) # print(self.sentences) if self.status == 0: leng = self.scores.__len__() DEFAULT_SUMMARY = int(round((leng / 5), 0)) # DEFAULT_SUMMARY = leng key_string = 'KEYWORDS:' # print(self.keywords) for key in self.keywords: key_string = key_string + key + ', ' key_string = key_string[:-2] self.slider.configure(from_=1, to=leng, showvalue=1, tickinterval=round((leng / 10), 0)) self.slider.grid() final_list = np.sort(self.scores[:DEFAULT_SUMMARY + 1]) # summary = [self.sentences[i] for i in final_list] # Getting the summary based on summary length self.prt = '' tmp = '' bl = -1 br = -1 # print(self.bound) for val, s in enumerate(final_list): for val2 in range(len(self.bound)): if val2 == 0: continue else: if self.bound[val2 - 1] < s <= self.bound[val2]: if self.bound[val2 - 1] == bl and self.bound[val2] == br: # print(self.sentences[s]) tmp += self.sentences[s] else: self.prt += tmp + "\n\n" tmp = "" + self.sentences[s] bl = self.bound[val2 - 1] br = self.bound[val2] break # prt += str(val + 1) + ". " + s + "\n\n" self.reset_button.configure(state=tk.NORMAL) self.entry_link.configure(state=tk.NORMAL) self.slider.configure(state=tk.NORMAL) self.slider.set(DEFAULT_SUMMARY) self.title = re.sub(r'[\n\t]', r'', self.title) self.title = re.sub(r'\s+', r' ', self.title) # Inserting summary into the Textfield self.smry_text.insert(tk.END, self.title + "\n\n") self.smry_text.tag_add("title", "1.0", "1.end") self.smry_text.tag_configure("title", font=config.titlefont_sum, foreground=config.title_text_color) self.smry_text.insert(tk.END, key_string + "\n") self.smry_text.tag_add("key", "3.0", "3.end") self.smry_text.tag_configure("key", font=config.keyfont_sum, foreground=config.title_key_color) self.smry_text.insert(tk.END, self.prt) self.smry_text.tag_add("content", "4.0", tk.END) self.smry_text.tag_configure("content", font=config.contentfont_sum, lmargin2=20, lmargin1=20, rmargin=20) elif self.status == -69: tk.messagebox.showerror("Error", "Invalid Link") self.reset_button.configure(state=tk.NORMAL) self.entry_link.configure(state=tk.NORMAL) self.slider.configure(state=tk.NORMAL) else: tk.messagebox.showerror("Error", "Failed to Retrieve Website. No Internet Connection?") self.reset_button.configure(state=tk.NORMAL) self.entry_link.configure(state=tk.NORMAL) self.slider.configure(state=tk.NORMAL) self.entry_link.delete('0', tk.END) self.smry_text.configure(state=tk.DISABLED)