From 65d47536535af2db00f174e89bbdcfbb5dc8167a Mon Sep 17 00:00:00 2001 From: 7x11x13 Date: Tue, 27 Apr 2021 15:11:39 -0400 Subject: [PATCH] Fix stuff --- free_bandcamp_downloader/main.py | 66 ++++++++++++++++---------------- setup.py | 5 +-- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/free_bandcamp_downloader/main.py b/free_bandcamp_downloader/main.py index 80c627c..a0030d7 100644 --- a/free_bandcamp_downloader/main.py +++ b/free_bandcamp_downloader/main.py @@ -34,7 +34,6 @@ Formats: """ import atexit, time, sys, urllib.request, os -from logging import DEBUG from docopt import docopt from selenium import webdriver from selenium.webdriver.support.ui import Select @@ -136,42 +135,45 @@ def download_album(url): init_driver() driver.get(url) wait() - button = driver.find_element_by_xpath(xpath['buy']) - if button.text == 'Free Download': - logger.info('Album is Free Download') - button.click() - wait() - return download_file(url) - else: - # name your price download - logger.info('Album is not Free Download') - button.click() - wait() - price_input = driver.find_element_by_xpath(xpath['price']) - price_input.click() - price_input.send_keys('0') - logger.info('Set payment to 0') - wait() - try: - driver.find_element_by_xpath(xpath['download-nyp']).click() - except: - return f'Album {url} is not free' - checkout = driver.find_element_by_xpath(xpath['checkout']) - if checkout.text == 'Download Now': - checkout.click() + try: + button = driver.find_element_by_xpath(xpath['buy']) + if button.text == 'Free Download': + logger.info('Album is Free Download') + button.click() wait() return download_file(url) else: - logger.info('Album requires email') - # fill out info - driver.find_element_by_xpath(xpath['email']).send_keys(options['email']) + # name your price download + logger.info('Album is not Free Download') + button.click() wait() - driver.find_element_by_xpath(xpath['zipcode']).send_keys(options['zipcode']) + price_input = driver.find_element_by_xpath(xpath['price']) + price_input.click() + price_input.send_keys('0') + logger.info('Set payment to 0') wait() - Select(driver.find_element_by_xpath(xpath['country'])).select_by_visible_text(options['country']) - wait() - checkout.click() - logger.info(f'Download link sent to {options["email"]}') + try: + driver.find_element_by_xpath(xpath['download-nyp']).click() + except: + return f'Album {url} is not free' + checkout = driver.find_element_by_xpath(xpath['checkout']) + if checkout.text == 'Download Now': + checkout.click() + wait() + return download_file(url) + else: + logger.info('Album requires email') + # fill out info + driver.find_element_by_xpath(xpath['email']).send_keys(options['email']) + wait() + driver.find_element_by_xpath(xpath['zipcode']).send_keys(options['zipcode']) + wait() + Select(driver.find_element_by_xpath(xpath['country'])).select_by_visible_text(options['country']) + wait() + checkout.click() + logger.info(f'Download link sent to {options["email"]}') + except Exception as e: + return e def download_label(url): diff --git a/setup.py b/setup.py index 027bd6f..93c4ac6 100644 --- a/setup.py +++ b/setup.py @@ -5,12 +5,11 @@ import free_bandcamp_downloader setup( name='free-bandcamp-downloader', version=free_bandcamp_downloader.__version__, - packaged=find_packages(), + packaged=['free_bandcamp_downloader'], author='7x11x13', install_requires=[ 'selenium', - 'docopt', - 'rfc6266' + 'docopt' ], entry_points={ 'console_scripts': [