bot-mwsm 3.0.1
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/FUNDING.yml +2 -0
- package/.github/workflows/Mwsm.yml +188 -0
- package/.github/workflows/publish.yml +62 -0
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/bash/mwsm.sh +1060 -0
- package/bash/setup.sh +173 -0
- package/docs/pix.html +146 -0
- package/fonts/OpenSans-Regular-webfont.html +0 -0
- package/fonts/css/font-awesome.min.css +4 -0
- package/fonts/fontawesome-webfont (1).eot +0 -0
- package/fonts/fontawesome-webfont.eot +0 -0
- package/fonts/fontawesome-webfont.ttf +0 -0
- package/fonts/fontawesome-webfont.woff +0 -0
- package/fonts/fontawesome-webfont.woff2 +0 -0
- package/fonts/fonts/fontawesome-webfont3e6e-2.html +0 -0
- package/fonts/fonts/fontawesome-webfont3e6e.eot +0 -0
- package/fonts/fonts/fontawesome-webfont3e6e.html +0 -0
- package/fonts/fonts/fontawesome-webfont3e6e.svg +2671 -0
- package/fonts/fonts/fontawesome-webfont3e6e.woff +0 -0
- package/fonts/fonts/fontawesome-webfontd41d.eot +0 -0
- package/fonts/glyphicons-halflings-regular.eot +0 -0
- package/fonts/glyphicons-halflings-regular.html +0 -0
- package/fonts/glyphicons-halflings-regular.svg +288 -0
- package/fonts/glyphicons-halflings-regular.woff +0 -0
- package/fonts/glyphicons-halflings-regulard41d.eot +0 -0
- package/fonts/texgyreadventor-regular-webfont.html +0 -0
- package/icon.png +0 -0
- package/img/Mwsm.png +0 -0
- package/img/auth.png +0 -0
- 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/find.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/success.png +0 -0
- package/img/sync.png +0 -0
- package/img/terminal.png +0 -0
- package/img/timers.png +0 -0
- package/img/uid.png +0 -0
- package/img/update.png +0 -0
- package/img/whatsapp.png +0 -0
- package/index.html +1543 -0
- package/jquery.js +2 -0
- package/mwsm.db +0 -0
- package/mwsm.js +4979 -0
- package/mwsm.json +25 -0
- package/mwsm.py +91 -0
- package/nodemon.json +3 -0
- package/package.json +62 -0
- package/script.js +24815 -0
- package/socket.io.js +9 -0
- package/style.css +8744 -0
- package/version.json +8 -0
package/mwsm.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"apps": [
|
|
3
|
+
{
|
|
4
|
+
"name": "Bot-Mwsm",
|
|
5
|
+
"script": "mwsm.js",
|
|
6
|
+
"cwd": "/var/api/Mwsm/",
|
|
7
|
+
"watch": ["mwsm.js"],
|
|
8
|
+
"ignore_watch": ["mwsm.db"],
|
|
9
|
+
"watch_options": {
|
|
10
|
+
"followSymlinks": false
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "Ask-Mwsm",
|
|
15
|
+
"script": "mwsm.py",
|
|
16
|
+
"cwd": "/var/api/Mwsm/",
|
|
17
|
+
"interpreter": "python3",
|
|
18
|
+
"watch": ["mwsm.py"],
|
|
19
|
+
"ignore_watch": ["mwsm.db"],
|
|
20
|
+
"watch_options": {
|
|
21
|
+
"followSymlinks": false
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
package/mwsm.py
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
import os
|
|
3
|
+
import sys
|
|
4
|
+
import logging
|
|
5
|
+
import warnings
|
|
6
|
+
from flask import Flask, request, jsonify
|
|
7
|
+
from sentence_transformers import SentenceTransformer
|
|
8
|
+
import huggingface_hub.file_download as fd
|
|
9
|
+
from huggingface_hub import constants
|
|
10
|
+
|
|
11
|
+
# =========================================
|
|
12
|
+
# 🔇 SILÊNCIO TOTAL NO TERMINAL
|
|
13
|
+
# =========================================
|
|
14
|
+
sys.stdout = open(os.devnull, 'w')
|
|
15
|
+
sys.stderr = open(os.devnull, 'w')
|
|
16
|
+
warnings.filterwarnings("ignore")
|
|
17
|
+
|
|
18
|
+
# =========================================
|
|
19
|
+
# 🧩 LOG CONFIG
|
|
20
|
+
# =========================================
|
|
21
|
+
log_path = "/var/api/Mwsm/mwsm.log"
|
|
22
|
+
os.makedirs(os.path.dirname(log_path), exist_ok=True)
|
|
23
|
+
|
|
24
|
+
# Prefixo fixo padronizado
|
|
25
|
+
PREFIX = "> Bot-Mwsm :"
|
|
26
|
+
|
|
27
|
+
def log(message, level="info"):
|
|
28
|
+
"""Loga mensagens com prefixo padronizado."""
|
|
29
|
+
full_message = f"{PREFIX} {message}"
|
|
30
|
+
if level == "error":
|
|
31
|
+
logging.error(full_message)
|
|
32
|
+
else:
|
|
33
|
+
logging.info(full_message)
|
|
34
|
+
|
|
35
|
+
logging.basicConfig(
|
|
36
|
+
filename=log_path,
|
|
37
|
+
level=logging.INFO,
|
|
38
|
+
format="%(asctime)s - %(message)s",
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# =========================================
|
|
42
|
+
# CONFIGURAÇÃO HUGGINGFACE
|
|
43
|
+
# =========================================
|
|
44
|
+
if not os.environ.get("HF_ENDPOINT"):
|
|
45
|
+
os.environ["HF_ENDPOINT"] = "https://huggingface.co"
|
|
46
|
+
os.environ["HF_HUB_OFFLINE"] = "0"
|
|
47
|
+
|
|
48
|
+
fd.HUGGINGFACE_CO_PREFIX = os.environ["HF_ENDPOINT"]
|
|
49
|
+
fd._CACHED_API_URL = f"{os.environ['HF_ENDPOINT']}/api"
|
|
50
|
+
constants.HUGGINGFACE_CO_URL_TEMPLATE = f"{os.environ['HF_ENDPOINT']}/{{repo_id}}/resolve/{{revision}}/{{filename}}"
|
|
51
|
+
|
|
52
|
+
log("Endpoint Hugging Face: https://huggingface.co")
|
|
53
|
+
log(f"_CACHED_API_URL: {fd._CACHED_API_URL}")
|
|
54
|
+
log(f"HUGGINGFACE_CO_URL_TEMPLATE: {constants.HUGGINGFACE_CO_URL_TEMPLATE}")
|
|
55
|
+
|
|
56
|
+
# =========================================
|
|
57
|
+
# CARREGAMENTO DO MODELO
|
|
58
|
+
# =========================================
|
|
59
|
+
log("Loading SentenceTransformer model...")
|
|
60
|
+
try:
|
|
61
|
+
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
|
|
62
|
+
log("Model loaded successfully.")
|
|
63
|
+
except Exception as e:
|
|
64
|
+
log(f"Model loading failed: {e}", level="error")
|
|
65
|
+
sys.exit(1)
|
|
66
|
+
|
|
67
|
+
# =========================================
|
|
68
|
+
# SERVIDOR FLASK
|
|
69
|
+
# =========================================
|
|
70
|
+
app = Flask(__name__)
|
|
71
|
+
|
|
72
|
+
@app.route("/", methods=["GET"])
|
|
73
|
+
def home():
|
|
74
|
+
return jsonify({"status": "online", "model": "all-MiniLM-L6-v2"}), 200
|
|
75
|
+
|
|
76
|
+
@app.route("/embed", methods=["POST"])
|
|
77
|
+
def embed():
|
|
78
|
+
data = request.json or {}
|
|
79
|
+
text = data.get("text", "").strip()
|
|
80
|
+
if not text:
|
|
81
|
+
return jsonify({"error": "Missing or empty 'text' field"}), 400
|
|
82
|
+
try:
|
|
83
|
+
embedding = model.encode([text])[0].tolist()
|
|
84
|
+
return jsonify({"embedding": embedding}), 200
|
|
85
|
+
except Exception as e:
|
|
86
|
+
log(f"Embedding processing error: {e}", level="error")
|
|
87
|
+
return jsonify({"error": str(e)}), 500
|
|
88
|
+
|
|
89
|
+
if __name__ == "__main__":
|
|
90
|
+
log("Flask server started on http://0.0.0.0:5005")
|
|
91
|
+
app.run(host="0.0.0.0", port=5005)
|
package/nodemon.json
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bot-mwsm",
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"description": "Bot-Mwsm: based on Whatsapp API",
|
|
5
|
+
"main": "mwsm.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"update:wa": "npm install whatsapp-web.js@latest --silent --no-audit --no-fund",
|
|
8
|
+
"prestart": "npm run update:wa",
|
|
9
|
+
"start": "node mwsm.js",
|
|
10
|
+
"start:dev": "nodemon mwsm.js",
|
|
11
|
+
"setup:mwsm": "npm run update:wa && pm2 start mwsm.json && pm2 save && pm2 startup && pm2 flush",
|
|
12
|
+
"setup:mkauth": "npm run update:wa && pm2 start mwsm.json && pm2 save && pm2 unstartup && pm2 flush",
|
|
13
|
+
"start:mwsm": "npm run update:wa && pm2 start mwsm.json && pm2 save && pm2 startup && pm2 flush && pm2 log 0",
|
|
14
|
+
"start:mkauth": "npm run update:wa && pm2 start mwsm.json && pm2 save && pm2 unstartup && pm2 flush && pm2 log 0",
|
|
15
|
+
"restart:mwsm": "npm run update:wa && pm2 restart mwsm.json && pm2 flush && pm2 log 0"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/MKCodec/Mwsm.git"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"whatsapp-api",
|
|
23
|
+
"node.js",
|
|
24
|
+
"automation",
|
|
25
|
+
"pm2",
|
|
26
|
+
"bot"
|
|
27
|
+
],
|
|
28
|
+
"author": "ArsNova",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=20.0.0",
|
|
32
|
+
"npm": ">=9.0.0"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"axios": "^1.6.8",
|
|
36
|
+
"Emoji-API": "git+https://github.com/MKCodec/Emoji-API.git",
|
|
37
|
+
"express": "^4.19.2",
|
|
38
|
+
"express-fileupload": "^1.5.0",
|
|
39
|
+
"express-validator": "^7.0.1",
|
|
40
|
+
"http": "0.0.1-security",
|
|
41
|
+
"ip": "^2.0.1",
|
|
42
|
+
"mime-types": "^2.1.35",
|
|
43
|
+
"node-cron": "^3.0.3",
|
|
44
|
+
"qrcode": "^1.5.3",
|
|
45
|
+
"socket.io": "^2.5.0",
|
|
46
|
+
"Url2PDF": "git+https://github.com/MKCodec/Url2PDF.git",
|
|
47
|
+
"util": "^0.12.5",
|
|
48
|
+
"whatsapp-web.js": "latest"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"better-sqlite3": "^9.4.3",
|
|
52
|
+
"nodemon": "^3.1.0",
|
|
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"
|
|
62
|
+
}
|