Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
13829 kshitij.so 1
import urllib2
2
import simplejson as json
3
import pymongo
4
from dtr.utils.utils import to_java_date
13918 kshitij.so 5
from datetime import datetime, timedelta
13829 kshitij.so 6
from operator import itemgetter
7
from dtr.utils.AmazonPriceOnlyScraper import AmazonScraper
14309 kshitij.so 8
from dtr.utils import AmazonDealScraper
14121 kshitij.so 9
from dtr.utils import FlipkartScraper,NewFlipkartScraper
14324 kshitij.so 10
from dtr.storage.MemCache import MemCache
14334 kshitij.so 11
from functools import partial
12
import threading
14760 kshitij.so 13
from dtr.utils.utils import getCashBack
14794 kshitij.so 14
import traceback
15174 kshitij.so 15
from shop2020.config.client.ConfigClient import ConfigClient
13829 kshitij.so 16
 
15174 kshitij.so 17
config_client = ConfigClient()
18
host_memCache = config_client.get_property('mem_cache_host_dtr')
19
host = config_client.get_property('mongo_dtr_host')
14324 kshitij.so 20
 
15174 kshitij.so 21
mc = MemCache(host_memCache)
22
 
23
 
13829 kshitij.so 24
con = None
14205 kshitij.so 25
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3,'SAHOLIC':4}
13829 kshitij.so 26
 
27
headers = { 
28
           'User-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
29
            'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',      
30
            'Accept-Language' : 'en-US,en;q=0.8',                     
31
            'Accept-Charset' : 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
32
        }
33
 
15174 kshitij.so 34
def get_mongo_connection(port=27017):
13829 kshitij.so 35
    global con
36
    if con is None:
37
        print "Establishing connection %s host and port %d" %(host,port)
38
        try:
39
            con = pymongo.MongoClient(host, port)
40
        except Exception, e:
41
            print e
42
            return None
43
    return con
44
 
14828 kshitij.so 45
def returnLatestPrice(data, source_id, ignoreLastUpdated = True):
13918 kshitij.so 46
    now = datetime.now()
13829 kshitij.so 47
    if source_id == 1:
48
        try:
13918 kshitij.so 49
            if data['identifier'] is None or len(data['identifier'].strip())==0:
13829 kshitij.so 50
                return {}
13918 kshitij.so 51
 
14577 kshitij.so 52
            if data['dealFlag'] ==1 and data['dealType'] ==1:
53
                data['marketPlaceUrl'] = "http://www.amazon.in/dp/%s"%(data['identifier'].strip())
54
 
13918 kshitij.so 55
            try:
14828 kshitij.so 56
                if ignoreLastUpdated and data['priceUpdatedOn'] > to_java_date(now - timedelta(minutes=5)):
13918 kshitij.so 57
                    print "sku id is already updated",data['_id'] 
13920 kshitij.so 58
                    return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13918 kshitij.so 59
            except:
60
                pass
61
 
62
 
13829 kshitij.so 63
            url = "http://www.amazon.in/gp/offer-listing/%s/ref=olp_sort_ps"%(data['identifier'])
64
            lowestPrice = 0.0
14309 kshitij.so 65
            try:
66
                if data['dealFlag'] ==1 and data['dealType'] ==1:
67
                    print "Inside deal"
68
                    deal_url = "http://www.amazon.in/dp/%s"%(data['identifier'].strip())
69
                    print deal_url
15213 kshitij.so 70
                    dealScraperAmazon = AmazonDealScraper.AmazonScraper(True)
14309 kshitij.so 71
                    lowestPrice = dealScraperAmazon.read(deal_url)
72
                    print lowestPrice
73
                    if lowestPrice == 0:
74
                        raise
75
                else:    
15213 kshitij.so 76
                    scraperAmazon = AmazonScraper(True)
14309 kshitij.so 77
                    lowestPrice = scraperAmazon.read(url)
78
            except Exception as e:
79
                print e
15213 kshitij.so 80
                scraperAmazon = AmazonScraper(True)
14309 kshitij.so 81
                lowestPrice = scraperAmazon.read(url)
13929 kshitij.so 82
            print "LowestPrice ",lowestPrice
13829 kshitij.so 83
            inStock = 0
84
            if lowestPrice > 0:
85
                inStock = 1
86
            if lowestPrice > 0:
13971 kshitij.so 87
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestPrice,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
14309 kshitij.so 88
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestPrice , 'in_stock':inStock,'dealType':data['dealType']}}, multi=True)
13829 kshitij.so 89
            else:
13929 kshitij.so 90
                lowestPrice = data['available_price']
13977 kshitij.so 91
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':0,'priceUpdatedOn':to_java_date(now)}}, multi=True)
14309 kshitij.so 92
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':0,'dealType':data['dealType']}}, multi=True)
13918 kshitij.so 93
 
13829 kshitij.so 94
            return {'_id':data['_id'],'available_price':lowestPrice,'in_stock':inStock,'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14834 kshitij.so 95
        except Exception as e:
96
            print "Exception for _id %d and source %s"%(data['_id'], source_id)
97
            print e
13920 kshitij.so 98
            return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13829 kshitij.so 99
 
14203 kshitij.so 100
    elif source_id ==4:
14207 kshitij.so 101
 
14203 kshitij.so 102
        try:
14212 kshitij.so 103
            if data['identifier'] is None or len(data['identifier'].strip())==0:
104
                return {}
105
 
106
            try:
14828 kshitij.so 107
                if ignoreLastUpdated and data['priceUpdatedOn'] > to_java_date(now - timedelta(minutes=5)):
14212 kshitij.so 108
                    print "sku id is already updated",data['_id'] 
109
                    return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
110
            except:
111
                pass
112
 
14840 kshitij.so 113
            url = "http://50.116.3.101:8080/mobileapi/dtr-pricing?id=%s"%(data['identifier'])
14212 kshitij.so 114
            lowestPrice = 0.0
115
            instock = 0
116
            req = urllib2.Request(url,headers=headers)
117
            response = urllib2.urlopen(req)
118
            json_input = response.read()
119
            response.close()
120
            priceInfo = json.loads(json_input)
121
            lowestPrice = priceInfo['response']['sellingPrice']
122
            if lowestPrice > 0:
123
                instock = 1
124
            if instock  == 1:
125
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestPrice,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':instock}}, multi=True)
126
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestPrice , 'in_stock':instock}}, multi=True)
127
            else:
128
                lowestPrice = data['available_price']
129
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':instock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
130
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':instock}}, multi=True)
131
 
132
            return {'_id':data['_id'],'available_price':lowestPrice,'in_stock':instock,'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14834 kshitij.so 133
 
134
        except Exception as e:
135
            print "Exception for _id %d and source %s"%(data['_id'], source_id)
136
            print e
14212 kshitij.so 137
            return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14203 kshitij.so 138
 
14207 kshitij.so 139
 
13829 kshitij.so 140
    elif source_id ==3:
141
        try:
13918 kshitij.so 142
            if data['identifier'] is None or len(data['identifier'].strip())==0:
13829 kshitij.so 143
                return {}
13918 kshitij.so 144
 
145
            try:
14828 kshitij.so 146
                if ignoreLastUpdated and data['priceUpdatedOn'] > to_java_date(now - timedelta(minutes=5)):
13920 kshitij.so 147
                    print "sku id is already updated",data['_id']
148
                    return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13919 kshitij.so 149
 
150
            except Exception as e:
13920 kshitij.so 151
                print "Exception snapdeal"
13919 kshitij.so 152
                print e
13918 kshitij.so 153
                pass
154
 
155
 
13829 kshitij.so 156
            url="http://www.snapdeal.com/acors/json/gvbps?supc=%s&catId=175&sort=sellingPrice"%(data['identifier'])
157
            req = urllib2.Request(url,headers=headers)
158
            response = urllib2.urlopen(req)
14210 kshitij.so 159
            json_input = response.read()
14188 kshitij.so 160
            response.close()
13829 kshitij.so 161
            vendorInfo = json.loads(json_input)
162
            lowestOfferPrice = 0
163
            inStock = 0
164
            for vendor in vendorInfo:
165
                lowestOfferPrice = float(vendor['sellingPrice'])
166
                stock = vendor['buyableInventory']
167
                if stock > 0 and lowestOfferPrice > 0:
168
                    inStock = 1
169
                    break
170
 
171
            print lowestOfferPrice
172
            print inStock
173
            print "*************"
174
            if inStock  == 1:
13971 kshitij.so 175
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestOfferPrice,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
13918 kshitij.so 176
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestOfferPrice , 'in_stock':inStock}}, multi=True)
13829 kshitij.so 177
            else:
13929 kshitij.so 178
                lowestOfferPrice = data['available_price']
13977 kshitij.so 179
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
13918 kshitij.so 180
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
181
 
13829 kshitij.so 182
            return {'_id':data['_id'],'available_price':lowestOfferPrice,'in_stock':inStock,'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14834 kshitij.so 183
        except Exception as e:
184
            print "Exception for _id %d and source %s"%(data['_id'], source_id)
185
            print e
13920 kshitij.so 186
            return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13829 kshitij.so 187
 
188
    elif source_id == 2:
189
        try:
13918 kshitij.so 190
            if data['identifier'] is None or len(data['identifier'].strip())==0:
13829 kshitij.so 191
                return {}
13918 kshitij.so 192
 
193
            try:
14828 kshitij.so 194
                if ignoreLastUpdated and data['priceUpdatedOn'] > to_java_date(now - timedelta(minutes=5)):
13918 kshitij.so 195
                    print "sku id is already updated",data['_id']
13920 kshitij.so 196
                    return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']} 
13918 kshitij.so 197
            except:
198
                pass
199
 
200
            lowestSp = 0
201
            inStock = 0
14189 kshitij.so 202
            scraperProductPage = NewFlipkartScraper.FlipkartProductPageScraper()
14121 kshitij.so 203
            try:
204
                if data['marketPlaceUrl']!="" or data['marketPlaceUrl'] !="http://www.flipkart.com/ps/%s"%(data['identifier']):
205
                    result = scraperProductPage.read(data['marketPlaceUrl'])
14124 kshitij.so 206
                    print result
14125 kshitij.so 207
                    if result.get('lowestSp')!=0:
208
                        lowestSp = result.get('lowestSp')
14121 kshitij.so 209
                        inStock = result.get('inStock')
210
            except:
211
                print "Unable to scrape product page ",data['identifier']
212
            if lowestSp ==0:
213
                url = "http://www.flipkart.com/ps/%s"%(data['identifier'])
14189 kshitij.so 214
                scraperFk = FlipkartScraper.FlipkartScraper()
14121 kshitij.so 215
                vendorsData = scraperFk.read(url)
216
                sortedVendorsData = []
217
                sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
218
                print "data",sortedVendorsData
219
                for vData in sortedVendorsData:
220
                    lowestSp = vData['sellingPrice']
221
                    break
222
                if lowestSp > 0:
223
                    inStock = 1
13829 kshitij.so 224
            print lowestSp
225
            print inStock
226
            if lowestSp > 0:
13971 kshitij.so 227
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestSp,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
13918 kshitij.so 228
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestSp , 'in_stock':inStock}}, multi=True)
13829 kshitij.so 229
            else:
13929 kshitij.so 230
                lowestSp = data['available_price']
13977 kshitij.so 231
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
13918 kshitij.so 232
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
233
 
13829 kshitij.so 234
            return {'_id':data['_id'],'available_price':lowestSp,'in_stock':inStock,'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14342 kshitij.so 235
 
14834 kshitij.so 236
        except Exception as e:
237
            print "Exception for _id %d and source %s"%(data['_id'], source_id)
238
            print e
13920 kshitij.so 239
            return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13829 kshitij.so 240
    else:
241
        return {}
13918 kshitij.so 242
 
14324 kshitij.so 243
 
244
def populateNegativeDeals():
245
    negativeDeals = get_mongo_connection().Catalog.NegativeDeals.find().distinct('sku')
246
    mc.set("negative_deals", negativeDeals, 600)
247
 
13918 kshitij.so 248
def recomputeDeal(skuBundleId):
249
    """Lets recompute deal for this bundle"""
250
    print "Recomputing for bundleId",skuBundleId
13829 kshitij.so 251
 
13918 kshitij.so 252
    similarItems = list(get_mongo_connection().Catalog.Deals.find({'skuBundleId':skuBundleId}).sort([('available_price',pymongo.ASCENDING)]))
253
    bestPrice = float("inf")
254
    bestOne = None
255
    bestSellerPoints = 0
256
    toUpdate = []
257
    for similarItem in similarItems:
14332 kshitij.so 258
        if mc.get("negative_deals") is None:
14324 kshitij.so 259
            populateNegativeDeals()
14332 kshitij.so 260
        if similarItem['in_stock'] == 0 or similarItem['maxprice'] is None or similarItem['maxprice'] < similarItem['available_price'] or similarItem['_id'] in mc.get("negative_deals"):
13918 kshitij.so 261
            get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0 }})
262
            continue
263
        if similarItem['available_price'] < bestPrice:
264
            bestOne = similarItem
265
            bestPrice = similarItem['available_price']
266
            bestSellerPoints = similarItem['bestSellerPoints']
267
        elif similarItem['available_price'] == bestPrice and bestSellerPoints < similarItem['bestSellerPoints']:
268
            bestOne = similarItem
269
            bestPrice = similarItem['available_price']
270
            bestSellerPoints = similarItem['bestSellerPoints']
271
        else:
272
            pass
273
    if bestOne is not None:
274
        for similarItem in similarItems:
275
            toUpdate.append(similarItem['_id'])
276
        toUpdate.remove(bestOne['_id'])
277
        get_mongo_connection().Catalog.Deals.update({ '_id' : bestOne['_id'] }, {'$set':{'showDeal':1 }})
278
    if len(toUpdate) > 0:
279
        get_mongo_connection().Catalog.Deals.update({ '_id' : { "$in": toUpdate } }, {'$set':{'showDeal':0 }},upsert=False, multi=True)
14342 kshitij.so 280
 
281
    print "Done with recomputing"
13829 kshitij.so 282
 
283
def getLatestPrice(skuBundleId, source_id):
284
    temp = []
285
    itemIds = list(get_mongo_connection().Catalog.MasterData.find({'skuBundleId':skuBundleId,'source_id' : source_id}))
286
    for item in itemIds:
14309 kshitij.so 287
        item['dealFlag'] = 0
288
        item['dealType'] = 0
15187 kshitij.so 289
        if item['source_id'] ==3:
290
            item['marketPlaceUrl'] = item['marketPlaceUrl']+'?supc='+item.get('identifier')
14309 kshitij.so 291
        manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':source_id, 'sku':item['_id']}))
292
        if len(manualDeals) > 0:
293
            item['dealFlag'] = 1
14760 kshitij.so 294
            item['dealType'] =manualDeals[0]['dealType']
295
        info = returnLatestPrice(item, source_id)
14794 kshitij.so 296
        print info
14760 kshitij.so 297
        try:
298
            cashBack = getCashBack(item['_id'], item['source_id'], item['category_id'], mc, 'localhost')
14794 kshitij.so 299
            print "CashBack is ",cashBack
14760 kshitij.so 300
            if not cashBack or cashBack.get('cash_back_status')!=1:
14801 kshitij.so 301
                info['cash_back_type'] = 0
302
                info['cash_back'] = 0
14760 kshitij.so 303
            else:
304
                if cashBack['cash_back_type'] in (1,2):
305
                    info['cash_back_type'] = cashBack['cash_back_type']
306
                    info['cash_back'] = float(cashBack['cash_back'])
307
                else:
14801 kshitij.so 308
                    info['cash_back_type'] = 0
309
                    info['cash_back'] = 0
14760 kshitij.so 310
        except Exception as cashBackEx:
14794 kshitij.so 311
            traceback.print_exc()
14760 kshitij.so 312
            print "Error calculating cashback."
313
            info['cash_back_type'] = 0
314
            info['cash_back'] = 0
14794 kshitij.so 315
        print "info is ",info
14760 kshitij.so 316
        temp.append(info)
14367 kshitij.so 317
    try:
318
        thread = threading.Thread(target=recomputeDeal, args = (skuBundleId,))
319
        thread.daemon = True
320
        thread.start()    
321
    except:
322
        print "Unable to compute deal for ",skuBundleId
13829 kshitij.so 323
    return temp
324
 
13864 kshitij.so 325
def getLatestPriceById(id):
326
    item = list(get_mongo_connection().Catalog.MasterData.find({'_id':id}))
14309 kshitij.so 327
    item[0]['dealFlag'] = 0
328
    item[0]['dealType'] = 0
329
    manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':item[0]['source_id'], 'sku':item[0]['_id']}))
330
    if len(manualDeals) > 0:
331
        item[0]['dealFlag'] = 1
332
        item[0]['dealType'] =manualDeals[0]['dealType'] 
14367 kshitij.so 333
 
14431 kshitij.so 334
    info = returnLatestPrice(item[0], item[0]['source_id'])
14794 kshitij.so 335
    print info
14367 kshitij.so 336
    try:
14794 kshitij.so 337
        cashBack = getCashBack(item[0]['_id'], item[0]['source_id'], item[0]['category_id'], mc, 'localhost')
338
        print "CashBack is ",cashBack
14760 kshitij.so 339
        if not cashBack or cashBack.get('cash_back_status')!=1:
14801 kshitij.so 340
            info['cash_back_type'] = 0
341
            info['cash_back'] = 0
14760 kshitij.so 342
        else:
343
            if cashBack['cash_back_type'] in (1,2):
344
                info['cash_back_type'] = cashBack['cash_back_type']
345
                info['cash_back'] = float(cashBack['cash_back'])
346
            else:
14801 kshitij.so 347
                info['cash_back_type'] = 0
348
                info['cash_back'] = 0
14760 kshitij.so 349
    except Exception as cashBackEx:
14794 kshitij.so 350
        traceback.print_exc()
14760 kshitij.so 351
        print cashBackEx
352
        print "Error calculating cashback."
353
        info['cash_back_type'] = 0
354
        info['cash_back'] = 0
355
    try:
14367 kshitij.so 356
        thread = threading.Thread(target=recomputeDeal, args = (item[0]['skuBundleId'],))
357
        thread.daemon = True
358
        thread.start()    
359
    except:
360
        print "Unable to compute deal for ",item[0]['skuBundleId']
14431 kshitij.so 361
    return info
13829 kshitij.so 362
 
14828 kshitij.so 363
def updatePriceForNotificationBundles(skuBundleId):
14833 kshitij.so 364
    itemIds = list(get_mongo_connection().Catalog.MasterData.find({'skuBundleId':skuBundleId,'priceUpdatedOn':{'$lte':to_java_date(datetime.now() - timedelta(minutes=3))},'source_id':{"$in":SOURCE_MAP.values()}}))
14828 kshitij.so 365
    for item in itemIds:
14833 kshitij.so 366
        print item['_id']
14828 kshitij.so 367
        item['dealFlag'] = 0
368
        item['dealType'] = 0
369
        manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':item['source_id'], 'sku':item['_id']}))
370
        if len(manualDeals) > 0:
371
            item['dealFlag'] = 1
372
            item['dealType'] =manualDeals[0]['dealType']
373
        info = returnLatestPrice(item, item['source_id'],False)
374
        print info
375
 
13829 kshitij.so 376
def main():
14834 kshitij.so 377
    print "retuned %s"%(str(getLatestPrice(2313, 4)))
13829 kshitij.so 378
 
379
if __name__=='__main__':
13971 kshitij.so 380
    main()
381