@ -7,45 +7,55 @@ from dotenv import load_dotenv
from os import getenv , environ
from os import getenv , environ
from utils . videos import check_done
from utils . videos import check_done
TEXT_WHITELIST = set ( ' abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890 ' )
TEXT_WHITELIST = set ( ' abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890 ' )
def textify ( text ) :
def textify ( text ) :
return ' ' . join ( filter ( TEXT_WHITELIST . __contains__ , text ) )
return ' ' . join ( filter ( TEXT_WHITELIST . __contains__ , text ) )
def get_subreddit_threads ( ) :
def get_subreddit_threads ( ) :
"""
"""
Returns a list of threads from the AskReddit subreddit .
Returns a list of threads from the AskReddit subreddit .
"""
"""
print_step ( " Getting subreddit threads... " )
print_step ( " Getting subreddit threads... " )
content = { }
content = { }
load_dotenv ( )
load_dotenv ( )
if getenv ( " REDDIT_2FA " ) . casefold ( ) == " yes " :
print ( " \n Enter your two-factor authentication code from your authenticator app. \n " )
code = input ( " > " )
print ( )
pw = getenv ( " REDDIT_PASSWORD " )
passkey = f " { pw } : { code } "
else :
passkey = getenv ( " REDDIT_PASSWORD " )
reddit = praw . Reddit ( client_id = getenv ( " REDDIT_CLIENT_ID " ) , client_secret = getenv ( " REDDIT_CLIENT_SECRET " ) ,
reddit = praw . Reddit ( client_id = getenv ( " REDDIT_CLIENT_ID " ) , client_secret = getenv ( " REDDIT_CLIENT_SECRET " ) ,
user_agent = " Accessing AskReddit threads " , username = getenv ( " REDDIT_USERNAME " ) ,
user_agent = " Accessing AskReddit threads " , username = getenv ( " REDDIT_USERNAME " ) ,
password = getenv ( " REDDIT_PASSWORD " ) , )
pass key= passkey , )
"""
"""
Ask user for subreddit input
Ask user for subreddit input
"""
"""
if not getenv ( " SUBREDDIT " ) :
subreddit = reddit . subreddit (
input ( " What subreddit would you like to pull from? " ) ) # if the env isnt set, ask user
else :
print_substep ( f " Using subreddit: r/ { getenv ( ' SUBREDDIT ' ) } from environment variable config " )
subreddit = reddit . subreddit (
getenv ( " SUBREDDIT " ) ) # Allows you to specify in .env. Done for automation purposes.
if getenv ( ' POST_ID ' ) :
if getenv ( ' POST_ID ' ) :
submission = reddit . submission ( id = getenv ( ' POST_ID ' ) )
submission = reddit . submission ( id = getenv ( ' POST_ID ' ) )
else :
else :
if getenv ( " SUBREDDIT " ) : # Allows you to specify in .env. Done for automation purposes.
subreddit = reddit . subreddit ( getenv ( " SUBREDDIT " ) )
else :
# Prompt the user to enter a subreddit
try :
subreddit = reddit . subreddit ( input ( " What subreddit would you like to pull from? " ) )
except ValueError :
subreddit = reddit . subreddit ( " askreddit " )
print_substep ( " Subreddit not defined. Using AskReddit. " )
threads = subreddit . hot ( limit = 25 )
threads = subreddit . hot ( limit = 25 )
submission = list ( threads ) [ random . randrange ( 0 , 25 ) ]
submission = list ( threads ) [ random . randrange ( 0 , 25 ) ]
submission = check_done ( submission )
submission = check_done ( submission )
print_substep ( f " Video will be: { submission . title } :thumbsup: " )
print_substep (
environ [ " VIDEO_TITLE " ] = str ( textify ( submission . title ) ) # todo use global instend of env vars
f ' subreddit thread is: { submission . title } \n (if you dont like this, you can change it by exiting and rerunning the program) ' )
environ [ " VIDEO_TITLE " ] = str ( textify ( submission . title ) )
environ [ " VIDEO_ID " ] = str ( textify ( submission . id ) )
environ [ " VIDEO_ID " ] = str ( textify ( submission . id ) )
try :
try :
@ -56,9 +66,9 @@ def get_subreddit_threads():
for top_level_comment in submission . comments :
for top_level_comment in submission . comments :
content [ " comments " ] . append (
content [ " comments " ] . append (
{ " comment_body " : top_level_comment . body , " comment_url " : top_level_comment . permalink ,
{ " comment_body " : top_level_comment . body , " comment_url " : top_level_comment . permalink ,
" comment_id " : top_level_comment . id , } )
" comment_id " : top_level_comment . id , } )
except AttributeError as e :
except AttributeError as e :
pass
pass
print_substep ( " Received subreddit thread s Successfully." , style = " bold green " )
print_substep ( " Received subreddit thread Successfully." , style = " bold green " )
return content
return content