# -*- coding: utf-8 -*- # vi:si:et:sw=4:sts=4:ts=4 from __future__ import division import json import urllib2 import os PEERLINK = os.environ.get('PEERLINK', 'http://[::1]:8842/') SERVICE = os.environ.get('PEERLINK_SERVICE', 'chat') def urlopen(url, data=None, headers=None): if data and not isinstance(data, str): data = json.dumps(data) if not headers: headers = { 'Content-Type': 'application/json', 'User-Agent': 'ChatServer/0.0' } opener = urllib2.build_opener() print 'urlopen', url, data req = urllib2.Request(url, data=data, headers=headers) response = opener.open(req) return response.read() def post(action, data=None): url = PEERLINK + action return json.loads(urlopen(url, data)) def add(name, url): global SERVICE SERVICE = name return post('add', {'name': name, 'url': url}) def remote(peer, action, data): url = PEERLINK + '%s/%s/%s' % (peer, SERVICE, action) if not data: data = {'test': True} print 'REMOTE', url return urlopen(url, data) def remote_json(peer, action, data): return json.loads(remote(peer, action, data))