Sobes.tech
Middle+

"""Xahiş edirəm, xam mətnindən linkləri çıxaran və onları müəyyən qaydalara uyğun sıralayan kod yazın. Qaytarılacaq linklər siyahısında təkrarlamalar olmamalıdır. Sıralama qaydaları aşağıdakı kimidir: - Prioritet 1: Əvvəlcə ilk tapılan linklər, self.first_extracted_links sayında - Prioritet 2: Sonra bulud disk və sənədlərə (Yandex Disk və s.) linklər - Prioritet 3: Sonra fayl linkləri (sonunda .exe, .pdf, .rar və s. uzantıları olanlar) - Prioritet 4: Qalan linklər, uzunluğuna görə azalan sırayla Həmçinin, linklərin sayı məhdudiyyətini nəzərə almaq və kontekst menecerini həyata keçirmək lazımdır. Məsələn, [link] üzərində işlədilə bilər. Qısa şəkildə: - 30 dəqiqə vaxt verilir - apply, process funksiyalarını və kontekst meneceri üçün funksiyaları yazın - Bütün testlər keçməlidir - Testlər dəyişdirilə bilməz - import istifadə etmək olar - Yazdıqdan sonra lokalda işlədib, lazım olsa düzəldə bilərsiniz linkləri tapmaq üçün regex: (?:https?|ftp):\/\/(?:[a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(?::\d+)?(?:\/[^\s()]*)?""" class LinkExtractor: DEFAULT_CLOUDS = frozenset(( "drive.google.com", "mediafire.com", "yadi.sk", "disk.yandex.ru", "cloud.mail.ru", "mega.nz" )) # Bu metodu genişləndirmək və ya yenidən yazmaq olar def __init__(self, max_links: int = 7, first_extracted_links: int = 2, clouds = None): # Maksimum link sayı self.max_links = max_links # Birinci şərt üçün çıxarılan link sayı self.first_extracted_links = first_extracted_links # Bulud kimi qəbul edilən domenlərin siyahısı self.clouds = clouds or self.DEFAULT_CLOUDS self._results = [] # Bu metodu yazın, analiz üçün mətnin bir hissəsini əlavə edir def apply(self, text) -> "LinkExtractor": ... return self