Skip to content

Commit 86497a4

Browse files
committed
added image model and url validators
1 parent dbaa4ee commit 86497a4

File tree

5 files changed

+35
-1
lines changed

5 files changed

+35
-1
lines changed

nlightreader/models/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
from .chapter_model import Chapter
33
from .character_model import Character
44
from .sort_models import Order, Kind, Genre
5+
from .image_model import Image

nlightreader/models/image_model.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from types import NoneType
2+
3+
import validators
4+
5+
6+
class Image:
7+
def __init__(self, image_id: str, page_number: int, url: str | None):
8+
self.id = image_id
9+
self.page_number = page_number
10+
self.__url = None
11+
12+
self.url = url
13+
14+
@property
15+
def url(self):
16+
return self.__url
17+
18+
@url.setter
19+
def url(self, url: str | None):
20+
if not isinstance(url, (str, NoneType)):
21+
raise TypeError(f"Url must be str or None got {type(url)}")
22+
if url is not None and not validators.url(url):
23+
raise ValueError(f"Url {url} is not valid")
24+
self.__url = url
25+
26+
@staticmethod
27+
def get_empty_instance():
28+
return Image("", 1, None)

nlightreader/models/manga_model.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from types import NoneType
33
from typing import override
44

5+
import validators
56
from PySide6.QtCore import QLocale
67

78
from nlightreader.consts.enums import Nl
@@ -71,7 +72,9 @@ def preview_url(self):
7172
@preview_url.setter
7273
def preview_url(self, url: str | None):
7374
if not isinstance(url, (str, NoneType)):
74-
raise TypeError(f"Preview url must be str got {type(url)}")
75+
raise TypeError(f"Preview url must be str or None got {type(url)}")
76+
if url is not None and not validators.url(url):
77+
raise ValueError(f"Url {url} is not valid")
7578
self.__preview_url = url
7679

7780
@property

requirements.txt

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ render-html>=1.0.1
88
requests>=2.28.1
99
requests-oauthlib>=1.3.1
1010
SQLAlchemy>=2.0.25
11+
validators>=0.33.0

requirements/prod.txt

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ render-html>=1.0.1
88
requests>=2.28.1
99
requests-oauthlib>=1.3.1
1010
SQLAlchemy>=2.0.25
11+
validators>=0.33.0

0 commit comments

Comments
 (0)