Skip to content

Commit

Permalink
Total Count Logic Change
Browse files Browse the repository at this point in the history
- 전체 화수를 계산하는 로직을 변경하였습니다.
- 웹툰 사이트 리다이렉트 구조 변경으로 사용자가 스스로 다운로드 범위를 선택해야함.
  • Loading branch information
pgh268400 committed Apr 20, 2023
1 parent 4fed323 commit 25b4836
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 15 deletions.
9 changes: 5 additions & 4 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

dialog = input('몇화부터 몇화까지 다운로드 받으시겠습니까? 예) 1-10 , 5: ').strip()

# 입력값 검증 "숫자" 또는 "숫자-숫자" 만 입력하도록
# 입력값 검증 : "숫자" 또는 "숫자-숫자" 만 입력하도록
while (True):
if dialog.isdigit() or (dialog.find('-') != -1 and dialog.split('-')[0].isdigit() and dialog.split('-')[1].isdigit()):
break
Expand All @@ -67,8 +67,8 @@
else: # 일반 다운로드일때
download_number_lst = list(
map(int, dialog.split('-'))) # "1-2" -> [1,2]
webtoon.multi_download(
download_number_lst[0], download_number_lst[1])
start, end = download_number_lst
webtoon.multi_download(start, end)
input('다운로드가 완료되었습니다.')
elif dialog.lower() == 'm':
path = input("병합할 웹툰 경로를 입력해주세요 : ")
Expand All @@ -91,4 +91,5 @@
os.system('cls' if os.name == 'nt' else 'clear')
except Exception as e:
print(e)
input("오류가 발생했습니다.")
input(
"오류가 발생했습니다. 미리 보기, 유료화된 화수 또한 전체 화수에 포함되니 그것을 제외한 화수를 입력해주세요. (네이버 웹툰 홈페이지에서 직접 확인 가능.)")
30 changes: 19 additions & 11 deletions module/Nwebtoon.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ def __init__(self, query: str) -> None:
f"https://comic.naver.com/{self.__wtype}/detail?titleId={self.__title_id}&no=999999", allow_redirects=True)
redirected_url = res.url

cookies = {}

# 웹툰 리다이렉트 주소가 로그인 주소인 경우 성인웹툰임
if ("https://nid.naver.com/nidlogin.login" in redirected_url):
self.__isadult = True
Expand All @@ -101,21 +103,27 @@ def __init__(self, query: str) -> None:
self.set_session(NID_AUT, NID_SES) # 객체에 세션 데이터 넘기기

cookies = {"NID_AUT": NID_AUT, "NID_SES": NID_SES}
res = requests.get(
f"https://comic.naver.com/{self.__wtype}/detail?titleId={self.__title_id}&no=999999", cookies=cookies, allow_redirects=True)
redirected_url = res.url
# res = requests.get(
# f"https://comic.naver.com/{self.__wtype}/detail?titleId={self.__title_id}&no=999999", cookies=cookies, allow_redirects=True)
# redirected_url = res.url

# url에서 no 부분만 가져오기
# ex) https://comic.naver.com/webtoon/detail?titleId=20853&no=100 -> 100
match = re.search(r'no=(\d+)', redirected_url)
# match = re.search(r'no=(\d+)', redirected_url)

if match:
# 웹툰 총 화수 (반드시 int타입 이여야함.)
self.__number = int(match.group(1))
else:
input(
"Error : 웹툰의 총 화수를 가져오지 못했습니다.\n성인웹툰이라면 NID_AUT, NID_SES의 오타 여부를, 일반 웹툰이라면 인터넷 연결 상태를 확인해주세요.")
exit()
# if match:
# # 웹툰 총 화수 (반드시 int타입 이여야함.)
# self.__number = int(match.group(1))
# else:
# input(
# "Error : 웹툰의 총 화수를 가져오지 못했습니다.\n성인웹툰이라면 NID_AUT, NID_SES의 오타 여부를, 일반 웹툰이라면 인터넷 연결 상태를 확인해주세요.")
# exit()

res = requests.get(
f"https://comic.naver.com/api/article/list?titleId={self.__title_id}&page=1", cookies=cookies)
res_json: dict = json.loads(res.content)

self.__number = int(res_json['totalCount'])

adult_parse = webtoon.age.type
print(webtoon.age.type)
Expand Down

0 comments on commit 25b4836

Please sign in to comment.