Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)