1996-01-29 15:45:59 +00:00
|
|
|
"""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
|
2000-08-20 20:06:51 +00:00
|
|
|
import Netscape
|
1996-01-29 15:45:59 +00:00
|
|
|
import MacOS
|
|
|
|
|
|
|
|
Error = 'nsremote.Error'
|
|
|
|
|
|
|
|
_talker = None
|
|
|
|
|
|
|
|
def _init():
|
|
|
|
global _talker
|
|
|
|
if _talker == None:
|
2000-08-20 20:06:51 +00:00
|
|
|
_talker = Netscape.Netscape()
|
1996-01-29 15:45:59 +00:00
|
|
|
|
|
|
|
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()
|
|
|
|
|