diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/aws.xml b/.idea/aws.xml
new file mode 100644
index 0000000..b63b642
--- /dev/null
+++ b/.idea/aws.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..4dce450
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..66d986f
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..afd1f74
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sanctuary.iml b/.idea/sanctuary.iml
new file mode 100644
index 0000000..8dc09e5
--- /dev/null
+++ b/.idea/sanctuary.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/chatroom.py b/chatroom.py
index 630d30e..9e4f5b1 100644
--- a/chatroom.py
+++ b/chatroom.py
@@ -1,7 +1,15 @@
#!/usr/bin/env python
-import asyncio, json, websockets, sys, click, time
+import asyncio
+import json
+import sys
+import time
+import click
+import colorama
+import websockets
+
+colorama.init()
USERS = set()
@@ -32,7 +40,8 @@ async def chatroom(websocket, path):
try:
async for message in websocket:
data = json.loads(message)
- print(" > [" + str(time.ctime()) + "] [" + str(data["roomiden"]) + "] User '" + str(data["username"]) + "' sends message '" + str(data["textmesg"]) + "'")
+ print(" > [" + str(time.ctime()) + "] [" + str(data["roomiden"]) + "] User '" + str(
+ data["username"]) + "' sends message '" + str(data["textmesg"]) + "'")
await notify_mesej(data["username"], data["roomiden"], data["textmesg"])
finally:
await unregister(websocket)
@@ -40,7 +49,9 @@ async def chatroom(websocket, path):
def servenow(netpdata="127.0.0.1", chatport="9696"):
try:
- print(" > [" + str(time.ctime()) + "] [HOLAUSER] Sanctuary was started up on 'ws://" + str(netpdata) + ":" + str(chatport) + "/'")
+ print(
+ " > [" + str(time.ctime()) + "] [HOLAUSER] Sanctuary was started up on 'ws://" + str(netpdata) + ":" + str(
+ chatport) + "/'")
start_server = websockets.serve(chatroom, netpdata, int(chatport))
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
@@ -50,21 +61,30 @@ def servenow(netpdata="127.0.0.1", chatport="9696"):
@click.command()
+@click.option("-i", "--server-ip", "servip", help="Extra IP Address configuration", default=None, required=False)
@click.option("-c", "--chatport", "chatport", help="Set the port value for WebSockets [0-65536]", required=True)
-@click.option("-6", "--ipprotv6", "netprotc", flag_value="ipprotv6", help="Start the server on an IPv6 address", required=True)
-@click.option("-4", "--ipprotv4", "netprotc", flag_value="ipprotv4", help="Start the server on an IPv4 address", required=True)
+@click.option("-6", "--ipprotv6", "netprotc", flag_value="ipprotv6", help="Start the server on an IPv6 address",
+ required=True)
+@click.option("-4", "--ipprotv4", "netprotc", flag_value="ipprotv4", help="Start the server on an IPv4 address",
+ required=True)
@click.version_option(version="22072020", prog_name="Sanctuary WebSockets by AstroSonic")
-def mainfunc(chatport, netprotc):
+def mainfunc(chatport, netprotc, servip):
print(" > [" + str(time.ctime()) + "] [HOLAUSER] Starting Sanctuary...")
netpdata = ""
if netprotc == "ipprotv6":
print(" > [" + str(time.ctime()) + "] [HOLAUSER] IP version : 6")
- netpdata = "::"
+ if servip is None:
+ netpdata = "::"
+ else:
+ netpdata = servip
elif netprotc == "ipprotv4":
print(" > [" + str(time.ctime()) + "] [HOLAUSER] IP version : 4")
- netpdata = "0.0.0.0"
+ if servip is None:
+ netpdata = "0.0.0.0"
+ else:
+ netpdata = servip
servenow(netpdata, chatport)
if __name__ == "__main__":
- mainfunc()
\ No newline at end of file
+ mainfunc()
diff --git a/dist/chatroom Linux.zip b/dist/chatroom Linux.zip
new file mode 100644
index 0000000..c20ff0f
Binary files /dev/null and b/dist/chatroom Linux.zip differ
diff --git a/dist/chatroom Windows.zip b/dist/chatroom Windows.zip
new file mode 100644
index 0000000..eade2da
Binary files /dev/null and b/dist/chatroom Windows.zip differ
diff --git a/dist/servchat Linux.zip b/dist/servchat Linux.zip
new file mode 100644
index 0000000..8ef992d
Binary files /dev/null and b/dist/servchat Linux.zip differ
diff --git a/dist/servchat Windows.zip b/dist/servchat Windows.zip
new file mode 100644
index 0000000..f4703d5
Binary files /dev/null and b/dist/servchat Windows.zip differ
diff --git a/requirements.txt b/requirements.txt
index 97d19f8..e027747 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,3 +6,4 @@ MarkupSafe==1.1.1
six==1.15.0
websockets==8.1
Werkzeug==1.0.1
+colorama==0.4.3
\ No newline at end of file
diff --git a/servchat.py b/servchat.py
index d21199a..de74067 100644
--- a/servchat.py
+++ b/servchat.py
@@ -1,6 +1,8 @@
-from flask import Flask, render_template
import click
+import colorama
+from flask import Flask, render_template
+colorama.init()
servchat = Flask(__name__)
@@ -17,10 +19,13 @@ def chrumnow(netpdata, servport):
@click.command()
@click.option("-s", "--servport", "servport", help="Set the port value for Chatroom [0-65536]", required=True)
@click.option("-c", "--chatport", "chatport", help="Set the port value for WebSockets [0-65536]", required=True)
-@click.option("-6", "--ipprotv6", "netprotc", flag_value="ipprotv6", help="Start the server on an IPv6 address", required=True)
-@click.option("-4", "--ipprotv4", "netprotc", flag_value="ipprotv4", help="Start the server on an IPv4 address", required=True)
+@click.option("-6", "--ipprotv6", "netprotc", flag_value="ipprotv6", help="Start the server on an IPv6 address",
+ required=True)
+@click.option("-4", "--ipprotv4", "netprotc", flag_value="ipprotv4", help="Start the server on an IPv4 address",
+ required=True)
+@click.option("-i", "--server-ip", "servip", help="Extra IP Address configuration", default=None, required=False)
@click.version_option(version="22072020", prog_name="Sanctuary Chatroom by AstroSonic")
-def mainfunc(servport, chatport, netprotc):
+def mainfunc(servport, chatport, netprotc, servip):
global chatp0rt
chatp0rt = chatport
print(" * Starting Sanctuary...")
@@ -32,10 +37,16 @@ def mainfunc(servport, chatport, netprotc):
netpdata = ""
if netprotc == "ipprotv6":
print(" * IP version : 6")
- netpdata = "::"
+ if servip is None:
+ netpdata = "::"
+ else:
+ netpdata = servip
elif netprotc == "ipprotv4":
print(" * IP version : 4")
- netpdata = "0.0.0.0"
+ if servip is None:
+ netpdata = "0.0.0.0"
+ else:
+ netpdata = servip
chrumnow(netpdata, servport)