Mercurial > eagle-eye
diff ikweb/tools/lazy/www/work/fetch.py @ 247:7747bbe5b68e
start to develope Information Exchange Center of Ikariam Game. (prototpye)
author | "Hisn Yi, Chen <ossug.hychen@gmail.com>" |
---|---|
date | Mon, 01 Dec 2008 00:27:22 +0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ikweb/tools/lazy/www/work/fetch.py Mon Dec 01 00:27:22 2008 +0800 @@ -0,0 +1,72 @@ +import urllib2 +import urllib +import cookielib +import os + +class Fetcher: + + opener = None + + working_product = None + + """ + A Semi Production Decoration for content fetching. + + handles content restriving. + + >>> o = Fetcher( SemiProduct(source="http://localhost:8080") ) + >>> o.get().working_product.content + 'It works!!\\n' + """ + def __init__(self, working_product): + self.working_product = working_product + + def get(self, data = {}): + """ + send datas via http get method. + """ + res = urllib2.urlopen(self.working_product.source, urllib.urlencode(data)) + return res.read() + + def post(self, data = {} ): + """ + send datas via http post method. + + >>> o = Fetcher( SemiProduct(source="http://localhost:8080") ) + >>> o.post({'a':'b'}).working_product.content + 'It works!!\\n' + """ + res = urllib2.urlopen(self.working_product.source, urllib.urlencode(data)) + return res.read() + + def refer(self, refer_url): + """ + refer getter/setter. + + >>> o = Fetcher( SemiProduct(source="http://localhost:8080") ) + >>> o.refer('http://www.example.com') + """ + raise NotImplementedError + + def retry(self, count = 0, intval = 0, timeout = 0): + """ + retry to fetch the content. + + >>> o = Fetcher( SemiProduct(source="http://localhost:8080") ) + >>> o.retry(4) + """ + raise NotImplementedError + +class Retry: + + """ + A Fetcher Decoration for retry goal. + + + """ + def __init__(self, fetcher): + raise NotImplementedError + +if __name__ == '__main__': + import doctest + doctest.testmod() \ No newline at end of file