| \section{\module{ic} --- |
| Access to Internet Config} |
| |
| \declaremodule{builtin}{ic} |
| \platform{Mac} |
| \modulesynopsis{Access to Internet Config.} |
| |
| |
| This module provides access to Macintosh Internet |
| Config\index{Internet Config} package, |
| which stores preferences for Internet programs such as mail address, |
| default homepage, etc. Also, Internet Config contains an elaborate set |
| of mappings from Macintosh creator/type codes to foreign filename |
| extensions plus information on how to transfer files (binary, ascii, |
| etc). |
| |
| There is a low-level companion module |
| \module{icglue}\refbimodindex{icglue} which provides the basic |
| Internet Config access functionality. This low-level module is not |
| documented, but the docstrings of the routines document the parameters |
| and the routine names are the same as for the Pascal or \C{} API to |
| Internet Config, so the standard IC programmers' documentation can be |
| used if this module is needed. |
| |
| The \module{ic} module defines the \exception{error} exception and |
| symbolic names for all error codes Internet Config can produce; see |
| the source for details. |
| |
| \begin{excdesc}{error} |
| Exception raised on errors in the \module{ic} module. |
| \end{excdesc} |
| |
| |
| The \module{ic} module defines the following class and function: |
| |
| \begin{classdesc}{IC}{\optional{signature\optional{, ic}}} |
| Create an internet config object. The signature is a 4-character creator |
| code of the current application (default \code{'Pyth'}) which may |
| influence some of ICs settings. The optional \var{ic} argument is a |
| low-level \code{icglue.icinstance} created beforehand, this may be |
| useful if you want to get preferences from a different config file, |
| etc. |
| \end{classdesc} |
| |
| \begin{funcdesc}{launchurl}{url\optional{, hint}} |
| \funcline{parseurl}{data\optional{, start\optional{, end\optional{, hint}}}} |
| \funcline{mapfile}{file} |
| \funcline{maptypecreator}{type, creator\optional{, filename}} |
| \funcline{settypecreator}{file} |
| These functions are ``shortcuts'' to the methods of the same name, |
| described below. |
| \end{funcdesc} |
| |
| |
| \subsection{IC Objects} |
| |
| \class{IC} objects have a mapping interface, hence to obtain the mail |
| address you simply get \code{\var{ic}['MailAddress']}. Assignment also |
| works, and changes the option in the configuration file. |
| |
| The module knows about various datatypes, and converts the internal IC |
| representation to a ``logical'' Python data structure. Running the |
| \module{ic} module standalone will run a test program that lists all |
| keys and values in your IC database, this will have to server as |
| documentation. |
| |
| If the module does not know how to represent the data it returns an |
| instance of the \code{ICOpaqueData} type, with the raw data in its |
| \member{data} attribute. Objects of this type are also acceptable values |
| for assignment. |
| |
| Besides the dictionary interface, \class{IC} objects have the |
| following methods: |
| |
| |
| \begin{methoddesc}{launchurl}{url\optional{, hint}} |
| Parse the given URL, lauch the correct application and pass it the |
| URL. The optional \var{hint} can be a scheme name such as |
| \code{'mailto:'}, in which case incomplete URLs are completed with this |
| scheme. If \var{hint} is not provided, incomplete URLs are invalid. |
| \end{methoddesc} |
| |
| \begin{methoddesc}{parseurl}{data\optional{, start\optional{, end\optional{, hint}}}} |
| Find an URL somewhere in \var{data} and return start position, end |
| position and the URL. The optional \var{start} and \var{end} can be |
| used to limit the search, so for instance if a user clicks in a long |
| textfield you can pass the whole textfield and the click-position in |
| \var{start} and this routine will return the whole URL in which the |
| user clicked. As above, \var{hint} is an optional scheme used to |
| complete incomplete URLs. |
| \end{methoddesc} |
| |
| \begin{methoddesc}{mapfile}{file} |
| Return the mapping entry for the given \var{file}, which can be passed |
| as either a filename or an \function{macfs.FSSpec()} result, and which |
| need not exist. |
| |
| The mapping entry is returned as a tuple \code{(\var{version}, |
| \var{type}, \var{creator}, \var{postcreator}, \var{flags}, |
| \var{extension}, \var{appname}, \var{postappname}, \var{mimetype}, |
| \var{entryname})}, where \var{version} is the entry version |
| number, \var{type} is the 4-character filetype, \var{creator} is the |
| 4-character creator type, \var{postcreator} is the 4-character creator |
| code of an |
| optional application to post-process the file after downloading, |
| \var{flags} are various bits specifying whether to transfer in binary |
| or ascii and such, \var{extension} is the filename extension for this |
| file type, \var{appname} is the printable name of the application to |
| which this file belongs, \var{postappname} is the name of the |
| postprocessing application, \var{mimetype} is the MIME type of this |
| file and \var{entryname} is the name of this entry. |
| \end{methoddesc} |
| |
| \begin{methoddesc}{maptypecreator}{type, creator\optional{, filename}} |
| Return the mapping entry for files with given 4-character \var{type} and |
| \var{creator} codes. The optional \var{filename} may be specified to |
| further help finding the correct entry (if the creator code is |
| \code{'????'}, for instance). |
| |
| The mapping entry is returned in the same format as for \var{mapfile}. |
| \end{methoddesc} |
| |
| \begin{methoddesc}{settypecreator}{file} |
| Given an existing \var{file}, specified either as a filename or as an |
| \function{macfs.FSSpec()} result, set its creator and type correctly based |
| on its extension. The finder is told about the change, so the finder |
| icon will be updated quickly. |
| \end{methoddesc} |