From 199946bee8aa54f342ca6e206591932f65539272 Mon Sep 17 00:00:00 2001 From: emile Date: Mon, 22 Jul 2024 23:49:20 +0300 Subject: [PATCH] new --- .../__pycache__/consumers.cpython-310.pyc | Bin 4915 -> 5089 bytes osinaweb/osichat/consumers.py | 27 ++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc b/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc index 938a79ac1c8886d06e79bd156dc08f56f4def1c5..5a5cd26e3ba721f8cc91c5890cbda732aa75ebea 100644 GIT binary patch delta 2051 zcmZ`)-A^1<6rVdgJ3Bi&yIo3)6x)Idv||g_eu!FZ)KY0}t+f=Zh?(rp9blH(o$Z-f z0=kF^KKNupZ(@9C4Eu=jp-KOSHt}B=eb855eK3*4c+OoY1zX7e_TF>OJ?D2m?%fB2 ze;g}>`Mjy%-**pxoYA`13WwR^+KH>Dxx$SgSGA@rri?2*%gt{TZhCArHI>JGj$635 z zGmd&kYcd#avh_4ix7e8SdFQg)RB@;COiP_sms87HGsTU06^5D`*)yfa?)0E%EgIeO zpC$k3-E1-GQK^h*(WR!cuD2AXaAiV?GiYj5va5{eaAmHl41=%d+Il=>k(F(UzuEB> zNFn(o8?`g?d6L;$CYH0ca^}6Iq!>ni?1oim!N)}ik)2O8?z?f4j@+>BC8=32PIT_M zA@>q<`zSh0NA}YOKJD%wRgxnEJ1-b)n2asfbdGMkgBCS?CpirR?$NWw==g z8+C{Kky`=|M^Lt*LLaG2$;u(pFo1$KP@Kdh`w(fmasLBX>tr{&$>21>8G^F}=LlrT zOrlkyu$H8Qu*4(iB85CbDT5?pwuwYujc=r(PdrNZ_Mbv+lJ*w7TD+G*20YjE7rYZ9 ztN(C*C%OzQDNuAunJj%}p*ffq^q z5O%Ar~ zGQ6?v&~6V|yT-d%C~yUh%HntP7j{bgl)IfH$M6Bcbzxa&uE;=IIpj-r21ZE!I)R+3 z#{;z!3f?5`o*2}wiul(0m30fApS(;laq#8DX>)Nk*kEuTWq6hI7qOx@!>~Hu@S+$l zqBPNG{2=zAJzZK*Liq&BVN$Td;77zMN%Kav9wEa%Qpj1Fq}9iy+(%t<0G&Fs((5Or znj+Xk^nH}Aip9b|EA0y47Aq=)aa^f^VA@qgn*7e(LUKodHXM;g6bU=5#;SJ z8oFT^hm20E3rK746L+#y_CUx`K5CkbH+mDnqDHJt|XhKQ9fTn2)jYJn`XX0$S_L|vs zAXP*_;lPDMG?$)GQ8|zUr~CVwk>7GJX}(aA4T^9?k)2w<6@z>oFq*z8iA798GxCq@C$tj;Zb1yldDA7m@^iB?hPvAsF$jOk z_QNRV;09a{0V9QDTEqg#rP1Jia&+fsvqEn4pu#H%qX=ga#t^iVyfRnfsG)LURAsTK zpg`ZSkm?0cc1=XBrWf-D+s=tWdBS@B*a!-8e3dtn_6YKV`#f0XFUq?0;KIIl?O2C^ z-d#((QFhSus*DNfkq%Ae{ip>-*Tk57BY$dq7{fS@Fo3tRx&Y$B9;3~ z2;B%z7fkda5BnvK0;mF(*7KLEiFgi~Pj^gUpwlvAe|j3LElwb4gWAH$18!hebMkvT zB;&HbICw_idu{KYn+{1@qc&eNpmaypiocQ(Ia-=8j^m|k2-l@7ja|XBG8ZGZ=H|sY zI}sciqL}C9qt=IF5o$b;34SRe+U%pNn4gx zls_}6t04VK{?hSNH(14e!Q$akH4@y_oATREcSDEyHrm+_(-t2f1ACB0s1w~^zk_0f z*8tV^Hr9}OW?1il^b!1GoK<=K@YKdM>c5F_2?4htU00l!bZ4 diff --git a/osinaweb/osichat/consumers.py b/osinaweb/osichat/consumers.py index cb553dbf..307b51d7 100644 --- a/osinaweb/osichat/consumers.py +++ b/osinaweb/osichat/consumers.py @@ -5,19 +5,28 @@ from django.template.loader import render_to_string from asgiref.sync import async_to_sync from django.shortcuts import get_object_or_404 import requests +from django.contrib.sessions.models import Session class OsitcomVisitor(WebsocketConsumer): def connect(self): - cookie_header = self.scope.get('headers', {}) - http_cookie = dict(cookie_header).get(b'cookie', b'').decode('utf-8') - for cookie in http_cookie.split('; '): - key, value = cookie.split('=') - if key == 'sessionid': - self.session_id = value - break - else: - self.session_id = 11 + cookie_header = dict(self.scope.get('headers', {})).get(b'cookie', b'').decode('utf-8') + + self.session_id = None + if cookie_header: + for cookie in cookie_header.split('; '): + key, value = cookie.split('=', 1) + if key == 'sessionid': + self.session_id = value + break + + if not self.session_id: + self.session_id = self.scope.get('session', {}).get('_session_key') + + if not self.session_id: + # Handle missing session_id scenario, maybe reject the connection + self.close() + return async_to_sync(self.channel_layer.group_add)( 'ositcom_visitors', self.channel_name )