Skip to content

Commit cae698e

Browse files
authored
Merge pull request #17 from Arima57/main
Lightnovel collision fix 0.01
2 parents 39d6ee3 + aa4da41 commit cae698e

4 files changed

Lines changed: 28 additions & 115 deletions

File tree

AnilistPython/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ def print_character_info(self, character_name, manual_select=False):
187187
self.character.displayCharacterInfo(character_name, manual_select)
188188

189189
# Manga =====================================================================================================================
190-
def get_manga_id(self, manga_name, manual_select=False) -> int:
190+
def get_manga_id(self, manga_name, manual_select=False, eliminateLNconflict=True) -> int:
191191
'''
192192
Displays all character data.
193193
Auto formats the displayed version of the data.
@@ -197,9 +197,9 @@ def get_manga_id(self, manga_name, manual_select=False) -> int:
197197
:return: the id of the manga
198198
:rtype: int
199199
'''
200-
return self.manga.getMangaID(manga_name, manual_select)
200+
return self.manga.getMangaID(manga_name, manual_select, eliminateLNconflict)
201201

202-
def get_manga(self, manga_name, manual_select=False) -> dict:
202+
def get_manga(self, manga_name, manual_select=False, eliminateLNconflict=True) -> dict:
203203
'''
204204
Retrieve manga info in the form of a dictionary.
205205
@@ -209,7 +209,7 @@ def get_manga(self, manga_name, manual_select=False) -> dict:
209209
:rtype: dict
210210
'''
211211

212-
return self.manga.getManga(manga_name, manual_select)
212+
return self.manga.getManga(manga_name, manual_select, eliminateLNconflict)
213213

214214
def get_manga_with_id(self, manga_id) -> dict:
215215
'''

AnilistPython/anime.py

Lines changed: 4 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -23,54 +23,7 @@ def getAnime(self, anime_name, manual_select=False) -> dict:
2323
if anime_id == -1:
2424
return None
2525

26-
data = self.extractInfo.anime(anime_id)
27-
media_lvl = data['data']['Media']
28-
29-
name_romaji = media_lvl['title']['romaji']
30-
name_english = media_lvl['title']['english']
31-
32-
start_year = media_lvl['startDate']['year']
33-
start_month = media_lvl['startDate']['month']
34-
start_day = media_lvl['startDate']['day']
35-
36-
end_year = media_lvl['endDate']['year']
37-
end_month = media_lvl['endDate']['month']
38-
end_day = media_lvl['endDate']['day']
39-
40-
starting_time = f'{start_month}/{start_day}/{start_year}'
41-
ending_time = f'{end_month}/{end_day}/{end_year}'
42-
43-
cover_image = media_lvl['coverImage']['large']
44-
banner_image = media_lvl['bannerImage']
45-
46-
airing_format = media_lvl['format']
47-
airing_status = media_lvl['status']
48-
airing_episodes = media_lvl['episodes']
49-
season = media_lvl['season']
50-
51-
desc = media_lvl['description']
52-
53-
average_score = media_lvl['averageScore']
54-
genres = media_lvl['genres']
55-
56-
next_airing_ep = media_lvl['nextAiringEpisode']
57-
58-
anime_dict = {"name_romaji": name_romaji,
59-
"name_english": name_english,
60-
"starting_time": starting_time,
61-
"ending_time": ending_time,
62-
"cover_image": cover_image,
63-
"banner_image": banner_image,
64-
"airing_format": airing_format,
65-
"airing_status": airing_status,
66-
"airing_episodes": airing_episodes,
67-
"season": season,
68-
"desc": desc,
69-
"average_score": average_score,
70-
"genres": genres,
71-
"next_airing_ep": next_airing_ep,}
72-
73-
return anime_dict
26+
return self.getAnimeWithID(anime_id)
7427

7528

7629
def getAnimeWithID(self, anime_id) -> dict:
@@ -143,7 +96,7 @@ def getAnimeID(self, anime_name, manual_select=False):
14396
'''
14497

14598
# if manual select is turned off ============================================================================
146-
if manual_select == False:
99+
if not manual_select:
147100
anime_list = []
148101
data = self.extractID.anime(anime_name)
149102
for i in range(len(data['data']['Page']['media'])):
@@ -159,7 +112,7 @@ def getAnimeID(self, anime_name, manual_select=False):
159112
return anime_ID
160113

161114
# if manual select is turned on =============================================================================
162-
elif manual_select == True:
115+
elif manual_select:
163116
data = self.extractID.anime(anime_name)
164117
max_result = 0
165118
counter = 0 # number of displayed results from search
@@ -213,4 +166,4 @@ def displayAnimeInfo(self, anime_name, manual_select=False):
213166
print("============================ ANIME INFO ============================")
214167
for key, value in ani_dict.items():
215168
print(f"{arr[counter]}: {value}")
216-
counter += 1
169+
counter += 1

AnilistPython/character.py

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,7 @@ def getCharacter(self, character_name, manual_select=False) -> dict:
2323
if character_id == -1:
2424
return None
2525

26-
data = self.extractInfo.character(character_id)
27-
character_lvl = data['data']['Character']
28-
29-
first_name = character_lvl['name']['first']
30-
last_name = character_lvl['name']['last']
31-
native_name = character_lvl['name']['native']
32-
33-
desc = character_lvl['description']
34-
image = character_lvl['image']['large']
35-
36-
character_dict = {"first_name": first_name,
37-
"last_name": last_name,
38-
"native_name": native_name,
39-
"desc": desc,
40-
"image": image,}
41-
42-
return character_dict
26+
return self.getCharacterWithID(character_id)
4327

4428

4529
def getCharacterWithID(self, character_id) -> dict:
@@ -156,4 +140,4 @@ def displayCharacterInfo(self, character_name, manual_select=False):
156140
print("============================ CHARACTER INFO ============================")
157141
for key, value in char_dict.items():
158142
print(f"{arr[counter]}: {value}")
159-
counter += 1
143+
counter += 1

AnilistPython/manga.py

Lines changed: 18 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def __init__(self, access_info, activated=True):
99
self.extractID = ExtractID(access_info, activated)
1010

1111

12-
def getManga(self, manga_name, manual_select=False):
12+
def getManga(self, manga_name, manual_select=False, eliminateLNconflict=True):
1313
'''
1414
Retrieve character info in the form of a json object.
1515
Retrieve json object will be reformatted in a easily accessable json obj.
@@ -20,45 +20,11 @@ def getManga(self, manga_name, manual_select=False):
2020
'''
2121
manga_dict = {}
2222

23-
manga_id = self.getMangaID(manga_name, manual_select)
23+
manga_id = self.getMangaID(manga_name, manual_select, eliminateLNconflict)
2424
if manga_id == -1:
2525
return None
2626

27-
data = self.extractInfo.manga(manga_id)
28-
media_lvl = data['data']['Media']
29-
30-
manga_dict['name_romaji'] = media_lvl['title']['romaji']
31-
manga_dict['name_english'] = media_lvl['title']['english']
32-
33-
start_year = media_lvl['startDate']['year']
34-
start_month = media_lvl['startDate']['month']
35-
start_day = media_lvl['startDate']['day']
36-
37-
end_year = media_lvl['endDate']['year']
38-
end_month = media_lvl['endDate']['month']
39-
end_day = media_lvl['endDate']['day']
40-
41-
manga_dict['starting_time'] = f'{start_month}/{start_day}/{start_year}'
42-
manga_dict['ending_time'] = f'{end_month}/{end_day}/{end_year}'
43-
44-
manga_dict['cover_image'] = media_lvl['coverImage']['large']
45-
manga_dict['banner_image'] = media_lvl['bannerImage']
46-
47-
manga_dict['release_format'] = media_lvl['format']
48-
manga_dict['release_status'] = media_lvl['status']
49-
50-
manga_dict['chapters'] = media_lvl['chapters']
51-
manga_dict['volumes'] = media_lvl['volumes']
52-
53-
manga_dict['desc'] = media_lvl['description']
54-
55-
manga_dict['average_score'] = media_lvl['averageScore']
56-
manga_dict['mean_score'] = media_lvl['meanScore']
57-
58-
manga_dict['genres'] = media_lvl['genres']
59-
manga_dict['synonyms'] = media_lvl['synonyms']
60-
61-
return manga_dict
27+
return self.getMangaWithID(manga_id)
6228

6329

6430
def getMangaWithID(self, manga_id) -> dict:
@@ -109,7 +75,7 @@ def getMangaWithID(self, manga_id) -> dict:
10975
return manga_dict
11076

11177

112-
def getMangaID(self, manga_name, manual_select=False):
78+
def getMangaID(self, manga_name, manual_select=False, eliminateLNconflict=True):
11379
'''
11480
Retrieves the character ID on Anilist.
11581
@@ -118,7 +84,7 @@ def getMangaID(self, manga_name, manual_select=False):
11884
:rtype: int
11985
'''
12086

121-
if manual_select == False:
87+
if not manual_select:
12288
manga_list = []
12389
data = self.extractID.manga(manga_name)
12490
for i in range(len(data['data']['Page']['media'])):
@@ -136,13 +102,17 @@ def getMangaID(self, manga_name, manual_select=False):
136102
return manga_ID
137103

138104

139-
elif manual_select == True:
105+
elif manual_select:
140106
max_result = 0
141107
counter = 0 # number of displayed results from search
142108
data = self.extractID.manga(manga_name)
143109
for i in range(len(data['data']['Page']['media'])):
144110
curr_manga = data['data']['Page']['media'][i]['title']['romaji']
145-
print(f"{counter + 1}. {curr_manga}")
111+
if eliminateLNconflict: # Left on by default but just in case if someone is short on time or something
112+
print(f"{counter + 1}. {curr_manga}" + (" (Light Novel)" if self.is_light_novel(data['data']['Page']['media'][i]['id']) else ""))
113+
elif not eliminateLNconflict:
114+
print(f"{counter + 1}. {curr_manga}")
115+
146116
max_result = i + 1
147117
counter += 1
148118

@@ -191,4 +161,10 @@ def displayMangaInfo(self, manga_name, manual_select=False):
191161
print("============================== MANGA INFO ==============================")
192162
for key, value in manga_dict.items():
193163
print(f"{arr[counter]}: {value}")
194-
counter += 1
164+
counter += 1
165+
166+
def is_light_novel(self, id) -> bool:
167+
data = self.extractInfo.manga(id)
168+
media_lvl = data['data']['Media']
169+
if media_lvl['format'] == 'NOVEL':
170+
return True

0 commit comments

Comments
 (0)