IMDbPY FOR SMALL SYSTEMS ======================== Since version 1.8, IMDbPY tries to be usable even on systems with very limited storage space, bandwidth and CPU power, like PDA, hand-held devices and mobile phones. Sections in this file: * INSTALLATION OPTIONS how to save a little space installing IMDbPY. * THE "MOBILE" DATA ACCESS SYSTEM useful for systems with very little CPU power and bandwidth. * THE "HTTPTHIN" DATA ACCESS SYSTEM for systems with normal CPU power, but insufficient bandwidth. * OTHER TIPS Please read all the following section. INSTALLATION OPTIONS ==================== You can call the setup.py script with some arguments: The --without-sql argument, if used, will excludes the parser.sql package; you don't need it if your system does not have any of the SQLObject or SQLAlchemy packages and/or you don't want to store the whole IMDb's plain text database files in a SQL database. Now, if you're installing IMDbPY (using ./setup.py install), you should take a look at some options, like "--no-compile" and "-O0" to exclude pyc and pyo files, saving hundreds of KBs. Moreover, if you're creating a package (rpm, deb or whatever), in the setup.cfg you can exclude from your package things like the documentation (more than 200Kb) and the scripts in the ./bin/ directory. THE "MOBILE" DATA ACCESS SYSTEM =============================== Intended to be used with PDA, smart phones and hand-held devices, the "mobile" data access system is a subclass of the default "httpThin" data access system, with some methods replaced with faster string methods, instead of the html parser. Moreover, for the movies, only the main information are retrieved (see the 'httpThin' notes). It should be, at usage time, from 2 to 20 times faster than the "http"/"httpThin" data access system. This code still needs tests on mobile phones! Please report any bugs/ideas/hints... Usage: from imdb import IMDb i = IMDb('mobile') sp = i.search_person('mel gibson', results=10) p = sp[0] i.update(p) sm = i.search_movie('mystic river', results=15) m = sm[0] i.update(m) ...and so on... A GUI for Series 60 smart phones, is available at: http://imdbpy.sourceforge.net/?page=mobile THE "HTTPTHIN" DATA ACCESS SYSTEM ================================= Instead of the default data access system ('http'), you can also use 'httpThin' (or 'webThin' or 'htmlThin'). I.e.: from imdb import IMDb i = IMDb('httpThin') sp = i.search_person('mel gibson', results=10) sm = i.search_movie('mystic river', results=15) ...and so on... The main difference is that, parsing movies' information, the "maindetails" page is parsed, in place of the "combined" page. This reduces the required bandwidth and the CPU power needed. Obviously a lot of information are lost (and only the first 15 people of the cast are listed), but it still retrieves everything you usually need (director, writer, runtime, country, language, akas, etc.) Another difference is that, if the "defaultModFuct" parameter is not provided (as default) calling the IMDb() function, no references to people or movie are collected from textual information (like the plot of a movie). OTHER TIPS ========== Remember that, calling the search_movie(), search_episode() and search_person() methods of the "IMDb" object, you can provide a "results" parameter, to download only a limited amount of results (20, by default). With the http, httpThin and mobile data access systems you can set a proxy with the set_proxy() method; e.g.: i = IMDb('http') i.set_proxy('http://localhost:8080/') Remember that the proxy is automatically used if the $HTTP_PROXY environment variable is set.