bot-mwsm 3.0.1 → 3.0.3
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.
- package/.github/CODE_OF_CONDUCT.md +18 -0
- package/.github/CONTRIBUTING.md +29 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +56 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +30 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +23 -0
- package/.github/SECURITY.md +17 -0
- package/.github/workflows/Mwsm.yml +191 -130
- package/.github/workflows/cleanup.yml +31 -0
- package/README.md +34 -128
- package/bot-mwsm-3.0.2.tgz +0 -0
- package/img/Mwsm.png +0 -0
- package/img/menu-mwsm.png +0 -0
- package/img/mkauth-api.png +0 -0
- package/img/mkauth-credenciais.png +0 -0
- package/img/mkauth-opcoes.png +0 -0
- package/img/mkauth-servidor.png +0 -0
- package/img/mwsm-api-auto.png +0 -0
- package/img/mwsm-api-disparo.png +0 -0
- package/img/mwsm-api-one.png +0 -0
- package/img/mwsm-api.png +0 -0
- package/img/mwsm-billing.png +0 -0
- package/img/mwsm-cli.png +0 -0
- package/img/mwsm-connected.png +0 -0
- package/img/mwsm-debbuger-webadmin.png +0 -0
- package/img/mwsm-eraser-webadmin.png +0 -0
- package/img/mwsm-list-webadmin.png +0 -0
- package/img/mwsm-log.png +0 -0
- package/img/mwsm-pix-webadmin.png +0 -0
- package/img/mwsm-qr.png +0 -0
- package/img/mwsm-qrcode.png +0 -0
- package/img/mwsm-qrsucess.png +0 -0
- package/img/mwsm-run.png +0 -0
- package/img/mwsm-schedule.png +0 -0
- package/img/mwsm-settings-extras.png +0 -0
- package/img/mwsm-settings-options.png +0 -0
- package/img/mwsm-settings.png +0 -0
- package/img/mwsm-simulator-webadmin.png +0 -0
- package/img/mwsm-stop-webadmin.png +0 -0
- package/img/mwsm-token.png +0 -0
- package/mwsm.py +0 -14
- package/package.json +5 -12
- package/version.json +4 -3
- package/.github/workflows/publish.yml +0 -62
- package/img/autobot.png +0 -0
- package/img/autupdate.png +0 -0
- package/img/cli.png +0 -0
- package/img/cronshed.png +0 -0
- package/img/debug.log +0 -0
- package/img/debug.png +0 -0
- package/img/delay.png +0 -0
- package/img/dev.png +0 -0
- package/img/endpoint.png +0 -0
- package/img/log.png +0 -0
- package/img/mkauth.png +0 -0
- package/img/msn.png +0 -0
- package/img/paycon.png +0 -0
- package/img/prevent.png +0 -0
- package/img/resent.png +0 -0
- package/img/reset.png +0 -0
- package/img/resync.png +0 -0
- package/img/settings.png +0 -0
- package/img/shifts.png +0 -0
- package/img/spam.png +0 -0
- package/img/spam2.png +0 -0
- package/img/status.png +0 -0
- package/img/status2.png +0 -0
- package/img/stop.png +0 -0
- package/img/sync.png +0 -0
- package/img/terminal.png +0 -0
- package/img/timers.png +0 -0
- package/img/update.png +0 -0
- package/img/whatsapp.png +0 -0
- /package/img/{auth.png → mwsm-auth-webadmin.png} +0 -0
- /package/img/{find.png → mwsm-find-webadmin.png} +0 -0
- /package/img/{success.png → mwsm-success-webadmin.png} +0 -0
- /package/img/{uid.png → mwsm-uid-webadmin.png} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 🤝 Código de Conduta
|
|
2
|
+
|
|
3
|
+
Como participantes e mantenedores do projeto **Mwsm**, comprometemo-nos a criar um ambiente acolhedor, inclusivo e respeitoso.
|
|
4
|
+
|
|
5
|
+
## Comportamento esperado
|
|
6
|
+
- Ser respeitoso com todos
|
|
7
|
+
- Aceitar críticas construtivas
|
|
8
|
+
- Colaborar de forma positiva
|
|
9
|
+
|
|
10
|
+
## Comportamento inaceitável
|
|
11
|
+
- Comentários ofensivos ou discriminatórios
|
|
12
|
+
- Assédio ou intimidação
|
|
13
|
+
- Publicação de informações privadas
|
|
14
|
+
|
|
15
|
+
## Aplicação
|
|
16
|
+
Violação deste código pode resultar em advertência ou banimento de participação.
|
|
17
|
+
|
|
18
|
+
Para reportar incidentes, envie um e-mail para **mkcodec@proton.me**.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 🧩 Guia de Contribuição
|
|
2
|
+
|
|
3
|
+
Obrigado por querer contribuir com o **Mwsm**! 💙
|
|
4
|
+
|
|
5
|
+
## 🚀 Como contribuir
|
|
6
|
+
1. Faça um fork do repositório
|
|
7
|
+
2. Crie uma nova branch:
|
|
8
|
+
```bash
|
|
9
|
+
git checkout -b minha-feature
|
|
10
|
+
```
|
|
11
|
+
3. Faça suas alterações
|
|
12
|
+
4. Commit com mensagem clara:
|
|
13
|
+
```bash
|
|
14
|
+
git commit -m "✨ Nova funcionalidade X"
|
|
15
|
+
```
|
|
16
|
+
5. Envie seu PR (Pull Request)
|
|
17
|
+
|
|
18
|
+
## 🧠 Diretrizes
|
|
19
|
+
- Código limpo e comentado
|
|
20
|
+
- Mensagens de commit objetivas
|
|
21
|
+
- Evite dependências desnecessárias
|
|
22
|
+
|
|
23
|
+
## 🧰 Ambiente recomendado
|
|
24
|
+
- Node.js 18+
|
|
25
|
+
- Git 2.40+
|
|
26
|
+
- Editor: VSCode (com ESLint e Prettier)
|
|
27
|
+
|
|
28
|
+
## 📬 Dúvidas
|
|
29
|
+
Abra uma discussão em [Discussions](https://github.com/MKCodec/Mwsm/discussions).
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: "🐞 Reportar bug"
|
|
2
|
+
description: Crie um relatório para nos ajudar a melhorar o Mwsm.
|
|
3
|
+
title: "[BUG] Descreva o problema brevemente"
|
|
4
|
+
labels: ["bug"]
|
|
5
|
+
assignees: [MKCodec]
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Obrigado por ajudar a melhorar o **Mwsm**! 🧩
|
|
11
|
+
Preencha as informações abaixo com o máximo de detalhes possível.
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: descricao
|
|
14
|
+
attributes:
|
|
15
|
+
label: Descrição do bug
|
|
16
|
+
description: Explique claramente o que está acontecendo.
|
|
17
|
+
placeholder: "Exemplo: O comando 'mwsm update' falha ao tentar migrar o banco."
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
- type: textarea
|
|
21
|
+
id: reproducao
|
|
22
|
+
attributes:
|
|
23
|
+
label: Passos para reproduzir
|
|
24
|
+
description: Liste as etapas para reproduzir o problema.
|
|
25
|
+
placeholder: |
|
|
26
|
+
1. Vá para '...'
|
|
27
|
+
2. Execute '...'
|
|
28
|
+
3. Veja o erro
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
- type: textarea
|
|
32
|
+
id: esperado
|
|
33
|
+
attributes:
|
|
34
|
+
label: Comportamento esperado
|
|
35
|
+
description: O que você esperava que acontecesse?
|
|
36
|
+
placeholder: "Exemplo: Esperava que a atualização fosse concluída sem erros."
|
|
37
|
+
- type: textarea
|
|
38
|
+
id: prints
|
|
39
|
+
attributes:
|
|
40
|
+
label: Capturas de tela
|
|
41
|
+
description: Se possível, adicione prints ou logs que ajudem a entender o problema.
|
|
42
|
+
- type: input
|
|
43
|
+
id: sistema
|
|
44
|
+
attributes:
|
|
45
|
+
label: Sistema operacional
|
|
46
|
+
placeholder: "Exemplo: Ubuntu 22.04 / Windows 11"
|
|
47
|
+
- type: input
|
|
48
|
+
id: versao
|
|
49
|
+
attributes:
|
|
50
|
+
label: Versão do Mwsm
|
|
51
|
+
placeholder: "Exemplo: 3.0.2"
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: contexto
|
|
54
|
+
attributes:
|
|
55
|
+
label: Contexto adicional
|
|
56
|
+
description: Adicione qualquer outra informação relevante.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: "🌟 Solicitar nova funcionalidade"
|
|
2
|
+
description: Sugira uma ideia ou melhoria para o Mwsm.
|
|
3
|
+
title: "[FEATURE] Descreva sua sugestão brevemente"
|
|
4
|
+
labels: ["enhancement"]
|
|
5
|
+
assignees: [MKCodec]
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Quer sugerir algo novo? 🚀
|
|
11
|
+
Conte-nos sua ideia abaixo!
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: proposta
|
|
14
|
+
attributes:
|
|
15
|
+
label: Descrição da funcionalidade
|
|
16
|
+
description: Explique o que você gostaria que fosse adicionado.
|
|
17
|
+
placeholder: "Exemplo: Adicionar suporte automático a OpenRouter."
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
- type: textarea
|
|
21
|
+
id: justificativa
|
|
22
|
+
attributes:
|
|
23
|
+
label: Por que isso é útil?
|
|
24
|
+
description: Qual problema ou limitação isso resolveria?
|
|
25
|
+
placeholder: "Exemplo: Facilitaria a integração com modelos externos."
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: detalhes
|
|
28
|
+
attributes:
|
|
29
|
+
label: Detalhes adicionais
|
|
30
|
+
description: Inclua ideias, exemplos ou referências.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 🔀 Pull Request
|
|
2
|
+
|
|
3
|
+
## 📋 Descrição
|
|
4
|
+
Explique brevemente o que foi alterado ou adicionado.
|
|
5
|
+
|
|
6
|
+
## 🧩 Tipo de alteração
|
|
7
|
+
- [ ] Correção de bug
|
|
8
|
+
- [ ] Nova funcionalidade
|
|
9
|
+
- [ ] Melhoria de código
|
|
10
|
+
- [ ] Documentação
|
|
11
|
+
|
|
12
|
+
## ✅ Checklist
|
|
13
|
+
- [ ] Testado localmente
|
|
14
|
+
- [ ] Documentação atualizada
|
|
15
|
+
- [ ] Nenhum erro no build
|
|
16
|
+
|
|
17
|
+
## 🧠 Contexto adicional
|
|
18
|
+
Adicione observações relevantes ou links relacionados.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
👤 **Autor:** @MKCodec
|
|
23
|
+
🧠 **Revisor:** @MKCodec
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# 🛡️ Política de Segurança
|
|
2
|
+
|
|
3
|
+
Se você encontrar uma vulnerabilidade de segurança no **Mwsm**, **não abra uma issue pública**.
|
|
4
|
+
|
|
5
|
+
## 📩 Como reportar
|
|
6
|
+
Envie um e-mail para **mkcodec@proton.me** com:
|
|
7
|
+
- Descrição clara da vulnerabilidade
|
|
8
|
+
- Etapas de reprodução (se aplicável)
|
|
9
|
+
- Impacto estimado
|
|
10
|
+
|
|
11
|
+
## 🧭 Diretrizes
|
|
12
|
+
Nós:
|
|
13
|
+
- Confirmaremos o recebimento em até 48h
|
|
14
|
+
- Avaliaremos a gravidade em até 7 dias
|
|
15
|
+
- Corrigiremos o problema e informaremos você antes da divulgação pública
|
|
16
|
+
|
|
17
|
+
Agradecemos por ajudar a manter o projeto seguro 💙
|
|
@@ -1,188 +1,249 @@
|
|
|
1
|
-
name: 🔄 Mwsm Version
|
|
1
|
+
name: 🔄 Mwsm Version Sync
|
|
2
2
|
|
|
3
|
-
# 🔐 Permite push com token pessoal
|
|
4
3
|
permissions:
|
|
5
4
|
contents: write
|
|
5
|
+
id-token: write # Necessário para publicação via Trusted Publisher (OIDC)
|
|
6
6
|
|
|
7
7
|
on:
|
|
8
|
+
push:
|
|
9
|
+
branches: [ main ]
|
|
10
|
+
paths:
|
|
11
|
+
- "fonts/**"
|
|
12
|
+
- "icon.png"
|
|
13
|
+
- "index.html"
|
|
14
|
+
- "jquery.js"
|
|
15
|
+
- "mwsm.db"
|
|
16
|
+
- "mwsm.js"
|
|
17
|
+
- "mwsm.json"
|
|
18
|
+
- "nodemon.json"
|
|
19
|
+
- "package.json"
|
|
20
|
+
- "script.js"
|
|
21
|
+
- "socket.io.js"
|
|
22
|
+
- "style.css"
|
|
23
|
+
- "version.json"
|
|
24
|
+
- "mwsm.py"
|
|
8
25
|
release:
|
|
9
|
-
types: [published, edited]
|
|
26
|
+
types: [published, edited]
|
|
10
27
|
workflow_dispatch:
|
|
11
28
|
|
|
29
|
+
concurrency:
|
|
30
|
+
group: mwsm-version-sync
|
|
31
|
+
cancel-in-progress: false
|
|
32
|
+
|
|
12
33
|
jobs:
|
|
13
34
|
sync:
|
|
14
35
|
runs-on: ubuntu-latest
|
|
36
|
+
# evita loops criados pelo próprio bot
|
|
37
|
+
if: ${{ !startsWith(github.event.head_commit.message, '🔄 Bot-Mwsm') }}
|
|
15
38
|
|
|
16
39
|
steps:
|
|
17
|
-
- name:
|
|
40
|
+
- name: 🧩 Checkout do repositório
|
|
18
41
|
uses: actions/checkout@v4
|
|
19
42
|
with:
|
|
20
43
|
fetch-depth: 0
|
|
21
|
-
persist-credentials: false
|
|
44
|
+
persist-credentials: false
|
|
22
45
|
ref: main
|
|
23
46
|
|
|
24
|
-
- name:
|
|
25
|
-
run: sudo apt-get install -y jq
|
|
47
|
+
- name: ⚙️ Instalar utilitários
|
|
48
|
+
run: sudo apt-get update && sudo apt-get install -y jq curl gh
|
|
26
49
|
|
|
27
|
-
- name:
|
|
50
|
+
- name: 📂 Verificar arquivos modificados
|
|
28
51
|
id: detect
|
|
52
|
+
run: |
|
|
53
|
+
set -euo pipefail
|
|
54
|
+
echo "📂 Verificando arquivos modificados..."
|
|
55
|
+
git fetch origin main --no-tags
|
|
56
|
+
|
|
57
|
+
# lidar com repositório com apenas 1 commit ou em runners onde HEAD^ pode não existir
|
|
58
|
+
if git rev-parse --verify HEAD^ >/dev/null 2>&1; then
|
|
59
|
+
CHANGED_FILES=$(git diff --name-only HEAD^ HEAD || echo "")
|
|
60
|
+
else
|
|
61
|
+
# fallback: usa a lista de arquivos do último commit
|
|
62
|
+
CHANGED_FILES=$(git diff --name-only HEAD || git ls-files)
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
echo "$CHANGED_FILES"
|
|
66
|
+
if echo "$CHANGED_FILES" | grep -q "mwsm.db"; then
|
|
67
|
+
echo "DB_CHANGED=true" >> "$GITHUB_OUTPUT"
|
|
68
|
+
else
|
|
69
|
+
echo "DB_CHANGED=false" >> "$GITHUB_OUTPUT"
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
- name: 🔢 Atualizar version.json e package.json (sincroniza com último release e calcula incremento)
|
|
73
|
+
id: version
|
|
29
74
|
env:
|
|
30
|
-
|
|
75
|
+
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
|
31
76
|
run: |
|
|
32
77
|
set -euo pipefail
|
|
78
|
+
PATCH=$(TZ="America/Sao_Paulo" date +"%Y-%m-%d %H:%M:%S")
|
|
33
79
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
# 2) Se estiver vazio, busca a última release via API (autenticada)
|
|
40
|
-
if [ -z "$TAG_RELEASE" ]; then
|
|
41
|
-
echo "🔎 Nenhuma tag presente no evento — buscando última release publicada via API..."
|
|
42
|
-
if [ -z "${GITHUB_API_TOKEN:-}" ]; then
|
|
43
|
-
echo "⚠️ PERSONAL_TOKEN não encontrado — fazendo chamada não autenticada (pode rate-limit)."
|
|
44
|
-
TAG_RELEASE=$(curl -s "https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r '.tag_name // empty')
|
|
45
|
-
else
|
|
46
|
-
TAG_RELEASE=$(curl -s -H "Authorization: Bearer ${GITHUB_API_TOKEN}" -H "Accept: application/vnd.github+json" \
|
|
47
|
-
"https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r '.tag_name // empty')
|
|
48
|
-
fi
|
|
49
|
-
TAG_RELEASE="${TAG_RELEASE##v}"
|
|
80
|
+
if [ "${GITHUB_EVENT_NAME}" = "release" ]; then
|
|
81
|
+
LATEST_TAG="${GITHUB_REF_NAME:-$(jq -r '.release.tag_name' "$GITHUB_EVENT_PATH" 2>/dev/null || true)}"
|
|
82
|
+
else
|
|
83
|
+
LATEST_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName' 2>/dev/null || true)
|
|
50
84
|
fi
|
|
51
85
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
86
|
+
LATEST_TAG=$(echo "$LATEST_TAG" | sed 's/^v//' || true)
|
|
87
|
+
FILE_VER=$(jq -r '.version[0].release // .version // empty' version.json 2>/dev/null || echo "")
|
|
88
|
+
|
|
89
|
+
if [ -n "$LATEST_TAG" ]; then
|
|
90
|
+
BASE="$LATEST_TAG"
|
|
91
|
+
elif [ -n "$FILE_VER" ]; then
|
|
92
|
+
BASE="$FILE_VER"
|
|
93
|
+
else
|
|
94
|
+
BASE="3.0.0"
|
|
56
95
|
fi
|
|
57
96
|
|
|
58
|
-
echo "
|
|
97
|
+
BASE="$(echo "$BASE" | tr -d '[:space:]')"
|
|
98
|
+
IFS='.' read -r MAJ MIN PAT <<< "$(echo "$BASE")"
|
|
99
|
+
MAJ=${MAJ:-0}; MIN=${MIN:-0}; PAT=${PAT:-0}
|
|
59
100
|
|
|
60
|
-
|
|
61
|
-
PKG_VER=$(jq -r '.version' package.json)
|
|
62
|
-
JSON_REL=$(jq -r '.version[0].release' version.json)
|
|
63
|
-
JSON_PATCH=$(jq -r '.version[0].patch' version.json || true)
|
|
101
|
+
echo "🔍 Base de versão: ${MAJ}.${MIN}.${PAT}"
|
|
64
102
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
103
|
+
if [ "${{ steps.detect.outputs.DB_CHANGED }}" = "true" ]; then
|
|
104
|
+
echo "🔼 mwsm.db mudou — incrementando versão."
|
|
105
|
+
if [ "$PAT" -lt 99 ]; then
|
|
106
|
+
PAT=$((PAT + 1))
|
|
107
|
+
else
|
|
108
|
+
PAT=0
|
|
109
|
+
if [ "$MIN" -lt 99 ]; then
|
|
110
|
+
MIN=$((MIN + 1))
|
|
111
|
+
else
|
|
112
|
+
MIN=0
|
|
113
|
+
MAJ=$((MAJ + 1))
|
|
114
|
+
fi
|
|
115
|
+
fi
|
|
116
|
+
fi
|
|
68
117
|
|
|
69
|
-
|
|
118
|
+
NEW_VER="${MAJ}.${MIN}.${PAT}"
|
|
70
119
|
|
|
71
|
-
|
|
72
|
-
jq --arg v "$TAG_RELEASE" --arg d "$PATCH" \
|
|
120
|
+
jq --arg v "$NEW_VER" --arg d "$PATCH" \
|
|
73
121
|
'.version[0].release=$v | .version[0].patch=$d' version.json > version.tmp && mv version.tmp version.json
|
|
74
122
|
|
|
75
|
-
|
|
123
|
+
# normaliza o package.json: força name para 'bot-mwsm' (resolverá o 403 do npm por case)
|
|
124
|
+
jq --arg v "$NEW_VER" --arg name "bot-mwsm" \
|
|
125
|
+
'.version=$v | .name=$name' package.json > package.tmp && mv package.tmp package.json
|
|
76
126
|
|
|
77
|
-
echo "
|
|
127
|
+
echo "version=$NEW_VER" >> "$GITHUB_OUTPUT"
|
|
78
128
|
echo "patch=$PATCH" >> "$GITHUB_OUTPUT"
|
|
79
|
-
echo "updated=true" >> "$GITHUB_OUTPUT"
|
|
80
129
|
|
|
81
|
-
- name:
|
|
82
|
-
id: datefmt
|
|
130
|
+
- name: 🪶 Atualizar badges no README.md
|
|
83
131
|
run: |
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
echo "formatted=$DATE_BR" >> $GITHUB_OUTPUT
|
|
88
|
-
else
|
|
89
|
-
echo "formatted=" >> $GITHUB_OUTPUT
|
|
90
|
-
fi
|
|
91
|
-
|
|
92
|
-
- name: 📝 Atualizar badges no README.md
|
|
93
|
-
if: steps.detect.outputs.updated == 'true'
|
|
94
|
-
run: |
|
|
95
|
-
# -------------------------------
|
|
96
|
-
# 🔹 Carrega versão e data formatada
|
|
97
|
-
# -------------------------------
|
|
98
|
-
RELEASE="${{ steps.detect.outputs.release }}"
|
|
99
|
-
[ -z "$RELEASE" ] && RELEASE=$(jq -r '.version' package.json)
|
|
100
|
-
|
|
101
|
-
DATE_BR="${{ steps.datefmt.outputs.formatted }}"
|
|
132
|
+
VERSION="${{ steps.version.outputs.version }}"
|
|
133
|
+
PATCH="${{ steps.version.outputs.patch }}"
|
|
134
|
+
DATE_BR=$(date -d "$PATCH" +"%d/%m/%Y %H:%M")
|
|
102
135
|
DATE_URL=${DATE_BR//\//%2F}
|
|
103
136
|
DATE_URL=${DATE_URL// /%20}
|
|
104
137
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
# -------------------------------
|
|
108
|
-
# 🔹 Atualiza badges de BUILD e UPDATE
|
|
109
|
-
# -------------------------------
|
|
110
|
-
sed -i -E "s|https://img.shields.io/badge/[Bb][Uu][Ii][Ll][Dd]-[^\" >]*|https://img.shields.io/badge/Build-${RELEASE}-blue|gI" README.md
|
|
111
|
-
sed -i -E "s|https://img.shields.io/badge/[Uu][Pp][Dd][Aa][Tt][Ee]-[^\" >]*|https://img.shields.io/badge/Update-${DATE_URL}-green|gI" README.md
|
|
112
|
-
|
|
113
|
-
# -------------------------------
|
|
114
|
-
# 🔧 Corrige apenas src de badges (mantendo HTML e indentação)
|
|
115
|
-
# -------------------------------
|
|
116
|
-
# -------------------------------
|
|
117
|
-
# 🔧 Corrige badges mantendo HTML, espaçamento e evita duplicações
|
|
118
|
-
# -------------------------------
|
|
119
|
-
awk '
|
|
120
|
-
match($0, /src="([^"]*img\.shields\.io[^"]*)"/, m) {
|
|
121
|
-
url = m[1]
|
|
122
|
-
|
|
123
|
-
# Normaliza o URL (remove duplicações, erros, etc.)
|
|
124
|
-
gsub(/\?style=for-the-badge/, "", url)
|
|
125
|
-
gsub(/&style=for-the-badge/, "", url)
|
|
126
|
-
|
|
127
|
-
# Corrige escapes comuns
|
|
128
|
-
gsub(/\\\?/, "?", url)
|
|
129
|
-
gsub(/\\&/, "&", url)
|
|
130
|
-
gsub(/\\%2F/, "%2F", url)
|
|
131
|
-
gsub(/\\%20/, "%20", url)
|
|
132
|
-
|
|
133
|
-
# Se o style não existe, adiciona corretamente
|
|
134
|
-
if (url !~ /\?/) {
|
|
135
|
-
url = url "?style=for-the-badge"
|
|
136
|
-
} else if (url !~ /[?&]style=for-the-badge/) {
|
|
137
|
-
url = url "&style=for-the-badge"
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
# Garante que não repita
|
|
141
|
-
gsub(/\?style=for-the-badge\?style=for-the-badge/, "?style=for-the-badge", url)
|
|
142
|
-
gsub(/&style=for-the-badge&style=for-the-badge/, "&style=for-the-badge", url)
|
|
143
|
-
|
|
144
|
-
# Reconstrói a linha preservando indentação (10 espaços fixos)
|
|
145
|
-
prefix = substr($0, 1, match($0, /<img/) - 1)
|
|
146
|
-
printf "%10s<img src=\"%s\" alt=\"%s\">\n", "", url, "Badge"
|
|
147
|
-
next
|
|
148
|
-
}
|
|
149
|
-
{ print }
|
|
150
|
-
' README.md > README.tmp && mv README.tmp README.md
|
|
151
|
-
|
|
152
|
-
- name: ⏱️ Delay de segurança
|
|
153
|
-
if: steps.detect.outputs.updated == 'true'
|
|
154
|
-
run: |
|
|
155
|
-
echo "⏳ Aguardando 10 segundos antes do commit/push..."
|
|
156
|
-
sleep 10
|
|
157
|
-
|
|
158
|
-
- name: 🔍 Verificar resultado final
|
|
159
|
-
run: |
|
|
160
|
-
echo "🧾 Trecho atualizado do README:"
|
|
161
|
-
grep "img.shields.io" README.md | head -n 10
|
|
138
|
+
sed -i -E "s|https://img.shields.io/badge/Build-[^\" >]*|https://img.shields.io/badge/Build-${VERSION}-blue?style=for-the-badge|gI" README.md
|
|
139
|
+
sed -i -E "s|https://img.shields.io/badge/Update-[^\" >]*|https://img.shields.io/badge/Update-${DATE_URL}-green?style=for-the-badge|gI" README.md
|
|
162
140
|
|
|
163
141
|
- name: 💾 Commit e push das alterações
|
|
164
|
-
if: steps.detect.outputs.updated == 'true'
|
|
165
142
|
env:
|
|
166
143
|
PERSONAL_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
|
167
144
|
run: |
|
|
168
145
|
set -e
|
|
169
|
-
echo "💾 Preparando commit..."
|
|
170
146
|
git config --global user.name "Bot-Mwsm 🤖"
|
|
171
147
|
git config --global user.email "143403919+MKCodec@users.noreply.github.com"
|
|
172
148
|
git config --global commit.gpgsign false
|
|
173
149
|
|
|
174
|
-
|
|
175
|
-
git stash --include-untracked || true
|
|
176
|
-
git pull --rebase origin main || true
|
|
177
|
-
git stash pop || true
|
|
178
|
-
|
|
179
|
-
git add README.md package.json version.json
|
|
150
|
+
git add README.md package.json version.json || true
|
|
180
151
|
|
|
181
152
|
if git diff --cached --quiet; then
|
|
182
|
-
echo "✅ Nenhuma alteração detectada —
|
|
153
|
+
echo "✅ Nenhuma alteração detectada — nada a commitar."
|
|
183
154
|
else
|
|
184
|
-
echo "🔄 Commitando e enviando alterações..."
|
|
185
155
|
git commit -m "🔄 Bot-Mwsm"
|
|
186
156
|
git push https://x-access-token:${PERSONAL_TOKEN}@github.com/${{ github.repository }}.git main
|
|
187
157
|
fi
|
|
188
158
|
|
|
159
|
+
- name: 🚀 Criar release/tag automática (se banco mudou)
|
|
160
|
+
if: steps.detect.outputs.DB_CHANGED == 'true'
|
|
161
|
+
env:
|
|
162
|
+
GH_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
|
163
|
+
run: |
|
|
164
|
+
TAG="v${{ steps.version.outputs.version }}"
|
|
165
|
+
gh release create "$TAG" --title "$TAG" --notes "Release automático do Bot-Mwsm" || echo "⚠️ Release já existente — ignorando."
|
|
166
|
+
|
|
167
|
+
- name: 🔄 Garantir sincronismo antes do publish
|
|
168
|
+
run: |
|
|
169
|
+
git pull origin main --rebase || true
|
|
170
|
+
echo "Versão package.json:" $(jq -r .version package.json)
|
|
171
|
+
echo "Versão version.json:" $(jq -r '.version[0].release // .version' version.json)
|
|
172
|
+
|
|
173
|
+
- name: 🧩 Verificar autenticação NPM (OIDC ping)
|
|
174
|
+
run: |
|
|
175
|
+
set -e
|
|
176
|
+
echo "🔍 Verificando conectividade com registry (OIDC test via npm ping)..."
|
|
177
|
+
if npm ping >/dev/null 2>&1; then
|
|
178
|
+
echo "✅ npm ping ok (pode usar OIDC se configurado)."
|
|
179
|
+
else
|
|
180
|
+
echo "⚠️ npm ping falhou — verifique Trusted Publisher no npmjs.com."
|
|
181
|
+
# não falha aqui; deixamos o publish tentar e fallback por token cuidar do resto
|
|
182
|
+
fi
|
|
183
|
+
|
|
184
|
+
- name: ⚙️ Setup Node (garante npm atualizado e registry)
|
|
185
|
+
uses: actions/setup-node@v4
|
|
186
|
+
with:
|
|
187
|
+
node-version: '20'
|
|
188
|
+
registry-url: 'https://registry.npmjs.org'
|
|
189
|
+
|
|
190
|
+
- name: 🔍 Mostrar versões antes do publish
|
|
191
|
+
run: |
|
|
192
|
+
node --version
|
|
193
|
+
npm --version
|
|
194
|
+
echo "package.json version:" $(jq -r .version package.json)
|
|
195
|
+
echo "version.json release:" $(jq -r '.version[0].release // .version' version.json)
|
|
196
|
+
|
|
197
|
+
- name: 📦 Publicar no NPM (Trusted Publisher - OIDC)
|
|
198
|
+
id: publish_oidc
|
|
199
|
+
continue-on-error: true
|
|
200
|
+
run: |
|
|
201
|
+
set -e
|
|
202
|
+
echo "📦 Tentando publicar via OIDC (Trusted Publisher)..."
|
|
203
|
+
VERSION=$(jq -r '.version[0].release // .version' version.json)
|
|
204
|
+
# já normalizamos name e version no passo anterior
|
|
205
|
+
jq --arg v "$VERSION" '.version=$v' package.json > package.tmp && mv package.tmp package.json
|
|
206
|
+
|
|
207
|
+
# instalar dependências caso necessário para build (não deve afetar publish)
|
|
208
|
+
npm ci --no-audit --no-fund || true
|
|
209
|
+
|
|
210
|
+
PUBLISHED=$(npm view bot-mwsm version 2>/dev/null || echo "")
|
|
211
|
+
if [ "$PUBLISHED" = "$VERSION" ]; then
|
|
212
|
+
echo "⚠️ Versão $VERSION já está publicada no npm — pulando publish."
|
|
213
|
+
exit 0
|
|
214
|
+
fi
|
|
215
|
+
|
|
216
|
+
# publish: se trusted publisher estiver configurado no npm, o runner usará OIDC
|
|
217
|
+
npm publish --provenance --access public
|
|
218
|
+
|
|
219
|
+
- name: 📦 Fallback publish via NPM_TOKEN (se OIDC falhar)
|
|
220
|
+
if: ${{ steps.publish_oidc.outcome == 'failure' }}
|
|
221
|
+
env:
|
|
222
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
223
|
+
run: |
|
|
224
|
+
set -e
|
|
225
|
+
echo "⚠️ Publicação via OIDC falhou — tentando fallback com NPM_TOKEN..."
|
|
226
|
+
VERSION=$(jq -r '.version[0].release // .version' version.json)
|
|
227
|
+
|
|
228
|
+
if [ -z "${NPM_TOKEN:-}" ]; then
|
|
229
|
+
echo "❌ NPM_TOKEN não encontrado nas secrets. Aborting."
|
|
230
|
+
exit 1
|
|
231
|
+
fi
|
|
232
|
+
|
|
233
|
+
# configura token para registry
|
|
234
|
+
npm config set //registry.npmjs.org/:_authToken "${NPM_TOKEN}"
|
|
235
|
+
|
|
236
|
+
# re-check published just in case
|
|
237
|
+
PUBLISHED=$(npm view bot-mwsm version 2>/dev/null || echo "")
|
|
238
|
+
if [ "$PUBLISHED" = "$VERSION" ]; then
|
|
239
|
+
echo "⚠️ Versão $VERSION já publicada (detected after fallback check) — nada a fazer."
|
|
240
|
+
exit 0
|
|
241
|
+
fi
|
|
242
|
+
|
|
243
|
+
echo "🔁 Publicando versão $VERSION via token..."
|
|
244
|
+
npm publish --access public || {
|
|
245
|
+
echo "❌ Falha total no publish, mesmo com fallback."
|
|
246
|
+
exit 1
|
|
247
|
+
}
|
|
248
|
+
echo "✅ Publicação via token concluída com sucesso!"
|
|
249
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: 🧹 Actions Cleaner
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
clean:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- name: 🧩 Checkout
|
|
11
|
+
uses: actions/checkout@v4
|
|
12
|
+
|
|
13
|
+
- name: ⚙️ Configurar Bot-Mwsm
|
|
14
|
+
run: |
|
|
15
|
+
git config --global user.name "Bot-Mwsm 🤖"
|
|
16
|
+
git config --global user.email "143403919+MKCodec@users.noreply.github.com"
|
|
17
|
+
|
|
18
|
+
- name: 🧹 Deletar execuções antigas de workflows
|
|
19
|
+
uses: Mattraks/delete-workflow-runs@v2
|
|
20
|
+
with:
|
|
21
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
22
|
+
repository: ${{ github.repository }}
|
|
23
|
+
retain_days: 0
|
|
24
|
+
keep_minimum_runs: 0
|
|
25
|
+
|
|
26
|
+
- name: 🧨 Deletar artefatos antigos
|
|
27
|
+
uses: c-hive/gha-remove-artifacts@v1
|
|
28
|
+
with:
|
|
29
|
+
age: '0 days'
|
|
30
|
+
skip-tags: false
|
|
31
|
+
skip-recent: 0
|
package/README.md
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
<h1 align="center">📦 MkAuth WhatsApp Send Message (Mwsm)</h1>
|
|
2
|
+
|
|
2
3
|
<p align="center">
|
|
3
4
|
<a href="javascript:void(0)">
|
|
4
|
-
|
|
5
|
+
<img src="https://img.shields.io/badge/Build-3.0.2-blue?style=for-the-badge" alt="Badge">
|
|
5
6
|
</a>
|
|
6
7
|
<a href="javascript:void(0)">
|
|
7
|
-
|
|
8
|
+
<img src="https://img.shields.io/badge/Update-16%2F10%2F2025%2017:35-green?style=for-the-badge" alt="Badge">
|
|
8
9
|
</a>
|
|
9
10
|
<a href="https://github.com/MKCodec/Mwsm">
|
|
10
|
-
|
|
11
|
+
<img src="https://img.shields.io/github/stars/MKCodec/Mwsm?style=for-the-badge" alt="Badge">
|
|
11
12
|
</a>
|
|
12
13
|
<a href="https://github.com/MKCodec/Mwsm/issues">
|
|
13
|
-
|
|
14
|
+
<img src="https://img.shields.io/github/issues/MKCodec/Mwsm?style=for-the-badge" alt="Badge">
|
|
14
15
|
</a>
|
|
15
16
|
</p>
|
|
16
17
|
|
|
17
18
|
<p align="center">
|
|
18
|
-
<img src="https://raw.githubusercontent.com/MKCodec/Mwsm/main/img/Mwsm.png
|
|
19
|
+
<img src="https://raw.githubusercontent.com/MKCodec/Mwsm/main/img/Mwsm.png" width="600" alt="Mwsm Dashboard"/>
|
|
19
20
|
</p>
|
|
20
21
|
|
|
21
22
|
<h3 align="center">💖 Apoie o projeto Mwsm:</h3>
|
|
@@ -31,15 +32,15 @@
|
|
|
31
32
|
</a>
|
|
32
33
|
</p>
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
35
|
---
|
|
38
36
|
|
|
39
|
-
##
|
|
37
|
+
## 🧠 Sobre o Projeto
|
|
40
38
|
|
|
41
|
-
O **Mwsm** é uma API que integra notificações automatizadas
|
|
42
|
-
|
|
39
|
+
O **Mwsm** é uma API gratuita que integra notificações automatizadas via **WhatsApp** ao sistema **MkAuth**,
|
|
40
|
+
permitindo enviar mensagens, sincronizar cobranças e gerenciar comunicações com seus clientes de forma inteligente e automatizada.
|
|
41
|
+
|
|
42
|
+
> 🔗 **Toda a documentação completa (instalação, configuração e uso) está disponível no Wiki oficial:**
|
|
43
|
+
> 👉 [https://github.com/MKCodec/Mwsm/wiki](https://github.com/MKCodec/Mwsm/wiki)
|
|
43
44
|
|
|
44
45
|
---
|
|
45
46
|
|
|
@@ -52,144 +53,53 @@ Ela permite disparar mensagens, sincronizar cobranças e automatizar comunicaç
|
|
|
52
53
|
| **GalaxPay** | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
53
54
|
| **Santander** | ✅ | ❌ | ❌ | ❌ | ✅ |
|
|
54
55
|
|
|
55
|
-
> ⚠️ Compatibilidade relatada por usuários.
|
|
56
|
+
> ⚠️ Compatibilidade relatada por usuários. Outros gateways podem funcionar normalmente.
|
|
56
57
|
|
|
57
58
|
---
|
|
58
59
|
|
|
59
60
|
## 🧠 Requisitos
|
|
60
61
|
|
|
61
|
-
- Servidor Linux (Ubuntu
|
|
62
|
+
- Servidor Linux (Ubuntu/Proxmox ou Debian/MkAuth)
|
|
62
63
|
- [API MkAuth](https://github.com/MKCodec/MkAuth-API) modificada para uso com Mwsm
|
|
64
|
+
- Conexão estável com o WhatsApp Web
|
|
63
65
|
|
|
64
66
|
---
|
|
65
67
|
|
|
66
|
-
##
|
|
67
|
-
|
|
68
|
-
### Pré-instalação
|
|
69
|
-
|
|
70
|
-
Execute no MkAuth se o Mwsm for instalado separadamente:
|
|
71
|
-
|
|
72
|
-
```sh
|
|
73
|
-
cd ~ && sudo wget https://raw.githubusercontent.com/MKCodec/MkAuth-API/main/titulo.api -O /opt/mk-auth/api/titulo.api
|
|
74
|
-
```
|
|
68
|
+
## 📚 Documentação Completa
|
|
75
69
|
|
|
76
|
-
|
|
70
|
+
Acesse o **Wiki Oficial do Mwsm** e aprenda passo a passo como instalar, configurar e usar:
|
|
77
71
|
|
|
78
|
-
|
|
72
|
+
> 📘 **Wiki Oficial:**
|
|
73
|
+
> [https://github.com/MKCodec/Mwsm/wiki](https://github.com/MKCodec/Mwsm/wiki)
|
|
79
74
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
### 🔹 Seções Disponíveis:
|
|
76
|
+
- **[Introdução](https://github.com/MKCodec/Mwsm/wiki/Home)** — visão geral e recursos do projeto
|
|
77
|
+
- **[Instalação](https://github.com/MKCodec/Mwsm/wiki/Instalação)** — instalação automática e pré-requisitos
|
|
78
|
+
- **[Configuração](https://github.com/MKCodec/Mwsm/wiki/Configuração)** — como ajustar e ativar o sistema
|
|
79
|
+
- **[Suporte e Integração](https://github.com/MKCodec/Mwsm/wiki/Suporte-e-Intregração)** — integrações externas e testes
|
|
83
80
|
|
|
84
81
|
---
|
|
85
82
|
|
|
86
|
-
|
|
87
|
-
<summary>🧭 Configuração</summary>
|
|
88
|
-
|
|
89
|
-
### 1️⃣ Ative o Túnel Dev API no MkAuth
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
Opções > Rede do Servidor > MkTunel > (Ativar e Gravar)
|
|
93
|
-
```
|
|
83
|
+
## 💬 Suporte e Comunidade
|
|
94
84
|
|
|
95
|
-
|
|
85
|
+
- 🧩 Fórum oficial do MkAuth:
|
|
86
|
+
[https://mk-auth.com.br/forum/topics/envio-de-mensagem-via-whatsapp-100-gratuito](https://mk-auth.com.br/forum/topics/envio-de-mensagem-via-whatsapp-100-gratuito)
|
|
96
87
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
Provedor > Controle de Usuarios > API
|
|
101
|
-
ou
|
|
102
|
-
Provedor > DEV > API do Usuario
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-

|
|
106
|
-
|
|
107
|
-
### 3️⃣ Acesse o servidor via IP:PORTA
|
|
108
|
-
|
|
109
|
-

|
|
110
|
-
|
|
111
|
-
### 4️⃣ Escaneie o QR Code com o WhatsApp
|
|
112
|
-
|
|
113
|
-

|
|
114
|
-
|
|
115
|
-
### 5️⃣ Configure a API do MkAuth no Mwsm
|
|
116
|
-
|
|
117
|
-
| Campo | Descrição |
|
|
118
|
-
| ------ | ---------- |
|
|
119
|
-
| `TUNEL` | URL do túnel configurado no MkAuth |
|
|
120
|
-
| `CLIENT` | Código do cliente |
|
|
121
|
-
| `SECRET` | Código secreto |
|
|
122
|
-
| `DOMAIN` | Domínio/IP do servidor MkAuth |
|
|
123
|
-
| `VERSION` | Selecione v1 ou v2 |
|
|
124
|
-
| `MODE` | Escolha o tipo de conexão |
|
|
125
|
-
|
|
126
|
-

|
|
127
|
-
|
|
128
|
-
</details>
|
|
88
|
+
- 🐞 Relate bugs e sugestões:
|
|
89
|
+
[https://github.com/MKCodec/Mwsm/issues](https://github.com/MKCodec/Mwsm/issues)
|
|
129
90
|
|
|
130
91
|
---
|
|
131
92
|
|
|
132
|
-
|
|
133
|
-
<summary>📊 Gerenciamento</summary>
|
|
93
|
+
## 💖 Apoie o Projeto
|
|
134
94
|
|
|
135
|
-
|
|
95
|
+
O **Mwsm** é mantido por voluntários e distribuído gratuitamente.
|
|
96
|
+
Ajude a manter o projeto vivo e em constante evolução 💪
|
|
136
97
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
1️⃣ Configure o servidor no MkAuth seguindo as instruções do painel web.
|
|
140
|
-
|
|
141
|
-
**Senha:** insira o *Token fixo* de acesso.
|
|
142
|
-
|
|
143
|
-
#### MkAuth até versão 24.02
|
|
144
|
-
```
|
|
145
|
-
Opções > Servidor de SMS > Servidor
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-

|
|
149
|
-
|
|
150
|
-
#### MkAuth 24.03 ou superior
|
|
151
|
-
```
|
|
152
|
-
Opções > Servidor de WhatsApp > Servidor
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-

|
|
156
|
-
|
|
157
|
-
### 🧩 Mwsm
|
|
158
|
-
|
|
159
|
-
No Mwsm:
|
|
160
|
-
|
|
161
|
-
```
|
|
162
|
-
Settings > API > Tela 2
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
As mensagens são disparadas conforme o agendamento configurado na API.
|
|
166
|
-
|
|
167
|
-

|
|
168
|
-
|
|
169
|
-
</details>
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## 💬 Dúvidas, Erros e Suporte
|
|
174
|
-
|
|
175
|
-
Se ocorrerem erros, ative o modo **Debug** em:
|
|
176
|
-
|
|
177
|
-
```
|
|
178
|
-
Settings > Extras > Debug ON
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
Em caso de persistência, visite o fórum oficial:
|
|
182
|
-
🔗 [https://mk-auth.com.br/forum/topics/envio-de-mensagem-via-whatsapp-100-gratuito](https://mk-auth.com.br/forum/topics/envio-de-mensagem-via-whatsapp-100-gratuito)
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## 💖 Doações PIX
|
|
187
|
-
|
|
188
|
-
Apoie o projeto e ajude a manter o **Mwsm** gratuito e atualizado.
|
|
98
|
+
## 💸 Doações PIX
|
|
189
99
|
|
|
190
100
|

|
|
191
101
|
|
|
192
|
-
**Chave:**
|
|
102
|
+
**Chave Aleatória:**
|
|
193
103
|
```sh
|
|
194
104
|
e9b9d669-4412-4dec-994c-310005904088
|
|
195
105
|
```
|
|
@@ -198,7 +108,3 @@ e9b9d669-4412-4dec-994c-310005904088
|
|
|
198
108
|
```sh
|
|
199
109
|
00020126580014BR.GOV.BCB.PIX0136e9b9d669-4412-4dec-994c-3100059040885204000053039865802BR5924CLEBER FERREIRA DE SOUZA6007CARUARU62070503***63045854
|
|
200
110
|
```
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
<p align="center">© 2025 MkAuth WhatsApp Send Message - Desenvolvido por MKCodec</p>
|
|
Binary file
|
package/img/Mwsm.png
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/img/mwsm-api.png
ADDED
|
Binary file
|
|
Binary file
|
package/img/mwsm-cli.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/img/mwsm-log.png
ADDED
|
Binary file
|
|
Binary file
|
package/img/mwsm-qr.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/img/mwsm-run.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/mwsm.py
CHANGED
|
@@ -37,10 +37,6 @@ logging.basicConfig(
|
|
|
37
37
|
level=logging.INFO,
|
|
38
38
|
format="%(asctime)s - %(message)s",
|
|
39
39
|
)
|
|
40
|
-
|
|
41
|
-
# =========================================
|
|
42
|
-
# CONFIGURAÇÃO HUGGINGFACE
|
|
43
|
-
# =========================================
|
|
44
40
|
if not os.environ.get("HF_ENDPOINT"):
|
|
45
41
|
os.environ["HF_ENDPOINT"] = "https://huggingface.co"
|
|
46
42
|
os.environ["HF_HUB_OFFLINE"] = "0"
|
|
@@ -52,10 +48,6 @@ constants.HUGGINGFACE_CO_URL_TEMPLATE = f"{os.environ['HF_ENDPOINT']}/{{repo_id}
|
|
|
52
48
|
log("Endpoint Hugging Face: https://huggingface.co")
|
|
53
49
|
log(f"_CACHED_API_URL: {fd._CACHED_API_URL}")
|
|
54
50
|
log(f"HUGGINGFACE_CO_URL_TEMPLATE: {constants.HUGGINGFACE_CO_URL_TEMPLATE}")
|
|
55
|
-
|
|
56
|
-
# =========================================
|
|
57
|
-
# CARREGAMENTO DO MODELO
|
|
58
|
-
# =========================================
|
|
59
51
|
log("Loading SentenceTransformer model...")
|
|
60
52
|
try:
|
|
61
53
|
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
|
|
@@ -63,16 +55,10 @@ try:
|
|
|
63
55
|
except Exception as e:
|
|
64
56
|
log(f"Model loading failed: {e}", level="error")
|
|
65
57
|
sys.exit(1)
|
|
66
|
-
|
|
67
|
-
# =========================================
|
|
68
|
-
# SERVIDOR FLASK
|
|
69
|
-
# =========================================
|
|
70
58
|
app = Flask(__name__)
|
|
71
|
-
|
|
72
59
|
@app.route("/", methods=["GET"])
|
|
73
60
|
def home():
|
|
74
61
|
return jsonify({"status": "online", "model": "all-MiniLM-L6-v2"}), 200
|
|
75
|
-
|
|
76
62
|
@app.route("/embed", methods=["POST"])
|
|
77
63
|
def embed():
|
|
78
64
|
data = request.json or {}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bot-mwsm",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "Bot-Mwsm: based on Whatsapp API",
|
|
5
5
|
"main": "mwsm.js",
|
|
6
6
|
"scripts": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"axios": "^1.6.8",
|
|
36
|
-
"Emoji-API": "git+https://github.com/MKCodec/Emoji-API
|
|
36
|
+
"Emoji-API": "git+https://github.com/MKCodec/Emoji-API",
|
|
37
37
|
"express": "^4.19.2",
|
|
38
38
|
"express-fileupload": "^1.5.0",
|
|
39
39
|
"express-validator": "^7.0.1",
|
|
@@ -43,20 +43,13 @@
|
|
|
43
43
|
"node-cron": "^3.0.3",
|
|
44
44
|
"qrcode": "^1.5.3",
|
|
45
45
|
"socket.io": "^2.5.0",
|
|
46
|
-
"Url2PDF": "git+https://github.com/MKCodec/Url2PDF
|
|
46
|
+
"Url2PDF": "git+https://github.com/MKCodec/Url2PDF",
|
|
47
47
|
"util": "^0.12.5",
|
|
48
|
-
"whatsapp-web.js": "
|
|
48
|
+
"whatsapp-web.js": "^1.34.1"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"better-sqlite3": "^9.4.3",
|
|
52
52
|
"nodemon": "^3.1.0",
|
|
53
53
|
"sqlite3": "^5.1.7"
|
|
54
|
-
}
|
|
55
|
-
"directories": {
|
|
56
|
-
"doc": "docs"
|
|
57
|
-
},
|
|
58
|
-
"bugs": {
|
|
59
|
-
"url": "https://github.com/MKCodec/Mwsm/issues"
|
|
60
|
-
},
|
|
61
|
-
"homepage": "https://github.com/MKCodec/Mwsm#readme"
|
|
54
|
+
}
|
|
62
55
|
}
|
package/version.json
CHANGED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
name: 📦 Mwsm Publish Sync
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main ]
|
|
6
|
-
workflow_dispatch:
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: read
|
|
10
|
-
id-token: write # necessário para OIDC / Trusted Publisher
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
publish:
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
steps:
|
|
16
|
-
- name: 🧩 Checkout do repositório
|
|
17
|
-
uses: actions/checkout@v4
|
|
18
|
-
|
|
19
|
-
- name: ⚙️ Instalar jq (para editar package.json)
|
|
20
|
-
run: sudo apt-get update && sudo apt-get install -y jq
|
|
21
|
-
|
|
22
|
-
- name: 🧱 Corrigir nome do pacote temporariamente
|
|
23
|
-
run: |
|
|
24
|
-
cp package.json package_original.json
|
|
25
|
-
NAME=$(jq -r '.name' package.json)
|
|
26
|
-
LOWER=$(echo "$NAME" | tr '[:upper:]' '[:lower:]')
|
|
27
|
-
if [ "$NAME" != "$LOWER" ]; then
|
|
28
|
-
echo "🔧 Corrigindo nome do pacote: $NAME → $LOWER"
|
|
29
|
-
jq --arg name "$LOWER" '.name = $name' package.json > tmp.json && mv tmp.json package.json
|
|
30
|
-
else
|
|
31
|
-
echo "✅ Nome já está em minúsculas: $NAME"
|
|
32
|
-
fi
|
|
33
|
-
jq '.name' package.json
|
|
34
|
-
|
|
35
|
-
- name: ⚙️ Configurar Node.js (Trusted Publisher)
|
|
36
|
-
uses: actions/setup-node@v4
|
|
37
|
-
with:
|
|
38
|
-
node-version: 20
|
|
39
|
-
registry-url: 'https://registry.npmjs.org/'
|
|
40
|
-
always-auth: true
|
|
41
|
-
|
|
42
|
-
- name: 📦 Instalar dependências
|
|
43
|
-
run: |
|
|
44
|
-
if [ -f package-lock.json ]; then
|
|
45
|
-
npm ci --no-audit --no-fund
|
|
46
|
-
else
|
|
47
|
-
npm install --no-audit --no-fund
|
|
48
|
-
fi
|
|
49
|
-
|
|
50
|
-
- name: 🚀 Publicar no npm (via OIDC / Trusted Publisher)
|
|
51
|
-
run: |
|
|
52
|
-
echo "🛰️ Publicando pacote via OIDC..."
|
|
53
|
-
npm publish --access public
|
|
54
|
-
continue-on-error: false
|
|
55
|
-
|
|
56
|
-
- name: ♻️ Restaurar package.json original
|
|
57
|
-
if: always()
|
|
58
|
-
run: |
|
|
59
|
-
if [ -f package_original.json ]; then
|
|
60
|
-
mv -f package_original.json package.json
|
|
61
|
-
echo "♻️ package.json restaurado ao original"
|
|
62
|
-
fi
|
package/img/autobot.png
DELETED
|
Binary file
|
package/img/autupdate.png
DELETED
|
Binary file
|
package/img/cli.png
DELETED
|
Binary file
|
package/img/cronshed.png
DELETED
|
Binary file
|
package/img/debug.log
DELETED
|
File without changes
|
package/img/debug.png
DELETED
|
Binary file
|
package/img/delay.png
DELETED
|
Binary file
|
package/img/dev.png
DELETED
|
Binary file
|
package/img/endpoint.png
DELETED
|
Binary file
|
package/img/log.png
DELETED
|
Binary file
|
package/img/mkauth.png
DELETED
|
Binary file
|
package/img/msn.png
DELETED
|
Binary file
|
package/img/paycon.png
DELETED
|
Binary file
|
package/img/prevent.png
DELETED
|
Binary file
|
package/img/resent.png
DELETED
|
Binary file
|
package/img/reset.png
DELETED
|
Binary file
|
package/img/resync.png
DELETED
|
Binary file
|
package/img/settings.png
DELETED
|
Binary file
|
package/img/shifts.png
DELETED
|
Binary file
|
package/img/spam.png
DELETED
|
Binary file
|
package/img/spam2.png
DELETED
|
Binary file
|
package/img/status.png
DELETED
|
Binary file
|
package/img/status2.png
DELETED
|
Binary file
|
package/img/stop.png
DELETED
|
Binary file
|
package/img/sync.png
DELETED
|
Binary file
|
package/img/terminal.png
DELETED
|
Binary file
|
package/img/timers.png
DELETED
|
Binary file
|
package/img/update.png
DELETED
|
Binary file
|
package/img/whatsapp.png
DELETED
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|