worker-automate-hub 0.5.66__py3-none-any.whl → 0.5.68__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- worker_automate_hub/tasks/jobs/conexao_rdp.py +60 -5
- worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +19 -7
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/RECORD +6 -6
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/entry_points.txt +0 -0
| @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            import asyncio
         | 
| 2 2 | 
             
            import platform
         | 
| 3 | 
            +
            import re
         | 
| 3 4 | 
             
            import subprocess
         | 
| 4 5 | 
             
            import socket
         | 
| 5 6 | 
             
            import pyautogui
         | 
| @@ -7,7 +8,7 @@ import os | |
| 7 8 | 
             
            import pygetwindow as gw
         | 
| 8 9 | 
             
            from rich.console import Console
         | 
| 9 10 | 
             
            import pygetwindow as gw
         | 
| 10 | 
            -
            from pywinauto import Application
         | 
| 11 | 
            +
            from pywinauto import Application, Desktop
         | 
| 11 12 | 
             
            from worker_automate_hub.api.client import change_robot_status_true 
         | 
| 12 13 | 
             
            from worker_automate_hub.models.dto.rpa_historico_request_dto import RpaHistoricoStatusEnum, RpaRetornoProcessoDTO, RpaTagDTO, RpaTagEnum
         | 
| 13 14 | 
             
            from worker_automate_hub.models.dto.rpa_processo_rdp_dto import RpaProcessoRdpDTO
         | 
| @@ -127,6 +128,23 @@ class RDPConnection: | |
| 127 128 | 
             
                    except Exception as error:
         | 
| 128 129 | 
             
                        console.print(f"Erro ao abrir a conexão RDP: {error}")
         | 
| 129 130 |  | 
| 131 | 
            +
                async def verificar_conexao_estabelecida(self):
         | 
| 132 | 
            +
                    janelas_rdp = [
         | 
| 133 | 
            +
                        win
         | 
| 134 | 
            +
                        for win in gw.getAllTitles()
         | 
| 135 | 
            +
                        if self.ip in win
         | 
| 136 | 
            +
                    ]
         | 
| 137 | 
            +
             | 
| 138 | 
            +
                    janela = None
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                    for titulo in janelas_rdp:
         | 
| 141 | 
            +
                        janela = gw.getWindowsWithTitle(titulo)[0]
         | 
| 142 | 
            +
                        if not janela:
         | 
| 143 | 
            +
                            console.print(f"Erro ao localizar a janela: {titulo}")
         | 
| 144 | 
            +
                            continue
         | 
| 145 | 
            +
                        else:
         | 
| 146 | 
            +
                            return True
         | 
| 147 | 
            +
             | 
| 130 148 | 
             
                async def conectar(self):
         | 
| 131 149 | 
             
                    console.print(f"Iniciando cliente RDP para {self.ip}")
         | 
| 132 150 | 
             
                    try:
         | 
| @@ -163,8 +181,41 @@ class RDPConnection: | |
| 163 181 | 
             
                        except Exception as e:
         | 
| 164 182 | 
             
                            console.print(f"Erro ao ativar a janela RDP: {e}", style="bold red")
         | 
| 165 183 |  | 
| 184 | 
            +
                        app_window = None
         | 
| 185 | 
            +
                        possible_titles_patterns = [
         | 
| 186 | 
            +
                            re.compile(r"Conexão de Área de Trabalho Remota", re.IGNORECASE),
         | 
| 187 | 
            +
                            re.compile(r"Ligação ao ambiente de trabalho remoto", re.IGNORECASE),
         | 
| 188 | 
            +
                            re.compile(r"Segurança do Windows", re.IGNORECASE)
         | 
| 189 | 
            +
                        ]
         | 
| 190 | 
            +
             | 
| 191 | 
            +
                        janelas = Desktop(backend="uia").windows()
         | 
| 192 | 
            +
                        for janela in janelas:
         | 
| 193 | 
            +
                            titulo = janela.window_text()
         | 
| 194 | 
            +
                            for pattern in possible_titles_patterns:
         | 
| 195 | 
            +
                                if pattern.search(titulo):
         | 
| 196 | 
            +
                                    try:
         | 
| 197 | 
            +
                                        app = Application(backend="uia").connect(title_re=pattern)
         | 
| 198 | 
            +
                                        app_window = app.window(title_re=pattern)
         | 
| 199 | 
            +
                                        console.print(f"Janela encontrada: {titulo}")
         | 
| 200 | 
            +
                                        break
         | 
| 201 | 
            +
                                    except Exception as e:
         | 
| 202 | 
            +
                                        console.print(f"Erro ao conectar a janela '{titulo}': {e}")
         | 
| 203 | 
            +
                            if app_window:
         | 
| 204 | 
            +
                                break
         | 
| 205 | 
            +
             | 
| 206 | 
            +
                        await worker_sleep(2)
         | 
| 207 | 
            +
             | 
| 208 | 
            +
                        if app_window:
         | 
| 209 | 
            +
                            try:
         | 
| 210 | 
            +
                                app_window.restore()
         | 
| 211 | 
            +
                                app_window.set_focus()
         | 
| 212 | 
            +
                                console.print("Foco definido com sucesso.")
         | 
| 213 | 
            +
                            except Exception as e:
         | 
| 214 | 
            +
                                console.print(f"Erro ao definir foco na janela: {e}")
         | 
| 215 | 
            +
                        else:
         | 
| 216 | 
            +
                            console.print("Nenhuma janela correspondente foi encontrada.")
         | 
| 217 | 
            +
             | 
| 166 218 | 
             
                        await worker_sleep(5)
         | 
| 167 | 
            -
                       
         | 
| 168 219 | 
             
                        console.print("Inserindo senha.")
         | 
| 169 220 | 
             
                        pyautogui.write(self.password, interval=0.1)
         | 
| 170 221 | 
             
                        pyautogui.press("enter")
         | 
| @@ -175,8 +226,6 @@ class RDPConnection: | |
| 175 226 | 
             
                        console.print("Credenciais inseridas.")
         | 
| 176 227 | 
             
                        await worker_sleep(5)
         | 
| 177 228 |  | 
| 178 | 
            -
                        console.print("Conexão RDP ativa. Mantendo o script em execução.")
         | 
| 179 | 
            -
                        
         | 
| 180 229 | 
             
                        try:
         | 
| 181 230 | 
             
                            base_path = os.path.join("worker_automate_hub", "tasks", "jobs")
         | 
| 182 231 | 
             
                            rdp_file_path = os.path.join(base_path, "connection.rdp")
         | 
| @@ -184,8 +233,13 @@ class RDPConnection: | |
| 184 233 | 
             
                                os.remove(rdp_file_path)
         | 
| 185 234 | 
             
                        except Exception as error:
         | 
| 186 235 | 
             
                            console.print(f"Erro ao deletar arquivo 'connection.rdp'. Error: {error}")
         | 
| 236 | 
            +
             | 
| 237 | 
            +
                        conexao_rdp_aberta = await self.verificar_conexao_estabelecida()
         | 
| 238 | 
            +
                        if conexao_rdp_aberta is not True:
         | 
| 239 | 
            +
                            raise ConnectionError("Não foi possível estabelecer conexão RDP.")
         | 
| 187 240 |  | 
| 188 241 | 
             
                        return True
         | 
| 242 | 
            +
             | 
| 189 243 | 
             
                    except Exception as e:
         | 
| 190 244 | 
             
                        logger.error(f"Erro ao tentar conectar via RDP: {e}")
         | 
| 191 245 | 
             
                        return False
         | 
| @@ -202,6 +256,7 @@ async def conexao_rdp(task: RpaProcessoRdpDTO) -> RpaRetornoProcessoDTO: | |
| 202 256 | 
             
                            retorno="Não foi possível estabelecer conexão RDP. Verifique o IP e a disponibilidade da porta.",
         | 
| 203 257 | 
             
                            status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         | 
| 204 258 | 
             
                        )
         | 
| 259 | 
            +
             | 
| 205 260 | 
             
                    sucesso_conexao = await rdp.conectar()
         | 
| 206 261 | 
             
                    if sucesso_conexao:
         | 
| 207 262 | 
             
                        console.print("Processo de conexão RDP executado com sucesso.")
         | 
| @@ -224,7 +279,7 @@ async def conexao_rdp(task: RpaProcessoRdpDTO) -> RpaRetornoProcessoDTO: | |
| 224 279 | 
             
                            status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
         | 
| 225 280 | 
             
                        )
         | 
| 226 281 | 
             
                except Exception as ex:
         | 
| 227 | 
            -
                    err_msg = f"Erro ao executar  | 
| 282 | 
            +
                    err_msg = f"Erro ao executar conexão RDP: {ex}"
         | 
| 228 283 | 
             
                    logger.error(err_msg)
         | 
| 229 284 | 
             
                    console.print(err_msg, style="bold red")
         | 
| 230 285 | 
             
                    return RpaRetornoProcessoDTO(
         | 
| @@ -216,19 +216,31 @@ async def gerar_nosso_numero(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD | |
| 216 216 | 
             
                    button_ok.click()
         | 
| 217 217 |  | 
| 218 218 | 
             
                    await worker_sleep(60)
         | 
| 219 | 
            -
                    
         | 
| 220 | 
            -
                     | 
| 221 | 
            -
                     | 
| 222 | 
            -
                     | 
| 223 | 
            -
             | 
| 224 | 
            -
             | 
| 219 | 
            +
                    boleto_argenta = None
         | 
| 220 | 
            +
                    max_trys = 5
         | 
| 221 | 
            +
                    trys = 0
         | 
| 222 | 
            +
                    while boleto_argenta != None and trys <= max_trys:
         | 
| 223 | 
            +
                        try:
         | 
| 224 | 
            +
                            app = Application().connect(title="BOLETO ARGENTA_1")
         | 
| 225 | 
            +
                            boleto_argenta = app["BOLETO ARGENTA_1"]
         | 
| 226 | 
            +
                            console.log("Boleto Argenta sendo fechado", style="bold green")
         | 
| 227 | 
            +
                            boleto_argenta.close()
         | 
| 228 | 
            +
                            break
         | 
| 229 | 
            +
                        except:
         | 
| 230 | 
            +
                            console.print("Tela de boleto Argenta ainda não encontrada", style="bold yellow")
         | 
| 231 | 
            +
                        
         | 
| 232 | 
            +
                        trys += 1
         | 
| 233 | 
            +
                        await worker_sleep(60)
         | 
| 234 | 
            +
                        
         | 
| 235 | 
            +
                    await worker_sleep(5)
         | 
| 225 236 | 
             
                    #Confirmando tela de impressão
         | 
| 226 237 | 
             
                    #Clica em "Yes"
         | 
| 227 238 | 
             
                    # pyautogui.click(900, 561)
         | 
| 228 239 | 
             
                    #Clica em "No"
         | 
| 229 240 | 
             
                    pyautogui.click(1000, 561)
         | 
| 230 241 |  | 
| 231 | 
            -
                    await worker_sleep( | 
| 242 | 
            +
                    await worker_sleep(5)
         | 
| 243 | 
            +
             | 
| 232 244 | 
             
                    if boleto_argenta:
         | 
| 233 245 | 
             
                        return RpaRetornoProcessoDTO(
         | 
| 234 246 | 
             
                            sucesso=True,
         | 
| @@ -35,7 +35,7 @@ worker_automate_hub/models/dto/rpa_sistema_dto.py,sha256=sLkmJei8x6sl-1-IXUKDmYQ | |
| 35 35 | 
             
            worker_automate_hub/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 36 36 | 
             
            worker_automate_hub/tasks/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 37 37 | 
             
            worker_automate_hub/tasks/jobs/coleta_dje_process.py,sha256=UkLWTC5Ub2qBb0yY-8IZ0DLLOVJOfNTq_z9krx_t25Q,29476
         | 
| 38 | 
            -
            worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256= | 
| 38 | 
            +
            worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=S6QC4xhuo0pB5FjaUJZNMm1LIgEjpjifReCTBDqxH-U,11719
         | 
| 39 39 | 
             
            worker_automate_hub/tasks/jobs/descartes.py,sha256=0bMCJ0xIcK8TLSgjF6taAbGFLMU-sGDVFIhUYSRtrbg,41092
         | 
| 40 40 | 
             
            worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py,sha256=Ao8z3KrJn8sdglp65tdW0sMp-g5EPlo5JOv7fMSF4yc,79854
         | 
| 41 41 | 
             
            worker_automate_hub/tasks/jobs/ecac_estadual_go.py,sha256=dKkf22nH5gp3RErq5u0UzRsKyJ81fc6ZZ4vLtUuMwHA,21002
         | 
| @@ -58,7 +58,7 @@ worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py,sha256=iXbkjdg02r3tdt3eH | |
| 58 58 | 
             
            worker_automate_hub/tasks/jobs/entrada_de_notas_9.py,sha256=vUj25yHxkCNhpyOU5Vk81gsYcTTH1TJ3yn-b8N00JfQ,52857
         | 
| 59 59 | 
             
            worker_automate_hub/tasks/jobs/exemplo_processo.py,sha256=nV0iLoip2FH2-FhLmhX3nPqsfl_MPufZ3E5Q5krJvdc,3544
         | 
| 60 60 | 
             
            worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py,sha256=8GVImU7EnncCSxbbuEC4-EBE8oGTk6CJ-HFNqJ5OiMs,5564
         | 
| 61 | 
            -
            worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256= | 
| 61 | 
            +
            worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256=fnTXtf6TKtmiChqzap1BdAfBpnQv2l05-3VS3xUmbKg,10980
         | 
| 62 62 | 
             
            worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py,sha256=QBGm6eS5JghgNWNqZlk1g2a2iV8LnBLiOTBBL3Giet0,4181
         | 
| 63 63 | 
             
            worker_automate_hub/tasks/jobs/login_emsys.py,sha256=scdKsseFOL-7UQ5D743VaZZzWBKaEfq0XzYNmROUOgE,5703
         | 
| 64 64 | 
             
            worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py,sha256=jcfhppG-MhuZYKEIt8O8NaJfdV3figNXrKt4zPqeQi0,5644
         | 
| @@ -76,7 +76,7 @@ worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbV | |
| 76 76 | 
             
            worker_automate_hub/utils/util.py,sha256=_uPyZOzb8puEKXUmcFkaf7HesJBs8yITRQkOqViyugU,161430
         | 
| 77 77 | 
             
            worker_automate_hub/utils/utils_nfe_entrada.py,sha256=iYpOs7fb7C3bY61QHySr00xlDNzrrCP0zaexOpBPuaQ,31930
         | 
| 78 78 | 
             
            worker_automate_hub/worker.py,sha256=CT-poyP1ZYvubArYsnnNd9oJ53SPaDwgr6p6keS3nI4,6248
         | 
| 79 | 
            -
            worker_automate_hub-0.5. | 
| 80 | 
            -
            worker_automate_hub-0.5. | 
| 81 | 
            -
            worker_automate_hub-0.5. | 
| 82 | 
            -
            worker_automate_hub-0.5. | 
| 79 | 
            +
            worker_automate_hub-0.5.68.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
         | 
| 80 | 
            +
            worker_automate_hub-0.5.68.dist-info/METADATA,sha256=4NOBuSV3_WQconVJIWJ3KImwE9k_CBR8WK1W4GPS608,2894
         | 
| 81 | 
            +
            worker_automate_hub-0.5.68.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
         | 
| 82 | 
            +
            worker_automate_hub-0.5.68.dist-info/RECORD,,
         | 
| 
            File without changes
         | 
    
        {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/entry_points.txt
    RENAMED
    
    | 
            File without changes
         |