Sobes.tech
Middle+

"""Кодро навиштан, ки аз матни нонушта пайвандҳоро мебарорад ва онҳоро мувофиқи қоидаҳои муайяншуда ба тартиб меорад. Листи пайвандҳо, ки баргардонида мешавад, набояд такрор дошта бошад. Қоидаҳои тартиб додан чунинанд: - Приоритет 1: Аввалан аввалин пайвандҳои ёфтшуда дар миқдори self.first_extracted_links - Приоритет 2: Пас пайвандҳо ба дискҳои облак ва ҳуҷҷатҳо (Yandex Disk ва ғайра) - Приоритет 3: Пас пайвандҳо ба файлҳо (бо васеъшавиҳо .exe, .pdf, .rar ва ғайра) - Приоритет 4: Пайвандҳои боқимонда, ба тартиби аз дарозтарин ба кӯтоҳтарин Ҳамзамон, бояд маҳдудияти шумораи пайвандҳоро ба назар гирифта ва менеджери контекстро амалӣ кард. Масалан, дар [link] метавон иҷро кард. Хулоса: - Ба иҷро 30 дақиқа дода мешавад - Функсияҳои apply, process, функсияҳо барои менеджери контекст нависед - Ҳама тестҳо бояд гузаранд - Тестҳоро наметавон тағир дод - Импортҳо метавонанд истифода шаванд - Пас аз навиштан, метавонед онро дар маҳал иҷро кунед ва дар ҳолати зарурӣ ислоҳ кунед регекс барои ҷустуҷӯи пайвандҳо: (?: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" )) # Инметавонед инро васеъ ё навишт def __init__(self, max_links: int = 7, first_extracted_links: int = 2, clouds = None): # Максимум шумораи пайвандҳо, ки бояд баргардонида шаванд self.max_links = max_links # Шумораи пайвандҳо, ки барои шарти аввал гирифта мешаванд self.first_extracted_links = first_extracted_links # Листи домейниҳое, ки ҳамчун облак ҳисоб мешаванд барои шарти дуввум self.clouds = clouds or self.DEFAULT_CLOUDS self._results = [] # Инметавонед инро нависед, ки қисми матнро илова мекунад барои таҳлил def apply(self, text) -> "LinkExtractor": ... return self