pythondiscord.pyredditpraw

Reddit is not callable PRAW Discord.Py


When I try to run my script that collacts memes from reddit, I get this error:

Traceback (most recent call last):
  File "C:\Users\emirs\PycharmProjects\discordmasterbot\venv\lib\site-packages\discord\ext\commands\bot.py", line 892, in invoke
await ctx.command.invoke(ctx)
  File "C:\Users\emirs\PycharmProjects\discordmasterbot\venv\lib\site-packages\discord\ext\commands\core.py", line 797, in invoke
await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\emirs\PycharmProjects\discordmasterbot\venv\lib\site-packages\discord\ext\commands\core.py", line 92, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'Reddit' object is not callable

And my code that trigerrs .reddit command is this:

@client.command(description="This command is not working right now")
async def reddit(self,ctx,subreddit: str =""):
    self.reddit = praw.Reddit(client_id=reddit_app_id, 
client_secret=reddit_app_secret,user_agent="MASTERBOT:½s:1.0")
    if self.reddit():
        chosen_subreddit = reddit_enabled_meme_subreddits[0]
        if subreddit:
            if subreddit in reddit_enabled_meme_subreddits:
                chosen_subreddit = subreddit
            submissions = self.reddit.subreddits(chosen_subreddit).hot()
        post_to_pick = random.randint(1,10)
        for i in range(0, post_to_pick):
            submissions = next(x for x in submissions if not x.stickied)
        await ctx.send(submissions.url)
    else:
        await ctx.send("This is not working")

And these are my id,secret and subreddits:

reddit_enabled_meme_subreddits = ["memes","dankmemes"]
reddit_app_secret = "SECRET"
reddit_app_id = "ID"

I have everything imported, everything seems fine when I look into others but mine just doesn't work!


Solution

  • I think your issue is at the line:

    if self.reddit():
    

    You're trying to call what praw.Reddit() is returning.
    Perhaps try removing the parentheses.