draft: added canged version
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
95d1df3530
commit
8e1dfd0be6
@ -7,6 +7,7 @@ from urllib.parse import urlparse, ParseResult
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from functools import cached_property
|
from functools import cached_property
|
||||||
|
|
||||||
|
from ..utils import generate_id
|
||||||
from ..utils.enums.source import SourcePages, SourceTypes
|
from ..utils.enums.source import SourcePages, SourceTypes
|
||||||
from ..utils.config import youtube_settings
|
from ..utils.config import youtube_settings
|
||||||
from ..utils.string_processing import hash_url, shorten_display_url
|
from ..utils.string_processing import hash_url, shorten_display_url
|
||||||
@ -99,6 +100,8 @@ class Source:
|
|||||||
|
|
||||||
|
|
||||||
class SourceCollection:
|
class SourceCollection:
|
||||||
|
__change_version__ = generate_id()
|
||||||
|
|
||||||
_indexed_sources: Dict[str, Source]
|
_indexed_sources: Dict[str, Source]
|
||||||
_page_to_source_list: Dict[SourcePages, List[Source]]
|
_page_to_source_list: Dict[SourcePages, List[Source]]
|
||||||
|
|
||||||
@ -131,9 +134,15 @@ class SourceCollection:
|
|||||||
else:
|
else:
|
||||||
self._page_to_source_list[source.page_enum].append(source)
|
self._page_to_source_list[source.page_enum].append(source)
|
||||||
|
|
||||||
|
changed = False
|
||||||
for key in source.indexing_values:
|
for key in source.indexing_values:
|
||||||
|
if key not in self._indexed_sources:
|
||||||
|
changed = True
|
||||||
self._indexed_sources[key] = source
|
self._indexed_sources[key] = source
|
||||||
|
|
||||||
|
if changed:
|
||||||
|
self.__change_version__ = generate_id()
|
||||||
|
|
||||||
def extend(self, sources: Iterable[Source]):
|
def extend(self, sources: Iterable[Source]):
|
||||||
for source in sources:
|
for source in sources:
|
||||||
self.append(source)
|
self.append(source)
|
||||||
@ -148,6 +157,10 @@ class SourceCollection:
|
|||||||
def source_pages(self) -> Iterable[SourcePages]:
|
def source_pages(self) -> Iterable[SourcePages]:
|
||||||
return sorted(self._page_to_source_list.keys(), key=lambda page: page.value)
|
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
|
@property
|
||||||
def url_list(self) -> List[str]:
|
def url_list(self) -> List[str]:
|
||||||
return [source.url for source in self.get_sources()]
|
return [source.url for source in self.get_sources()]
|
||||||
|
Loading…
Reference in New Issue
Block a user