xpandurl
TinyurlなどのURLを復元するJSON(P) API - os0x.blog
を JavaScript と Python で。
仕様
/{url}[?callback={callback}]
/?url={url}[&callback={callback}]
- 返値は素のテキスト。callback があれば JSONP。
- 短縮サービス判定無し。Location: が無ければそのまま返す。
AppJet
http://source.xpandurl.appjet.net/
- http://xpandurl.appjet.net/http://is.gd/jJnr
- http://xpandurl.appjet.net/http://is.gd/jJnr?callback=_
- HEAD できなくて遅いので
storage
でごまかした。 - JSONP 化は
uneval
安定。
GAE
class XpandURL(webapp.RequestHandler): def get(self, path): import urllib2, pprint url = self.request.get('url') or urllib2.unquote(path) clb = self.request.get('callback', None) req = urllib2.Request(url) req.get_method = lambda: 'HEAD' loc = urllib2.urlopen(req).geturl().decode('utf-8') if clb != None: loc = clb +'("'+(pprint.pformat("'"+ loc.replace('"', '\0')) .replace(r'\x00', r'\"')[3:])+')' self.response.headers.add_header('Content-Type', 'text/plain;charset=utf-8') self.response.out.write(loc)