CLIized this
This commit is contained in:
+30
-25
@@ -1,33 +1,38 @@
|
||||
from os import access,F_OK,mkdir
|
||||
from requests import get as load
|
||||
from bs4 import BeautifulSoup as parse
|
||||
import click
|
||||
|
||||
print()
|
||||
@click.command()
|
||||
@click.argument('songid',nargs=1,metavar='<Newgrounds song ID>')
|
||||
@click.option('-d','--dist',default='./Downloads',type=click.Path(exists=True),help='Where to save the songs (default: ./Downloads)')
|
||||
def CLI(songid,dist):
|
||||
"""===== Newgrounds Audio Downloader by H1K0 ====="""
|
||||
print('Loading HTML...')
|
||||
page=parse(load(f'https://www.newgrounds.com/audio/listen/{songid}').text,'html.parser')
|
||||
songTitle=page.find('title').text
|
||||
|
||||
songId=input('Enter song id: ')
|
||||
print('Creating download link...')
|
||||
link=f'http://audio.ngfiles.com/{songid[:3]}000/{songid}_'
|
||||
count=0
|
||||
for char in songTitle:
|
||||
if 97<=ord(char.lower())<=122:
|
||||
link+=char
|
||||
count+=1
|
||||
elif char==' ':
|
||||
link+='-'
|
||||
count+=1
|
||||
if count==26:
|
||||
break
|
||||
link+='.mp3'
|
||||
|
||||
print('Loading HTML...')
|
||||
page=parse(load(f'https://www.newgrounds.com/audio/listen/{songId}').text,'html.parser')
|
||||
songTitle=page.find('title').text
|
||||
if not access(dist,F_OK):
|
||||
mkdir(dist)
|
||||
|
||||
print('Creating download link...')
|
||||
dllink=f'http://audio.ngfiles.com/{songId[:3]}000/{songId}_'
|
||||
count=0
|
||||
for char in songTitle:
|
||||
if 97<=ord(char.lower())<=122:
|
||||
dllink+=char
|
||||
count+=1
|
||||
elif char==' ':
|
||||
dllink+='-'
|
||||
count+=1
|
||||
if count==26:
|
||||
break
|
||||
dllink+='.mp3'
|
||||
print(f'Downloading "{songTitle}"...')
|
||||
with open(f'{dist}/{link.split("/")[-1]}','wb') as out:
|
||||
out.write(load(link).content)
|
||||
print(f'{songTitle} successfully downloaded.')
|
||||
|
||||
if not access('Downloads',F_OK):
|
||||
mkdir('Downloads')
|
||||
|
||||
print(f'Downloading "{songTitle}"...')
|
||||
with open(f'Downloads/{dllink.split("/")[-1]}','wb') as out:
|
||||
out.write(load(dllink).content)
|
||||
print(f'{songTitle} successfully downloaded.')
|
||||
if __name__=='__main__':
|
||||
CLI()
|
||||
Reference in New Issue
Block a user