bot-mwsm 3.0.3 → 3.0.5
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/workflows/Mwsm.yml +37 -49
- package/Dockerfile +100 -0
- package/README.md +10 -18
- package/bash/mwsm.sh +607 -427
- package/bash/setup.sh +116 -47
- package/img/menu-mwsm.png +0 -0
- package/mwsm.db +0 -0
- package/mwsm.js +464 -424
- package/package.json +6 -5
- package/version.json +2 -2
- package/bot-mwsm-3.0.2.tgz +0 -0
package/bash/setup.sh
CHANGED
|
@@ -31,20 +31,20 @@ cat <<'EOF'
|
|
|
31
31
|
###### ############ ########
|
|
32
32
|
###### #### ############ #### ######## ########
|
|
33
33
|
#### ########## ######## #### ######## ########
|
|
34
|
-
#### ############ ############ #### #### ## #### #### #### #### #### ######## ## ###### ######
|
|
35
|
-
#### ## ################## #### #### #### #### #### #### #### ###### #### #### ## ###### ###### ####
|
|
36
|
-
#### #### ########## #### #### #### #### ## #### #### ###### #### #### #### #### ####
|
|
37
|
-
#### #### ###### #### #### #### ## #### #### #### ## ## ## ###### #### #### ####
|
|
38
|
-
#### #### ###### #### #### #### ######## #### #### ## ######## #### #### #### ####
|
|
39
|
-
#### #### ###### #### #### #### ###### #### ###### ######## #### #### #### ####
|
|
40
|
-
#### #### ###### #### #### #### #### #### ###### #### ########## #### #### ####
|
|
41
|
-
###### ## ###### ## ####
|
|
42
|
-
######## ###### ########
|
|
43
|
-
######## ###### ##########
|
|
44
|
-
######## ## ##########
|
|
45
|
-
####################
|
|
46
|
-
##############
|
|
47
|
-
######
|
|
34
|
+
#### ############ ############ #### #### ## #### #### #### #### #### ######## ## ###### ######
|
|
35
|
+
#### ## ################## #### #### #### #### #### #### #### ###### #### #### ## ###### ###### ####
|
|
36
|
+
#### #### ########## #### #### #### #### ## #### #### ###### #### #### #### #### ####
|
|
37
|
+
#### #### ###### #### #### #### ## #### #### #### ## ## ## ###### #### #### ####
|
|
38
|
+
#### #### ###### #### #### #### ######## #### #### ## ######## #### #### #### ####
|
|
39
|
+
#### #### ###### #### #### #### ###### #### ###### ######## #### #### #### ####
|
|
40
|
+
#### #### ###### #### #### #### #### #### ###### #### ########## #### #### ####
|
|
41
|
+
###### ## ###### ## ####
|
|
42
|
+
######## ###### ########
|
|
43
|
+
######## ###### ##########
|
|
44
|
+
######## ## ##########
|
|
45
|
+
####################
|
|
46
|
+
##############
|
|
47
|
+
######
|
|
48
48
|
|
|
49
49
|
EOF
|
|
50
50
|
|
|
@@ -71,10 +71,51 @@ else
|
|
|
71
71
|
SUDO="sudo"
|
|
72
72
|
fi
|
|
73
73
|
|
|
74
|
+
# ==============================
|
|
75
|
+
# 🔍 Detectar distribuição
|
|
76
|
+
# ==============================
|
|
77
|
+
detect_distro() {
|
|
78
|
+
local id=""
|
|
79
|
+
local codename=""
|
|
80
|
+
|
|
81
|
+
if [ -f /etc/os-release ]; then
|
|
82
|
+
. /etc/os-release
|
|
83
|
+
id=$(echo "${ID:-}" | tr '[:upper:]' '[:lower:]')
|
|
84
|
+
codename=$(grep -E '^VERSION_CODENAME=' /etc/os-release | cut -d= -f2 | tr -d '"')
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
if [[ "$id" == "devuan" ]] || grep -qi "devuan" /etc/os-release 2>/dev/null; then
|
|
88
|
+
DISTRO_DETECT="devuan"
|
|
89
|
+
return 0
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
if [[ "$codename" == "bookworm" || "$codename" == "trixie" ]]; then
|
|
93
|
+
DISTRO_DETECT="debian"
|
|
94
|
+
return 0
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
if [[ "$id" == "ubuntu" ]]; then
|
|
98
|
+
DISTRO_DETECT="ubuntu"
|
|
99
|
+
return 0
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
# 🚀 Detecta Docker antes de qualquer fallback
|
|
103
|
+
if [ -f /.dockerenv ] || grep -qE '/docker/' /proc/1/cgroup 2>/dev/null; then
|
|
104
|
+
DISTRO_DETECT="docker"
|
|
105
|
+
return 0
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
DISTRO_DETECT="other"
|
|
109
|
+
return 1
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
detect_distro
|
|
113
|
+
|
|
74
114
|
# ==============================
|
|
75
115
|
# 🧾 Log
|
|
76
116
|
# ==============================
|
|
77
117
|
LOG_FILE="/var/log/mwsm.log"
|
|
118
|
+
$SUDO mkdir -p "$(dirname "$LOG_FILE")" >/dev/null 2>&1
|
|
78
119
|
$SUDO touch "$LOG_FILE" >/dev/null 2>&1
|
|
79
120
|
$SUDO chmod 666 "$LOG_FILE" >/dev/null 2>&1
|
|
80
121
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Iniciando instalador" >>"$LOG_FILE"
|
|
@@ -89,14 +130,34 @@ SPIN_PID=$!
|
|
|
89
130
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Verificando dependências..." >>"$LOG_FILE"
|
|
90
131
|
|
|
91
132
|
# ==============================
|
|
92
|
-
#
|
|
133
|
+
# 🐋 Caso esteja em Docker
|
|
93
134
|
# ==============================
|
|
94
|
-
if [
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
135
|
+
if [[ "$DISTRO_DETECT" == "docker" ]]; then
|
|
136
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Ambiente Docker detectado - iniciando modo ultrarrápido" >>"$LOG_FILE"
|
|
137
|
+
if ! systemctl is-active --quiet docker; then
|
|
138
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Iniciando serviço Docker" >>"$LOG_FILE"
|
|
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"
|
|
100
161
|
$SUDO bash -c '
|
|
101
162
|
sed -i "s|deb.debian.org|archive.debian.org|g" /etc/apt/sources.list
|
|
102
163
|
sed -i "s|security.debian.org|archive.debian.org/debian-security|g" /etc/apt/sources.list
|
|
@@ -106,39 +167,47 @@ SPIN_PID=$!
|
|
|
106
167
|
apt-get update --allow-releaseinfo-change -o Acquire::Check-Valid-Until=false -y -qq >/dev/null 2>&1
|
|
107
168
|
' >>"$LOG_FILE" 2>&1
|
|
108
169
|
fi
|
|
109
|
-
fi
|
|
110
170
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
171
|
+
# ==============================
|
|
172
|
+
# 📦 Curl e dependências
|
|
173
|
+
# ==============================
|
|
174
|
+
if ! command -v curl >/dev/null 2>&1; then
|
|
175
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Instalando curl" >>"$LOG_FILE"
|
|
176
|
+
$SUDO apt-get update -qq >/dev/null 2>&1
|
|
177
|
+
$SUDO apt-get install -y -qq curl >/dev/null 2>&1
|
|
178
|
+
fi
|
|
119
179
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
180
|
+
# ==============================
|
|
181
|
+
# 🕒 Ajuste de fuso horário e NTP
|
|
182
|
+
# ==============================
|
|
183
|
+
if command -v timedatectl >/dev/null 2>&1; then
|
|
184
|
+
$SUDO timedatectl set-timezone America/Sao_Paulo >/dev/null 2>&1
|
|
185
|
+
$SUDO timedatectl set-ntp true >/dev/null 2>&1
|
|
186
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] timedatectl detectado - timezone e NTP configurados" >>"$LOG_FILE"
|
|
187
|
+
CURRENT_TIME="$(date '+%Y-%m-%d %H:%M:%S')"
|
|
188
|
+
echo "$CURRENT_TIME - [SETUP] timedatectl detectado - timezone e NTP configurados" >>"$LOG_FILE"
|
|
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
|
|
128
192
|
$SUDO ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime >/dev/null 2>&1
|
|
129
193
|
echo "America/Sao_Paulo" | $SUDO tee /etc/timezone >/dev/null 2>&1
|
|
130
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"
|
|
196
|
+
CURRENT_TIME="$(date '+%Y-%m-%d %H:%M:%S')"
|
|
197
|
+
echo "$CURRENT_TIME - [SETUP] Fallback manual aplicado (sem timedatectl)" >>"$LOG_FILE"
|
|
198
|
+
echo "$CURRENT_TIME - [SETUP] Hora atual do sistema: $(date '+%Y-%m-%d %H:%M:%S')" >>"$LOG_FILE"
|
|
131
199
|
fi
|
|
200
|
+
fi
|
|
132
201
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
202
|
+
# ==============================
|
|
203
|
+
# ⬇️ Download do mwsm.sh (modo normal)
|
|
204
|
+
# ==============================
|
|
205
|
+
echo "$(date '+%Y-%m-%d %H:%M:%S') - [SETUP] Baixando mwsm.sh" >>"$LOG_FILE"
|
|
206
|
+
$SUDO mkdir -p /var/api/Mwsm >/dev/null 2>&1
|
|
207
|
+
MWSM_URL="https://raw.githubusercontent.com/MKCodec/Mwsm/refs/heads/main/bash/mwsm.sh?nocache=$(date +%s)"
|
|
208
|
+
$SUDO curl -sSL "$MWSM_URL" -o /var/api/Mwsm/mwsm.sh >/dev/null 2>&1
|
|
209
|
+
$SUDO chmod +x /var/api/Mwsm/mwsm.sh >/dev/null 2>&1
|
|
210
|
+
fi
|
|
142
211
|
|
|
143
212
|
} >>"$LOG_FILE" 2>&1
|
|
144
213
|
|
package/img/menu-mwsm.png
CHANGED
|
Binary file
|
package/mwsm.db
CHANGED
|
Binary file
|