| """nsremote - Control Netscape from python. |
| |
| Interface modelled after unix-interface done |
| by hassan@cs.stanford.edu. |
| |
| Jack Jansen, CWI, January 1996. |
| """ |
| # |
| # Note: this module currently uses the funny SpyGlass AppleEvents, since |
| # these seem to be the only way to get the info from Netscape. It would |
| # be nicer to use the more "object oriented" standard OSA stuff, when it |
| # is implemented in Netscape. |
| # |
| import sys |
| |
| import aetools |
| import Netscape |
| import MacOS |
| |
| Error = 'nsremote.Error' |
| |
| _talker = None |
| |
| def _init(): |
| global _talker |
| if _talker == None: |
| _talker = Netscape.Netscape() |
| |
| def list(dpyinfo=""): |
| _init() |
| list = _talker.list_windows() |
| return map(lambda x: (x, 'version unknown'), list) |
| |
| def geturl(windowid=0, dpyinfo=""): |
| _init() |
| if windowid == 0: |
| ids = _talker.list_windows() |
| if not ids: |
| raise Error, 'No netscape windows open' |
| windowid = ids[0] |
| info = _talker.get_window_info(windowid) |
| return info |
| |
| def openurl(url, windowid=0, dpyinfo=""): |
| _init() |
| if windowid == 0: |
| _talker.OpenURL(url) |
| else: |
| _talker.OpenURL(url, toWindow=windowid) |
| |
| def _test(): |
| """Test program: Open www.python.org in all windows, then revert""" |
| import sys |
| windows_and_versions = list() |
| windows_and_urls = map(lambda x: (x[0], geturl(x[0])[0]), windows_and_versions) |
| for id, version in windows_and_versions: |
| openurl('http://www.python.org/', windowid=id) |
| print 'Type return to revert to old contents-' |
| sys.stdin.readline() |
| for id, url in windows_and_urls: |
| openurl(url, id) |
| |
| if __name__ == '__main__': |
| _test() |
| |