bu
This commit is contained in:
parent
aed606a8b1
commit
0ff1a663e8
4 changed files with 125 additions and 9 deletions
|
@ -1,5 +1,4 @@
|
||||||
import gevent.monkey
|
|
||||||
gevent.monkey.patch_all()
|
|
||||||
from os import environ, path
|
from os import environ, path
|
||||||
import secrets
|
import secrets
|
||||||
from flask import *
|
from flask import *
|
||||||
|
|
|
@ -15,4 +15,5 @@ from .votes import *
|
||||||
from .feeds import *
|
from .feeds import *
|
||||||
from .awards import *
|
from .awards import *
|
||||||
from .giphy import *
|
from .giphy import *
|
||||||
from .subs import *
|
from .subs import *
|
||||||
|
from .chat import *
|
|
@ -24,12 +24,6 @@ GUMROAD_TOKEN = environ.get("GUMROAD_TOKEN", "").strip()
|
||||||
month = datetime.now().strftime('%B')
|
month = datetime.now().strftime('%B')
|
||||||
|
|
||||||
|
|
||||||
@app.get("/chat")
|
|
||||||
@auth_required
|
|
||||||
def chat( v):
|
|
||||||
return render_template("chat.html", v=v)
|
|
||||||
|
|
||||||
|
|
||||||
@app.post('/admin/merge/<id1>/<id2>')
|
@app.post('/admin/merge/<id1>/<id2>')
|
||||||
@admin_level_required(3)
|
@admin_level_required(3)
|
||||||
def merge(v, id1, id2):
|
def merge(v, id1, id2):
|
||||||
|
|
122
files/routes/chat.py
Normal file
122
files/routes/chat.py
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
import time
|
||||||
|
from os import remove
|
||||||
|
from PIL import Image as IMAGE
|
||||||
|
|
||||||
|
from files.helpers.wrappers import *
|
||||||
|
from files.helpers.alerts import *
|
||||||
|
from files.helpers.sanitize import *
|
||||||
|
from files.helpers.security import *
|
||||||
|
from files.helpers.get import *
|
||||||
|
from files.helpers.images import *
|
||||||
|
from files.helpers.const import *
|
||||||
|
from files.classes import *
|
||||||
|
from flask import *
|
||||||
|
from files.__main__ import app, cache, limiter, db_session
|
||||||
|
from .front import frontlist
|
||||||
|
from files.helpers.discord import add_role
|
||||||
|
from datetime import datetime
|
||||||
|
import requests
|
||||||
|
from urllib.parse import quote, urlencode
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from flask_socketio import *
|
||||||
|
|
||||||
|
month = datetime.now().strftime('%B')
|
||||||
|
|
||||||
|
sex = SocketIO(
|
||||||
|
app
|
||||||
|
)
|
||||||
|
|
||||||
|
@app.get("/chat")
|
||||||
|
@auth_required
|
||||||
|
def chat( v):
|
||||||
|
return render_template("chat.html", v=v)
|
||||||
|
|
||||||
|
|
||||||
|
SIDS={}
|
||||||
|
|
||||||
|
COMMANDS={}
|
||||||
|
HELP={}
|
||||||
|
|
||||||
|
TYPING={}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@sex.on('connect')
|
||||||
|
def socket_connect_auth_user():
|
||||||
|
|
||||||
|
|
||||||
|
g.db=db_session()
|
||||||
|
|
||||||
|
v=get_logged_in_user()
|
||||||
|
|
||||||
|
if v.id in SIDS:
|
||||||
|
SIDS[v.id].append(request.sid)
|
||||||
|
else:
|
||||||
|
SIDS[v.id]=[request.sid]
|
||||||
|
|
||||||
|
|
||||||
|
emit("status", {'status':"connected"})
|
||||||
|
|
||||||
|
g.db.close()
|
||||||
|
|
||||||
|
|
||||||
|
def socket_auth_required(f):
|
||||||
|
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
|
||||||
|
g.db=db_session()
|
||||||
|
v=get_logged_in_user()
|
||||||
|
|
||||||
|
if request.sid not in SIDS.get(v.id, []):
|
||||||
|
if v.id in SIDS:
|
||||||
|
SIDS[v.id].append(request.sid)
|
||||||
|
else:
|
||||||
|
SIDS[v.id]=[request.sid]
|
||||||
|
|
||||||
|
f(*args, v, **kwargs)
|
||||||
|
g.db.close()
|
||||||
|
|
||||||
|
|
||||||
|
wrapper.__name__=f.__name__
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@sex.on('join room')
|
||||||
|
@socket_auth_required
|
||||||
|
def join_guild_room(data, v):
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@sex.on('leave room')
|
||||||
|
@socket_auth_required
|
||||||
|
def leave_guild_room(data, v):
|
||||||
|
emit("status", {'status':f"Left #{guild.name}"})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@sex.on('speak')
|
||||||
|
@socket_auth_required
|
||||||
|
def speak(data, v):
|
||||||
|
|
||||||
|
raw_text=data['text'][0:1000].lstrip().rstrip()
|
||||||
|
if not raw_text:return
|
||||||
|
|
||||||
|
text = sanitize(raw_text)
|
||||||
|
|
||||||
|
data={
|
||||||
|
"avatar": v.profile_url,
|
||||||
|
"username":v.username,
|
||||||
|
"text":text,
|
||||||
|
"time": time.strftime("%d %b %Y at %H:%M:%S", time.gmtime(int(time.time()))),
|
||||||
|
"userlink":v.url
|
||||||
|
}
|
||||||
|
|
||||||
|
emit('speak', data)
|
Loading…
Add table
Add a link
Reference in a new issue