A discord bot that sends reddit memes to a channel

chand1012 95de1d33f5 added help command 1 week ago
.github fbb57571be Update FUNDING.yml 1 week ago
icon 4e5141c287 added new logo 2 weeks ago
.gitignore 71c0a35840 added thread locking to mitigate leaks 1 month ago
CODE_OF_CONDUCT.md 60be2bf012 Create CODE_OF_CONDUCT.md 2 weeks ago
Dockerfile b716e31fea added subs to docker image 1 month ago
LICENSE 3f8985a549 license and readme updates 4 months ago
README.md bcaa1bc988 updated readme 2 weeks ago
_config.yml 6f428bfa89 updated config 2 weeks ago
blacklist.go a6cf0a61bb more refactoring 8 months ago
buzz.go 4cc89a7ecf basic documentation updates 4 months ago
cache.go 17c58c0df3 more work on the SQL migration 1 month ago
database.go c55c611f40 updated database names 3 weeks ago
database_test.go 0aba5dd0d2 removed redis test, fix test error 1 month ago
discordFuncs.go 95de1d33f5 added help command 1 week ago
go.mod ba439d291f Merge branch 'master' of github.com:chand1012/Discord-Quick-Meme into sql-migration 2 weeks ago
go.sum ba439d291f Merge branch 'master' of github.com:chand1012/Discord-Quick-Meme into sql-migration 2 weeks ago
images.go 7432cd22d6 moved mrisa address to the imageSearch function 1 month ago
init.go ca241dca38 started adding database functions 1 month ago
jsonHandler.go ba9901ded1 added json unit testing 1 month ago
json_test.go ba9901ded1 added json unit testing 1 month ago
main.go 95de1d33f5 added help command 1 week ago
memeQueue.go 7facf2c20e cleanup before update and merge 2 weeks ago
misc.go 10330942af removed unused function 1 month ago
mrisa_test.go f33388f7fc edited tests 1 month ago
redditHandler.go 47fad1f0b1 more work on removing redis 1 month ago
reddit_test.go 932cdc6898 started working more on testing 1 month ago
sonar-project.properties e3c5a82cce updated sonar project things 4 months ago
str.go b4e3145de0 add regex tester 2 months ago
subs.json 91d1b21be3 started work on organizing code better 4 months ago
testCommands.go b9bd7b195b removed unused function 2 weeks ago
topgg.go a2d9f13cce added topgg server count support 2 months ago
topgg_test.go 2bbcde77e2 updated tests 1 month ago
userTimer.go 9f4e9e3d76 more work on converting to sql 1 month ago

README.md

Discord-Quick-Meme

Discord Bots Discord Bots Discord Bots Build and Test Bot Quality Gate Status Go Version

A discord bot that sends Reddit memes and news to a channel.

To add

If you are a server owner, just click here and select your channel to add the bot to your channel.

COMING SOON: Support the bot!

Soon I will be launching a Patreon, which will get you some cool extra features! Features are also available to those who support me on GitHub Sponsors! Cool features include:

  • No spam limiter!
  • Image proxies!
    • Two image proxies will be available:
      • Discord's own image uploads (as long as the image in question is >=8MB).
      • My custom [Image Proxy Service]().
    • DISCLAIMER: This Discord bot is for fun, and the proxy service is mainly for speed increases when Reddit is at high load. Yes, you can use it to circumvent firewalls, but I am not responsible if you get in trouble.
  • More than one queue per channel!
    • For example, you could have a queue from r/dankmemes set for once every hour and a queue set for r/prequelmemes set for once every 66 minutes.
  • Your name or username on my sponsor list on the bot!
  • More features to be announced!
  • Early access to certain alpha features! Beta features will always be public.
  • My gratitude and the knowledge that you are helping a developer get closer to making his hobby a living!

To use

General

  • Type !meme for a meme.
  • Type !joke for a joke.
  • Type !news for a random news article.
  • Type !5050 or !fiftyfifty to pull a post from r/fiftyfifty.
  • List of subreddits for commands can be found here.
  • A few secret commands if you're willing to look at the source code.
  • Type !news, !link, !joke, !text, or !meme followed by a subreddit name or a list of names separated with spaces (without the r/) to pull a random top post from that subreddit or from a random subreddit from that list. The !text and !joke commands post text directly to the chat. The !link and !news commands get a post that links a website or webpage. Finally, !meme get a piece of media, either a photo, a GIF, or a video. Examples: !joke meanjokes or !meme cringetopia cringe
  • Type !source to get the link to the last sent post in a channel. This was changed because people were complaining memes were coming up twice. This is because Discord shows previews of web content, to remedy this I make the link to the post a requested option, rather than removing it completely.
  • Typing !revsearch will search the web for the most recently posted PNG or JPEG file in the chat. This is done via Google Reverse Image Search. The search will prioritize results from Reddit, but if a Reddit result cannot be found, Google will return similar images and phrases, which are then put into the chat. Disclaimer: Google Reverse Image Search is best at finding simple objects, so don't be surprised if it has issues attempting to find your memes.

Admins

  • If you are a server admin, add a role called Memebot Admin to your roles. This role allows you to use the ban, unban, subscribe, and unsubscribe commands.
  • The ban and unban commands allow you ban certain subreddits on either just a channel or the entire server. To ban a subreddit, run the command !quickmeme ban <mode> <subreddit> , where mode is either server or channel. Just replace ban with unban to do the reverse effect.
    • Typing !quickmeme getbanned <mode>, where <mode> is either server or channel will give you a list of the banned subreddits on either the whole server or just the channel the command was executed on. This command can be executed by both admins and regular users.
  • The subscribe command allows the bot to periodically post memes in the channel of your choice. The command syntax is !quickmeme subscribe <interval> <subreddit1>,<subreddit2>,.... Some examples of intervals are 1h (hourly), 6h, 12h, 1d (daily), and 1w (weekly).There is a maximum time interval of one week and a minimum of 15 minutes. You can add as many subreddits as you want to the custom command, as long as your command is under 2000 characters (Discord's rule, not mine), and random one will be pulled from your list. The subreddits are separated with commas, not spaces. If you use spaces you will get an error.
    • To unsubscribe, simply type !quickmeme unsubscribe and the bot will stop sending messages in that channel until prompted again.
    • The bot checks the queue every ten seconds, so many of the messages will not be exactly on-the-dot every hour, but should be within a minute or two.

Support

If any support is needed, please post an Issue on the Issues page on Github or join my support server found here.

Additional Random Info and Facts

  • This bot caches the 100 "hottest" posts on all subreddits called upon it to decrease the response time to the minimum.
  • This bot was made as a side project of mine, an idea as some of my friends were not really Reddit users but I always talked about the memes and posts. They use Reddit now.

Dependencies

Disclaimer

If its offline, I am probably working on it.

Icon by my friend, Mel. Logo licensed under MIT like the rest of the Bot.