diff --git a/Home.py b/Home.py index f5a5656..eb351c1 100644 --- a/Home.py +++ b/Home.py @@ -2,6 +2,7 @@ import login as login import profile +from pages.Profile import profile_page from login import login_page def main(): @@ -10,9 +11,9 @@ def main(): if st.session_state.page == 'login': show_home_page() - login.login_page() + login_page() elif st.session_state.page == 'profile': - profile.profile_page() + profile_page() def show_home_page(): st.title("MyGameHub 🕹️") diff --git "a/pages/\360\237\221\244 Profile.py" b/pages/Profile.py similarity index 97% rename from "pages/\360\237\221\244 Profile.py" rename to pages/Profile.py index 0051517..581ee59 100644 --- "a/pages/\360\237\221\244 Profile.py" +++ b/pages/Profile.py @@ -125,7 +125,7 @@ def profile_page(): else: st.write("Você ainda não fez nenhuma avaliação.") - elif settings_mode == "Configurações de Conta": + else: st.header("Configurações de Conta") with st.form("account_settings"): @@ -146,7 +146,8 @@ def profile_page(): st.write("---") st.write("### Deletar Conta") if st.button("Deletar Conta"): - if st.confirm("Tem certeza de que deseja deletar sua conta? Esta ação não pode ser desfeita."): + confirm_delete = st.checkbox("Confirmar Deleção de Conta") + if confirm_delete: delete_account(user.id) st.session_state.clear() st.success("Conta deletada com sucesso. Por favor, feche o aplicativo.") diff --git "a/pages/\360\237\247\240 Reviews.py" "b/pages/\360\237\247\240 Reviews.py" index b5d3c30..f96898d 100644 --- "a/pages/\360\237\247\240 Reviews.py" +++ "b/pages/\360\237\247\240 Reviews.py" @@ -1,6 +1,7 @@ import streamlit as st import pandas as pd import plotly.graph_objects as go +from transformers import pipeline def load_custom_css(): with open('src/data/styleReviews.css') as f: @@ -63,6 +64,17 @@ def add_review(reviews, novo_review): save_reviews(reviews) return reviews +def analyze_sentiment(text): + sentiment_pipeline = pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment") + result = sentiment_pipeline(text)[0] + label = result['label'] + if label == '1 star' or label == '2 stars': + return 'Negative' + elif label == '5 stars' or label == '4 stars': + return 'Positive' + else: + return 'Neutral' + def main(): st.title("Avaliação de Jogos") st.sidebar.markdown("# Reviews 🧠") @@ -91,14 +103,25 @@ def main(): comentario = st.text_area("Comentário") favorito = st.checkbox("Favoritar este jogo") + if st.button("Analisar Sentimento"): + sentimento = analyze_sentiment(comentario) + if sentimento == 'Positive': + st.success("O sentimento do comentário é positivo!") + elif sentimento == 'Negative': + st.error("O sentimento do comentário é negativo.") + else: + st.info("O sentimento do comentário é neutro.") + # Submissão de avaliação if st.button("Enviar Avaliação"): + sentimento = analyze_sentiment(comentario) novo_review = { "jogo_id": jogo_id, "usuario": usuario, "nota": nota, "comentario": comentario, - "favorito": favorito + "favorito": favorito, + "sentimento": sentimento # Adiciona o sentimento ao review } reviews = add_review(reviews, novo_review) st.success("Avaliação enviada com sucesso!") @@ -109,6 +132,10 @@ def main(): if avaliacoes_filtradas.empty: st.write("Ainda não há avaliações para este jogo.") else: + # Adiciona a coluna de sentimento, se não existir + if 'sentimento' not in avaliacoes_filtradas.columns: + avaliacoes_filtradas['sentimento'] = avaliacoes_filtradas['comentario'].apply(analyze_sentiment) + save_reviews(reviews) # Salva as mudanças no arquivo st.write(avaliacoes_filtradas) if st.button("Mostrar Gráfico com Plotly"): diff --git a/src/data/reviews.csv b/src/data/reviews.csv index 49b22cb..0f77e8d 100644 --- a/src/data/reviews.csv +++ b/src/data/reviews.csv @@ -1,2 +1,7 @@ -jogo_id,usuario,nota,comentario,favorito -2,Luis,10,Eu amo!,True +jogo_id,usuario,nota,comentario,favorito,sentimento +2,Luis,10,Eu amo!,True, +1,luishmq,5,,False, +1,luishmq,8,Jogo muito bom!,False, +1,luishmq,8,Jogo excelente!,True,Positive +2,luis,2,Jogo ruim demais...,False,Negative +4,luishmq,1,Jogo horrível,False,Negative