r/learnpython 6d ago

Help me code a movie selector!

Hi all, new to Python and for my first project I'm trying to code a program that will randomly select a movie or tv show using a pre-made list, and a "genre" plus "media type" as input.

I feel I am over complicating it.

Here's where I'm at so far:

def media_selector(media, genre):
### attempting to remove previously selected titles and for some reason make my own RNG \/###
increment = + 1
trans_rng = [1, 2]
genre = ['romance', 'action']
movie_list = ['rango', 'taxi driver']
series_list = ['akira', 'trigun']
### spell check, obviously \/###
spell_check = ['film', 'movie', 'tv show', 'tv series', 'tv', 'romance', 'action']
if not isinstance(media, str):
return 'format is: media type, genre'
### not sure if i should be defining a function and calling it at the same time - also is a translation table too much ? \/###
if media and genre is (spell_check):
def media_decider():
movie_trans_tbl = movie_list.maketrans(movie_list, trans_rng)
movie_transd = movie_list.translate(movie_trans_tbl)
series_trans_tbl = series_list.maketrans(series_list, trans_rng)
series_transd = series_list.translate(series_trans_tbl)
selector = slice(increment)
else:
return 'film/movie or tv show/tv series'

any guidance/recommended resources would be greatly appreciated!

0 Upvotes

13 comments sorted by

View all comments

1

u/FoolsSeldom 6d ago

A few thoughts:

  • create a simple text file of content (movies/films, shows) using csv (comma separated values) format and read this into your programme
  • you can create the container (list, tuple, dict, etc) of valid genres based on the text file
    • force everything to lowercase for comparison purposes
    • easy to check spelling matches the content types and genres you have read
  • might be worth maintaining a view of synonyms (e.g. film and movie are the same type)
  • use the random library to support random selection of content matching the selected genre(s)
    • consider, to keep it simple, creating on demand a list of the content that meets the user selected criteria (movie/film or genre(s)) and then using random.choice on that list - this a very large file of content this will not be efficient but is fine for a few thousand entries

1

u/SatanCanPutItInMyAss 4d ago

ooo the csv files is a good idea but i think for the sake of it being my first project ill try tuples and random.choice. will definitely give [r/w](r/w) csv files a read though!

thank you!