You know, that sounds like there's a geek tool that should be written for it. Something similar could be done with fanfic, come to think of it, which is actually where I got this idea: from the fanfic warnings.
There should be a very large and flexible list of things that either people like, or have the potential to squick people. Each movie, book, or fic would have the potential triggers or other elements checked off, rather than just having them listed manually in some comment section. Any record for a movie/book/fic would have, in the descriptive bits about it, if applicable, a "Warning: This contains elements that some viewers may consider inappropriate or may appreciate being warned about. For a full list of warnings on this item, click here. To see if this item has warnings about things you would not like to encounter, click here."
And users would get the same list of warnings, and could select which ones they wanted to seek out, and which ones they wanted to be notified about, and which ones they wanted to avoid at all costs.
Some people don't like to view warnings on stories because they don't want to be spoiled, but others really appreciate being warned, and some people have to fight with themselves to see if they want to be somewhat spoiled (say, that Harry Potter & the Order of the Phoenix has a character death) or if they want to be warned (A character who you may care about very much dies in this book: have tissues handy).
For a sufficiently flexible system, you can select whether you want to see which warnings a movie's got ("Oh, has graphic rape. Um, no, not going to watch it. This one's got a character death, but it's a murder film. I think I can handle that.") or just that it has items that you've flagged for "Don't want to see it". Huh, you could have three categories: "Seek it out, warn me, don't want to see it." And you could choose whether you wanted to match the warnings of the item up against your flagged categories with or without spoilers for each one -- you might not want to be spoiled on flags that you've got for "seek out", but might definitely want to be spoiled on "don't want to see it".
I think it could really work.
The system would have to be set up so that when picking warnings for an item, there would be three choices for each warning: has it, doesn't have it, and unknown.
There would probably be new warning categories added from time to time, and any new category would have to be defaulted to unknown on old entries that no one's updated yet. And if you've got a "warn me" or "I don't want to see this" on a specific warning, and the item hasn't been rated on that, it would notify you too. For example, if MPREG were a new category, and the movie Junior had been put up before the MPREG warning was put in the system, until someone updated Junior with the right info, it would be flagged as "Warning: the category 'MPREG' on this movie has not been rated. You stated that you wished to be warned about MPREG in any movie. Be aware that the item may or may not contain depictions of male pregnancy." Of course, any other item that had been entered into the system before that warning was added would have that same flag for that user.
Hmm. This sounds like a really useful tool!
You'd have a Warnings table, with either some unique numerical primary key, or a short several-letters summary of the warning as a primary key. (I vote for the numbers.) Then you have a short summary of the warning, and then a long version.
Then you have the Item Warnings table, which has a composite key: the foreign key from the Item table, and the foreign key for the Warning table. And then you have the status: Does Not Contain, Does Contain, and Unknown. Item, Warning, and ItemWarningStatus are mandatory; the default on Status is "Unknown". For each Item and Warning, an Item Warning entry will be generated, automatically when new Items and new Warnings are put into their respective tables. Optional would be the Notes or Comments section (description?) which would describe why that Item had that Warning set to the status it's at. Would mostly be used for describing an ItemWarningStatus of Does Contain.
Next would be the Users Warnings table. You would have User ID (foreign key) and Warning ID (foreign key) and UserWarningStatus, possible values of Seek, Neutral, Warn, and Avoid. Again, entries would be generated for each User and each Warning, with new entries generated when new users and new warnings added.
This as described is designed to be an addition to an existing database of items (books, stories, movies) rather than a new service in itself. A new row in the table for the items would have to be added, for whether or not it contains warnings. IF it contained warnings, when the web page was pulled up/generated, there would be a "This item has warnings. Click here to access the warning page." line on the page; the rest of the story/entry would be the same. Users interested in reading warnings would click there, and be able to view any number of things:
- All the warnings for the item (with the names of the warnings only)
- All the warnings for the item (with the descriptions, if applicable, of why the item has the warning, for example "Sirius Black dies at the hands of enemies" for Harry Potter and the Order of the Phoenix)
- Run a query to compare the user's flagged warnings to the story's flagged warnings:
- View if the item has warnings that the user seeks out (yes, no, unknown)
- View the warnings that the item has that the user seeks out (short description of warning: which warning it is)
- View the warnings that the item has that the user seeks out (short description of warning, explanation of why item has that warning)
- View if the item has warnings that the user wishes to be warned about (yes, no, unknown)
- View the warnings that the item has that the user wishes to be warned about (short description of warning: which warning it is)
- View the warnings that the item has that the user wishes to be warned about (short description of warning, explanation of why item has that warning)
- View if the item has warnings that the user wishes to avoid (yes, no, unknown)
- View the warnings that the item has that the user wishes to avoid (short description of warning: which warning it is)
- View the warnings that the item has that the user wishes to avoid (short description of warning, explanation of why item has that warning)
In addition to individual user accounts for random users, the system admin could set up a few generic accounts, such as Child, Youth, Teen, Adult, Mature. The generic Child account could be set up by an admin to Avoid many categories, and be Warned on no few others, all on items that would drive it above a US "G" rating. Youth would be Avoid or Warned on items that would drive it to or over a PG or PG-13 rating. Or something. It probably makes more sense implemented than explained. This way, a random new user to the site would be able to select a pre-made set of criteria to surf at (say someone's mother looking up Austin Powers movies to see if they were age-appropriate for ten-year-old boys would be warned in several categories and advised to avoid it based on others), or they could base their own unique standards off a given age (say if a new user did not know what "bukkake" was, they would see it might be advised to avoid or warn for all but Mature audiences).
I think that would be a really good addition to any fanfic, story, book, or movie site.