Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 23 additions & 47 deletions script.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,31 +45,19 @@ def get_section_of_roms(section: str) -> List[models.ROM]:
try:
page: Response = requests.get('https://vimm.net/vault/' + section)
soup = BeautifulSoup(page.content, 'html.parser')
result = soup.find(
'table', {'class': 'rounded centered cellpadding1 hovertable'})
for j in result.contents:
table = soup.select_one('table.rounded.centered.cellpadding1.hovertable')
result = table.select('tr > td[style="width:auto"] > a[href*="/vault/"]')
for j in result:
if j != '\n':
new_soup = BeautifulSoup(str(j), 'html.parser')
odd = new_soup.find(attrs={'class': 'odd'})
even = new_soup.find(attrs={'class': 'even'})
if odd is not None:
result_soup = BeautifulSoup(str(odd.contents[0]),
'html.parser')
result = result_soup.find('a', href=True)
name = result.contents[0]
result = result['href']
rom = models.ROM(name, result)
roms.append(rom)
odd = None
if even is not None:
result_soup = BeautifulSoup(str(even.contents[0]),
'html.parser')
result = result_soup.find('a', href=True)
name = result.contents[0]
result = result['href']
rom = models.ROM(name, result)
roms.append(rom)
even = None
result_soup: BeautifulSoup = BeautifulSoup(
str(new_soup), 'html.parser'
)
result = result_soup.select_one('a')
name = result.text
result = result['href']
rom = models.ROM(name, result)
roms.append(rom)
except:
e = sys.exc_info()[0]
return roms
Expand Down Expand Up @@ -127,7 +115,7 @@ def download_file(page_url: str, download_url: str, path: str) -> str:
f'https://vimm.net/vault{page_url}'
}
file: Response = requests.get(
f'https://download2.vimm.net/download/?mediaId={download_url}',
f'{helpers.get_download_url_with_random_server_number()}/download/?mediaId={download_url}',
headers=headers,
allow_redirects=True)
if file.status_code == 200:
Expand Down Expand Up @@ -183,31 +171,19 @@ def get_system_search_section(
try:
page = requests.get(helpers.get_search_url(search_selection))
soup: BeautifulSoup = BeautifulSoup(page.content, 'html.parser')
result = soup.find(
'table', {'class': 'rounded centered cellpadding1 hovertable'})
for j in result.contents:
table = soup.select_one('table.rounded.centered.cellpadding1.hovertable')
result = table.select('tr > td[style="width:auto"] > a[href*="/vault/"]')
for j in result:
if j != '\n':
new_soup: BeautifulSoup = BeautifulSoup(str(j), 'html.parser')
odd = new_soup.find(attrs={'class': 'odd'})
even = new_soup.find(attrs={'class': 'even'})
if odd is not None:
result_soup: BeautifulSoup = BeautifulSoup(
str(odd.contents[0]), 'html.parser')
result = result_soup.find('a', href=True)
name = result.contents[0]
result = result['href']
rom = models.ROM(name, result)
roms.append(rom)
odd = None
if even is not None:
result_soup = BeautifulSoup(str(even.contents[0]),
'html.parser')
result = result_soup.find('a', href=True)
name = result.contents[0]
result = result['href']
rom = models.ROM(name, result)
roms.append(rom)
even = None
result_soup: BeautifulSoup = BeautifulSoup(
str(new_soup), 'html.parser'
)
result = result_soup.select_one('a')
name = result.text
result = result['href']
rom = models.ROM(name, result)
roms.append(rom)
except BaseException:
e = sys.exc_info()[0]
print('Failed on system search section')
Expand Down
20 changes: 14 additions & 6 deletions src/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,20 +174,22 @@ def __create_all_w_home(path: str):
def __create_sel_w_home(path: str, user_selections: List[str]):
"""Used in bulk mode when the user only wants selected systems if home dir is already created"""
for x in user_selections:
system_path = __to_uri[__selections[int(x)][int(x)]]
if not __check_if_system_dir_created(path,
__selections[int(x)][int(x)]):
__create_rom_system_dir(path, __selections[int(x)][int(x)])
__create_alpha_num_structure(path, __selections[int(x)][int(x)])
system_path):
__create_rom_system_dir(path, system_path)
__create_alpha_num_structure(path, system_path)


def __create_sel_no_home(path: str, user_selections: List[str]):
"""Used in bulk mode when the user only wants selected systems"""
__create_rom_home_dir(path)
for x in user_selections:
system_path = __to_uri[__selections[int(x)][int(x)]]
if not __check_if_system_dir_created(path,
__selections[int(x)][int(x)]):
__create_rom_system_dir(path, __selections[int(x)][int(x)])
__create_alpha_num_structure(path, __selections[int(x)][int(x)])
system_path):
__create_rom_system_dir(path, system_path)
__create_alpha_num_structure(path, system_path)


def create_directory_structure(config: models.Config, path: str):
Expand Down Expand Up @@ -229,6 +231,12 @@ def get_random_ua() -> str:
return __user_agents[index]


def get_download_url_with_random_server_number() -> str:
"""Returns a random download server number from available"""
download_servers_available = [2,3]
return f'https://download{random.choice(download_servers_available)}.vimm.net'


def print_welcome():
"""Prints the welcome message..\
hmm yes the floor is made of floor"""
Expand Down