src/hp/api/videos.py
author ymh <ymh.work@gmail.com>
Sat, 01 Dec 2012 02:20:06 +0100
changeset 104 7643c6aea04b
parent 38 0fe2f3f5466f
permissions -rw-r--r--
Added tag V00.13 for changeset 329e6650ee4e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
'''
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Created on Nov 13, 2012
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
@author: ymh
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
'''
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
import json
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
from django.http import HttpResponse, HttpResponseBadRequest
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
import requests
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
from django.conf import settings
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
import logging
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
logger = logging.getLogger(__name__)
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
def recommended(request):
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    keywords_str = request.GET.get('keywords', None)
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    if not keywords_str:
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        return HttpResponseBadRequest("Error, null keywords")
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    keywords = [kw.strip() for kw in keywords_str.split(",")]
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    ldt_res = get_ldt_res(keywords)
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    logger.debug("LDT results : " + repr(ldt_res) )
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    kc_res = get_kc_res(keywords)
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    res = mix_results(ldt_res, kc_res)
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    return HttpResponse(json.dumps(res), content_type='application/json; charset=utf-8', )
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
def mix_results(ldt_res, kc_res):
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    #TODO : implement mixin of results
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    return ldt_res
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
def get_ldt_res(keywords):    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
    recommended_url = settings.LDT_API_URL + "contents/recommended/"
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
    r = requests.get(recommended_url, params={'keywords':  ",".join(keywords)})
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    logger.debug(repr(r))
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
    #TODO : manage error codes
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
    return r.json
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
def get_kc_res(keywords):
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
    
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
    #TODO : implement
0fe2f3f5466f add basic pages and api endpoints
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    return None