| Line 1... |
Line 1... |
| 1 |
import urllib2
|
1 |
import urllib2
|
| 2 |
from BeautifulSoup import BeautifulSoup
|
2 |
from BeautifulSoup import BeautifulSoup
|
| 3 |
import pymongo
|
3 |
import pymongo
|
| 4 |
import re
|
4 |
import re
|
| 5 |
from dtr.utils.utils import to_java_date, getNlcPoints, DEAL_PRIORITY
|
5 |
from dtr.utils.utils import to_java_date, getNlcPoints, DEAL_PRIORITY, getCashBack
|
| 6 |
import optparse
|
6 |
import optparse
|
| 7 |
from datetime import datetime
|
7 |
from datetime import datetime
|
| 8 |
import time
|
8 |
import time
|
| 9 |
import smtplib
|
9 |
import smtplib
|
| 10 |
from email.mime.text import MIMEText
|
10 |
from email.mime.text import MIMEText
|
| Line 234... |
Line 234... |
| 234 |
skuBundleId = item['skuBundleId']
|
234 |
skuBundleId = item['skuBundleId']
|
| 235 |
|
235 |
|
| 236 |
similarItems = list(get_mongo_connection().Catalog.Deals.find({'skuBundleId':skuBundleId}).sort([('netPriceAfterCashBack',pymongo.ASCENDING)]))
|
236 |
similarItems = list(get_mongo_connection().Catalog.Deals.find({'skuBundleId':skuBundleId}).sort([('netPriceAfterCashBack',pymongo.ASCENDING)]))
|
| 237 |
bestPrice = float("inf")
|
237 |
bestPrice = float("inf")
|
| 238 |
bestOne = None
|
238 |
bestOne = None
|
| 239 |
bestSellerPoints = 0
|
- |
|
| 240 |
toUpdate = []
|
239 |
toUpdate = []
|
| 241 |
prepaidBestPrice = float("inf")
|
240 |
prepaidBestPrice = float("inf")
|
| 242 |
prepaidBestOne = None
|
241 |
prepaidBestOne = None
|
| 243 |
prepaidBestSellerPoints = 0
|
- |
|
| 244 |
for similarItem in similarItems:
|
242 |
for similarItem in similarItems:
|
| 245 |
if similarItem['codAvailable'] ==1:
|
243 |
if similarItem['codAvailable'] ==1:
|
| 246 |
if mc.get("negative_deals") is None:
|
244 |
if mc.get("negative_deals") is None:
|
| 247 |
populateNegativeDeals()
|
245 |
populateNegativeDeals()
|
| 248 |
if similarItem['in_stock'] == 0 or similarItem['_id'] in mc.get("negative_deals"):
|
246 |
if similarItem['in_stock'] == 0 or similarItem['_id'] in mc.get("negative_deals"):
|
| Line 252... |
Line 250... |
| 252 |
get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0,'prepaidDeal':0 }})
|
250 |
get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0,'prepaidDeal':0 }})
|
| 253 |
continue
|
251 |
continue
|
| 254 |
if similarItem.get('netPriceAfterCashBack') < bestPrice:
|
252 |
if similarItem.get('netPriceAfterCashBack') < bestPrice:
|
| 255 |
bestOne = similarItem
|
253 |
bestOne = similarItem
|
| 256 |
bestPrice = similarItem.get('netPriceAfterCashBack')
|
254 |
bestPrice = similarItem.get('netPriceAfterCashBack')
|
| 257 |
bestSellerPoints = similarItem['bestSellerPoints']
|
- |
|
| 258 |
elif similarItem.get('netPriceAfterCashBack') == bestPrice:
|
255 |
elif similarItem.get('netPriceAfterCashBack') == bestPrice:
|
| 259 |
|
256 |
|
| 260 |
try:
|
257 |
try:
|
| 261 |
if (DEAL_PRIORITY.index(int(similarItem['source_id'])) > DEAL_PRIORITY.index(int(bestOne['source_id']))):
|
258 |
if (DEAL_PRIORITY.index(int(similarItem['source_id'])) > DEAL_PRIORITY.index(int(bestOne['source_id']))):
|
| 262 |
continue
|
259 |
continue
|
| 263 |
except:
|
260 |
except:
|
| 264 |
traceback.print_exc()
|
261 |
traceback.print_exc()
|
| 265 |
|
262 |
|
| 266 |
bestOne = similarItem
|
263 |
bestOne = similarItem
|
| 267 |
bestPrice = similarItem.get('netPriceAfterCashBack')
|
264 |
bestPrice = similarItem.get('netPriceAfterCashBack')
|
| 268 |
bestSellerPoints = similarItem['bestSellerPoints']
|
- |
|
| 269 |
else:
|
265 |
else:
|
| 270 |
pass
|
266 |
pass
|
| 271 |
else:
|
267 |
else:
|
| 272 |
if mc.get("negative_deals") is None:
|
268 |
if mc.get("negative_deals") is None:
|
| 273 |
populateNegativeDeals()
|
269 |
populateNegativeDeals()
|
| Line 278... |
Line 274... |
| 278 |
get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0,'prepaidDeal':0 }})
|
274 |
get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0,'prepaidDeal':0 }})
|
| 279 |
continue
|
275 |
continue
|
| 280 |
if similarItem.get('netPriceAfterCashBack') < prepaidBestPrice:
|
276 |
if similarItem.get('netPriceAfterCashBack') < prepaidBestPrice:
|
| 281 |
prepaidBestOne = similarItem
|
277 |
prepaidBestOne = similarItem
|
| 282 |
prepaidBestPrice = similarItem.get('netPriceAfterCashBack')
|
278 |
prepaidBestPrice = similarItem.get('netPriceAfterCashBack')
|
| 283 |
prepaidBestSellerPoints = similarItem['bestSellerPoints']
|
- |
|
| 284 |
elif similarItem.get('netPriceAfterCashBack') == prepaidBestPrice:
|
279 |
elif similarItem.get('netPriceAfterCashBack') == prepaidBestPrice:
|
| 285 |
|
280 |
|
| 286 |
try:
|
281 |
try:
|
| 287 |
if (DEAL_PRIORITY.index(int(similarItem['source_id'])) > DEAL_PRIORITY.index(int(bestOne['source_id']))):
|
282 |
if (DEAL_PRIORITY.index(int(similarItem['source_id'])) > DEAL_PRIORITY.index(int(prepaidBestOne['source_id']))):
|
| 288 |
continue
|
283 |
continue
|
| 289 |
except:
|
284 |
except:
|
| 290 |
traceback.print_exc()
|
285 |
traceback.print_exc()
|
| 291 |
|
286 |
|
| 292 |
prepaidBestOne = similarItem
|
287 |
prepaidBestOne = similarItem
|
| 293 |
prepaidBestPrice = similarItem.get('netPriceAfterCashBack')
|
288 |
prepaidBestPrice = similarItem.get('netPriceAfterCashBack')
|
| 294 |
prepaidBestSellerPoints = similarItem['bestSellerPoints']
|
- |
|
| 295 |
else:
|
289 |
else:
|
| 296 |
pass
|
290 |
pass
|
| 297 |
if bestOne is not None or prepaidBestOne is not None:
|
291 |
if bestOne is not None or prepaidBestOne is not None:
|
| 298 |
for similarItem in similarItems:
|
292 |
for similarItem in similarItems:
|
| 299 |
toUpdate.append(similarItem['_id'])
|
293 |
toUpdate.append(similarItem['_id'])
|