Download app/tars_contexto.py from OpenTARS/openTARS: direct link, hf CLI and curl.
- Browser
- Download file 2.04 kB
-
https://huggingface.co/OpenTARS/openTARS/resolve/main/app/tars_contexto.py
- Command line
-
hf download hf://OpenTARS/openTARS/app/tars_contexto.py
-
curl -L -o tars_contexto.py https://huggingface.co/OpenTARS/openTARS/resolve/main/app/tars_contexto.py
2.04 kB
| """5.2 (F4, contexto do programa em uso): uma sugestão pelo programa ativo, como no mock-up aprovado em 20/10 ("Você está | |
| escrevendo um e-mail. Quer que eu revise a ortografia?"). Só o nome do programa e o título da janela, lidos na hora e | |
| nunca gravados nem enviados; ligado por padrão desde 24/10 (Configurações > Assistente). O histórico da tela estilo Recall fica fora, | |
| por privacidade. Sem Qt.""" | |
| import unicodedata | |
| import tars_i18n | |
| # (sugestão, o programa ou o site no título, o que no título diz que é a janela de escrever) | |
| REGRAS = ( | |
| ("email", ("thunderbird", "outlook", "geary", "evolution", "mailspring", "mail", "correio", "gmail", "proton"), | |
| ("escrever", "nova mensagem", "new message", "compose", "write", "responder", "reply", "rascunho", "draft", "re:", | |
| "fwd:", "encaminhar", "forward")), | |
| ) | |
| def _normal(texto): | |
| return unicodedata.normalize("NFKD", str(texto or "")).encode("ascii", "ignore").decode().lower() | |
| def programa(classe): | |
| """O nome do programa na classe da janela ("Thunderbird thunderbird", "Mail", "Notepad notepad").""" | |
| partes = str(classe or "").split() | |
| return (partes[-1] if partes else "").lower() | |
| def sugestao(titulo, classe): | |
| """A sugestão para esta janela ("email") ou None.""" | |
| titulo_n, classe_n = _normal(titulo), _normal(classe) | |
| for nome, programas, janelas in REGRAS: | |
| if any(p in classe_n or p in titulo_n for p in programas) and any(j in titulo_n for j in janelas): | |
| return nome | |
| return None | |
| def ligado(): | |
| return bool(tars_i18n.ler_config().get("sugestoes_programa")) | |
| def ligar(valor): | |
| tars_i18n.salvar_config(sugestoes_programa=bool(valor)) | |
| def silenciado(nome_programa): | |
| return nome_programa in (tars_i18n.ler_config().get("sugestoes_silenciadas") or []) | |
| def silenciar(nome_programa): | |
| lista = list(tars_i18n.ler_config().get("sugestoes_silenciadas") or []) | |
| if nome_programa and nome_programa not in lista: | |
| tars_i18n.salvar_config(sugestoes_silenciadas=lista + [nome_programa]) | |