"""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()