  TODO for IMDbPY
  ===============

See the code, and search for XXX, FIXME and TODO.


[general]
* I'm not completely satisfied with the overall design of the package,
  and I'm not sure that mix-ins is a good choice to develop a
  class independent from the access system used to retrieve the data.
* Redesign the class diagram.
* The currentRole instance variable of Movie and Person class should
  go away, and so the accessSystem variable.
* The code is not exacly crap, but some portions are a mess; that's
  because I'm a lazy programmer, because the first version of IMDbPY
  was written in a really short time and because complex HTML is a pain
  in the ass to parse (i.e.: it's everyone's fault but mine! ;-)
* The documentation should be improved.
* Write a set of tests using the unittest modules.
* Drop compatibility with Python 2.0, but only if it's really needed (e.g.:
  to do a search within a local installation of the IMDb database the
  new difflib module will be really useful).
* Remember to scan the code with tools like rats and pychecker.
* My English sucks.


[IMDb class]
* Implement new way to access the data; so long only 'http' is
  implemented; I would like to see an access system for a local
  installation of the IMDb database.
* Access to the "my IMDb" functions for registered users would
  be really cool.


[searches]
* Support advanced query for movie titles/person names.


[Movie objects]
* Define invariable names for the sections (the keys you use to access
  info stored in a Movie object).
* Gather more data: it should be wonderful to collect information like
  user comments, external/newsgroup reviews, awards & nominations,
  user rating (demographic breakdowns, arithmetic mean), reccomendations,
  plot keywords, amazon.com summaries, memorable quotes (linked to
  the actor/acress), trivia, goofs, soundtrack listing, crazy credits,
  alternate versions, movie connections,  merchandising links,
  box office & business, release dates, filming locations, technical specs,
  laserdisc details, DVD details, literature listings, news articles,
  taglines, trailers, posters, photo gallery, on tv, schedule links,
  showtimes, official site, miscellaneous, photographs, sound clips,
  video clips, message boards.


[Person objects]
* Define invariable names for the sections (the keys you use to access
  info stored in a Person object).
* Should other persons referred in the data (e.g.: "spouse") be managed
  as Person instances?
* Fix troubles with fields which sometimes are strings and sometimes
  lists of strings (e.g. "spouse").
* Gather more data: other works, publicity, agent, photo gallery,
  awards & nominations, news articles.


['http' data access system]
* I think that it doesn't work correctly with chars outside the
  Latin-1 (iso_8859-1) charset.
  This can be fixed defining the unknown_charref() and unknown_entityref()
  methods in the parser classes, but I'm not sure how to translate
  "strange" chars!
* To gather information about a person it parse both the "categorized"
  and the "combined" page; these pages contains the same information about
  the filmography, but the "categorized" page is quite difficult to
  parse (i.e.: it lists a movie more than one time).
* Probably there's something wrong parsing the "biography" page of a
  person (too many spaces after/before a link to a movie or other person).
* I use a lot of classes which inherit from the HTMLPlotParser class;
  should I create a base class?
* Should I collect movie information like "in production"?


