From 48537a95ea69bb8db99ea1791a5eef1b410d815a Mon Sep 17 00:00:00 2001 From: emile Date: Wed, 14 Aug 2024 15:51:35 +0300 Subject: [PATCH] new --- osinaweb/db.sqlite3 | Bin 1945600 -> 1945600 bytes .../__pycache__/consumers.cpython-310.pyc | Bin 15310 -> 15359 bytes .../__pycache__/models.cpython-310.pyc | Bin 8698 -> 8727 bytes .../osichat/__pycache__/views.cpython-310.pyc | Bin 1593 -> 1627 bytes osinaweb/osichat/consumers.py | 2 ++ .../osichat/migrations/0026_visitor_region.py | 18 ++++++++++++++++++ .../0026_visitor_region.cpython-310.pyc | Bin 0 -> 667 bytes osinaweb/osichat/models.py | 1 + osinaweb/osichat/views.py | 3 ++- osinaweb/static/js/osichat/visitors.js | 5 +++-- 10 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 osinaweb/osichat/migrations/0026_visitor_region.py create mode 100644 osinaweb/osichat/migrations/__pycache__/0026_visitor_region.cpython-310.pyc diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index dedcbc6750ebb495c7701f7e0ff92eab7e659916..15452edb4f8fe6c87cf697906dc1fa466aa882e6 100644 GIT binary patch delta 4824 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 delta 3877 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 aQCj&&U2iBoykdI=e}8|YeYa(~wD&&_eS*CJ diff --git a/osinaweb/osichat/__pycache__/models.cpython-310.pyc b/osinaweb/osichat/__pycache__/models.cpython-310.pyc index b7a1f8afb06738a6c9262893976eda64d4c46cb6..d5e42d790a1f3ea816e5a81e61bc3f8814682b28 100644 GIT binary patch delta 1649 zcmaJ=OKcle6rC5_GxOg^ossFE~IQz@mW3tAw7!cbbQ%-FT%kMit> zk04cPngCUR^a4$&pi&#UfDI_Dpr{~Jb%TV2=mIZLrL0(W!Hxyu-scD+FYxFdoqOia zd-vzRCa)a!*Zh8;guji-t^9jm`3;%<1X+3iInQ#3r8usV+xFUSe3WIE)hYZ=;rr0{ z319u!SKEB8&G$P2TeJNO(gkJ(kq7Lc;5u^M4hbGwlJd+p5_Wh&u?#z6M;9b3yd=3L zD>5aSG1!#*SQ0$mO*RUDc<-_CjoV6+sUuiJ)0Hci`50_=KEWP?M|>k}97?{OY;t4S zmt$-S9;jE?Ff3^q&j}1a1z%{7vMAiw_GU!K&K2v$Mve1lNb(Ro z3+3R5Iz{w(0t?PZNAQ{zrK*Kq99 z)m+8l1$fQ4EsxUM{V);U#U`N;K7hC$&az8zCtPO@7>x|5a}*-7ei>?!Lu?hkjI513 zjjE;2oXItKtyVc*v|Bxs+d8$qL3GY@qAMT6T698wiG(uz9({)+0j&wR_$Uw?{KHu;P13F*Hq5tmyl0$ z=W?Ql6(Exs(w9)!ejS`l>`T9e;^$~}8nPm}nc>ly!8qwNE1@LZO&rAmg_5Z*k=g?4 zt#s#!iR{n9kz{}Bee}OZ`%^(sBpoNMF;42%IT`pdX|ff}B?=ETIoh5NMq-!KU5A2z z^c!+769AOEUXRdpu^bXOK>-1N@O42fH8F4j9n;%BQqjqhEHmJRWq`yKVPf5SjNZYSVcrqV+PPn#~Wy{$c_ zeBR<$_2IM*TvSB8;FLFhJrs|_w>t*I!$!u)8Xm)E$oK>eH75T91esmB delta 1587 zcmZ`&UuauZ7|+)vH@8V{b8~N!Ce6RwF+1<79mQE=t=(LUvIo1m#%{*RsJV&FR@-?J zSH+bwms&dRZtYMFB93j6u}4e!S6d6vjoiL{P>;U`ObH~ ze_0v+Ye<{XG{1{}UD+?ohd$E`1#Y6H^v`=7-#K?dExC_*9M$pA*Gl_Vx%c1O`@*_VaKSeg|K5fk-Dp3_!nIsSHT=}*-_k7 zx-jLt4LSVB_Y(}P{h%fw@Ce1c;hvb968-pR>(eld!~Pr$;JRtzvOfg-);{)6035`Y z;0pBNrC`=OPFG&Qo59@>!A(7azel|o)DoWEq+_o(80{k>9%C3`uo%X%CzUpOi0-0Q z-A16gf)HH0uDuU~2iRnkVT{1`iwyIAhAe}{;33%Xovc(VwHYDuEO{B8#idX#aFFR? zhUf5dv>m4KPUyYC0tvPvVyx>7&ogkR#3X|Z^$0Wb9z>W`2v^Wh{E@x$;}P{PAT7va3o4rN?1ZYeo7eiVlx7(}J`3n^}b_ zjz_u!ud<1Z?IgYv*$XT9ZRBF^8Bz;@;^ah4%*?!ewBj@>qcqiHYZ=(jA({I{yb;}_ z9A)7+{vEv!Uc=7V_P~oQoMJeQqp@w?6GZDc8%x6poNZ6z=dq_uhcvrIB-yG&Fk%O& z$x&N7FkQ;e5Ik8aO*w+EiYbN~!*K>~u9(F2&i0sCAbyQjRUuGa2E;%t&?ECZ-X_6r z*$C{Pb}Hp^NtC8*VyU6I$0i(cmUvz`n2u+th6C{j^|wgb`XIg@e>lBJ;-|E#+)LHv z0mG|<0fP17`EUa7#P?GtdJ@SF8QdAt8v)NTlkwNEnAn+om-cJ4{!j^2mkv4vL9lw) zPZobo*uG^FMr@5IJ|>z&qBE*=f5+a?1)^W@_B_J{Twe_} yc6J#zt<|0)Q(1T(aXD^sRs=U*$XB=sGFrO5-Z^CU8CkB7iR%f`r1#gW2U%M#8I$&do%*RkcXLg;eFa)uK28paxy8rBr< zIn2$B!3>%_lN%VLL~pSbrKV@*=V>zEV#+Ki;s)AQ#5?&Bqdg=0WF;m|o+4hL$Suay zl?+8vlY^MbWyFAdEk-6LAw~{H9!3F1J|O03VEQk>TqLvkF_S(cqr_xkmRum&$WkB* zQe7kqGJ+#5GbhzAF*mhHeKH%XgNzhN224nUq`6BAa`F>X;z6n;CnvFLGn!5AV>MwD d1}RgUe1cV9N(RIRH%u*mK3RGJp10-&7q-Ex$`X%P37O73vV0Dm@1j&F2DUdXG zX+chYVoE$nmBi#0R&7Sp$s1Tr*n~jJR42b;)t8b6F-_sxkPMh?%%;lB%f|=+l`21< diff --git a/osinaweb/osichat/consumers.py b/osinaweb/osichat/consumers.py index fcf25ec6..ea8409f9 100644 --- a/osinaweb/osichat/consumers.py +++ b/osinaweb/osichat/consumers.py @@ -38,6 +38,7 @@ class OsitcomVisitor(WebsocketConsumer): session_id = session_id, ip_address = text_data_json.get('client_ip'), country = text_data_json.get('client_country'), + region = text_data_json.get('client_region'), browser_name = text_data_json.get('browser_name'), os_name = text_data_json.get('os_name'), ) @@ -128,6 +129,7 @@ class Osichat(WebsocketConsumer): 'session_id': visitor.session_id, 'ip': visitor.ip_address, 'country': visitor.country, + 'region' : visitor.region, 'country_flag': visitor.flag_image_url, 'name': visitor.name, 'mobile_number': visitor.mobile_number, diff --git a/osinaweb/osichat/migrations/0026_visitor_region.py b/osinaweb/osichat/migrations/0026_visitor_region.py new file mode 100644 index 00000000..8f6388d7 --- /dev/null +++ b/osinaweb/osichat/migrations/0026_visitor_region.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.5 on 2024-08-14 08:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('osichat', '0025_rename_chatotification_chatnotification'), + ] + + operations = [ + migrations.AddField( + model_name='visitor', + name='region', + field=models.CharField(max_length=25, null=True), + ), + ] diff --git a/osinaweb/osichat/migrations/__pycache__/0026_visitor_region.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0026_visitor_region.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..43c3cf66c3b86defddcc900259971c90b8dff9c4 GIT binary patch literal 667 zcmYjPy>1jS5cbdh-6@d}MGzeo(n;txLV^mRM4-?>C<4tk)@EmJ&xiMi^&Us+(B>g1 zc?Sxf!!1=_0SSe%FDPeeM)S>B^UZvAx4%DSbbd8I7vDK!zdhJJ5rHEz`bS_T;rP2A+&e+HsUJFBZ@Il3o@hfklW0o$@c z3>@J$8dj2CQk;>xVSShcJHmRT*sSap|IVZOly4N`4LHJ5$d4 zc%jk2DGigUkXOo0m7;rVgB0&6^?6;IFbg5T9$Ub+(r5=kOfEYHIPpCO>EYznvK#_- z)2_!`{eH0FfU3d$+2kKB4mQU|8$@ID1?I2Oej2+zKP!!H9=$Dl58l&aRoCPsOk3tH zZbAU7vaP#qa)akS@FL}Rua%R4&(*CiB&3&R-d_yZh~FO|}$sI1ej^#X|9JiEZ?N`nc@HR;-uw0h#q2_r!tx2g7%~G5`Po literal 0 HcmV?d00001 diff --git a/osinaweb/osichat/models.py b/osinaweb/osichat/models.py index 75a2537e..95cf8c95 100644 --- a/osinaweb/osichat/models.py +++ b/osinaweb/osichat/models.py @@ -48,6 +48,7 @@ class Visitor(models.Model): session_id = models.CharField(max_length=300) ip_address = models.CharField(max_length=300) country = models.CharField(max_length=15, null=True) + region = models.CharField(max_length=25, null=True) name = models.CharField(max_length=200, blank=True, null=True) mobile_number = models.CharField(max_length=10, null=True, blank=True) email = models.CharField(max_length=100, null=True, blank=True) diff --git a/osinaweb/osichat/views.py b/osinaweb/osichat/views.py index 96f59f76..c1fe0a81 100644 --- a/osinaweb/osichat/views.py +++ b/osinaweb/osichat/views.py @@ -15,10 +15,11 @@ def get_client_ip(request): response = requests.get(f'http://ipinfo.io/{client_ip}/json') data = response.json() country = data.get('country', 'Unknown') + region = data.get('region', 'Unknown') except Exception as e: country = "Unknown" - return JsonResponse({'ip': client_ip, 'country': country}) + return JsonResponse({'ip': client_ip, 'country': country, 'region': region}) @csrf_exempt diff --git a/osinaweb/static/js/osichat/visitors.js b/osinaweb/static/js/osichat/visitors.js index 4f5a32bb..2e3fed1a 100644 --- a/osinaweb/static/js/osichat/visitors.js +++ b/osinaweb/static/js/osichat/visitors.js @@ -13,7 +13,8 @@ async function fetchClientData() { if (data.ip) { clientData = { client_ip: data.ip, - client_country: data.country || 'Unknown' + client_country: data.country || 'Unknown', + client_region: data.region || 'Unknown' }; } } catch (error) { @@ -92,7 +93,6 @@ async function initializeVisitorsWebSocket() { visitorsSocket.onopen = () => { console.log('WebSocket connection to visitors established'); - console.log('alooo'+window.document.title) const event_message = { 'event_type': 'visitor_ping', @@ -101,6 +101,7 @@ async function initializeVisitorsWebSocket() { 'title': window.document.title, 'client_ip': clientData.client_ip, 'client_country': clientData.client_country, + 'client_region': clientData.client_region, 'browser_name': browserInfo.browserName, 'os_name': browserInfo.osName, 'session_id': session_id