bot-mwsm 3.0.5 → 3.0.7
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/README.md +23 -2
- package/bash/mwsm.sh +177 -95
- package/bash/setup.sh +91 -109
- package/img/emojis.png +0 -0
- package/img/emojiselect.png +0 -0
- package/mwsm.db +0 -0
- package/mwsm.js +197 -232
- package/package.json +6 -6
- package/style.css +5 -1
- package/version.json +2 -2
package/README.md
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<a href="javascript:void(0)">
|
|
5
|
-
<img src="https://img.shields.io/badge/Build-3.0.
|
|
5
|
+
<img src="https://img.shields.io/badge/Build-3.0.7-blue?style=for-the-badge" alt="Badge">
|
|
6
6
|
</a>
|
|
7
7
|
<a href="javascript:void(0)">
|
|
8
|
-
<img src="https://img.shields.io/badge/Update-
|
|
8
|
+
<img src="https://img.shields.io/badge/Update-14%2F07%2F2026%2000:07-green?style=for-the-badge" alt="Badge">
|
|
9
9
|
</a>
|
|
10
10
|
<a href="https://github.com/MKCodec/Mwsm">
|
|
11
11
|
<img src="https://img.shields.io/github/stars/MKCodec/Mwsm?style=for-the-badge" alt="Badge">
|
|
@@ -82,6 +82,27 @@ permitindo enviar mensagens, sincronizar cobranças e gerenciar comunicações c
|
|
|
82
82
|
|
|
83
83
|
---
|
|
84
84
|
|
|
85
|
+
## 👨💻 Desenvolvedor
|
|
86
|
+
|
|
87
|
+
Cleber Souza
|
|
88
|
+
- Conecte-se comigo nas redes sociais 👇
|
|
89
|
+
<p align="left">
|
|
90
|
+
<a href="https://www.instagram.com/kfs.742" target="_blank">
|
|
91
|
+
<img src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"/>
|
|
92
|
+
</a>
|
|
93
|
+
|
|
94
|
+
<a href="https://www.tiktok.com/@kfs.742" target="_blank">
|
|
95
|
+
<img src="https://img.shields.io/badge/TikTok-000000?style=for-the-badge&logo=tiktok&logoColor=white"/>
|
|
96
|
+
</a>
|
|
97
|
+
|
|
98
|
+
<a href="https://www.facebook.com/kfs.742" target="_blank">
|
|
99
|
+
<img src="https://img.shields.io/badge/Facebook-1877F2?style=for-the-badge&logo=facebook&logoColor=white"/>
|
|
100
|
+
</a>
|
|
101
|
+
</p>
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
|
|
85
106
|
## 💖 Apoie o Projeto
|
|
86
107
|
|
|
87
108
|
O **Mwsm** é mantido por voluntários e distribuído gratuitamente.
|
package/bash/mwsm.sh
CHANGED
|
@@ -28,6 +28,40 @@ pause_and_restore() {
|
|
|
28
28
|
tput civis >/dev/null 2>&1 || true
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
|
|
32
|
+
fix_wwjs() {
|
|
33
|
+
local BASE_PATH="/var/api/Mwsm/node_modules/whatsapp-web.js/src/util/Injected"
|
|
34
|
+
local STORE_FILE="${BASE_PATH}/Store.js"
|
|
35
|
+
local UTILS_FILE="${BASE_PATH}/Utils.js"
|
|
36
|
+
|
|
37
|
+
if [ -f "$STORE_FILE" ] && grep -q '() => false' "$STORE_FILE"; then
|
|
38
|
+
sed -i 's/() => false/() => true/' "$STORE_FILE"
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# if [ -f "$UTILS_FILE" ] && grep -q 'window.Store.SocketWap.USER_JID' "$UTILS_FILE"; then
|
|
42
|
+
# sed -i '/window\.WWebJS\.rejectCall\s*=\s*async/,/};/c\
|
|
43
|
+
# window.WWebJS.rejectCall = async (peerJid, id) => {\
|
|
44
|
+
# let userId = window.Store.User.getMaybeMePnUser()._serialized;\
|
|
45
|
+
# const stanza = window.Store.SocketWap.wap("call", {\
|
|
46
|
+
# id: window.Store.SocketWap.generateId(),\
|
|
47
|
+
# from: userId,\
|
|
48
|
+
# to: peerJid,\
|
|
49
|
+
# }, [\
|
|
50
|
+
# window.Store.SocketWap.wap("reject", {\
|
|
51
|
+
# "call-id": id,\
|
|
52
|
+
# "call-creator": peerJid,\
|
|
53
|
+
# count: "0",\
|
|
54
|
+
# })\
|
|
55
|
+
# ]);\
|
|
56
|
+
# await window.Store.Socket.deprecatedCastStanza(stanza);\
|
|
57
|
+
# };' "$UTILS_FILE"
|
|
58
|
+
# fi
|
|
59
|
+
|
|
60
|
+
# Fix sendSeen
|
|
61
|
+
[ -f "$UTILS_FILE" ] && cp "$UTILS_FILE" "$UTILS_FILE.backup" && sed -i 's|await window\.Store\.SendSeen\.sendSeen(chat);|await window.Store.SendSeen.markSeen(chat);|g' "$UTILS_FILE"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
|
|
31
65
|
# ===============================
|
|
32
66
|
# Diretórios dinâmicos globais
|
|
33
67
|
# ===============================
|
|
@@ -103,6 +137,8 @@ Setup_Mwsm() {
|
|
|
103
137
|
local SRC=""
|
|
104
138
|
local LOG_PREFIX
|
|
105
139
|
LOG_PREFIX="$(date '+%Y-%m-%d %H:%M:%S') - [SETUP]"
|
|
140
|
+
|
|
141
|
+
# Detectar origem real do script
|
|
106
142
|
if [ -n "${BASH_SOURCE[0]:-}" ]; then
|
|
107
143
|
SRC="${BASH_SOURCE[0]}"
|
|
108
144
|
fi
|
|
@@ -111,29 +147,29 @@ Setup_Mwsm() {
|
|
|
111
147
|
SRC="$(realpath "$SRC")"
|
|
112
148
|
fi
|
|
113
149
|
|
|
150
|
+
# Evitar usar STDIN (terminal) como fonte
|
|
114
151
|
if [ ! -f "$SRC" ] || [ -z "$SRC" ]; then
|
|
115
|
-
if [ -r "
|
|
116
|
-
SRC="
|
|
117
|
-
elif [ -r "/proc/self/
|
|
118
|
-
SRC="/proc/self/
|
|
152
|
+
if [[ -r "$0" && "$0" != "bash" ]]; then
|
|
153
|
+
SRC="$0"
|
|
154
|
+
elif [ -r "/proc/self/exe" ]; then
|
|
155
|
+
SRC="/proc/self/exe"
|
|
156
|
+
else
|
|
157
|
+
echo "$LOG_PREFIX ⚠️ Não foi possível determinar o caminho real do script, ignorando restauração" >>"$LOG_FILE"
|
|
158
|
+
return 0
|
|
119
159
|
fi
|
|
120
160
|
fi
|
|
121
|
-
|
|
122
|
-
if [ -z "$SRC" ]; then
|
|
123
|
-
echo "$LOG_PREFIX ⚠️ Não foi possível localizar o script em execução para restaurar mwsm.sh" >>"$LOG_FILE"
|
|
124
|
-
return 1
|
|
125
|
-
fi
|
|
126
|
-
|
|
161
|
+
# Se o script destino não existir, restaura a partir da origem detectada
|
|
127
162
|
if [[ -d $BASE_DIR && ! -f "$SCRIPT_PATH" ]]; then
|
|
128
163
|
echo "$LOG_PREFIX 🔁 Restaurando mwsm.sh a partir de $SRC" >>"$LOG_FILE"
|
|
164
|
+
|
|
129
165
|
if [ "$(id -u)" -eq 0 ]; then
|
|
130
|
-
cp
|
|
166
|
+
cp -f "$SRC" "$SCRIPT_PATH" 2>>"$LOG_FILE" || {
|
|
131
167
|
echo "$LOG_PREFIX ❌ Falha ao copiar $SRC -> $SCRIPT_PATH" >>"$LOG_FILE"
|
|
132
168
|
return 1
|
|
133
169
|
}
|
|
134
170
|
chmod +x "$SCRIPT_PATH" 2>>"$LOG_FILE" || true
|
|
135
171
|
else
|
|
136
|
-
$SUDO bash -c "cp
|
|
172
|
+
$SUDO bash -c "cp -f '$SRC' '$SCRIPT_PATH' && chmod +x '$SCRIPT_PATH'" 2>>"$LOG_FILE" || {
|
|
137
173
|
echo "$LOG_PREFIX ❌ Falha ao copiar (sudo) $SRC -> $SCRIPT_PATH" >>"$LOG_FILE"
|
|
138
174
|
return 1
|
|
139
175
|
}
|
|
@@ -141,14 +177,15 @@ Setup_Mwsm() {
|
|
|
141
177
|
|
|
142
178
|
if [ -f "$SCRIPT_PATH" ]; then
|
|
143
179
|
echo "$LOG_PREFIX ✅ mwsm.sh restaurado em $SCRIPT_PATH" >>"$LOG_FILE"
|
|
144
|
-
return 0
|
|
145
180
|
else
|
|
146
181
|
echo "$LOG_PREFIX ❌ Após copiar, $SCRIPT_PATH ainda não existe." >>"$LOG_FILE"
|
|
147
182
|
return 1
|
|
148
183
|
fi
|
|
149
184
|
fi
|
|
185
|
+
|
|
150
186
|
return 0
|
|
151
187
|
}
|
|
188
|
+
|
|
152
189
|
silent_menu() {
|
|
153
190
|
local local_file="$BASE_DIR/mwsm.sh"
|
|
154
191
|
local remote_url="https://raw.githubusercontent.com/MKCodec/Mwsm/refs/heads/main/bash/mwsm.sh"
|
|
@@ -185,10 +222,6 @@ NODE_INSTALL_FAILED=false
|
|
|
185
222
|
NPM_INSTALL_FAILED=false
|
|
186
223
|
LAST_SUCCESS=""
|
|
187
224
|
detect_distro
|
|
188
|
-
if [ "$DISTRO" != "devuan" ] && [ "$DISTRO_DETECT" != "devuan" ]; then
|
|
189
|
-
export PIP_EXTRA_INDEX_URL="https://download.pytorch.org/whl/cpu"
|
|
190
|
-
fi
|
|
191
|
-
|
|
192
225
|
|
|
193
226
|
# =================================
|
|
194
227
|
# Modo de log completo
|
|
@@ -440,77 +473,102 @@ run_step "$SUDO bash -c '
|
|
|
440
473
|
INSTALL_FAILED=true
|
|
441
474
|
else
|
|
442
475
|
|
|
476
|
+
|
|
443
477
|
# -------------------------
|
|
444
478
|
# 🐍 Python + Pip + Libs
|
|
445
479
|
# -------------------------
|
|
446
480
|
|
|
447
|
-
if
|
|
448
|
-
|
|
449
|
-
$SUDO apt install -y python3 python3-pip python3-venv \
|
|
450
|
-
-o Dpkg::Options::='--force-confdef' \
|
|
451
|
-
-o Dpkg::Options::='--force-confold' >/dev/null 2>&1" \
|
|
452
|
-
'Instalando Python' install
|
|
453
|
-
|
|
454
|
-
if ! command -v pip3 >/dev/null 2>&1; then
|
|
455
|
-
run_step "$SUDO python3 -m ensurepip --upgrade >/dev/null 2>&1" \
|
|
456
|
-
'Restaurando pip' install
|
|
457
|
-
fi
|
|
458
|
-
run_step "cd /tmp && \
|
|
459
|
-
PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
460
|
-
$SUDO python3 -m pip install --quiet --no-input --upgrade pip setuptools wheel" \
|
|
461
|
-
'Atualizando Python' instal
|
|
462
|
-
run_step "cd /tmp && \
|
|
463
|
-
PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
464
|
-
$SUDO python3 -m pip install --quiet --no-input \
|
|
465
|
-
'flask==2.2.5' \
|
|
466
|
-
'sentence-transformers==2.2.2' \
|
|
467
|
-
'transformers==4.25.1' \
|
|
468
|
-
'safetensors==0.3.1' \
|
|
469
|
-
'huggingface_hub==0.10.1'" \
|
|
470
|
-
'Instalando libs Python' install
|
|
481
|
+
if python3 -m pip install --help 2>&1 | grep -q -- '--break-system-packages'; then
|
|
482
|
+
PIP_BREAK_OPT="--break-system-packages"
|
|
471
483
|
else
|
|
472
|
-
|
|
473
|
-
$SUDO apt install -y python3 python3-pip python3-venv \
|
|
474
|
-
-o Dpkg::Options::='--force-confdef' \
|
|
475
|
-
-o Dpkg::Options::='--force-confold' >/dev/null 2>&1" \
|
|
476
|
-
'Instalando Python' install
|
|
477
|
-
|
|
478
|
-
if ! command -v pip3 >/dev/null 2>&1; then
|
|
479
|
-
run_step "$SUDO python3 -m ensurepip --upgrade >/dev/null 2>&1" \
|
|
480
|
-
'Restaurando pip' install
|
|
484
|
+
PIP_BREAK_OPT=""
|
|
481
485
|
fi
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
$SUDO
|
|
486
|
-
|
|
486
|
+
|
|
487
|
+
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
488
|
+
# --- Instalação simplificada (Devuan já possui CUDA + PyTorch nativo) ---
|
|
489
|
+
run_step "$SUDO apt update -y >/dev/null 2>&1 && \
|
|
490
|
+
$SUDO apt install -y python3 python3-pip python3-venv \
|
|
491
|
+
-o Dpkg::Options::='--force-confdef' \
|
|
492
|
+
-o Dpkg::Options::='--force-confold' >/dev/null 2>&1" \
|
|
493
|
+
'Instalando Python' install
|
|
494
|
+
|
|
495
|
+
if ! command -v pip3 >/dev/null 2>&1; then
|
|
496
|
+
run_step "$SUDO python3 -m ensurepip --upgrade >/dev/null 2>&1" \
|
|
497
|
+
'Restaurando pip' install
|
|
498
|
+
fi
|
|
499
|
+
|
|
500
|
+
run_step "cd /tmp && \
|
|
501
|
+
PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
502
|
+
$SUDO python3 -m pip install --quiet --no-input --upgrade pip setuptools wheel" \
|
|
503
|
+
'Atualizando Python' install
|
|
504
|
+
|
|
487
505
|
run_step "PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
488
506
|
$SUDO python3 -m pip install --quiet --no-input \
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
507
|
+
'flask==2.2.5' \
|
|
508
|
+
'sentence-transformers==2.2.2' \
|
|
509
|
+
'transformers==4.25.1' \
|
|
510
|
+
'safetensors==0.3.1' \
|
|
511
|
+
'huggingface_hub==0.10.1'" \
|
|
512
|
+
'Instalando libs Python' install
|
|
513
|
+
|
|
514
|
+
else
|
|
515
|
+
# --- Caminho completo para Debian/Ubuntu (sem CUDA) ---
|
|
516
|
+
run_step "$SUDO apt update -y >/dev/null 2>&1 && \
|
|
517
|
+
$SUDO apt install -y python3 python3-pip python3-venv \
|
|
518
|
+
-o Dpkg::Options::='--force-confdef' \
|
|
519
|
+
-o Dpkg::Options::='--force-confold' >/dev/null 2>&1" \
|
|
520
|
+
'Instalando Python' install
|
|
521
|
+
|
|
522
|
+
if ! command -v pip3 >/dev/null 2>&1; then
|
|
523
|
+
run_step "$SUDO python3 -m ensurepip --upgrade >/dev/null 2>&1" \
|
|
524
|
+
'Restaurando pip' install
|
|
525
|
+
fi
|
|
526
|
+
|
|
527
|
+
run_step "cd /tmp && \
|
|
528
|
+
PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
529
|
+
$SUDO python3 -m ensurepip --upgrade >/dev/null 2>&1 && \
|
|
530
|
+
$SUDO python3 -m pip install --no-input --quiet --upgrade setuptools wheel >/dev/null 2>&1 || true" \
|
|
531
|
+
'Atualizando Python' install
|
|
532
|
+
|
|
533
|
+
run_step "PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
534
|
+
$SUDO env PIP_EXTRA_INDEX_URL='https://download.pytorch.org/whl/cpu' \
|
|
535
|
+
python3 -m pip install --quiet --no-input $PIP_BREAK_OPT \
|
|
536
|
+
--target=/usr/lib/python3/dist-packages \
|
|
537
|
+
'filelock<3.13.0' \
|
|
538
|
+
'typing-extensions<4.6.0' \
|
|
539
|
+
'flask==2.2.5' \
|
|
540
|
+
'sentence-transformers==2.2.2' \
|
|
541
|
+
'transformers==4.25.1' \
|
|
542
|
+
'safetensors==0.3.1' \
|
|
543
|
+
'huggingface_hub==0.10.1' \
|
|
544
|
+
'torch==1.13.1+cpu' \
|
|
545
|
+
'torchvision==0.14.1+cpu' \
|
|
546
|
+
-f https://download.pytorch.org/whl/cpu >/dev/null 2>&1 || true" \
|
|
492
547
|
'Instalando libs Python' install
|
|
493
548
|
fi
|
|
494
549
|
|
|
495
550
|
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
496
|
-
# --- Compatibilidade Devuan (Beowulf) ---
|
|
497
551
|
run_step "
|
|
498
552
|
command -v pip3 >/dev/null 2>&1 || $SUDO apt install -y python3-pip >/dev/null 2>&1
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
553
|
+
for pkg in flask sentence-transformers huggingface_hub; do
|
|
554
|
+
python3 -m pip show \$pkg >/dev/null 2>&1 || \
|
|
555
|
+
$SUDO python3 -m pip install --quiet --no-input \$pkg >/dev/null 2>&1 || true
|
|
556
|
+
done
|
|
502
557
|
" 'Verificando integridade Python' install
|
|
503
558
|
else
|
|
504
|
-
# --- Compatibilidade Debian 11+ / Ubuntu 20+ ---
|
|
505
559
|
run_step "
|
|
506
560
|
command -v pip3 >/dev/null 2>&1 || $SUDO apt install -y python3-pip >/dev/null 2>&1
|
|
507
561
|
for pkg in flask sentence-transformers huggingface_hub; do
|
|
508
|
-
python3 -m pip show \$pkg >/dev/null 2>&1 ||
|
|
509
|
-
$SUDO
|
|
562
|
+
python3 -m pip show \$pkg >/dev/null 2>&1 || \
|
|
563
|
+
$SUDO env PIP_EXTRA_INDEX_URL='https://download.pytorch.org/whl/cpu' \
|
|
564
|
+
python3 -m pip install --quiet --no-input \$PIP_BREAK_OPT --target=/usr/lib/python3/dist-packages \$pkg >/dev/null 2>&1 || true
|
|
510
565
|
done
|
|
511
566
|
" 'Verificando integridade Python' install
|
|
512
567
|
fi
|
|
513
568
|
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
|
|
514
572
|
|
|
515
573
|
# -------------------------
|
|
516
574
|
# Repositório Mwsm
|
|
@@ -543,12 +601,12 @@ $SUDO chown -R "$CURRENT_USER":"$CURRENT_USER" "$BASE_DIR"
|
|
|
543
601
|
# -------------------------
|
|
544
602
|
cd $BASE_DIR || return
|
|
545
603
|
run_step "node -v >/dev/null 2>&1" "Verificando instalação do Node.js" install
|
|
546
|
-
run_step "$SUDO npm install -g npm@
|
|
604
|
+
run_step "$SUDO npm install -g npm@10 --quiet --no-progress" "Atualizando NPM" install
|
|
547
605
|
run_step "$SUDO npm cache clean --force >/dev/null 2>&1" "Limpando cache NPM" install
|
|
548
606
|
run_step "npm config set registry https://registry.npmjs.org >/dev/null 2>&1" "Configurando registro NPM" install
|
|
549
607
|
|
|
550
608
|
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
551
|
-
run_step "$SUDO npm install -g npm@
|
|
609
|
+
run_step "$SUDO npm install -g npm@10 node-gyp@latest" "Atualizando npm e node-gyp" install
|
|
552
610
|
run_step "$SUDO npm install --silent --no-fund --no-audit" "Instalando dependências Node" install
|
|
553
611
|
command -v node >/dev/null 2>&1 || $SUDO ln -sf /usr/bin/nodejs /usr/bin/node
|
|
554
612
|
run_step "node -v && npm -v" "Verificando Node.js e NPM" install
|
|
@@ -580,6 +638,8 @@ run_step "npm config set registry https://registry.npmjs.org >/dev/null 2>&1" "C
|
|
|
580
638
|
run_step "node -v && npm -v" "Verificando Node.js e NPM" install
|
|
581
639
|
fi
|
|
582
640
|
|
|
641
|
+
run_step 'fix_wwjs' "Aplicando correções no Wwjs" install
|
|
642
|
+
|
|
583
643
|
# -------------------------
|
|
584
644
|
# Instalação e atualização do PM2
|
|
585
645
|
# -------------------------
|
|
@@ -607,7 +667,7 @@ fi
|
|
|
607
667
|
# Inicialização dos serviços
|
|
608
668
|
# -------------------------
|
|
609
669
|
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
610
|
-
run_step "$SUDO
|
|
670
|
+
run_step "$SUDO bash -c 'CRON_JOB=\"@reboot cd $BASE_DIR && npm run start:mkauth\"; crontab -l 2>/dev/null | grep -Fxq \"\$CRON_JOB\" || { (crontab -l 2>/dev/null; echo \"\$CRON_JOB\") | crontab -; }'" "Configurando inicialização" install
|
|
611
671
|
run_step "$SUDO npm run setup:mkauth" "Iniciando serviços" install
|
|
612
672
|
else
|
|
613
673
|
run_step "$SUDO npm run setup:mwsm" "Iniciando serviços" install
|
|
@@ -825,59 +885,78 @@ Setup_Mwsm
|
|
|
825
885
|
# Use precise detection for update branches if needed
|
|
826
886
|
detect_distro
|
|
827
887
|
|
|
828
|
-
|
|
829
|
-
run_step "$SUDO npm install -g npm@
|
|
888
|
+
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
889
|
+
run_step "$SUDO npm install -g npm@10 node-gyp@latest --silent --no-audit --no-fund" "Atualizando npm e node-gyp" update
|
|
830
890
|
else
|
|
831
|
-
run_step "$SUDO npm install -g npm@
|
|
891
|
+
run_step "$SUDO npm install -g npm@10 --silent --no-audit --no-fund" "Atualizando npm" update
|
|
832
892
|
fi
|
|
833
893
|
|
|
834
894
|
run_step "$SUDO npm install --silent --no-fund --no-audit" "Atualizando dependências Node.js" update
|
|
835
895
|
|
|
896
|
+
run_step 'fix_wwjs' "Aplicando correções no Wwjs" update
|
|
897
|
+
|
|
836
898
|
# -------------------------
|
|
837
899
|
# 🐍 Atualização Python + Pip + Libs
|
|
838
900
|
# -------------------------
|
|
839
901
|
|
|
902
|
+
if python3 -m pip install --help 2>&1 | grep -q -- '--break-system-packages'; then
|
|
903
|
+
PIP_BREAK_OPT="--break-system-packages"
|
|
904
|
+
else
|
|
905
|
+
PIP_BREAK_OPT=""
|
|
906
|
+
fi
|
|
907
|
+
|
|
840
908
|
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
909
|
+
# --- Devuan com CUDA: atualização mínima ---
|
|
841
910
|
if ! command -v python3 >/dev/null 2>&1; then
|
|
842
911
|
run_step "$SUDO apt install -y python3 python3-pip python3-venv --no-install-recommends >/dev/null 2>&1" "Instalando Python" update
|
|
843
912
|
fi
|
|
913
|
+
|
|
844
914
|
run_step "$SUDO python3 -m pip install --quiet --upgrade pip setuptools wheel" "Atualizando pip" update
|
|
845
|
-
|
|
846
|
-
|
|
915
|
+
|
|
916
|
+
run_step "PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
847
917
|
$SUDO python3 -m pip install --quiet --no-input \
|
|
848
918
|
'flask==2.2.5' \
|
|
849
919
|
'sentence-transformers==2.2.2' \
|
|
850
920
|
'transformers==4.25.1' \
|
|
851
921
|
'safetensors==0.3.1' \
|
|
852
|
-
'huggingface_hub==0.10.1'
|
|
853
|
-
|
|
854
|
-
else
|
|
922
|
+
'huggingface_hub==0.10.1'" \
|
|
923
|
+
"Atualizando libs Python" update
|
|
855
924
|
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
925
|
+
else
|
|
926
|
+
# --- Debian/Ubuntu sem CUDA ---
|
|
927
|
+
if ! command -v python3 >/dev/null 2>&1; then
|
|
928
|
+
run_step "$SUDO apt update -y >/dev/null 2>&1 && \
|
|
929
|
+
$SUDO apt install -y python3 python3-pip python3-venv \
|
|
930
|
+
-o Dpkg::Options::='--force-confdef' \
|
|
931
|
+
-o Dpkg::Options::='--force-confold' >/dev/null 2>&1" \
|
|
932
|
+
"Instalando Python" update
|
|
933
|
+
fi
|
|
863
934
|
|
|
864
|
-
run_step "cd /tmp && \
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
935
|
+
run_step "cd /tmp && \
|
|
936
|
+
PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
937
|
+
$SUDO python3 -m ensurepip --upgrade >/dev/null 2>&1 && \
|
|
938
|
+
$SUDO python3 -m pip install --no-input --quiet --upgrade setuptools wheel >/dev/null 2>&1 || true" \
|
|
939
|
+
"Atualizando pip" update
|
|
869
940
|
|
|
870
941
|
run_step "cd /tmp && \
|
|
871
942
|
PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore \
|
|
872
|
-
$SUDO
|
|
943
|
+
$SUDO env PIP_EXTRA_INDEX_URL='https://download.pytorch.org/whl/cpu' \
|
|
944
|
+
python3 -m pip install --quiet --no-input $PIP_BREAK_OPT \
|
|
945
|
+
--target=/usr/lib/python3/dist-packages \
|
|
946
|
+
'filelock<3.13.0' \
|
|
947
|
+
'typing-extensions<4.6.0' \
|
|
873
948
|
'flask==2.2.5' \
|
|
874
949
|
'sentence-transformers==2.2.2' \
|
|
875
|
-
'
|
|
876
|
-
|
|
950
|
+
'transformers==4.25.1' \
|
|
951
|
+
'safetensors==0.3.1' \
|
|
952
|
+
'huggingface_hub==0.10.1' \
|
|
953
|
+
'torch==1.13.1+cpu' \
|
|
954
|
+
'torchvision==0.14.1+cpu' \
|
|
955
|
+
-f https://download.pytorch.org/whl/cpu >/dev/null 2>&1 || true" \
|
|
956
|
+
"Atualizando libs Python" update
|
|
877
957
|
fi
|
|
878
958
|
|
|
879
959
|
|
|
880
|
-
|
|
881
960
|
if command -v pm2 >/dev/null 2>&1; then
|
|
882
961
|
CURRENT_PM2_VERSION=$(pm2 -v | head -n1 | tr -d '[:space:]')
|
|
883
962
|
LATEST_PM2_VERSION=$(npm view pm2 version 2>/dev/null | tr -d '[:space:]')
|
|
@@ -894,7 +973,7 @@ fi
|
|
|
894
973
|
run_step "migrate_mwsm" "Importando dados Mwsm" update
|
|
895
974
|
|
|
896
975
|
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
897
|
-
run_step "$SUDO
|
|
976
|
+
run_step "$SUDO bash -c 'CRON_JOB=\"@reboot cd $BASE_DIR && npm run start:mkauth\"; crontab -l 2>/dev/null | grep -Fxq \"\$CRON_JOB\" || { (crontab -l 2>/dev/null; echo \"\$CRON_JOB\") | crontab -; }'" "Configurando inicialização" update
|
|
898
977
|
run_step "$SUDO npm run setup:mkauth" "Reiniciando serviços" update
|
|
899
978
|
|
|
900
979
|
else
|
|
@@ -963,7 +1042,7 @@ uninstall() {
|
|
|
963
1042
|
detect_distro
|
|
964
1043
|
|
|
965
1044
|
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
966
|
-
run_step "crontab -l 2>/dev/null | grep -
|
|
1045
|
+
run_step "crontab -l 2>/dev/null | grep -Fv 'cd $BASE_DIR && npm run start:mkauth' | crontab -" "Removendo inicialização" uninstall || UNINSTALL_FAILED=true
|
|
967
1046
|
else
|
|
968
1047
|
run_step "$SUDO pm2 unstartup systemd" "Removendo inicialização" uninstall || UNINSTALL_FAILED=true
|
|
969
1048
|
fi
|
|
@@ -995,8 +1074,11 @@ uninstall() {
|
|
|
995
1074
|
run_step "skip" "Limpando diretórios" uninstall
|
|
996
1075
|
fi
|
|
997
1076
|
|
|
1077
|
+
# Removendo link do comando mwsm
|
|
998
1078
|
if [ -L /usr/local/bin/mwsm ] || [ -f /usr/local/bin/mwsm ]; then
|
|
999
|
-
rm -f /usr/local/bin/mwsm
|
|
1079
|
+
run_step "$SUDO rm -f /usr/local/bin/mwsm" "Removendo comando mwsm" uninstall || UNINSTALL_FAILED=true
|
|
1080
|
+
else
|
|
1081
|
+
run_step "skip" "Removendo comando mwsm" uninstall
|
|
1000
1082
|
fi
|
|
1001
1083
|
|
|
1002
1084
|
if [ "$NO_PAUSE" = false ]; then
|