mirror of
https://github.com/KevinMidboe/bulk-downloader-for-reddit.git
synced 2026-01-11 03:35:36 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22047338e2 | ||
|
|
b16cdd3cbb | ||
|
|
2a8394a48c | ||
|
|
eac4404bbf | ||
|
|
fae49d50da | ||
|
|
7130525ece | ||
|
|
2bf1e03ee1 | ||
|
|
15a91e5784 | ||
|
|
344201a70d | ||
|
|
92e47adb43 | ||
|
|
4d385fda60 |
@@ -1,5 +1,5 @@
|
||||
# Bulk Downloader for Reddit
|
||||
Downloads media from reddit posts.
|
||||
Downloads media from reddit posts. Made by [u/aliparlakci](https://reddit.com/u/aliparlakci)
|
||||
|
||||
## [Download the latest release here](https://github.com/aliparlakci/bulk-downloader-for-reddit/releases/latest)
|
||||
|
||||
@@ -50,4 +50,4 @@ It should redirect you to a page where it shows your **imgur_client_id** and **i
|
||||
|
||||
However, they are basically text files. You can also view them with any text editor such as Notepad on Windows, gedit on Linux or Text Editor on MacOS
|
||||
|
||||
## [See the changes on *master* here](docs/CHANGELOG.md)
|
||||
## [See the changes on *master* here](docs/CHANGELOG.md)
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
# Changes on *master*
|
||||
##[23/02/2019](https://github.com/aliparlakci/bulk-downloader-for-reddit/tree/4d385fda60028343be816eb7c4f7bc613a9d555d)
|
||||
- Fixed v.redd.it links
|
||||
|
||||
## [27/01/2019](https://github.com/aliparlakci/bulk-downloader-for-reddit/tree/b7baf07fb5998368d87e3c4c36aed40daf820609)
|
||||
- Clarified the instructions
|
||||
|
||||
|
||||
15
script.py
15
script.py
@@ -23,7 +23,7 @@ from src.tools import (GLOBAL, createLogFile, jsonFile, nameCorrector,
|
||||
|
||||
__author__ = "Ali Parlakci"
|
||||
__license__ = "GPL"
|
||||
__version__ = "1.6.4.1"
|
||||
__version__ = "1.6.5"
|
||||
__maintainer__ = "Ali Parlakci"
|
||||
__email__ = "parlakciali@gmail.com"
|
||||
|
||||
@@ -672,10 +672,15 @@ def main():
|
||||
except ProgramModeError as err:
|
||||
PromptUser()
|
||||
|
||||
if not Path(GLOBAL.configDirectory).is_dir():
|
||||
os.makedirs(GLOBAL.configDirectory)
|
||||
GLOBAL.config = getConfig("config.json") if Path("config.json").exists() \
|
||||
else getConfig(GLOBAL.configDirectory / "config.json")
|
||||
if not Path(GLOBAL.defaultConfigDirectory).is_dir():
|
||||
os.makedirs(GLOBAL.defaultConfigDirectory)
|
||||
|
||||
if Path("config.json").exists():
|
||||
GLOBAL.configDirectory = Path("config.json")
|
||||
else:
|
||||
GLOBAL.configDirectory = GLOBAL.defaultConfigDirectory / "config.json"
|
||||
|
||||
GLOBAL.config = getConfig(GLOBAL.configDirectory)
|
||||
|
||||
if GLOBAL.arguments.log is not None:
|
||||
logDir = Path(GLOBAL.arguments.log)
|
||||
|
||||
@@ -3,6 +3,8 @@ import sys
|
||||
import random
|
||||
import socket
|
||||
import webbrowser
|
||||
import urllib.request
|
||||
from urllib.error import HTTPError
|
||||
|
||||
import praw
|
||||
from prawcore.exceptions import NotFound, ResponseException, Forbidden
|
||||
@@ -93,7 +95,7 @@ def beginPraw(config,user_agent = str(socket.gethostname())):
|
||||
authorizedInstance = GetAuth(reddit,port).getRefreshToken(*scopes)
|
||||
reddit = authorizedInstance[0]
|
||||
refresh_token = authorizedInstance[1]
|
||||
jsonFile(GLOBAL.configDirectory / "config.json").add({
|
||||
jsonFile(GLOBAL.configDirectory).add({
|
||||
"reddit_username":str(reddit.user.me()),
|
||||
"reddit_refresh_token":refresh_token
|
||||
})
|
||||
@@ -103,7 +105,7 @@ def beginPraw(config,user_agent = str(socket.gethostname())):
|
||||
authorizedInstance = GetAuth(reddit,port).getRefreshToken(*scopes)
|
||||
reddit = authorizedInstance[0]
|
||||
refresh_token = authorizedInstance[1]
|
||||
jsonFile(GLOBAL.configDirectory / "config.json").add({
|
||||
jsonFile(GLOBAL.configDirectory).add({
|
||||
"reddit_username":str(reddit.user.me()),
|
||||
"reddit_refresh_token":refresh_token
|
||||
})
|
||||
@@ -422,18 +424,20 @@ def checkIfMatching(submission):
|
||||
eromeCount += 1
|
||||
return details
|
||||
|
||||
elif isDirectLink(submission.url) is not False:
|
||||
details['postType'] = 'direct'
|
||||
details['postURL'] = isDirectLink(submission.url)
|
||||
directCount += 1
|
||||
return details
|
||||
|
||||
elif submission.is_self:
|
||||
details['postType'] = 'self'
|
||||
details['postContent'] = submission.selftext
|
||||
selfCount += 1
|
||||
return details
|
||||
|
||||
directLink = isDirectLink(submission.url)
|
||||
|
||||
if directLink is not False:
|
||||
details['postType'] = 'direct'
|
||||
details['postURL'] = directLink
|
||||
directCount += 1
|
||||
return details
|
||||
|
||||
def printSubmission(SUB,validNumber,totalNumber):
|
||||
"""Print post's link, title and media link to screen"""
|
||||
|
||||
@@ -473,7 +477,22 @@ def isDirectLink(URL):
|
||||
return URL
|
||||
|
||||
elif "v.redd.it" in URL:
|
||||
return URL+"/DASH_600_K"
|
||||
bitrates = ["DASH_1080","DASH_720","DASH_600", \
|
||||
"DASH_480","DASH_360","DASH_240"]
|
||||
|
||||
for bitrate in bitrates:
|
||||
videoURL = URL+"/"+bitrate
|
||||
|
||||
try:
|
||||
responseCode = urllib.request.urlopen(videoURL).getcode()
|
||||
except urllib.error.HTTPError:
|
||||
responseCode = 0
|
||||
|
||||
if responseCode == 200:
|
||||
return videoURL
|
||||
|
||||
else:
|
||||
return False
|
||||
|
||||
for extension in imageTypes:
|
||||
if extension in URL:
|
||||
|
||||
@@ -14,7 +14,8 @@ class GLOBAL:
|
||||
config = None
|
||||
arguments = None
|
||||
directory = None
|
||||
configDirectory = Path.home() / "Bulk Downloader for Reddit"
|
||||
defaultConfigDirectory = Path.home() / "Bulk Downloader for Reddit"
|
||||
configDirectory = ""
|
||||
reddit_client_id = "BSyphDdxYZAgVQ"
|
||||
reddit_client_secret = "bfqNJaRh8NMh-9eAr-t4TRz-Blk"
|
||||
printVanilla = print
|
||||
|
||||
Reference in New Issue
Block a user