From 4d5b5de4af046fcf2f59273275dac5bb8bee7972 Mon Sep 17 00:00:00 2001 From: emile Date: Mon, 22 Jul 2024 09:25:13 +0300 Subject: [PATCH] new --- osinaweb/db.sqlite3 | Bin 1687552 -> 1687552 bytes .../__pycache__/consumers.cpython-310.pyc | Bin 4830 -> 4509 bytes .../osichat/__pycache__/urls.cpython-310.pyc | Bin 0 -> 368 bytes .../osichat/__pycache__/views.cpython-310.pyc | Bin 0 -> 463 bytes osinaweb/osichat/consumers.py | 16 +----- osinaweb/osichat/urls.py | 9 +++ osinaweb/osichat/views.py | 4 ++ .../osinaweb/__pycache__/urls.cpython-310.pyc | Bin 1268 -> 1296 bytes osinaweb/osinaweb/urls.py | 1 + osinaweb/static/js/osichat/conversation.js | 2 +- osinaweb/static/js/osichat/visitors.js | 53 +++++++++++------- 11 files changed, 50 insertions(+), 35 deletions(-) create mode 100644 osinaweb/osichat/__pycache__/urls.cpython-310.pyc create mode 100644 osinaweb/osichat/__pycache__/views.cpython-310.pyc create mode 100644 osinaweb/osichat/urls.py diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 487395542b0f5efd186434edc49adf89247893f9..5409c0d50f000c94b2810f86c709fe4706124a92 100644 GIT binary patch delta 866 zcmajd&rj1}7zgmRT{i~nkRNj{kN^sbl9jjZ`tzWUbr{isuz^B?5yqec*V1jFjDswY zxP-)n9kdq{G5QB!5StJ+9Px%15)%(bkH+{HpuVuEa3Xm>m$&cxKHom?TPREw3R9~M z$Xcl}jI6!7_p}3P-PrHg3fIuhfRiXuqIi-MMUe_F?`Xvx4S`SygX|CvIUpxg0lA<` zs0wmhI~wt0vC&mQ13DN0e1JYY70?nRkQ`5mfVV#WB$zd90tuMTRnKNU62N09j|cDy z`&Z<<{jJ?Zo|(I=p3zHfSQJg9GILY&x)4m~^1=5|QYx)3XlVr?kz%{U3!S#w9lp;WumODAbng0|WB3=`YFYPr@h5vef?@x+jt3Mi zP)MW+3!&vE2mt`Uvl0sjPcmFk1Tgl)J>Q$XGxiaG6?Vnu`9!R{i&b|kS(n@S&9Q}- z>&dI9YGoxxpbN+n-<^O=i<-_79-2<8InID>#vwcQB)Nek>dL4&J zuBWL9DbbsklYPVC%mfYkGhrr94}`PH8~5qVEtZN$X66zqlkXbq&0jN)COO_QtHk=V z3$;%7imf{1`R&n(U&O3?-@UR?vz>D<>a8wY^g_rMY9LOEN{KW{aRNz^6yTIxZdU5- uJT@n>0D#VNl=2IPQACMmNDcs26b4n;GegzS{VS=MmGAv=YxJG}1^Ndh8VL*l delta 345 zcmZo@NN;FJpCHXRX`+lX+iH~-b%qG{= zo4gx%+PUMnOgVYjAG7UZow&KNpqzF4L{rJ)Dgid0zYP3EeE<0hdH?Yi@ci8@c;F=u SQ=#&-eUfq8WA{ofW&!}2=XUu3 diff --git a/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc b/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc index 921d42dd89a49863291322e4d70a07fa57f13fd9..819d98f933debca658679405bb26bdb66b3d5b7b 100644 GIT binary patch delta 1810 zcmZ`(O>7%Q6yE<`uVW{1ibYWWph?>mguhZ~p+IO!)0W7z4YYy-tBrS(*jjttx8sOb zu5#!ZsnT4jNRB@C!l`E@4!t5YNR>Eo>Y=Af6anweIzO1y)_nW+y`4Ajdq4AN`reUp zS}OS({(g9RZ~2dj`{ir;H633~T<36QM-h73hPJ8c8rOST(`cG^^q3^;j-hKYT0=Y5 z7PY=nlVfSt;Ptc>t~F3dAqyPoMD;rBaPi1^cciaND`UxWUxSMH#O&I1wkIB%Spf7&z4im~m->2<1tMiI@ zV9ok2Y897n#IOFrxtZAP85>4yZR+Z251!88>2B(=_q~1F;wF)7+DNz18<1T@!i!qq zi^x8+UZ^Jx*5+ZOBRyct41j?&yO0F7wD`>qgF_VBVS<+lULhdLm=>#vMSs0AAfv z3{ixG^bxLX48hTN{h#@+xZy5L?W3*x30@tTym;3lK6)y0k zjh(br#_jSzi5yTjLJ>h0sD@#EHR3=a>~c;02z2@>ak|i%q1pmfBF~WWKs6cOL7~oy zUkXX>2ugB%+kdzkwc~_AVC^&u9NTgjc2w)r}3ln;;#R*en5O(yj~>7@FBrR z;z9AmMRkz1l*Ts$7p6!*O+eGX*HLhs3`1v7a%Q=<@@}KK@2JjU#st)@CWm#&aOO1qu?QUyn z5D?~8okYRi8prEpjX@UiM%sRzn87^i;RAw;1fL-UMd@wPR1D!QGN~)!1(K@TWyA#% zZGtNVD)(1W3Y=k#O delta 2053 zcmZ`(OKcoP5S^a?j(68~2zDHT$%g==#9or{PaqKvNhGht#R3U&;RHvJ0Er`qM&iJoOSqsY2&#H)Cs~NCd0So8Rb8*Dx^L|H zZErQHR6Gs;eoSx79U1znI>S~hT+%mzU-lV7M_bjp8q;#t(VF_I5wdx$t6ycytiy1n zhqzkSJ38#_=&NREbXjPQXscEiJ?nPdx9(+y+C1y(WFtLlZJ5X%jG*LeTIk$B-<4&f zW30MeZQ1OYXmrC;S4W3Z?x9OxvwW3>Bvr2JObaPgHPogxzi(1H3%n6>$g+OS`qJ23 z0v8()@{pukY(FqmOFL*qJkGBSF64RoLai31Q9PH7M@j99RcmI+N-UiqX~#KSmd^S3 zLY!QTO5&h&4rP5pXsiW)y z|FF%oJd-9K70dn&+xm%MYvNmWXw0{yneo;flqh8{O6!d<1fFFSAxo1u<9Kc(Z>(vs zOWbDd;T^cqWm{O8nQTZOGHkY$xvVOd^sMablTbywUxFRtrtY5@p{SL4NZM&VjIsc$ z1P`HZO^1icpOJ;!A3KjvRzo8_;#xIuA$28CQ}vZmf)A)^6rD(<+_am7Mo zM9ZyJyQ_ufCpKLcoLfg#!kX;i>)VB56k|e}V6znKvqZGG?@IBV^~f|O36By`&OmeE z8>$BI?1rL;C5)lrDf}|3qs?rb852?c-|}3s&pvZ>4>|86c#eQv?h2#IMgsv<1A0O- z0vBh{eZY0f{o-r;k8{*W--SW^DL8Gm47QVwW)A4G$`bXp9xOC+pB2g9+Zdp9j*CB? zbc{LsTqr*_T3nT| zy_ja0AzkT$=UI}@i7(3!j!u#ICP5GR>Hj?;+rY=%MgF zneM~D(co1ye1%~KTUPMRLPO$w@Tk)fh>C&T|s zu6S>X`Ud29pS(0Ujn?b<+NN&c nG2AjCz8M%{$HXrKH8w2l!P7foh&<_b0&Vz@r)Up8&Yu4lM$5aM diff --git a/osinaweb/osichat/__pycache__/urls.cpython-310.pyc b/osinaweb/osichat/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a576b215459129872a32ac05fb62cb263dc65965 GIT binary patch literal 368 zcmY*Uy-ve05VrHvM3huK0&9lW5;H;!j0lE`B@(Jke55Y66WII~`K~RBBjoMl>-F)?$In3iTI$KAcXQ@}A%+E#xWY23B8*tXViC)v zN-zS<5=b^FOWEWlZg4eW*%Foc-p`>ja!E(++GSkTqGzzjp^9Dl%waIQSp#-n3l7T8 zc}I4|KkoYyMJ3#nnVYf=RZY9-wJLzAC20*;lqeVu$*5s04)73?dQB|} aq88oO<>#_xy?~4GrO7>0Y5m#R{k;4wggkyrA< zz{CTvFk!b9>Ph$cyYu;c-^qG?7ddNsV=GfDzh>7%In?J7}(ZB;?RKsgp(Xj$|?m$J~1VSm3i-#&1D?pz-@SfB}d!wfU> zP9Cu#j4m+8PuMjMI=0qpwY!7Xu+ePxEV6``5w$_PHE38m0;8zw5D~kj;C>3)Bs-bl zP?#YvKalc5f3M>!4NAw5a{(X(pF`XPeP?7D_fx_1!^^bvL05B=$vl>t7inC;Y)RN8 zEk<&coWYGJ**G=v1BaPDF6XxH#u)zpTJf^HzC9db6*|(1Dt3R>-5-|a;aqbU^(^%)O_joNiNw`z^UJ*t~v-&h(r1ZeA;zZ literal 0 HcmV?d00001 diff --git a/osinaweb/osichat/consumers.py b/osinaweb/osichat/consumers.py index 3c1b91d4..db30b25b 100644 --- a/osinaweb/osichat/consumers.py +++ b/osinaweb/osichat/consumers.py @@ -10,18 +10,6 @@ import requests class OsitcomVisitor(WebsocketConsumer): def connect(self): self.accept() - headers = dict(self.scope.get('headers', [])) - ip_address = headers.get(b'x-forwarded-for', None) - if ip_address: - # Extract the actual IP address if there are multiple addresses - self.visitor_ip = ip_address.split(',')[0].strip() - else: - # Fallback to the standard remote address - self.visitor_ip = self.scope.get('client', [None])[0] - if self.visitor_ip: - response = requests.get(f'http://ipinfo.io/{self.visitor_ip}/json') - data = response.json() - self.visitor_country = data.get('country', 'Unknown') async_to_sync(self.channel_layer.group_add)( 'ositcom_visitors', self.channel_name ) @@ -41,6 +29,7 @@ class OsitcomVisitor(WebsocketConsumer): event = { 'type': 'new_visitor_handler', 'session_id': text_data_json.get('session_id'), + 'client_ip': text_data_json.get('client_ip'), 'referrer': text_data_json.get('referrer'), 'url': text_data_json.get('url'), @@ -52,8 +41,7 @@ class OsitcomVisitor(WebsocketConsumer): def new_visitor_handler(self, event): visitor = Visitor.objects.create( session_id = event['session_id'], - ip_address = self.visitor_ip, - country = self.visitor_country, + ip_address = event['client_ip'], referrer = event['referrer'], url = event['url'], visit_date = datetime.now(), diff --git a/osinaweb/osichat/urls.py b/osinaweb/osichat/urls.py new file mode 100644 index 00000000..1f5bb45c --- /dev/null +++ b/osinaweb/osichat/urls.py @@ -0,0 +1,9 @@ +from django.urls import path, include +from . import views + + +urlpatterns = [ + # DETAILS + path('get-client-ip/', views.get_client_ip, name='get-client-ip'), + +] diff --git a/osinaweb/osichat/views.py b/osinaweb/osichat/views.py index 91ea44a2..6aa6d91a 100644 --- a/osinaweb/osichat/views.py +++ b/osinaweb/osichat/views.py @@ -1,3 +1,7 @@ from django.shortcuts import render +from django.http import JsonResponse # Create your views here. +def get_client_ip(request): + client_ip = request.META.get('REMOTE_ADDR', '') + return JsonResponse({'ip': client_ip}) \ No newline at end of file diff --git a/osinaweb/osinaweb/__pycache__/urls.cpython-310.pyc b/osinaweb/osinaweb/__pycache__/urls.cpython-310.pyc index b045de36206e06d3626bd6575842daac6477208f..80235dbbc1860f485deb958218035c52806b04ef 100644 GIT binary patch delta 151 zcmeyuIe|+%pO=@50SLZ*otsv`!octt#6boeK#l_t7tfifooCFJ%9_I6%-GD7%96s9 z%9O>G#of%5&KAX!%9F~T%9+Ir#C$2dy-el|Q9LPp!3>)G8xOo?V&};(&P>io+`Nq0 bh*3@oXdDXz55E8-4+ye=Nidt`rvx_u^!yxV delta 129 zcmbQh^@USApO=@50SMC9OiuG;VPJR+;vfTdAjbiSiziIf&Qs@3Wy<2p;%;V2XN}@X zy*V!jlfUM6#fD4rDFU { + if (!response.ok) { + throw new Error('Network response was not ok'); + } + return response.json(); + }) + .then(data => { + const client_ip = data.ip; -visitorsSocket.onopen = () => { - console.log('WebSocket connection to visitors established'); - const event_message = { - 'event_type': 'new_visitor', - 'session_id': session_id, - 'referrer': referrer, - 'url': current_url, - }; - visitorsSocket.send(JSON.stringify(event_message)); -}; - + visitorsSocket.onopen = () => { + console.log('WebSocket connection to visitors established'); + const event_message = { + 'event_type': 'new_visitor', + 'session_id': session_id, + 'referrer': referrer, + 'url': current_url, + 'client_ip': client_ip, + }; + visitorsSocket.send(JSON.stringify(event_message)); + }; -visitorsSocket.onclose = () => { - console.log('WebSocket connection to visitors closed'); -}; + visitorsSocket.onclose = () => { + console.log('WebSocket connection to visitors closed'); + }; -visitorsSocket.onerror = (error) => { - console.log('WebSocket error:', error); -}; + visitorsSocket.onerror = (error) => { + console.error('WebSocket error:', error); + }; + }) + .catch(error => { + console.error('Error fetching client IP:', error); + });