summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcomedyGenerator35
-rw-r--r--requirements.txt4
2 files changed, 38 insertions, 1 deletions
diff --git a/comedyGenerator b/comedyGenerator
index 410009c..af46cff 100755
--- a/comedyGenerator
+++ b/comedyGenerator
@@ -12,6 +12,13 @@ import hashlib
parser = argparse.ArgumentParser(add_help=True)
+parser.add_argument('--debug',
+ default=False,
+ action='store_true',
+ dest='debug',
+ help='Enables debug output'
+ )
+
parser.add_argument('-js','-JS',"--Javascript",'--javascript',
default=False,
action='store_true',
@@ -53,24 +60,38 @@ elif args.usingJavascript:
print("using JS mode...")
try:
+ if args.debug:
+ print("testing if firefox works...")
from selenium.webdriver.firefox.options import Options
firefox_options = Options()
firefox_options.add_argument("--headless")
driver = webdriver.Firefox(options=firefox_options)
+ if args.debug:
+ print("Firefox Works!")
except:
+ if args.debug:
+ print("Firefox didn't work! Trying Chrome!")
try:
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
- chrome_options.add_argument("--headless")
+ #chrome_options.add_argument("--headless") #TODO completely breaks script and screenshot shows a white screen and nothing but. likely got discovered.
driver = webdriver.Chrome(options=chrome_options)
+ if args.debug:
+ print("Chrome Works!")
except:
+ if args.debug:
+ print("Chrome Failed! Going to attempt an install of the firefox webdriver")
try:
from selenium.webdriver.firefox.options import Options
firefox_options = Options()
firefox_options.add_argument("--headless")
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install(), options=firefox_options)
+ if args.debug:
+ print("Install successful! using Firefox!")
except:
+ if args.debug:
+ print("Install Failed! Trying Chrome webdriver install!")
try:
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
@@ -82,9 +103,13 @@ elif args.usingJavascript:
print("If you are using GNU/Linux, it is likely that you can install from your standard repos. Debian labels their chromium driver chromium-driver. If you wish to use an ungoogled version of chromium (as to reduce possiblity of spying), you can find a link to that here: https://github.com/Eloston/ungoogled-chromium#downloads. On Debian (or debian likes such as Ubuntu or Devuan), you may then run apt install ungoogled-chromium-driver and this will no longer fail.")
sys.exit()
for tags in args.tags:
+ if args.debug:
+ print("Downloading Tag: " + tags)
for tries in range(100):
try:
driver.get('https://ifunny.co/tags/' + tags + '?filter=video')
+ if args.debug:
+ print("Got Webpage!")
except:
if tries < 100 - 1:
print("Rate Limited! Sleeping for " + str(tries*1.5) + " seconds!")
@@ -93,6 +118,8 @@ elif args.usingJavascript:
break
if args.amount > 0:
+ if args.debug:
+ print("starting to scroll...")
isTimesScrolled = 0
oughtTimeScrolled = (args.amount/10) + 1
while isTimesScrolled < int(oughtTimeScrolled):
@@ -102,9 +129,15 @@ elif args.usingJavascript:
videos = driver.find_elements_by_tag_name("video")
if args.amount > 0:
videos = videos[:args.amount]
+ if args.debug:
+ print("Videos list truncated! Its now: " + str(len(videos)) + " units long")
for video in videos:
URL = video.get_attribute("data-src")
+ if args.debug:
+ print("URL read as: " + URL)
name = tags + "-" + hashlib.md5(URL.encode('utf-8')).hexdigest() + ".mp4"
+ if args.debug:
+ print("name read as: " + name)
print("saving " + video.get_attribute("data-src") + " as " + name)
for tries in range(100):
try:
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..6f555f5
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,4 @@
+beautifulsoup4
+requests
+selenium
+urllib3