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/bash/setup.sh
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
# 🧹 Limpeza e restauração do terminal
|
|
5
5
|
# ==============================
|
|
6
6
|
cleanup_terminal() {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
stty sane 2>/dev/null || true
|
|
8
|
+
tput cnorm 2>/dev/null || true
|
|
9
9
|
}
|
|
10
10
|
trap cleanup_terminal EXIT INT TERM
|
|
11
11
|
|
|
@@ -15,7 +15,6 @@ trap cleanup_terminal EXIT INT TERM
|
|
|
15
15
|
stty -echo -icanon -isig
|
|
16
16
|
tput civis
|
|
17
17
|
trap '' INT TSTP QUIT
|
|
18
|
-
|
|
19
18
|
clear
|
|
20
19
|
|
|
21
20
|
# ==============================
|
|
@@ -52,61 +51,55 @@ EOF
|
|
|
52
51
|
# 🔄 Função spinner contínuo
|
|
53
52
|
# ==============================
|
|
54
53
|
spinner_start() {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
54
|
+
local message="$1"
|
|
55
|
+
local spin='-\|/'
|
|
56
|
+
local i=0
|
|
57
|
+
while true; do
|
|
58
|
+
i=$(( (i+1) %4 ))
|
|
59
|
+
printf "\r ${spin:$i:1} %s" "$message"
|
|
60
|
+
sleep 0.1
|
|
61
|
+
done
|
|
63
62
|
}
|
|
64
63
|
|
|
65
64
|
# ==============================
|
|
66
65
|
# 🔍 Detecta sudo
|
|
67
66
|
# ==============================
|
|
68
67
|
if [ "$(id -u)" -eq 0 ]; then
|
|
69
|
-
|
|
68
|
+
SUDO=""
|
|
70
69
|
else
|
|
71
|
-
|
|
70
|
+
SUDO="sudo"
|
|
72
71
|
fi
|
|
73
72
|
|
|
74
73
|
# ==============================
|
|
75
74
|
# 🔍 Detectar distribuição
|
|
76
75
|
# ==============================
|
|
77
76
|
detect_distro() {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
DISTRO_DETECT="docker"
|
|
105
|
-
return 0
|
|
106
|
-
fi
|
|
107
|
-
|
|
108
|
-
DISTRO_DETECT="other"
|
|
109
|
-
return 1
|
|
77
|
+
local id=""
|
|
78
|
+
local codename=""
|
|
79
|
+
|
|
80
|
+
if [ -f /etc/os-release ]; then
|
|
81
|
+
. /etc/os-release
|
|
82
|
+
id=$(echo "${ID:-}" | tr '[:upper:]' '[:lower:]')
|
|
83
|
+
codename=$(grep -E '^VERSION_CODENAME=' /etc/os-release | cut -d= -f2 | tr -d '"')
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
if [[ "$id" == "devuan" ]] || grep -qi "devuan" /etc/os-release 2>/dev/null; then
|
|
87
|
+
DISTRO_DETECT="devuan"
|
|
88
|
+
return 0
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
if [[ "$codename" == "bookworm" || "$codename" == "trixie" ]]; then
|
|
92
|
+
DISTRO_DETECT="debian"
|
|
93
|
+
return 0
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
if [[ "$id" == "ubuntu" ]]; then
|
|
97
|
+
DISTRO_DETECT="ubuntu"
|
|
98
|
+
return 0
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
DISTRO_DETECT="other"
|
|
102
|
+
return 1
|
|
110
103
|
}
|
|
111
104
|
|
|
112
105
|
detect_distro
|
|
@@ -118,6 +111,7 @@ LOG_FILE="/var/log/mwsm.log"
|
|
|
118
111
|
$SUDO mkdir -p "$(dirname "$LOG_FILE")" >/dev/null 2>&1
|
|
119
112
|
$SUDO touch "$LOG_FILE" >/dev/null 2>&1
|
|
120
113
|
$SUDO chmod 666 "$LOG_FILE" >/dev/null 2>&1
|
|
114
|
+
|
|
121
115
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Iniciando instalador" >>"$LOG_FILE"
|
|
122
116
|
|
|
123
117
|
# ==============================
|
|
@@ -127,87 +121,71 @@ spinner_start "Inicializando instalador..." &
|
|
|
127
121
|
SPIN_PID=$!
|
|
128
122
|
|
|
129
123
|
{
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
$SUDO systemctl start docker >/dev/null 2>&1
|
|
140
|
-
fi
|
|
141
|
-
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Baixando imagem mkcodec/mwsm:latest" >>"$LOG_FILE"
|
|
142
|
-
$SUDO docker pull mkcodec/mwsm:latest >/dev/null 2>&1
|
|
143
|
-
if $SUDO docker ps -a --format '{{.Names}}' | grep -q '^mwsm$'; then
|
|
144
|
-
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Removendo container antigo Mwsm" >>"$LOG_FILE"
|
|
145
|
-
$SUDO docker stop mwsm >/dev/null 2>&1
|
|
146
|
-
$SUDO docker rm mwsm >/dev/null 2>&1
|
|
147
|
-
fi
|
|
148
|
-
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Iniciando container Mwsm" >>"$LOG_FILE"
|
|
149
|
-
$SUDO docker run -d --name mwsm -p 8000:8000 -p 5005:5005 mkcodec/mwsm:latest >/dev/null 2>&1
|
|
150
|
-
sleep 5
|
|
151
|
-
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Acessando logs do PM2 dentro do container" >>"$LOG_FILE"
|
|
152
|
-
$SUDO docker exec -it mwsm pm2 logs
|
|
153
|
-
else
|
|
154
|
-
# ==============================
|
|
155
|
-
# 🧩 Correção silenciosa Debian antigo
|
|
156
|
-
# ==============================
|
|
157
|
-
detect_distro
|
|
158
|
-
|
|
159
|
-
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
160
|
-
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Corrigindo repositórios (Devuan)" >>"$LOG_FILE"
|
|
161
|
-
$SUDO bash -c '
|
|
124
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Verificando dependências..." >>"$LOG_FILE"
|
|
125
|
+
|
|
126
|
+
# ==============================
|
|
127
|
+
# 🧩 Correção silenciosa Debian antigo
|
|
128
|
+
# ==============================
|
|
129
|
+
detect_distro
|
|
130
|
+
if [[ "$DISTRO_DETECT" == "devuan" ]]; then
|
|
131
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Corrigindo repositórios (Devuan)" >>"$LOG_FILE"
|
|
132
|
+
$SUDO bash -c '
|
|
162
133
|
sed -i "s|deb.debian.org|archive.debian.org|g" /etc/apt/sources.list
|
|
163
134
|
sed -i "s|security.debian.org|archive.debian.org/debian-security|g" /etc/apt/sources.list
|
|
164
135
|
echo "Acquire::Check-Valid-Until false;" > /etc/apt/apt.conf.d/99archive
|
|
165
136
|
apt-get clean -qq >/dev/null 2>&1
|
|
166
137
|
rm -rf /var/lib/apt/lists/* >/dev/null 2>&1
|
|
167
138
|
apt-get update --allow-releaseinfo-change -o Acquire::Check-Valid-Until=false -y -qq >/dev/null 2>&1
|
|
168
|
-
|
|
169
|
-
|
|
139
|
+
' >>"$LOG_FILE" 2>&1
|
|
140
|
+
fi
|
|
170
141
|
|
|
171
142
|
# ==============================
|
|
172
143
|
# 📦 Curl e dependências
|
|
173
144
|
# ==============================
|
|
174
145
|
if ! command -v curl >/dev/null 2>&1; then
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
146
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Instalando curl" >> "$LOG_FILE"
|
|
147
|
+
$SUDO apt-get update -qq >/dev/null 2>&1
|
|
148
|
+
$SUDO apt-get install -y -qq curl >/dev/null 2>&1
|
|
178
149
|
fi
|
|
179
150
|
|
|
180
151
|
# ==============================
|
|
181
152
|
# 🕒 Ajuste de fuso horário e NTP
|
|
182
153
|
# ==============================
|
|
183
154
|
if command -v timedatectl >/dev/null 2>&1; then
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
echo "$CURRENT_TIME - [SETUP] Hora atual do sistema: $(date '+%Y-%m-%d %H:%M:%S')" >>"$LOG_FILE"
|
|
190
|
-
else
|
|
191
|
-
if [ -f /usr/share/zoneinfo/America/Sao_Paulo ]; then
|
|
192
|
-
$SUDO ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime >/dev/null 2>&1
|
|
193
|
-
echo "America/Sao_Paulo" | $SUDO tee /etc/timezone >/dev/null 2>&1
|
|
194
|
-
command -v hwclock >/dev/null 2>&1 && $SUDO hwclock --systohc >/dev/null 2>&1
|
|
195
|
-
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Fallback manual aplicado (sem timedatectl)" >>"$LOG_FILE"
|
|
155
|
+
$SUDO timedatectl set-timezone America/Sao_Paulo >/dev/null 2>&1
|
|
156
|
+
$SUDO timedatectl set-ntp true >/dev/null 2>&1
|
|
157
|
+
|
|
158
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] timedatectl detectado - timezone e NTP configurados" >>"$LOG_FILE"
|
|
159
|
+
|
|
196
160
|
CURRENT_TIME="$(date '+%Y-%m-%d %H:%M:%S')"
|
|
197
|
-
echo "$CURRENT_TIME - [SETUP]
|
|
161
|
+
echo "$CURRENT_TIME - [SETUP] timedatectl detectado - timezone e NTP configurados" >>"$LOG_FILE"
|
|
198
162
|
echo "$CURRENT_TIME - [SETUP] Hora atual do sistema: $(date '+%Y-%m-%d %H:%M:%S')" >>"$LOG_FILE"
|
|
199
|
-
|
|
163
|
+
|
|
164
|
+
else
|
|
165
|
+
if [ -f /usr/share/zoneinfo/America/Sao_Paulo ]; then
|
|
166
|
+
$SUDO ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime >/dev/null 2>&1
|
|
167
|
+
echo "America/Sao_Paulo" | $SUDO tee /etc/timezone >/dev/null 2>&1
|
|
168
|
+
command -v hwclock >/dev/null 2>&1 && $SUDO hwclock --systohc >/dev/null 2>&1
|
|
169
|
+
|
|
170
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Fallback manual aplicado (sem timedatectl)" >>"$LOG_FILE"
|
|
171
|
+
|
|
172
|
+
CURRENT_TIME="$(date '+%Y-%m-%d %H:%M:%S')"
|
|
173
|
+
echo "$CURRENT_TIME - [SETUP] Fallback manual aplicado (sem timedatectl)" >>"$LOG_FILE"
|
|
174
|
+
echo "$CURRENT_TIME - [SETUP] Hora atual do sistema: $(date '+%Y-%m-%d %H:%M:%S')" >>"$LOG_FILE"
|
|
175
|
+
fi
|
|
200
176
|
fi
|
|
201
177
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
178
|
+
# ==============================
|
|
179
|
+
# ⬇️ Download do mwsm.sh (modo normal)
|
|
180
|
+
# ==============================
|
|
181
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Baixando mwsm.sh" >>"$LOG_FILE"
|
|
182
|
+
|
|
183
|
+
$SUDO mkdir -p /var/api/Mwsm >/dev/null 2>&1
|
|
184
|
+
|
|
185
|
+
MWSM_URL="https://raw.githubusercontent.com/MKCodec/Mwsm/refs/heads/main/bash/mwsm.sh?nocache=$(date +%s)"
|
|
186
|
+
|
|
187
|
+
$SUDO curl -sSL "$MWSM_URL" -o /var/api/Mwsm/mwsm.sh >/dev/null 2>&1
|
|
188
|
+
$SUDO chmod +x /var/api/Mwsm/mwsm.sh >/dev/null 2>&1
|
|
211
189
|
|
|
212
190
|
} >>"$LOG_FILE" 2>&1
|
|
213
191
|
|
|
@@ -222,8 +200,10 @@ wait $SPIN_PID 2>/dev/null
|
|
|
222
200
|
# 🧪 Verificação
|
|
223
201
|
# ==============================
|
|
224
202
|
if ! grep -q '# 📦 Gerenciador do Bot-Mwsm' /var/api/Mwsm/mwsm.sh 2>/dev/null; then
|
|
225
|
-
|
|
226
|
-
|
|
203
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Erro ao baixar mwsm.sh" >>"$LOG_FILE"
|
|
204
|
+
stty sane
|
|
205
|
+
tput cnorm
|
|
206
|
+
exit 1
|
|
227
207
|
fi
|
|
228
208
|
|
|
229
209
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Setup concluído com sucesso" >>"$LOG_FILE"
|
|
@@ -235,8 +215,10 @@ clear
|
|
|
235
215
|
cd /var/api/Mwsm >/dev/null 2>&1
|
|
236
216
|
stty sane
|
|
237
217
|
tput cnorm
|
|
218
|
+
|
|
238
219
|
if [ -f /var/api/Mwsm/mwsm.sh ]; then
|
|
239
|
-
|
|
240
|
-
|
|
220
|
+
ln -sf /var/api/Mwsm/mwsm.sh /usr/local/bin/mwsm 2>/dev/null || $SUDO ln -sf /var/api/Mwsm/mwsm.sh /usr/local/bin/mwsm
|
|
221
|
+
chmod +x /usr/local/bin/mwsm 2>/dev/null || $SUDO chmod +x /usr/local/bin/mwsm
|
|
241
222
|
fi
|
|
223
|
+
|
|
242
224
|
exec bash ./mwsm.sh
|
package/img/emojis.png
ADDED
|
Binary file
|
|
Binary file
|
package/mwsm.db
CHANGED
|
Binary file
|