Skip to content

Commit

Permalink
Refactor: split parser functions in different files
Browse files Browse the repository at this point in the history
  • Loading branch information
AllanCapistrano committed Jan 17, 2023
1 parent a4b8a5c commit 5f4fc9a
Show file tree
Hide file tree
Showing 11 changed files with 147 additions and 136 deletions.
8 changes: 4 additions & 4 deletions src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from services import Crawler
from services import Downloader
from services import Uploader
from modules.unionLeitor import parser, getMangaListPage
from modules.unionLeitor import getMangaListPage, isUrl, isValidUrl, isMangaLink
from modules.terminal.zip import zip
from modules.terminal.removeFiles import removeFilesAndDirectories

Expand All @@ -23,8 +23,8 @@
while(option != "N" and option != "n"):
link: str = input("Digite o nome do mangá ou a URL do capítulo ou mangá que deseja baixar: ")

if(parser.isUrl(link)):
if(parser.isMangaLink(link)): # Caso seja um link de um mangá.
if(isUrl(link)):
if(isMangaLink(link)): # Caso seja um link de um mangá.
for chapter_link in crawler.getChaptersUrls(link):
chapters.append(
{
Expand Down Expand Up @@ -95,7 +95,7 @@

# Fazendo o download dos capítulos.
for chapter in chapters:
if(parser.isValidUrl(chapter["chapter_link"])):
if(isValidUrl(chapter["chapter_link"])):
crawler: Crawler = Crawler()
downloader: Downloader = Downloader()
uploader: Uploader = Uploader()
Expand Down
9 changes: 7 additions & 2 deletions src/modules/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
from .terminal import removeFilesAndDirectories, zip
from .unionLeitor import parser
from .unionLeitor import getMangaListPage
from .unionLeitor import getMangaListPage
from .unionLeitor import isUrl
from .unionLeitor import isValidUrl
from .unionLeitor import isValidImage
from .unionLeitor import isValidMangaImage
from .unionLeitor import isNotBanner
from .unionLeitor import isMangaLink
9 changes: 7 additions & 2 deletions src/modules/unionLeitor/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
from . import parser
from .mangaListPage import getMangaListPage
from .mangaListPage import getMangaListPage
from .isUrl import isUrl
from .isValidUrl import isValidUrl
from .isValidImage import isValidImage
from .isValidMangaImage import isValidMangaImage
from .isNotBanner import isNotBanner
from .isMangaLink import isMangaLink
17 changes: 17 additions & 0 deletions src/modules/unionLeitor/isMangaLink.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
def isMangaLink(url: str) -> bool:
""" Verifica se a URL informada é de um mangá ou não.
Parameters
----------
url: :class:`str`
URL que deseja verificar.
Returns
-------
:class:`bool`
"""

if(url.find("manga") != -1):
return True

return False
17 changes: 17 additions & 0 deletions src/modules/unionLeitor/isNotBanner.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
def isNotBanner(url: str) -> bool:
""" Verifica se a imagem é um banner.
Parameters
----------
url: :class:`str`
URL que deseja verificar.
Returns
-------
:class:`bool`
"""

if(url.find("banner") != -1):
return False

return True
22 changes: 22 additions & 0 deletions src/modules/unionLeitor/isUrl.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from typing import List

def isUrl(url: str) -> bool:
""" Verifica se o que foi passado é uma URL ou não.
Parameters
----------
url: :class:`str`
URL que deseja verificar.
Returns
-------
:class:`bool`
"""

valid_urls: List[str] = ["https://", "http://"]

for valid_url in valid_urls:
if(url.find(valid_url) != -1):
return True

return False
23 changes: 23 additions & 0 deletions src/modules/unionLeitor/isValidImage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from typing import List

def isValidImage(url: str) -> bool:
""" Verifica se a URL passada é de uma imagem ou não.
Obs: Tipos aceitos: .avif, .gif, .jpg, .jpeg, .png, .svg
Parameters
----------
url: :class:`str`
URL que deseja verificar.
Returns
-------
:class:`bool`
"""

image_extensions: List[str] = [".avif", ".gif", ".jpg", ".jpeg", ".png", ".svg"]

for image_extension in image_extensions:
if(url.find(image_extension) != -1):
return True

return False
24 changes: 24 additions & 0 deletions src/modules/unionLeitor/isValidMangaImage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from typing import List

def isValidMangaImage(url: str) -> bool:
""" Verifica se a URL passada é de uma página contendo a imagem de uma
página de mangá do site `unionleitor.top/`.
Parameters
----------
url: :class:`str`
URL que deseja verificar.
Returns
-------
:class:`bool`
"""

validations: List[str] = ["umangas.club", "unionleitor.top", "leitor", "mangas"]
counter: int = 0

for validation in validations:
if(url.find(validation) != -1):
counter += 1

return counter >= 2
22 changes: 22 additions & 0 deletions src/modules/unionLeitor/isValidUrl.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from typing import List

def isValidUrl(url: str) -> bool:
""" Verifica se a URL passada é de uma página do site `unionleitor.top/`.
Parameters
----------
url: :class:`str`
URL que deseja verificar.
Returns
-------
:class:`bool`
"""

valid_urls: List[str] = ["unionleitor.top"]

for valid_url in valid_urls:
if(url.find(valid_url) != -1):
return True

return False
124 changes: 0 additions & 124 deletions src/modules/unionLeitor/parser.py

This file was deleted.

8 changes: 4 additions & 4 deletions src/services/crawler.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import requests
from bs4 import BeautifulSoup

from modules import parser
from modules import isValidImage, isValidMangaImage, isNotBanner

class Crawler:
def __reqUrl__(self, url: str) -> BeautifulSoup:
Expand Down Expand Up @@ -44,9 +44,9 @@ def getMangaImageUrls(self, url: str) -> List[str]:
for image in self.__reqUrl__(url).find_all("img", class_="img-manga"):
if(
image.attrs["src"] != None and
parser.isValidMangaImage(image.attrs["src"]) and
parser.isValidImage(image.attrs["src"]) and
parser.isNotBanner(image.attrs["src"])
isValidMangaImage(image.attrs["src"]) and
isValidImage(image.attrs["src"]) and
isNotBanner(image.attrs["src"])
):
imagesUrl.append(image.attrs["src"])

Expand Down

0 comments on commit 5f4fc9a

Please sign in to comment.