diff --git a/NGAudioDownloader.exe b/NGAudioDownloader.exe index 3600b1a..a5941bc 100644 Binary files a/NGAudioDownloader.exe and b/NGAudioDownloader.exe differ diff --git a/NGAudioDownloader.py b/NGAudioDownloader.py index 60a8cee..dba70fe 100644 --- a/NGAudioDownloader.py +++ b/NGAudioDownloader.py @@ -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='') +@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.') \ No newline at end of file +if __name__=='__main__': + CLI() \ No newline at end of file diff --git a/README.md b/README.md index 88c707c..e83eb1a 100644 --- a/README.md +++ b/README.md @@ -9,27 +9,22 @@ You just use **this**. - ![(Python 3+)](https://img.shields.io/badge/Python-3+-blue.svg) - `requests` library - `bs4` library +- `click` library Or you just use the [`NGAudioDownloader.exe`](NGAudioDownloader.exe) so all you need is ![Windows XP+](https://img.shields.io/badge/Windows-XP+-brightgreen.svg). ## Usage -Just run the code and enter the Newgrounds ID of the song you wanna download. That's all. - -_Example:_ - ``` -$ python .\NGAudioDownloader.py +$ NGAudioDownloader.py [OPTIONS] -Enter song id: 807461 -Loading HTML... -Creating download link... -Downloading "Mysterious Planet"... -Mysterious Planet successfully downloaded. + ===== Newgrounds Audio Downloader by H1K0 ===== + +Options: + -d, --dist PATH Where to save the songs (default: ./Downloads) + --help Show this message and exit. ``` -Your downloads will appear in the `Downloads` folder. - -## NOTE! +## ※NOTE! Please note that you can download the songs named with *latin symbols only*. I'll fix it later so just for now bear with what we have. :3 \ No newline at end of file