def open_gopher(self, url): import gopherlib host, selector = splithost(url) if not host: raise IOError, ('gopher error', 'no host given') type, selector = splitgophertype(selector) selector, query = splitquery(selector) selector = unquote(selector) if query: query = unquote(query) fp = gopherlib.send_query(selector, query, host) else: fp = gopherlib.send_selector(selector, host) return addinfo(fp, noheaders())
def open_gopher(self, url): """Use Gopher protocol.""" import gopherlib host, selector = splithost(url) if not host: raise IOError, ('gopher error', 'no host given') host = unquote(host) type, selector = splitgophertype(selector) selector, query = splitquery(selector) selector = unquote(selector) if query: query = unquote(query) fp = gopherlib.send_query(selector, query, host) else: fp = gopherlib.send_selector(selector, host) return addinfourl(fp, noheaders(), "gopher:" + url)
def gopher_open(self, req): host = req.get_host() if not host: raise GopherError('no host given') host = unquote(host) selector = req.get_selector() type, selector = splitgophertype(selector) selector, query = splitquery(selector) selector = unquote(selector) if query: query = unquote(query) fp = gopherlib.send_query(selector, query, host) else: fp = gopherlib.send_selector(selector, host) return addinfourl(fp, noheaders(), req.get_full_url())
def gopher_open(self, req): host = req.get_host() if not host: raise GopherError("no host given") host = unquote(host) selector = req.get_selector() type, selector = splitgophertype(selector) selector, query = splitquery(selector) selector = unquote(selector) if query: query = unquote(query) fp = gopherlib.send_query(selector, query, host) else: fp = gopherlib.send_selector(selector, host) return addinfourl(fp, noheaders(), req.get_full_url())
def gopher_open(self, req): # XXX can raise socket.error import gopherlib # this raises DeprecationWarning in 2.5 host = req.get_host() if not host: raise GopherError('no host given') host = unquote(host) selector = req.get_selector() type, selector = splitgophertype(selector) selector, query = splitquery(selector) selector = unquote(selector) if query: query = unquote(query) fp = gopherlib.send_query(selector, query, host) else: fp = gopherlib.send_selector(selector, host) return addinfourl(fp, noheaders(), req.get_full_url())
"""An extensible library for opening URLs using a variety of protocols
"""Open an arbitrary URL.
import gopherlib host = "gopher.spam.egg" f = gopherlib.send_selector("1/", host) for item in gopherlib.get_directory(f): print(item) ## ['0', "About Spam.Egg's Gopher Server", "0/About's Spam.Egg's ## Gopher Server", 'gopher.spam.egg', '70', '+'] ## ['1', 'About Spam.Egg', '1/Spam.Egg', 'gopher.spam.egg', '70', '+'] ## ['1', 'Misc', '1/Misc', 'gopher.spam.egg', '70', '+'] ## ...
import gopherlib host = "gopher.spam.egg" f = gopherlib.send_selector("1/", host) for item in gopherlib.get_directory(f): print item ## ['0', "About Spam.Egg's Gopher Server", "0/About's Spam.Egg's ## Gopher Server", 'gopher.spam.egg', '70', '+'] ## ['1', 'About Spam.Egg', '1/Spam.Egg', 'gopher.spam.egg', '70', '+'] ## ['1', 'Misc', '1/Misc', 'gopher.spam.egg', '70', '+'] ## ...
#! /usr/bin/env python # High-Level Gopher Client import gopherlib, sys host = sys.argv[1] file = sys.argv[2] f = gopherlib.send_selector(file, host) for line in f.readlines(): sys.stdout.write(line)
#!/usr/bin/python import sys,gopherlib host = sys.argv[1] filename = sys.argv[2] f = gopherlib.send_selector(host,filename) for line in f.readlines(): sys.stdout.write(line + "\n")
import gopherlib, sys host = "" file = "" f = gopherlib.send_selector(file, host) for line in f.readlines(): sys.stdout.write(line)
#High-Level Gopher CLient - chapter 1 -gopherlivclient.py #这个模块删除了,大家看看就好 在python3中 import gopherlib, sys host = input("请输入地址:") file = input("请输入文件地址:") f = gopherlib.send_selector(file.encode(), host.encode()) for line in f.readlines(): print(line)
selector = path[2:] else: selector = '' gtype = gopherlib.A_DIRECTORY # Convert '%' escapes in selectors while '%' in selector: i = string.index(selector, '%') xx = selector[i + 1:i + 3] try: n = eval('0x' + xx) c = chr(n) except: c = '' selector = selector[:i] + c + selector[i + 3:] if gtype == gopherlib.A_FILE: f = gopherlib.send_selector(selector, host, port) lines = gopherlib.get_textfile(f) lines.append('') data = string.joinfields(lines, '\n') return '<PLAINTEXT>\n' + data if gtype == gopherlib.A_DIRECTORY: f = gopherlib.send_selector(selector, host, port) directory = gopherlib.get_directory(f) return gopher_to_html(directory) if gtype == gopherlib.A_HTML: f = gopherlib.send_selector(selector, host, port) lines = gopherlib.get_textfile(f) lines.append('') data = string.joinfields(lines, '\n') return data if gtype == gopherlib.A_INDEX: