Subversion Repositories SmartDukaan

Rev

Rev 20085 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
20080 kshitij.so 1
from walrus import *
2
from dtr.utils.utils import get_mongo_connection, REVERSE_SOURCE_MAP, CATEGORY_MAP, SUB_CATEGORY_MAP
3
import random
4
 
5
xstr = lambda s: s or ""
6
database = Database()
7
ac = database.autocomplete()
8
 
9
class Suggestion():
10
    def __init__(self, category_id, subCategoryId, suggestion, word):
11
        self.category_id = category_id
12
        self.subCategoryId = subCategoryId
13
        self.suggestion = suggestion
14
        self.word = word
15
 
16
 
17
def filterSuggestions(categorySuggestion):
18
    returnObj = []
19
    for cat in ('Mobiles','Tablets'):
20
        v = categorySuggestion.get(CATEGORY_MAP.get(cat))
21
        if v is not None:
22
            returnObj.append(v[0].__dict__)
23
            select_range = 2 if len(v[1:]) > 2 else len(v[1:]) 
24
            random_list = random.sample(set(v[1:]), select_range)
25
            for random_suggestion in random_list:
26
                returnObj.append(random_suggestion.__dict__)
27
            categorySuggestion.pop(CATEGORY_MAP.get(cat))
28
    for v in categorySuggestion.itervalues():
29
        returnObj.append(v[0].__dict__)
30
        select_range = 2 if len(v[1:]) > 2 else len(v[1:]) 
31
        random_list = random.sample(set(v[1:]), select_range)
32
        for random_suggestion in random_list:
33
            returnObj.append(random_suggestion.__dict__)
34
    return returnObj
35
 
36
def getSuggestions(search_text):
37
    categorySuggestion = {}
38
    results = list(ac.search(search_text))
39
    if len(results) > 10:
40
        """Lets group data"""
41
        for i in results:
42
            if i.get('subCategoryId'):
43
                if not categorySuggestion.has_key(i.get('subCategoryId')):
44
                    suggestion_obj_primary = Suggestion(i.get('category_id'),i.get('subCategoryId'),search_text+" in "+SUB_CATEGORY_MAP.get(i.get('subCategoryId')), search_text)
45
                    suggestion_obj = Suggestion(i.get('category_id'),i.get('subCategoryId'),i.get('title'), i.get('title'))
46
                    categorySuggestion[i.get('subCategoryId')] = [suggestion_obj_primary,suggestion_obj]
47
                else:
48
                    suggestion_obj = Suggestion(i.get('category_id'),i.get('subCategoryId'),i.get('title'), i.get('title'))
49
                    categorySuggestion.get(i.get('subCategoryId')).append(suggestion_obj)
50
            else:
51
                if not categorySuggestion.has_key(i.get('category_id')):
52
                    suggestion_obj_primary = Suggestion(i.get('category_id'),i.get('subCategoryId'),search_text+" in "+CATEGORY_MAP.get(i.get('category_id')), search_text)
53
                    suggestion_obj = Suggestion(i.get('category_id'),i.get('subCategoryId'),i.get('title'), i.get('title'))
54
                    categorySuggestion[i.get('category_id')] = [suggestion_obj_primary, suggestion_obj]
55
                else:
56
                    suggestion_obj = Suggestion(i.get('category_id'),i.get('subCategoryId'),i.get('title'), i.get('title'))
57
                    categorySuggestion.get(i.get('category_id')).append(suggestion_obj)
58
 
59
        returnObj = filterSuggestions(categorySuggestion)    
60
 
61
    else:
62
        for i in results:
63
            returnObj.append({'suggestion':i.get('title'),'category_id':i.get('category_id'),'subCategoryId':i.get('subCategoryId')})
64
 
65
    return returnObj
66
 
67
 
68
def main():
69
    pass
70
 
71
if __name__ == "__main__":
72
    main()
73