| Line 4... |
Line 4... |
| 4 |
from dtr.utils import AmazonPriceOnlyScraper, AmazonDealScraper
|
4 |
from dtr.utils import AmazonPriceOnlyScraper, AmazonDealScraper
|
| 5 |
from multiprocessing import Pool as ThreadPool
|
5 |
from multiprocessing import Pool as ThreadPool
|
| 6 |
from multiprocessing import cpu_count
|
6 |
from multiprocessing import cpu_count
|
| 7 |
import optparse
|
7 |
import optparse
|
| 8 |
from dtr.storage.MemCache import MemCache
|
8 |
from dtr.storage.MemCache import MemCache
|
| - |
|
9 |
from dtr.utils.utils import getCashBack
|
| 9 |
|
10 |
|
| 10 |
con = None
|
11 |
con = None
|
| 11 |
|
12 |
|
| 12 |
parser = optparse.OptionParser()
|
13 |
parser = optparse.OptionParser()
|
| 13 |
parser.add_option("-m", "--m", dest="mongoHost",
|
14 |
parser.add_option("-m", "--m", dest="mongoHost",
|
| Line 131... |
Line 132... |
| 131 |
bestSellerPoints = 0
|
132 |
bestSellerPoints = 0
|
| 132 |
toUpdate = []
|
133 |
toUpdate = []
|
| 133 |
for similarItem in similarItems:
|
134 |
for similarItem in similarItems:
|
| 134 |
if mc.get("negative_deals") is None:
|
135 |
if mc.get("negative_deals") is None:
|
| 135 |
populateNegativeDeals()
|
136 |
populateNegativeDeals()
|
| - |
|
137 |
try:
|
| - |
|
138 |
cashBack = getCashBack(similarItem['_id'], similarItem['source_id'], similarItem['category_id'], mc, options.mongoHost)
|
| - |
|
139 |
if not cashBack or cashBack.get('cash_back_status')!=1:
|
| - |
|
140 |
pass
|
| - |
|
141 |
else:
|
| - |
|
142 |
if cashBack['cash_back_type'] ==1:
|
| - |
|
143 |
similarItem['available_price'] = similarItem['available_price'] - similarItem['available_price'] * float(cashBack['cash_back'])/100
|
| - |
|
144 |
elif cashBack['cash_back_type'] ==2:
|
| - |
|
145 |
similarItem['available_price'] = similarItem['available_price'] - float(cashBack['cash_back'])
|
| - |
|
146 |
else:
|
| - |
|
147 |
pass
|
| - |
|
148 |
except Exception as cashBackEx:
|
| - |
|
149 |
print cashBackEx
|
| - |
|
150 |
print "Error calculating cashback."
|
| 136 |
if similarItem['in_stock'] == 0 or similarItem['maxprice'] is None or similarItem['maxprice'] < similarItem['available_price'] or similarItem['_id'] in mc.get("negative_deals"):
|
151 |
if similarItem['in_stock'] == 0 or similarItem['maxprice'] is None or similarItem['maxprice'] < similarItem['available_price'] or similarItem['_id'] in mc.get("negative_deals"):
|
| 137 |
get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0 }})
|
152 |
get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0 }})
|
| 138 |
continue
|
153 |
continue
|
| 139 |
if similarItem['available_price'] < bestPrice:
|
154 |
if similarItem['available_price'] < bestPrice:
|
| 140 |
bestOne = similarItem
|
155 |
bestOne = similarItem
|
| Line 152... |
Line 167... |
| 152 |
toUpdate.remove(bestOne['_id'])
|
167 |
toUpdate.remove(bestOne['_id'])
|
| 153 |
get_mongo_connection().Catalog.Deals.update({ '_id' : bestOne['_id'] }, {'$set':{'showDeal':1 }})
|
168 |
get_mongo_connection().Catalog.Deals.update({ '_id' : bestOne['_id'] }, {'$set':{'showDeal':1 }})
|
| 154 |
if len(toUpdate) > 0:
|
169 |
if len(toUpdate) > 0:
|
| 155 |
get_mongo_connection().Catalog.Deals.update({ '_id' : { "$in": toUpdate } }, {'$set':{'showDeal':0 }},upsert=False, multi=True)
|
170 |
get_mongo_connection().Catalog.Deals.update({ '_id' : { "$in": toUpdate } }, {'$set':{'showDeal':0 }},upsert=False, multi=True)
|
| 156 |
|
171 |
|
| - |
|
172 |
|
| - |
|
173 |
|
| 157 |
def main():
|
174 |
def main():
|
| 158 |
populate()
|
175 |
populate()
|
| 159 |
|
176 |
|
| 160 |
if __name__=='__main__':
|
177 |
if __name__=='__main__':
|
| 161 |
main()
|
178 |
main()
|