mirror of
https://github.com/GreaterWMS/GreaterWMS.git
synced 2026-06-19 07:36:00 +00:00
fffbfff5fe
Former-commit-id: 1d5e2f8dc6145c8f64b99ce22eacf12c84a79ae4 [formerly a5cc2685396457296e6f9323c33067f513a5f01b] [formerly 5b9dff68a0eef4ed1461264bafcf14279adaad69 [formerly bd856bce6f2eb8a0e097cd3db0c47a2baf505789]] [formerly 46b3c70bc91738d1a8d89c00b105668fc1e57b97 [formerly 31794d79e675267323a3235399d2c3a766a8271a] [formerly 3221886de3f092c36e53872b0db804c1bbfded12 [formerly 4be7c47e7b95583542edd4a6afc97bb1b8351a6a]]] [formerly f31bd74287e2d8872e4253dc1bbba51a3a7bf09d [formerly 5da4954cc5366948325224c30644f42243527944]] [formerly 4ac31c06de576505f77d064b2ac12f48fabeabd6 [formerly 43dbdc51eb1e28843c78ad0af27d032bfc4e1e58] [formerly 4ac31c06de576505f77d064b2ac12f48fabeabd6 [formerly 43dbdc51eb1e28843c78ad0af27d032bfc4e1e58] [formerly 6d9b85076ce624b80674b97f7677b77b9de73e78 [formerly f867894d3eafe2f9e2f2431b2721d0d8c02229a6]]] [formerly f31bd74287e2d8872e4253dc1bbba51a3a7bf09d [formerly 5da4954cc5366948325224c30644f42243527944] [formerly f31bd74287e2d8872e4253dc1bbba51a3a7bf09d [formerly 5da4954cc5366948325224c30644f42243527944] [formerly b6e7f1527dffa5e7c491bc9b9c65dc1dd6e8aeb4 [formerly 22f49e2d299e758d5b7bc158bdf770ba63a0d48e]]]]] [formerly 37d660933c6bb5e800bcaa92481103579379e07a [formerly 3890b77adbd5c2934db6915c56302fb93427b0b4] [formerly 37d660933c6bb5e800bcaa92481103579379e07a [formerly 3890b77adbd5c2934db6915c56302fb93427b0b4] [formerly cc86e9f981f74e679396e48391d0f5cbf8d9c0e7 [formerly 3cc5109d334e77e8378121076e1a0eb8dfdb3976]]] [formerly 78dc39217085cb33b9006b0236f89429d9ddfd6e [formerly fe09870c2f4a3dac1642be84fd691b50d4542568]] [formerly 97dd92b61412a24ae0e5bc63fe8b6c7693cbb86f [formerly add49cfab6a9eae37df4c4b8583ac7ec8b7819ed] [formerly 97dd92b61412a24ae0e5bc63fe8b6c7693cbb86f [formerly add49cfab6a9eae37df4c4b8583ac7ec8b7819ed] [formerly 7ae4f8ea24c1c92c7832f7a16939227bb3ea52fd [formerly 1cf97255d9a42eab72e8432001c3278e47ff34a8]]] [formerly 78dc39217085cb33b9006b0236f89429d9ddfd6e [formerly fe09870c2f4a3dac1642be84fd691b50d4542568] [formerly 78dc39217085cb33b9006b0236f89429d9ddfd6e [formerly fe09870c2f4a3dac1642be84fd691b50d4542568] [formerly c7fe48e52eb85f60b7c3818843c5e855158db76f [formerly 1a3be285a4c489ee32c67b807691e34aca29b83c [formerly 4040d8134b0ba0fb721b713056eb2d2a0319b811] [formerly 00209e39a70635e3c2c3bd476ca32d8931e5c22b [formerly ee4ce6080b7b98f3fd6f57ca2b6aa8488b82ec61]] [formerly 8eee74de13bb76e49365732ea02d0fe5b4ee5ace [formerly 41e3ade18bfdfa039fc805fe3e4afefcffc6497a] [formerly f14663af118e360178a2917744cae7f6d2136580]] [formerly f14663af118e360178a2917744cae7f6d2136580 [formerly 89d332dfa82e1fb45e5c86039d2f7ab6c5f30d76]] [formerly fee30052e59935d96ce6921242f9481e638c0cf3 [formerly f14663af118e360178a2917744cae7f6d2136580 [formerly 89d332dfa82e1fb45e5c86039d2f7ab6c5f30d76] [formerly fee30052e59935d96ce6921242f9481e638c0cf3 [formerly 75c6007fec4f08a38c988d85fcc7f5ac6c16a49f [formerly 07cf751ad02833601837cbb3b87ef953c9593d0e] [formerly fee30052e59935d96ce6921242f9481e638c0cf3 [formerly3f30870251]]]]]]]]]]]] Former-commit-id: fc8b4e79a80c6f9c13d82684721c419579f98897 [formerly c6f9955d550e504d1e3f0ee5d36b31b41613d65f] [formerly f13ebc0055c9294a5c4a15890677cfc14598db17 [formerly 761ab19a7b0e2e61db35a83358f85c03266fba12]] [formerly 4238916d992dd6cde4e7feef28ef7b51dd897eec [formerly 3f366b167714aa22f64d65d6ca85d41d0f10b044] [formerly 7b3a7a0de41b7b84ecf602c0e3eeb9e37845f05b [formerly 1824168194fb3bcd7ba96f62690485dc5797c183]]] [formerly 2f365ca3a9a39adadf47c04273b9b6152b1ef4de [formerly 7932525065174d3f3ffeb3182ff86cf2ac62cc2d]] [formerly 5c43edeb4b61fbe4b6f8605058e30f867c21968e [formerly b1ed75654e85b46afda3b87afbe8e84ce3208a7d] [formerly 5c43edeb4b61fbe4b6f8605058e30f867c21968e [formerly b1ed75654e85b46afda3b87afbe8e84ce3208a7d] [formerly 2d2e3aff8ce502bc662aea58cc9c93e9d80dffa7 [formerly cde6ef96c12dba655b777fc8e21ce9169084f7e8]]] [formerly 2f365ca3a9a39adadf47c04273b9b6152b1ef4de [formerly 7932525065174d3f3ffeb3182ff86cf2ac62cc2d] [formerly 2f365ca3a9a39adadf47c04273b9b6152b1ef4de [formerly 7932525065174d3f3ffeb3182ff86cf2ac62cc2d] [formerly 80e9c2160ca9bc292df95bf52842e33eb3f7cc74 [formerly c3b475d0c9966576ea3eda1e02ef21ee48b373ef]]]]] Former-commit-id: 24a463a967df8e6867907060a4e50e797117b70d [formerly 1254941a8cc8e02db52cc017a88a7d154fd88702] [formerly 24a463a967df8e6867907060a4e50e797117b70d [formerly 1254941a8cc8e02db52cc017a88a7d154fd88702] [formerly 0ae07ca74ce0f2547e2b83c4fa5b82081a6a4782 [formerly 077a57ab3f7810cf52db016c085615107a97776f]]] [formerly b76d16a9fb606c33a740fffa5fbfc784ab4343fd [formerly 63f93c8fc82a600d169c476a1622a0e9d9954094] [formerly b76d16a9fb606c33a740fffa5fbfc784ab4343fd [formerly 63f93c8fc82a600d169c476a1622a0e9d9954094] [formerly 1ad7fe6e5cc0e3f855630de86ea83b80ba818944 [formerly 8e7eec9670b82900dc6db2258777a41704a8c02a]]]] Former-commit-id: 6ec131e18e16cb992677237498328f16cde3aedf [formerly fa317fdfc4c22d2b8a14a9366bf6554c32e7931d] [formerly b76d16a9fb606c33a740fffa5fbfc784ab4343fd [formerly 63f93c8fc82a600d169c476a1622a0e9d9954094]] Former-commit-id: eb4db6dfd8260a6c90027b8d02dcf83b69319957 [formerly bce2e7c29f1d8518099ca9d4903ac34a79be3662] [formerly 35206bbb132eb1f5dd175b3deb0d507d905fb87d [formerly bfb1fef0f07591073797b57d0d4dd72bd9d82272]] Former-commit-id: 5139a3b749b5ff8bb44d05121fe390b515f2ba1c [formerly 7f6a05881d782c1f8644dadfa3d6da7d47a3397b] Former-commit-id: e3162ca974879941f2e9422de61da20373643d7f Former-commit-id: 1448a4dbe18105fa8501f854c18af21abc6dfcda [formerly a348fe96ab76976cb4da6eafcb51245342ab4a05] Former-commit-id: f66a9b0be06e87405e51f97dde6bd3b18df17ad8 Former-commit-id:627e96de9e[formerly 4327b7d08c3f8cb16a9ad78880af95533343a807] [formerly 407653e11ae2efef69dfd06c44885560134ba36f [formerly 23bb8aba907842fddcc81db1ba378b89e14b5fa0]] [formerly 79c7e21ed05a5377a33543baacbe43e30f3923d2] [formerly fbd4e7cf97876beece7193889bef93ef9f791ab9 [formerly fcffb690b96fb2cb842cc6bdc1b2be82e3b5738e [formerly ba44b06c9ba60219b3376decf1e8502d19300c5c] [formerly 6cd79972b46f63c0f2a1e2663e9824d515fe9dda [formerly c55c51fd8a29284ac5f050ea604cbce92acbdb0d]]]] Former-commit-id: e2f01797e004fb8e7a8b98f04ef894e08e9d7ff9 [formerly 3b1b5ab8d9bb4996dd087cecc8d549e6cd58b617 [formerly 1c496477fd3aa1a6261d37e59c99cb4001806f7a] [formerly 2e68a3eeb970c45325cf6ee893b7444b720dd8ae [formerly ac6f732d6ae0c1a514286ef823cbadc7135399d7]]] Former-commit-id: c5c39e59fc266a9edd828474cbc52dcfa870d046 Former-commit-id: 7e64a17dd8813050351efdb0de964a9fe2e48d47 [formerly da054bdcf7d281fb9fce3df167a43ed0c4df3004] Former-commit-id: ecb66b0a15c107579c8a9bf9f9ac7561fc790664
58 lines
2.4 KiB
Python
58 lines
2.4 KiB
Python
import re, datetime, os, urllib, json, django
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'greaterwms.settings')
|
|
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
|
|
django.setup()
|
|
from rest_framework.exceptions import APIException
|
|
from staff.models import ListModel as staff
|
|
|
|
CONECTINGS = {}
|
|
|
|
async def websocket_application(scope, receive, send):
|
|
while True:
|
|
event = await receive()
|
|
if event['type'] == 'websocket.connect':
|
|
await send({'type': 'websocket.accept'})
|
|
query_string = scope.get('query_string', b'').decode()
|
|
qs = urllib.parse.parse_qs(query_string)
|
|
openid = qs.get('openid', [''])[0]
|
|
sender = qs.get('sender', [''])[0] + '-' + openid
|
|
CONECTINGS[sender] = send
|
|
elif event['type'] == 'websocket.receive':
|
|
query_string = scope.get('query_string', b'').decode()
|
|
qs = urllib.parse.parse_qs(query_string)
|
|
openid = qs.get('openid', [''])[0]
|
|
sender = qs.get('sender', [''])[0]
|
|
receiver = qs.get('receiver', [''])[0]
|
|
if staff.objects.filter(openid=openid, staff_name=receiver).exists():
|
|
sender_guy = sender + '-' + openid
|
|
receiver_guy = receiver + '-' + openid
|
|
text = {
|
|
"sender": sender,
|
|
"receiver": receiver,
|
|
"detail": str(event['text']),
|
|
"create_time": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
|
|
"update_time": datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
|
|
}
|
|
send = CONECTINGS[sender_guy]
|
|
if receiver_guy in CONECTINGS:
|
|
send = CONECTINGS[receiver_guy]
|
|
await send({
|
|
'type': 'websocket.send',
|
|
'text': str(text).replace('\'', '\"')
|
|
})
|
|
else:
|
|
raise APIException({"detail": "Can Not Send Message To Who Not Yours"})
|
|
elif event['type'] == 'websocket.disconnect':
|
|
try:
|
|
query_string = scope.get('query_string', b'').decode()
|
|
qs = urllib.parse.parse_qs(query_string)
|
|
openid = qs.get('openid', [''])[0]
|
|
sender = qs.get('sender', [''])[0] + '-' + openid
|
|
CONECTINGS.pop(sender)
|
|
break
|
|
except:
|
|
break
|
|
else:
|
|
pass
|
|
|