import requests import json SUBGRAPH_ID = '42464879f61b4ce7baee411eae57baed' API_KEY = 'a840c726507e4bc6810976320abcf583' BASE_URL = 'https://api.datamaglia.com/v1{}' SRC_URL = BASE_URL.format('/subgraphs/' + SUBGRAPH_ID + '/data/sources/') TARG_URL = BASE_URL.format('/subgraphs/' + SUBGRAPH_ID + '/data/targets/') REL_URL = BASE_URL.format('/subgraphs/' + SUBGRAPH_ID + '/data/relationships/') REC_URL = BASE_URL.format('/recommendations/subgraphs/' + SUBGRAPH_ID + '/member') HEADERS = {'Auth-Token': API_KEY, 'Content-Type': 'application/json'} names = ['miguel', 'adam', 'julie', 'steve', 'caroline', 'ingrid'] entities = [ { 'id': 'https://www.reddit.com/u/{}'.format(name), 'properties': [ {'key': 'name', 'value': name} ] } for name in names ] payload = {'entities': entities} resp = requests.post(SRC_URL, headers=HEADERS, data=json.dumps(payload)) print resp # Should be 204 # Now, let's add some (real) subreddits. subreddits = ['programming', 'askreddit', 'askscience', 'books', 'dataisbeautiful'] entities = [ { 'id': 'https://www.reddit.com/r/{}'.format(subreddit) } for subreddit in subreddits ] payload = {'entities': entities} resp = requests.post(TARG_URL, headers=HEADERS, data=json.dumps(payload)) print resp # Should be 204 # Now let's make some of our users follow some subreddits. This is what will allow us to generate recommendations later. follows = [ ('miguel', 'programming'), ('miguel', 'askscience'), ('miguel', 'books'), ('adam', 'programming'), ('adam', 'dataisbeautiful'), ('adam', 'books'), ('julie', 'books'), ('julie', 'askscience'), ('steve', 'askscience'), ('steve', 'askreddit'), ('caroline', 'books'), ('caroline', 'askreddit'), ('ingrid', 'programming'), ('ingrid', 'dataisbeautiful'), ] entities = [ { 'weight': 0, 'source': 'https://www.reddit.com/u/{}'.format(name), 'target': 'https://www.reddit.com/r/{}'.format(subreddit) } for (name, subreddit) in follows ] payload = {'entities': entities} resp = requests.post(REL_URL, headers=HEADERS, data=json.dumps(payload)) print resp # Should be 204 # Now let's see which subreddits might interest Steve. r = requests.get(REC_URL, params={'id': 'https://www.reddit.com/u/steve', 'limit': 3}, headers={'Auth-Token': API_KEY}) print json.dumps(json.loads(r.text), indent=4) # Or Ingrid. Note that we recommend Ingrid check out r/books because of her similiarity with Adam, # the two of them are very similar, so this makes sense. r = requests.get(REC_URL, params={'id': 'https://www.reddit.com/u/ingrid', 'limit': 3}, headers={'Auth-Token': API_KEY}) print json.dumps(json.loads(r.text), indent=4)