ó
    ã fi’  ã                   ó²   • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ	r	  SSK
Jr   \  S rS rS rSS	 jrS
 rS rS rS rS rg! \ a    \4r N)f = f)z.
Helper methods used across the CLI commands.
é    N)Ú
ip_networkÚ
ip_addressé   )ÚSHODAN_CONFIG_DIRc                  óø  • [         R                  R                  [        5      n U S-   n[         R                  R	                  U5      (       d  [
        R                  " S5      e[        [         R                  " U5      R                  5      R                  S5      (       d  [         R                  " US5        [        US5       nUR                  5       R                  5       sSSS5        $ ! , (       d  f       g= f)z2Returns the API key of the current logged-in user.z/api_keyz<Please run "shodan init <api key>" before using this commandÚ600i€  ÚrN)ÚosÚpathÚ
expanduserr   ÚexistsÚclickÚClickExceptionÚoctÚstatÚst_modeÚendswithÚchmodÚopenÚreadÚstrip)Ú
shodan_dirÚkeyfileÚfins      ÚW/home/gothic/public_html/Scylla/venv/lib/python3.13/site-packages/shodan/cli/helpers.pyÚget_api_keyr      s§   € ä—‘×#Ñ#Ô$5Ó6€JØ˜:Ñ%€Gô �7‰7�>‰>˜'×"Ñ"Ü×"Ò"Ð#aÓbÐbô Œr�wŠw�wÓ×'Ñ'Ó(×1Ñ1°%×8Ñ8Ü
�Š�˜%Ô ä	ˆg�sÔ	˜sØ�x‰x‹z×ÑÓ!÷ 
×	×	ús   ÃC+Ã+
C9c                 óˆ   • SR                  U 5      n U R                  SS5      R                  SS5      R                  SS5      $ )Nz{}Ú
z\nÚz\rÚ	z\t)ÚformatÚreplace)Úargss    r   Úescape_datar$   &   s=   € ð �<‰<˜Ó€DØ�<‰<˜˜eÓ$×,Ñ,¨T°5Ó9×AÑAÀ$ÈÓNÐNó    c                  ó\   • [         R                   R                  5       R                  S5      $ )Nz%Y-%m-%d)ÚdatetimeÚutcnowÚstrftime© r%   r   Útimestrr+   -   s"   € Ü×Ñ×#Ñ#Ó%×.Ñ.¨zÓ:Ð:r%   c                 óP   • [         R                  " SR                  X5      SU5      $ )Nz{}/{}.json.gzÚa)Úgzipr   r!   )Ú	directoryr+   Úcompresslevels      r   Úopen_streaming_filer1   1   s    € Ü�9Š9�_×+Ñ+¨IÓ?ÀÀmÓTÐTr%   c                 óh   • UR                  S5      n U nU H  nX4   nM	     U$ ! [         a     g f = f)NÚ.)ÚsplitÚ	Exception)ÚbannerÚ
flat_fieldÚfieldsÚcurrent_objÚfields        r   Úget_banner_fieldr;   5   sI   € à×Ñ˜cÓ"€FðØˆÛˆEØ%Ñ,ŠKñ àÐøÜó Øàðús   “$ ¤
1°1c                 ó^   • [        U5      n[        U S5      nU(       d  g[        U5      nXB;   $ )NÚipF)r   r;   r   )r6   ÚnetmaskÚnetworkÚip_fieldÚbanner_ip_addresss        r   Úfilter_with_netmaskrB   D   s4   € ô
 ˜Ó!€GÜ ¨Ó-€HÞØÜ" 8Ó,ÐØÑ'Ð'r%   c                 óf  • U H«  nUR                  SS5      u  p4US:X  a  [        X5      s  $ [        X5      nU(       d    g[        U5      nU[        :X  d  [        U[        5      (       a	  XE;  a    gMq  U[        :X  a  [        U5      U:w  a    gMŽ  U[        :X  a  [        U5      U:w  a    gM«  M­     g)NÚ:r   ÚnetFT)	r4   rB   r;   ÚtypeÚlistÚ
isinstanceÚ
basestringÚintÚfloat)r6   Úfiltersr#   r7   ÚcheckÚvalueÚ
field_types          r   Úmatch_filtersrP   Q   sµ   € ÛˆØ ŸJ™J s¨AÓ.Ñˆ
Ø˜ÓÜ& vÓ5Ò5ä  Ó4ˆö Ùô ˜%“[ˆ
ð œÓ¤¨E´:×!>Ñ!>ØÓ!Ùñ "àœ3ÓÜ�5‹z˜UÓ"Ùñ #àœ5Ó Ü�U‹|˜uÓ$Ùñ %ñ ñ5 ð8 r%   c                 óZ  • [         R                  " / SQ5      nU R                  5       (       d~  [        R                  R                  SR                  [        U5      5      5        [        R                  R                  5         U R                  S5        U R                  5       (       d  M}  g g )N)Ú-Ú/Ú|Ú\z{}gš™™™™™É?)
Ú	itertoolsÚcycleÚis_setÚsysÚstdoutÚwriter!   ÚnextÚflushÚwait)ÚfinishedÚspinners     r   Úasync_spinnerra   q   sh   € Ü�oŠoÒ3Ó4€GØ�o‰o×ÑÜ�
‰
×Ñ˜Ÿ™¤t¨G£}Ó5Ô6Ü�
‰
×ÑÔØ�‰�cÔð �o‰o×Õr%   c                 ó   • SSSSSSS.U    $ )NÚFreeÚ
MembershipzFreelancer APIzSmall Business APIzCorporate APIÚ
Enterprise)ÚossÚdevÚbasicÚplusÚcorpz
stream-100r*   )Úplans    r   Úhumanize_api_planrl   y   s(   € àØØ!Ø$ØØ"ñð ñð r%   )é	   )Ú__doc__r   r'   r.   rV   r
   rY   Ú	ipaddressr   r   Úsettingsr   rI   Ú	NameErrorÚstrr   r$   r+   r1   r;   rB   rP   ra   rl   r*   r%   r   Ú<module>rs      su   ðñó Û Û Û Û 	Û 
ß ,å 'ðÙò
"ò$Oò;ôUòò
(òò@óøðS ó Ø�‚Jðús   ªA
 Á
	AÁA