fix/reindex_before_collection #21
@ -7,6 +7,7 @@ from urllib.parse import urlparse, ParseResult
|
||||
from dataclasses import dataclass, field
|
||||
from functools import cached_property
|
||||
|
||||
from ..utils import generate_id
|
||||
from ..utils.enums.source import SourcePages, SourceTypes
|
||||
from ..utils.config import youtube_settings
|
||||
from ..utils.string_processing import hash_url, shorten_display_url
|
||||
@ -99,6 +100,8 @@ class Source:
|
||||
|
||||
|
||||
class SourceCollection:
|
||||
__change_version__ = generate_id()
|
||||
|
||||
_indexed_sources: Dict[str, Source]
|
||||
_page_to_source_list: Dict[SourcePages, List[Source]]
|
||||
|
||||
@ -131,9 +134,15 @@ class SourceCollection:
|
||||
else:
|
||||
self._page_to_source_list[source.page_enum].append(source)
|
||||
|
||||
changed = False
|
||||
for key in source.indexing_values:
|
||||
if key not in self._indexed_sources:
|
||||
changed = True
|
||||
self._indexed_sources[key] = source
|
||||
|
||||
if changed:
|
||||
self.__change_version__ = generate_id()
|
||||
|
||||
def extend(self, sources: Iterable[Source]):
|
||||
for source in sources:
|
||||
self.append(source)
|
||||
@ -148,6 +157,10 @@ class SourceCollection:
|
||||
def source_pages(self) -> Iterable[SourcePages]:
|
||||
return sorted(self._page_to_source_list.keys(), key=lambda page: page.value)
|
||||
|
||||
@property
|
||||
def hash_url_list(self) -> List[str]:
|
||||
return [hash_url(source.url) for source in self.get_sources()]
|
||||
|
||||
@property
|
||||
def url_list(self) -> List[str]:
|
||||
return [source.url for source in self.get_sources()]
|
||||
|
Loading…
Reference in New Issue
Block a user