import streamlit as st 
from PyPDF2 import PdfReader
from transformers import pipeline
summarizer = pipeline(task="summarization")
# Basic text summary
st.set_page_config(
    page_title='Text Summarizer'
)
st.title('Text Summarization')
# Text summary function
def summarize_text(text):
    summary = summarizer(text)
    summary = summary[0]['summary_text']
    return summary
input = st.text_area('Enter long text')
if st.button('Summarize text'):
    with st.spinner('Summarizing'):
         output = summarize_text(input)
         st.success('Summary complete ')
        
    st.markdown(f'''
            
                ''', unsafe_allow_html=True)
    
    
    
#####
# PDF summary section
st.subheader('PDF summary')
try:
    # Upload file
    uploaded_pdf = st.file_uploader('Choose a pdf file', type=['pdf'])
    if uploaded_pdf is not None:
        st.success('Succesfully uploaded')
        
    # Extract PDF content    
    def extract_text(pdf_file):
        pdf_content = PdfReader(pdf_file)
        pages =pdf_content.pages
        # page_count = len(pages)
        
        page_text_stack = []
        for page in pages:
            page_text = page.extract_text()
            page_text_stack.append(page_text)
        return page_text_stack
    with st.spinner('Extracting text from PDF...'):
        pdf_input = extract_text(uploaded_pdf)
        st.success('Text extracted')
        pdf_output = []
    
        for stack in pdf_input:
            summarize_text(stack)
            pdf_output.append(stack)
    with st.spinner('Summarizing extracted text...'):
        pdf_summary = '\n\n'.join(pdf_output)
        st.success('Summary complete')
except: # Handle blank file error
    st.error('Please select a valid file')
#  Prepare output 
# summary_pdf = pdfkit.from_string(pdf_output, 'Summary.pdf')
if st.button('Summarize pdf page'):
    st.markdown(f'''
            
            Download the summary here 
                
                    {pdf_summary}
                
             
                ''', unsafe_allow_html=True)
    # st.write('Download summary pdf here')
    # download_button = st.download_button(summary_pdf, label='Download summary')
    st.success('PDF page summarized :)', icon="✅")
st.write('')
st.write('')
st.markdown("
", unsafe_allow_html=True) #Horizontal line
st.markdown("""
    
    
    
""",
unsafe_allow_html=True)
# Peace Out :)