aboutsummaryrefslogtreecommitdiffstats
path: root/bot/cogs/movie.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot/cogs/movie.py')
-rw-r--r--bot/cogs/movie.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/bot/cogs/movie.py b/bot/cogs/movie.py
new file mode 100644
index 00000000..45714005
--- /dev/null
+++ b/bot/cogs/movie.py
@@ -0,0 +1,65 @@
+import requests
+import random
+from discord.ext import commands
+from os import environ
+
+OMDB_API_KEY = environ.get('OMDB_API_KEY')
+
+
+class Movie:
+ """
+ Prints the details of a random scary movie to discord chat
+ """
+
+ def __init__(self, bot):
+ self.bot = bot
+
+ @commands.command(name='movie', aliases=['scary_movie'], brief='Pick me a scary movie')
+ async def random_movie(self, ctx):
+ selection = await self.select_movie()
+ movie_details = await self.format_metadata(selection)
+
+ await ctx.send(movie_details)
+
+ @staticmethod
+ async def select_movie():
+ """
+ Selects a random movie and returns a json of movie details from omdb
+ """
+
+ # TODO: Come up w/ a scary movie list to select from. Currently returns random Halloween movie
+ omdb_params = {
+ 'apikey': OMDB_API_KEY,
+ 'type': 'movie',
+ 's': 'halloween'
+ }
+ response = requests.get('http://www.omdbapi.com/', omdb_params)
+
+ movies = []
+ for movie in response.json().get('Search'):
+ movie_id = movie.get('imdbID')
+ movies.append(movie_id)
+
+ selection = random.choice(movies)
+
+ omdb_params = {
+ 'apikey': OMDB_API_KEY,
+ 'i': selection
+ }
+ response = requests.get('http://www.omdbapi.com/', omdb_params)
+
+ return response.json()
+
+ @staticmethod
+ async def format_metadata(movie):
+ """
+ Formats raw omdb data to be displayed in discord chat
+ """
+ display_text = f"You should watch {movie.get('Title')} ({movie.get('Year')})\n" \
+ f"https://www.imdb.com/title/{movie.get('imdbID')}"
+
+ return display_text
+
+
+def setup(bot):
+ bot.add_cog(Movie(bot))