1
0

1 Commits

Author SHA1 Message Date
f48ca0cc84 Added badwords 2023-03-23 19:12:24 +01:00
7 changed files with 414 additions and 383 deletions

4
app.js
View File

@ -2,7 +2,7 @@ var server = require("./server");
var router = require("./route"); var router = require("./route");
var requestHandlers = require("./requestHandlers"); var requestHandlers = require("./requestHandlers");
var debug = server.debugMode(); var debug = false; // todo move this to configfile
var handle = {} var handle = {}
handle["/"] = requestHandlers.sendInterface; handle["/"] = requestHandlers.sendInterface;
@ -14,7 +14,7 @@ handle["/js/jquery-ui.js"] = requestHandlers.sendJqueryUI;
handle["/css/bootstrap.min.css"] = requestHandlers.sendBootstrap; handle["/css/bootstrap.min.css"] = requestHandlers.sendBootstrap;
handle["/clear"] = requestHandlers.sendClear; handle["/clear"] = requestHandlers.sendClear;
if(server.demoMode()){ if(server.demoMode==1){
handle["/demo"] = requestHandlers.sendDemo; handle["/demo"] = requestHandlers.sendDemo;
}else{ }else{
console.log("ERROR: Demo mode not active"); console.log("ERROR: Demo mode not active");

View File

@ -1,38 +1,46 @@
<!DOCTYPE html> <!DOCTYPE html>
<meta charset="UTF-8">
<html> <html>
<head> <head>
<meta charset="UTF-8">
<title>SMS Board</title> <title>SMS Board</title>
<link rel='stylesheet' href='sprite/emoji.css' > <link rel='stylesheet' href='sprite/emoji.css' >
<link rel="stylesheet" href="/css/bootstrap.min.css" /> <link rel="stylesheet" href="/css/bootstrap.min.css" />
<script src="/js/jquery-1.12.1.min"></script> <script src="/js/jquery-1.12.1.min"></script>
<script src="/js/jquery-ui.js"></script> <script src="/js/jquery-ui.js"></script>
<script src="/socket.io/socket.io.js"></script> <script src="/socket.io/socket.io.js">
<style> </script>
/* Sticky footer styles <style>
-------------------------------------------------- */ /* Sticky footer styles
html, body { -------------------------------------------------- */
html,
body {
height: 100%; height: 100%;
/* The html and body elements cannot have any padding or margin. */ /* The html and body elements cannot have any padding or margin. */
} }
/* Wrapper for page content to push down footer */
#wrap { /* Wrapper for page content to push down footer */
#wrap {
min-height: 100%; min-height: 100%;
height: auto; height: auto;
/* Negative indent footer by its height */ /* Negative indent footer by its height */
margin: 0 auto -60px; margin: 0 auto -60px;
/* Pad bottom by footer height */ /* Pad bottom by footer height */
padding: 0 0 60px; padding: 0 0 60px;
} }
/* Set the fixed height of the footer here */
#footer { /* Set the fixed height of the footer here */
#footer {
height: 100px; height: 100px;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
} }
</style> </style>
<script>
<script>
const toDisplay = 4; //define the number of messages to show const toDisplay = 4; //define the number of messages to show
var iosocket; var iosocket;
var currentMessageCount = 0; var currentMessageCount = 0;
@ -59,13 +67,19 @@
} }
} }
function initSocketIO() {
function initSocketIO()
{
iosocket = io.connect(); iosocket = io.connect();
iosocket.on('clientrefresh', function() { iosocket.on('clientrefresh', function() {
location.reload(); location.reload();
}); });
iosocket.on('connect', function() { iosocket.on('connect', function() {
iosocket.on('debugMessage', function(message) { iosocket.on('debugMessage', function(message) {
alert(message); alert(message);
}); });
@ -75,39 +89,43 @@
$( "span.number" ).html(mynumber); $( "span.number" ).html(mynumber);
}); });
iosocket.on('newMessage', function(time,number,message,color) { iosocket.on('newMessage', function(time,number,message,color) {
var censoredNumber = number.substring(0,3) + "********" +number.substring(number.length - 3, number.length); var censoredNumber = number.substring(0,3) + "********" +number.substring(number.length - 3, number.length);
var messages = document.getElementById('messagesBody'); var messages = document.getElementById('messagesBody');
var newDiv = document.createElement('div'); newDiv = document.createElement('div');
var newH1 = document.createElement('h1'); var newH1 = document.createElement('h1');
var newP = document.createElement('p'); var newP = document.createElement('p');
newH1.innerHTML = message; newH1.innerHTML = message;
newP.innerHTML = "by " + censoredNumber + " at " + time; newP.innerHTML = "by "+censoredNumber+" at "+time;
newDiv.style.backgroundColor = getColor(color); //need this on both for some browsers (especially safari) to recognize... newDiv.style.backgroundColor = getColor(color); //need this on both for some browsers (especially safari) to recognize...
newDiv.style = "background-color:" + getColor(color) + " !important; padding:10px 0; margin:10px 0;"; newDiv.style="background-color:"+getColor(color)+" !important; padding:10px 0; margin:10px 0;";
newDiv.className = "jumbotron"; newDiv.className="jumbotron";
newDiv.appendChild(newH1); newDiv.appendChild(newH1);
newDiv.appendChild(newP); newDiv.appendChild(newP);
currentMessageCount++;
if(currentMessageCount > toDisplay) { currentMessageCount++;
if(currentMessageCount > toDisplay)
{
//Remove the top div //Remove the top div
$('#messagesBody').find('div').first().slideUp(function() { $('#messagesBody').find('div').first().slideUp(function() {
$(this).remove(); $(this).remove();
document.getElementById('messagesBody').appendChild(newDiv); document.getElementById('messagesBody').appendChild(newDiv);
}); });
currentMessageCount--; currentMessageCount--;
} else { }else{
document.getElementById('messagesBody').appendChild(newDiv); document.getElementById('messagesBody').appendChild(newDiv);
} }
});
});
};
function initButton() { });
});
}
function initButton()
{
$("#check").button(); $("#check").button();
}; }
window.onload = function() { window.onload = function() {
initSocketIO(); initSocketIO();
@ -115,19 +133,25 @@
iosocket.emit('getConfig'); iosocket.emit('getConfig');
}; };
$(document).ready(function() { $(document).ready(function() {
$('#check').click(function() { $('#check').click(function() {
iosocket.emit('sendAT',toggleVal); iosocket.emit('sendAT',toggleVal);
}); });
}); });
</script>
</script>
</head> </head>
<body style="/*background-color: #D4D4D4;*/"> <body style="/*background-color: #D4D4D4;*/">
<div style="text-align:center;" > <div style="text-align:center;" >
<h2>Send an SMS with a message to <span class="number" style="color:#3399ff;"></span></h2> <h2>Send an SMS with a message to <span class="number" style="color:#3399ff;"></span></h2>
<div id="wrap"> <div id="wrap">
<div id="messagesBody"></div> <div id="messagesBody">
</div>
<br> <br>
<br> <br>
<div style="display:none;" id="btnHolder"> <div style="display:none;" id="btnHolder">
@ -135,10 +159,10 @@
<input type="checkbox" id="check" value="toggle"/><label for="check">Send AT</label> <input type="checkbox" id="check" value="toggle"/><label for="check">Send AT</label>
<div id="debugOut"> </div> <div id="debugOut"> </div>
</div> </div>
</div> </div>
<div id="footer"> <!-- <div id="footer">
<h2>Send an SMS with a message to <span class="number" style="color:#3399ff;"></span></h2> <h2>Send an SMS with a message to <span class="number" style="color:#3399ff;"></span></h2>
</div> </div>
</div> -->
</body> </body>
</html> </html>

View File

@ -1,27 +1,37 @@
<!DOCTYPE html> <!DOCTYPE html>
<meta charset="UTF-8">
<html> <html>
<head> <head>
<meta charset="UTF-8"> <title>Clear Board</title>
<title>Clear Board</title>
<link rel='stylesheet' href='sprite/emoji.css' > <link rel='stylesheet' href='sprite/emoji.css' >
<link rel="stylesheet" href="/css/bootstrap.min.css" /> <link rel="stylesheet" href="/css/bootstrap.min.css" />
<script src="/js/jquery-1.12.1.min"></script> <script src="/js/jquery-1.12.1.min"></script>
<script src="/js/jquery-ui.js"></script> <script src="/js/jquery-ui.js"></script>
<script src="/socket.io/socket.io.js"></script> <script src="/socket.io/socket.io.js"></script>
<script>
<script>
var iosocket; var iosocket;
function initSocketIO() {
function initSocketIO()
{
iosocket = io.connect(); iosocket = io.connect();
iosocket.on('connect', function() { iosocket.on('connect', function() {
iosocket.on('debugMessage', function(message) { iosocket.on('debugMessage', function(message) {
alert(message); alert(message);
}); });
}); });
}; }
window.onload = function() { window.onload = function() {
initSocketIO(); initSocketIO();
}; };
$(document).ready(function() { $(document).ready(function() {
$('#clear').click(function() { $('#clear').click(function() {
var number = $('#number').val(); var number = $('#number').val();
@ -32,23 +42,22 @@
iosocket.emit('refreshClients'); iosocket.emit('refreshClients');
}); });
}); });
</script>
</script>
</head> </head>
<body> <body>
<div style="text-align:center;" > <div style="text-align:center;" >
<div id="wrap"> <div id="wrap">
<div id="btnHolder"> <div id="btnHolder">
<h2>Functions</h2> <h2>Functions</h2>
<input type="number" id="number" value="1" min="1"/> <input type="number" id="number" value="1" min="1"/><label for="number">Number</label><br>
<label for="number">Number</label>
<br>
<input type="button" id="clear" value="clear"/> <input type="button" id="clear" value="clear"/>
<br> <br>
<input type="button" id="refresh" value="refresh"/> <input type="button" id="refresh" value="refresh"/>
<div id="debugOut"></div> <div id="debugOut"> </div>
</div> </div>
</div> </div>
</div>
</body>
</html>
</body>
</html>

View File

@ -1,35 +1,44 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=320, initial-scale=1"> <meta name="viewport" content="width=320, initial-scale=1">
<title>Chat</title> <title>Chat</title>
<script src="/js/jquery-1.12.1.min"></script> <script src="/js/jquery-1.12.1.min"></script>
<script src="/js/jquery-ui.js"></script> <script src="/js/jquery-ui.js"></script>
<script src="/socket.io/socket.io.js"></script> <script src="/socket.io/socket.io.js"></script>
<script type="text/javascript"> </head>
<script type="text/javascript">
var iosocket; var iosocket;
function initSocketIO() { function initSocketIO()
{
iosocket = io.connect(); iosocket = io.connect();
iosocket.on('connect', function() { iosocket.on('connect', function() {
createSystemMessage('[Connected]'); createSystemMessage('[Connected]');
console.log("connect"); console.log("connect");
iosocket.on('debugMessage', function(message) { iosocket.on('debugMessage', function(message) {
alert(message); alert(message);
}); });
iosocket.on('disconnect', function() { iosocket.on('disconnect', function() {
createSystemMessage('[Disconnected]'); createSystemMessage('[Disconnected]');
}); });
}); });
} }
window.onload = function() { window.onload = function() {
initSocketIO(); initSocketIO();
}; };
function createSystemMessage(message) { function createSystemMessage(message) {
var message = document.createTextNode(message); var message = document.createTextNode(message);
@ -59,6 +68,7 @@
chat.appendChild(messageBox); chat.appendChild(messageBox);
} }
function sendMessage() { function sendMessage() {
var user = document.getElementById('user'); var user = document.getElementById('user');
var message = document.getElementById('message'); var message = document.getElementById('message');
@ -77,9 +87,28 @@
if (( e.keyCode == 13 )&&(e.shiftKey === false)) { if (( e.keyCode == 13 )&&(e.shiftKey === false)) {
sendMessage(); sendMessage();
} }
} }
</script>
<style type="text/css">
</script>
<body>
<div id="wrapper">
<div id="chat_box" class="content"></div>
<div id="footer">
<div class="content">
<input type="text" id="number" value="+4301234567890" />
<input type="text" id="message" onkeypress="return submitEnter(event)" placeholder="Enter a Test Message! (Or emoji!, google if if you don't know how)" />
<input type="button" id="send_btn" value="Send" onclick="sendMessage()">
</div>
</div>
</div>
</body>
</html>
<style type="text/css">
* { * {
font-family: "Arial"; font-family: "Arial";
font-size: 24px; font-size: 24px;
@ -188,19 +217,4 @@
width: 100%; width: 100%;
} }
} }
</style> </style>
</head>
<body>
<div id="wrapper">
<div id="chat_box" class="content"></div>
<div id="footer">
<div class="content">
<input type="text" id="number" value="+4301234567890" />
<input type="text" id="message" onkeypress="return submitEnter(event)" placeholder="Enter a Test Message! (Or emoji!, google if if you don't know how)" />
<input type="button" id="send_btn" value="Send" onclick="sendMessage()">
</div>
</div>
</div>
</body>
</html>

View File

@ -5,6 +5,7 @@
"main": "app.js", "main": "app.js",
"dependencies": { "dependencies": {
"async": "^2.0.0-rc.6", "async": "^2.0.0-rc.6",
"badwords": "^1.0.0",
"emojize": "^0.2.0", "emojize": "^0.2.0",
"lowdb": "^0.12.5", "lowdb": "^0.12.5",
"serialport": "^4.0.5", "serialport": "^4.0.5",

View File

@ -16,15 +16,5 @@
"param": "mynumber", "param": "mynumber",
"value": "+43************" "value": "+43************"
} }
],
"debug": [
{
"param": "demoMode",
"value": true
},
{
"param": "debugMode",
"value": false
}
] ]
} }

View File

@ -19,14 +19,7 @@ var numberRecieved = "";
var timeRecieved = ""; var timeRecieved = "";
var color = 0; var color = 0;
module.exports.demoMode = function () { module.exports.demoMode = 1;
return config('debug').chain().find({ param: 'demoMode' }).value()['value'];
};
module.exports.debugMode = function () {
return config('debug').chain().find({ param: 'debugMode' }).value()['value'];
};
// utility function for ucs2 decode // utility function for ucs2 decode
function ucs2Parse(ucs2){ function ucs2Parse(ucs2){