diff --git a/main.py b/main.py index 7cc4b89..4b736f0 100644 --- a/main.py +++ b/main.py @@ -87,6 +87,17 @@ async def transcreve_audios(request: Request): ) return {"message": "Mensagem não autorizada para processamento"} + # Verificação do modo de processamento (grupos/todos) + process_mode = storage.get_process_mode() + is_group = "@g.us" in remote_jid + + if process_mode == "groups_only" and not is_group: + storage.add_log("INFO", "Mensagem ignorada - modo apenas grupos ativo", { + "remote_jid": remote_jid, + "process_mode": process_mode + }) + return {"message": "Modo apenas grupos ativo - mensagens privadas ignoradas"} + if from_me and not dynamic_settings["PROCESS_SELF_MESSAGES"]: storage.add_log("INFO", "Mensagem própria ignorada", { "remote_jid": remote_jid diff --git a/manager.py b/manager.py index 6617174..d82a2c4 100644 --- a/manager.py +++ b/manager.py @@ -486,6 +486,27 @@ def manage_settings(): key="process_self_messages" ) + st.subheader("🔄 Modo de Processamento") + # Obter o modo atual do Redis + current_mode = get_from_redis("process_mode", "all") + # Definir as opções e seus rótulos + mode_options = ["all", "groups_only"] + mode_labels = { + "all": "Todos (Grupos e Privado)", + "groups_only": "Apenas Grupos" + } + # Calcular o índice atual baseado no valor do Redis + current_index = mode_options.index(current_mode) if current_mode in mode_options else 0 + + process_mode = st.selectbox( + "Processar mensagens de:", + options=mode_options, + format_func=lambda x: mode_labels[x], + index=current_index, + key="process_mode", + help="Escolha se deseja processar mensagens de todos os contatos ou apenas de grupos" + ) + # Configuração de idioma st.markdown("---") st.subheader("🌐 Idioma") @@ -594,6 +615,9 @@ def manage_settings(): # Salvar configuração de idioma save_to_redis("TRANSCRIPTION_LANGUAGE", selected_language) + # Salvamento do modo de processamento + save_to_redis("process_mode", process_mode) + st.success("✅ Todas as configurações foram salvas com sucesso!") # Mostrar resumo diff --git a/storage.py b/storage.py index 3c65a5f..4c1cdd7 100644 --- a/storage.py +++ b/storage.py @@ -213,4 +213,8 @@ class StorageHandler: def save_message_settings(self, settings: dict): """Salva as configurações de mensagens.""" for key, value in settings.items(): - self.redis.set(self._get_redis_key(key), str(value)) \ No newline at end of file + self.redis.set(self._get_redis_key(key), str(value)) + + def get_process_mode(self): + """Retorna o modo de processamento configurado""" + return self.redis.get(self._get_redis_key("process_mode")) or "all" \ No newline at end of file