
     AjB                       d Z ddlmZ ddlZddlZddlZddlZddlZ	 ej                  e      ZdZdZdZ ej                   dej"                        Zdd	dd
Zedk(  rddlZ ej*                  ej,                          eej                  j/                  ej0                  j2                         ej4                  d      z
        Z e ej:                  ed             yy)u   MCP.so-Helper — HTML-Scrape der Server-Liste.

mcp.so ist eine Next.js-Site ohne öffentliche JSON-API. Wir scrapen Featured-
Server-Links aus der Startseite. Partial-Overlap mit `github.py` (topic:mcp-server)
— Aria-Synthese soll Dupes filtern.
    )annotationsNzhttps://mcp.soz$aria-radar/0.1 (+aseckzai@gmail.com)   z9<a[^>]*href="(/server/(?P<slug>[^/"]+)/(?P<owner>[^"]+))"   )	max_itemsc                   t         j                  j                  t        t        dd      }	 t         j                  j                  |t              5 }|j                         j                  dd      }ddd       t        j                  j                  t        j                  j                         j#                         }g }t%               }t&        j)                        D ]  }	|	j+                  d
      }
|
|v r|j-                  |
       |	j+                  d      }|	j+                  d      }|j/                  | d| t         |
 |dd||dd       t1        |      |k\  s n |st        j                  d       t        j3                  dt1        |             |S # 1 sw Y   .xY w# t        $ r"}t        j                  d	|       g cY d}~S d}~ww xY w)z.Scrape mcp.so for featured/recent MCP servers.z	text/html)z
User-AgentAccept)headers)timeoutzutf-8replace)errorsNzmcp_so fetch failed: %s   slugowner/mcp_so)r   r   )titleurldatesourcescorerawu:   mcp_so: no servers parsed — HTML layout may have changedzmcp_so: %d items)urllibrequestRequest
MCP_SO_URL
USER_AGENTurlopenTIMEOUT_SECONDSreaddecode	Exceptionlogwarningdtdatetimenowtimezoneutc	isoformatsetSERVER_LINK_REfinditergroupaddappendleninfo)sincer   reqrespbodyexcnow_isoitemsseenmpathr   r   s                //root/aria/scripts/ai-radar/platforms/mcp_so.pyfetchr=      s   
..
 
 JZe5f
 
gC^^##C#A 	AT99;%%gi%@D	A kkoobkkoo.88:GEUD$$T* wwqz4<wwv wav& \$( 51
 	 u:"!" PQHHU,L;	A 	A -s3	s5   %F. "F!5F. !F+&F. .	G7GGG__main__)level   )hours)r2      )indent)r2   zdt.datetimer   intreturnz
list[dict])__doc__
__future__r   r%   r$   htmlloggingreurllib.requestr   	getLogger__name__r"   r   r   r   compile
IGNORECASEr+   r=   jsonbasicConfigINFOr&   r'   r(   	timedeltar8   printdumps     r<   <module>rX      s    #    	 g!
3
XZ\ZgZgh 35 !H zGgll+8<2<<b;QQRE	*$**U1
%&	 rW   