Subversion Repositories SmartDukaan

Rev

Rev 13985 | Rev 14204 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
13828 kshitij.so 1
import pysolr
14186 kshitij.so 2
import pymongo
3
import shutil
13828 kshitij.so 4
import json
14186 kshitij.so 5
import os
13828 kshitij.so 6
 
7
con=None
8
 
14186 kshitij.so 9
filePath = '/tmp/autosuggest.json'
10
destFilePath = '/home/kshitij/'
11
 
13828 kshitij.so 12
categoryMap = {3:'Mobiles',5:'Tablets'}
13
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3,'SAHOLIC':4}
14
xstr = lambda s: s or ""
15
 
16
class __SkuInfo:
17
 
13931 kshitij.so 18
    def __init__(self, id, skuBundleId, brand, model_name, source_product_name, category_id, category, available_price, mrp, in_stock, \
13985 kshitij.so 19
                 source_id, store, title, thumbnail, priceUpdatedOn):
13828 kshitij.so 20
        self.id = id
21
        self.skuBundleId = skuBundleId
22
        self.brand = brand
23
        self.model_name = model_name
13931 kshitij.so 24
        self.source_product_name = source_product_name
13828 kshitij.so 25
        self.category_id = category_id
26
        self.category = category
27
        self.available_price = available_price
28
        self.mrp = mrp
29
        self.in_stock = in_stock
30
        self.source_id = source_id
31
        self.store = store
32
        self.title= title
33
        self.thumbnail = thumbnail
13985 kshitij.so 34
        self.priceUpdatedOn = priceUpdatedOn
13828 kshitij.so 35
 
36
 
37
solr = pysolr.Solr("http://104.200.25.40:8080/solr/", timeout=10)
38
 
39
def pushData():
40
    l = []
14186 kshitij.so 41
    catalogMap = {}
13828 kshitij.so 42
    items = get_mongo_connection().Catalog.MasterData.find({'source_id' : { "$in": SOURCE_MAP.values() } })
43
    print items.count()
44
    for item in items:
45
        title = xstr(item['brand'])+" "+xstr(item['model_name'])
14186 kshitij.so 46
        if not catalogMap.has_key(str(item['skuBundleId'])+" "+title):
47
            catalogMap[str(item['skuBundleId'])+" "+title] = [title ,item['thumbnail']]
13974 kshitij.so 48
        s_info = __SkuInfo(str(item['_id']),int(item['skuBundleId']),(item['brand']),(item['model_name']),(item['source_product_name']),int(item['category_id']),categoryMap.get(item['category_id']),float(item['available_price']),float(item['mrp']),item['in_stock'], \
13985 kshitij.so 49
                        int(item['source_id']),(item['source']),title,(item['thumbnail']), long(item['priceUpdatedOn']))
13828 kshitij.so 50
        l.append(s_info.__dict__)
51
    solr.add(l)
14186 kshitij.so 52
 
53
 
54
    PATH = os.path.expanduser(filePath)
55
    if os.path.isfile(PATH):
56
        try:
57
            os.remove(os.path.expanduser(filePath))
58
        except OSError:
59
            pass
60
    output = open(filePath, 'ab+')
61
    json.dump(catalogMap, output)
62
    output.close()
63
    shutil.copy2(filePath, destFilePath)
64
 
65
 
13828 kshitij.so 66
 
67
def get_mongo_connection(host='localhost', port=27017):
68
    global con
69
    if con is None:
70
        print "Establishing connection %s host and port %d" %(host,port)
71
        try:
72
            con = pymongo.MongoClient(host, port)
73
        except Exception, e:
74
            print e
75
            return None
76
    return con
77
 
78
def main():
79
    pushData()
14186 kshitij.so 80
 
13828 kshitij.so 81
if __name__=='__main__':
82
    main()