Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
13569 amit.gupta 1
'''
2
Created on Jan 15, 2015
3
 
4
@author: amit
5
'''
13690 amit.gupta 6
from BeautifulSoup import BeautifulSoup
13721 amit.gupta 7
from datetime import datetime, date, timedelta
13569 amit.gupta 8
from dtr import main
14412 amit.gupta 9
from dtr.dao import AffiliateInfo, Order, SubOrder, FlipkartAffiliateInfo
13690 amit.gupta 10
from dtr.main import getBrowserObject, getStore, ParseException, ungzipResponse, \
14398 amit.gupta 11
    Store as MStore, sourceMap, tprint
15539 amit.gupta 12
from dtr.storage.DataService import Clicks, Users, FlipkartOrders
16209 amit.gupta 13
from dtr.utils import utils
18440 amit.gupta 14
from dtr.utils.utils import fetchResponseUsingProxy, todict, getSkuData
15539 amit.gupta 15
from elixir import *
13690 amit.gupta 16
from pprint import pprint
17
from pymongo.mongo_client import MongoClient
17238 amit.gupta 18
import StringIO
19
import csv
13690 amit.gupta 20
import hashlib
13658 manas 21
import importlib
13690 amit.gupta 22
import json
23
import mechanize
14412 amit.gupta 24
import pymongo
13658 manas 25
import re
14338 amit.gupta 26
import traceback
13658 manas 27
import urllib
18156 amit.gupta 28
import urllib2
17238 amit.gupta 29
import zipfile
13658 manas 30
USERNAME='saholic1@gmail.com'
31
PASSWORD='spice@2020'
32
ORDER_TRACK_URL='https://m.flipkart.com/order_details'
17238 amit.gupta 33
AFFILIATE_URL='https://affiliate.flipkart.com/'
34
AFFILIATE_LOGIN_URL='https://affiliate.flipkart.com/a_login'
35
AFF_REPORT_URL = "https://affiliate.flipkart.com/downloads/a_downloadRequest?type=OrdersReport&parameters=%s"
36
AFF_DOWNLOAD_URL="https://affiliate.flipkart.com/downloads/file?id=%s"
13690 amit.gupta 37
AFF_STATUS_CANCELLED='cancelled'
38
AFF_STATUS_APPROVED='approved'
39
AFF_STATUS_DISAPPROVED='disapproved'
40
AFF_STATUS_PENDING='pending'
17238 amit.gupta 41
statuses = [AFF_STATUS_CANCELLED, AFF_STATUS_APPROVED, AFF_STATUS_DISAPPROVED,AFF_STATUS_PENDING ]
15539 amit.gupta 42
categoryMap = {3:"Mobiles", 5:"Tablets"}
13658 manas 43
 
13679 manas 44
 
13781 amit.gupta 45
class Store(MStore):
13658 manas 46
    OrderStatusMap = {
14679 amit.gupta 47
                      main.Store.ORDER_PLACED : ['approval', 'processing', 'shipping'],
48
                      main.Store.ORDER_DELIVERED : ['your item has been delivered'],
14680 amit.gupta 49
                      main.Store.ORDER_SHIPPED : ['in transit', 'shipment yet to be delivered'],
50
                      main.Store.ORDER_CANCELLED : ['shipment is returned', 'your item has been returned', 'your shipment has been cancelled', 'your shipment has been cancelled.']
13658 manas 51
 
52
                      }
53
    def __init__(self,store_id):
54
        client = MongoClient('mongodb://localhost:27017/')
55
        self.db = client.dtr
56
        super(Store, self).__init__(store_id)
57
 
13569 amit.gupta 58
    def getName(self):
59
        return "flipkart"
60
 
17238 amit.gupta 61
 
62
    def requestDownload(self):
63
    #"https://affiliate.flipkart.com/downloads/a_downloadRequest?type=OrdersReport&parameters=%7B%22filter%22%3A%22approved%22%2C%22till%22%3A%222015-10-03%22%2C%22from%22%3A%222015-04-03%22%7D"
64
        requestReportUrl = "https://affiliate.flipkart.com/downloads/a_downloadRequest?type=OrdersReport&parameters=%s"
65
        br = getBrowserObject()
66
        br.set_debug_responses(True)
67
        br.open(AFFILIATE_URL)
68
        response = br.response()  # copy
69
        #token =  re.findall('window.__FK = "(.*?)"', utils.ungzipResponse(response), re.IGNORECASE)[0]
70
        data = {
71
                    'j_username':'saholic1@gmail.com',
72
                    'j_password':'spice@2020'
73
            }
74
        print utils.ungzipResponse(br.open(AFFILIATE_LOGIN_URL, urllib.urlencode(data)))
75
        till = datetime.strftime(date.today(),"%Y-%m-%d")
76
        start = datetime.strftime(date.today() - timedelta(4), "%Y-%m-%d")
77
        #target = open("dowloadreportids", 'w')
78
        #target.truncate()
79
        for status in statuses:
80
            #try:
81
                data = {"till":till, "from":start, "filter":status}
82
                print json.dumps(data)
83
                request = requestReportUrl%(urllib.quote_plus(json.dumps(data).replace(" ", "")))
84
                print request
85
                response = utils.ungzipResponse(br.open(request))
86
                response = json.loads(response)
87
                print response
88
                if(response['status']=="OK"):
89
                    self.db.flipkartdownloadids.save(response)
90
                else:
91
                    utils.sendmail(['amit.gupta@shop2020.in'], '', "Could not get request data for Flipkart Affiliate downlaod")
92
                    #break 
93
            #except:
94
                utils.sendmail(['amit.gupta@shop2020.in'], '', "Could not get request data for Flipkart Affiliate downlaod due to Internal Server Error")
95
                #break 
96
 
97
 
13690 amit.gupta 98
    def scrapeStoreOrders(self,):
99
        orders = self._getActiveOrders()
13721 amit.gupta 100
        for order in orders:
14692 amit.gupta 101
            print "Order", self.store_name, order['orderId']
14398 amit.gupta 102
            try:
103
                closed = True
104
                url = ORDER_TRACK_URL + re.findall('.*(\?.*?)$', order['orderSuccessUrl'],re.IGNORECASE)[0]
14757 amit.gupta 105
                page = fetchResponseUsingProxy(url)
14398 amit.gupta 106
                soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
107
 
108
                sections = soup.findAll("div", {"class":"ui-app-card-body"})
109
                sections.pop(1)
13721 amit.gupta 110
 
14398 amit.gupta 111
                mainOrder = soup.find("ul",{"class":"m-bottom p-cart"})
112
                fkSubOrders = mainOrder.findAll("li")
113
 
114
                #remove unwanted list
115
                fkSubOrders.pop(-1)
116
 
117
 
118
                bulk = self.db.merchantOrder.initialize_ordered_bulk_op()
119
                #fetching suborders details
120
                for subOrder in fkSubOrders:
121
                    updateMap = {}
122
                    y = subOrder.find("header").findAll("span")
123
                    for suborderId in y:
124
                        if "value emp" in str(suborderId):
125
                            merchantSubOrderId = suborderId.text
126
                            break
14692 amit.gupta 127
                    ul = subOrder.find("ul")
128
                    if ul is None:
129
                        ul = subOrder.findAll("div", recursive=False)[0].div.div
130
                    orderItems = ul.findAll("div", recursive=False)
14398 amit.gupta 131
                    i=0
132
                    for orderItem in orderItems:
133
                        closedStatus = False
134
                        merchantSubOrderId = merchantSubOrderId + str(i)
135
                        subOrder =  self._isSubOrderActive(order, merchantSubOrderId)
136
                        if subOrder is None:
137
                            break
14460 amit.gupta 138
                        elif subOrder['closed']:
139
                            break
14398 amit.gupta 140
                        findMap = {"orderId": order['orderId'], "subOrders.merchantSubOrderId": merchantSubOrderId}
141
                        divs = orderItem.findAll('div', recursive=False)
142
                        orderTracking = divs[2]
143
                        orderTrackingDetDiv = divs[3].find('div',{'class':'c-tabs-content m-top active'})
144
                        orderTrackingDet = orderTrackingDetDiv.find('div',{'class':re.compile('tracking-remark')}).text
145
                        updateMap["subOrders.$.detailedStatus"] = orderTrackingDet
14617 amit.gupta 146
                        status = self._getStatusFromDetailedStatus(orderTrackingDet)
14398 amit.gupta 147
                        tr = orderTracking.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
148
 
149
                        cashbackStatus = subOrder.get("cashBackStatus") 
150
                        if "approveDetails-complete" in str(tr):
151
                            if "processingDetails-complete" in str(tr):
152
                                if "shippingDetails-complete" in str(tr):
153
                                    if "delivery-complete" in str(tr):
154
                                        status = MStore.ORDER_DELIVERED
155
                                        if cashbackStatus == Store.CB_PENDING:
156
                                            cashbackStatus = Store.CB_APPROVED
157
                                        closedStatus = True
158
                                    else:     
159
                                        status = MStore.ORDER_SHIPPED
160
                                        courierTrackAnchor = orderTrackingDetDiv.find('a')
161
                                        trackingUrl = courierTrackAnchor("href")
162
                                        trackingText = courierTrackAnchor.text
163
                                        courierArr = trackingText.split(' : ')
164
                                        updateMap["subOrders.$.trackingUrl"] = trackingUrl
165
                                        updateMap["subOrders.$.trackingNumber"] = courierArr[1]
166
                                        updateMap["subOrders.$.courierName"] = courierArr[0]
167
                                else:
14692 amit.gupta 168
                                    status = MStore.ORDER_CANCELLED
169
                                    closedStatus = True
170
                                    if cashbackStatus == Store.CB_PENDING:
171
                                        cashbackStatus = Store.CB_CANCELLED
14398 amit.gupta 172
                            else: 
13721 amit.gupta 173
                                status = MStore.ORDER_PLACED
14398 amit.gupta 174
                        elif str(tr) in ["approveDetails-ongoing"]:
175
                            status=MStore.ORDER_PLACED             
14617 amit.gupta 176
                        if "dead" in str(tr) or status==MStore.ORDER_CANCELLED:
14398 amit.gupta 177
                            status = MStore.ORDER_CANCELLED
178
                            closedStatus = True
179
                            if cashbackStatus == Store.CB_PENDING:
180
                                cashbackStatus = Store.CB_CANCELLED
181
 
182
                        updateMap["subOrders.$.cashBackStatus"] = cashbackStatus
183
                        updateMap["subOrders.$.status"] = status
184
                        updateMap["subOrders.$.closed"] = closedStatus
185
                        if closed:
186
                            closed = closedStatus
187
                        bulk.find(findMap).update({'$set' : updateMap})
14692 amit.gupta 188
                bulk.find({'orderId': order['orderId']}).update({'$set':{'closed': closed, 'parseError':False}})
14398 amit.gupta 189
                bulk.execute()            
190
            except:
14692 amit.gupta 191
                self.db.merchantOrder.update({"orderId":order['orderId']}, {"$set":{"parseError":True}})
14847 amit.gupta 192
                tprint("Could not update " + str(order['orderId']) + ' for store ' + self.getName())
14398 amit.gupta 193
                traceback.print_exc()
17238 amit.gupta 194
 
195
    def scrapeAffiliate(self, deltaDays=0):
196
        if deltaDays is None:
197
            deltaDays=0
198
        endDate=date.today() - timedelta(days=1)
199
        startDate = endDate - timedelta(days=deltaDays)
15539 amit.gupta 200
 
17238 amit.gupta 201
        endDate = datetime.strftime(endDate, "%Y-%m-%d")
202
        startDate = datetime.strftime(startDate, "%Y-%m-%d")
17241 amit.gupta 203
        url  = "https://affiliate-api.flipkart.net/affiliate/report/orders/detail/json?startDate=%s&endDate=%s&status=%s&offset=0"
17238 amit.gupta 204
 
205
        for status in statuses:
17241 amit.gupta 206
            nextUrl = url%(startDate, endDate, status)
207
            while nextUrl:
17243 amit.gupta 208
                req = urllib2.Request(nextUrl)
17242 amit.gupta 209
                nextUrl=''
17238 amit.gupta 210
                req.add_header('Fk-Affiliate-Id', 'saholic1g')
211
                req.add_header('Fk-Affiliate-Token', 'a757444e260c46be8c4aeb20352246ac')
212
                resp = urllib2.urlopen(req)
213
                resString = json.loads(resp.read())
214
                orderList = resString["orderList"]
215
                if orderList:
216
                    for order in orderList:
217
                        order['sales'] = int(order['sales']['amount'])
218
                        order['tentativeCommission'] = int(order['tentativeCommission']['amount'])
219
                        subTagId = order.get("affExtParam1")
220
                        userId = None
221
                        email = None
222
                        if subTagId:
223
                            click = session.query(Clicks).filter_by(tag = subTagId).first()
224
                            if click is not None:
225
                                userId= click.user_id 
226
                                user = session.query(Users.email).filter_by(id = userId).first()
227
                                if user is not None:
228
                                    email = user.email
229
 
230
                        flipkartOrder = FlipkartOrders()
231
                        flipkartOrder.subtagId = subTagId
232
                        flipkartOrder.user_id = userId
233
                        flipkartOrder.identifier = order.get("identifier")
234
                        flipkartOrder.email = email
18465 amit.gupta 235
                        flipkartOrder.created = datetime.strptime(order.get("orderDate"), "%d-%m-%Y %H:%M:%S")
17238 amit.gupta 236
                        flipkartOrder.status = order.get("status")
237
                        flipkartOrder.title = order.get("title")
238
                        flipkartOrder.price = order.get("price")
239
                        flipkartOrder.quantity = order.get("quantity")
240
                        flipkartOrder.productCode = order.get("productId")
241
                        flipkartOrder.affiliateOrderItemId = order.get("affiliateOrderItemId")
242
                        flipkartOrder.payOut = order['tentativeCommission']
243
                        flipkartOrder.payOutPercentage = order['commissionRate']
244
                        skuData = getSkuData(2, order.get("productId"))
245
                        if skuData is not None:
246
                            flipkartOrder.catalogId = skuData.get("skuBundleId")
247
                            flipkartOrder.brand = skuData.get("brand")
248
                            flipkartOrder.model = skuData.get("model_name")
249
                            flipkartOrder.category = categoryMap.get(skuData.get("category_id"))
250
                            flipkartOrder.title =skuData.get("source_product_name")
251
 
252
                    session.commit()
17241 amit.gupta 253
                    nextUrl = resString['next']  
13721 amit.gupta 254
 
14412 amit.gupta 255
    def _saveToAffiliate(self, offers):
17238 amit.gupta 256
        collection = self.db.flipkartOrderAffiliateInfo1
257
        count=0
258
        for row in offers:
259
            if count==0:
260
                count += 1
261
                continue
262
            offer = self.covertToObj(row)
263
            collection.save(offer)
264
 
265
    def covertToObj(self,offer):
266
        affiliateorderitemid,title,productid,category,quantity,sales,price,commissionrate,tentativecommission,status,orderdate,saleschannel,customertype,affextparam1, affextparam2  = offer
267
        saleMap = {
268
               "affiliateorderitemid":affiliateorderitemid,
269
                "title":title,
270
                "productid":productid,
271
                "category":category,
272
                "quantity":quantity,
273
                "saleAmount":sales,
274
                "price":price,
275
                "commissionrate":commissionrate,
276
                "payOut":tentativecommission,
277
                "conversionStatus":status,
278
                "saleDate":orderdate,
279
                "saleschannel":saleschannel,
280
                "customertype":customertype,
281
                "affextparam1":affextparam1,
282
                "_id":affiliateorderitemid
283
        }
284
        return saleMap
14412 amit.gupta 285
 
286
 
13658 manas 287
    def parseOrderRawHtml(self, orderId, subTagId, userId, rawHtml, orderSuccessUrl):
13796 amit.gupta 288
        resp= {}
13781 amit.gupta 289
        try:
290
            br = getBrowserObject()
291
            url = ORDER_TRACK_URL + re.findall('.*(\?.*?)$', orderSuccessUrl,re.IGNORECASE)[0]
292
 
293
            response = br.open(url)
294
            page = ungzipResponse(response)
295
 
296
            merchantOrderId = re.findall('reference_id=(.*?)&', orderSuccessUrl,re.IGNORECASE)[0]
297
            print merchantOrderId
298
 
299
            soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
300
 
301
            sections = soup.findAll("div", {"class":"ui-app-card-body"})
302
            sections.pop(1)
303
 
304
            merchantOrder = Order(orderId, userId, subTagId, self.store_id, orderSuccessUrl)
14145 amit.gupta 305
            merchantOrder.orderTrackingUrl = url
13781 amit.gupta 306
            for data in sections:
307
                name = data.findAll("span")
308
                i=0
309
                while i< len(name):
310
                    if "key" in str(name[i]):
311
                        if "Grand Total" in str(name[i]):
312
                            #Total Amount
313
                            merchantOrder.paidAmount = int(re.findall(r'\d+', name[i+1].text)[0])
314
                        elif "Order Date" in str(name[i]):
315
                            merchantOrder.placedOn = name[i+1].text 
316
                    i=i+1    
317
 
318
            merchantOrder.merchantOrderId = merchantOrderId
319
 
320
            mainOrder = soup.find("ul",{"class":"m-bottom p-cart"})
321
            fkSubOrders = mainOrder.findAll("li")
322
            #remove unwanted list
323
            fkSubOrders.pop(-1)
324
            subOrders = []
325
            merchantOrder.subOrders = subOrders
326
 
327
            #fetching suborders details
328
            for subOrder in fkSubOrders:
329
                y = subOrder.find("header").findAll("span")
330
                for suborderId in y:
331
                    if "value emp" in str(suborderId):
332
                        merchantSubOrderId = suborderId.text
333
                        break
334
                orderItems = subOrder.find("ul").findAll("div", recursive=False)
335
                i=0
336
                for orderItem in orderItems:
337
                    merchantOrder.placedOn
338
                    merchantSubOrderId = merchantSubOrderId + str(i)
339
                    divs = orderItem.findAll('div', recursive=False)
340
                    content = divs[0]
341
                    orderTracking = divs[2]
342
                    orderTrackingDet = divs[3]
343
 
344
 
345
                    imgUrl = content.find('img')['src']
346
                    lineDet = content.find("div",{"class":"product-info"})
347
                    productTitle = lineDet.find("a",{"class":"product-title"}).text
348
                    productUrl =  str(lineDet.find("a")['href'])
349
 
350
                    start='pid='
351
                    s=str(lineDet.find("a")['href'])
14339 amit.gupta 352
                    productCode = re.findall(re.escape(start)+"(.*)",s)[0].strip()
13781 amit.gupta 353
                    mname = lineDet.findAll("span")
354
                    k=0
355
                    while k<len(mname):
356
                        if "note" in str(mname[k]):
357
                            if "Color:" in str(mname[k]):
358
                                productTitle = productTitle + " " + mname[k+1].text
359
 
360
                            elif "Qty:" in str(mname[k]):
361
                                quantity = int(mname[k+1].text)
362
                            elif "Subtotal:" in str(mname[k]):
14343 amit.gupta 363
                                amountPaid = int(re.findall(r'\d+', mname[k+1].text)[0])
13781 amit.gupta 364
                            elif "Delivery:" in str(mname[k]):
365
                                #Delivery Date for sub order
366
                                print "Delivery Date " +mname[k+1].text
367
                        k=k+1
14343 amit.gupta 368
                    merchantsubOrder = SubOrder(productTitle, productUrl, merchantOrder.placedOn, amountPaid,MStore.ORDER_PLACED, quantity)
13781 amit.gupta 369
                    merchantsubOrder.imgUrl  = imgUrl
370
                    merchantsubOrder.productCode = productCode
371
                    merchantsubOrder.merchantSubOrderId = merchantSubOrderId
14337 amit.gupta 372
                    print "productCode", productCode
14340 amit.gupta 373
                    print "amountPaid", amountPaid
14336 amit.gupta 374
                    cashbackAmount, cashbackPercent = self.getCashbackAmount(productCode, amountPaid)
13781 amit.gupta 375
                    cashbackStatus = Store.CB_PENDING
376
                    if cashbackAmount <= 0:
377
                        cashbackStatus = Store.CB_NA
378
                    merchantsubOrder.cashBackAmount = cashbackAmount
379
                    merchantsubOrder.cashBackStatus = cashbackStatus      
380
                    merchantsubOrder.cashBackPercentage = cashbackPercent      
381
 
382
                    subOrders.append(merchantsubOrder)
383
                    #To track shipping details         
384
                    status=-1    
385
                    tr = orderTracking.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
386
                    if "approveDetails-complete" in str(tr):
387
                        if "processingDetails-complete" in str(tr):
388
                            if "shippingDetails-complete" in str(tr):
389
                                if "delivery-complete" in str(tr):
390
                                    status = MStore.ORDER_DELIVERED
391
                                else:     
392
                                    status = MStore.ORDER_SHIPPED
393
                                    orderTracking.find('div', {'class':'tracking-remark active'})
394
                            else:
395
                                status = MStore.ORDER_PLACED
396
                        else: 
13690 amit.gupta 397
                            status = MStore.ORDER_PLACED
13781 amit.gupta 398
                    elif str(tr) in ["approveDetails-ongoing"]:
399
                        status=MStore.ORDER_PLACED             
14692 amit.gupta 400
                    if "dead" in str(tr) or "shippingDetails-returnOngoing" in str(tr) or "shippingDetails-return" in str(tr):
13781 amit.gupta 401
                        status = MStore.ORDER_CANCELLED    
402
                    print "Sub Order Status " + str(status)                      
403
 
404
                    trackingDetailsActive = orderTrackingDet.find("div",{"class":"c-tabs-content m-top active"})
405
                    print "Sub order tracking description " + trackingDetailsActive.text
14312 amit.gupta 406
            if self._saveToOrder(todict(merchantOrder)):
407
                resp['result'] = 'ORDER_CREATED'
408
            else:
409
                resp['result'] = 'ORDER_ALREADY_CREATED_IGNORED'
410
 
13796 amit.gupta 411
            return resp 
13781 amit.gupta 412
        except:
14338 amit.gupta 413
            traceback.print_exc()
14312 amit.gupta 414
            resp['result'] = 'ORDER_NOT_CREATED'
13796 amit.gupta 415
            return resp 
13781 amit.gupta 416
 
14617 amit.gupta 417
    def _getStatusFromDetailedStatus(self, detailedStatus):
418
        for key, value in Store.OrderStatusMap.iteritems():
14626 amit.gupta 419
            if detailedStatus.lower() in value:
14617 amit.gupta 420
                return key
14676 amit.gupta 421
        print "Detailed Status need to be mapped", detailedStatus, "Store:", self.store_name
14617 amit.gupta 422
        raise ParseException("_getStatusFromDetailedStatus", "Found new order status" + detailedStatus)
13658 manas 423
 
424
    def flipkartOrderTracking(self, orderId, subTagId, userId, rawHtml, orderSuccessUrl):
425
        br = getBrowserObject()
426
        url = ORDER_TRACK_URL + re.findall('.*(\?.*?)$', orderSuccessUrl,re.IGNORECASE)[0]
427
 
428
        response = br.open(url)
429
        page = ungzipResponse(response, br)
430
 
431
 
432
        soup = BeautifulSoup(page,convertEntities=BeautifulSoup.HTML_ENTITIES)
433
 
434
 
435
        mainOrder = soup.findAll("ul",{"class":"m-bottom p-cart"})
436
        #fetching suborders details
437
        for subOrder in mainOrder:
438
            subOrd = subOrder.findAll("li")
439
 
440
            subOrd.pop(len(subOrd)-1)
441
            for productInfo in subOrd:
442
                status=-1    
443
                #To track shipping details         
444
                n = productInfo.findAll("div",{"class":"tracking-progress grid-row cf"})
445
                for trackingStatus in n:
446
                    tr = trackingStatus.findAll("div",{"class":"tap-bullet-area c-tab-trigger"})
447
                    if "approveDetails-complete" in str(tr):
13679 manas 448
                        print "Here"
13658 manas 449
                        if "processingDetails-complete" in str(tr):
13679 manas 450
                            print "There"
13658 manas 451
                            if "shippingDetails-complete" in str(tr):
13679 manas 452
                                print "Share"
13658 manas 453
                                if "delivery-complete" in str(tr):
13679 manas 454
                                    print "Last"
13658 manas 455
                                    status = 3
456
                                else:     
457
                                    status = 2
458
                            else:
459
                                status = 1 
460
                        else: 
461
                            status = 0     
462
                    if "dead" in str(tr):
463
                        status = 4    
464
                print status                      
465
 
466
 
467
def _saveToOrderFlipkart(self, order):
468
        collection = self.db.merchantOrder
469
        order = collection.insert(order)
470
 
13690 amit.gupta 471
 
472
 
473
def hex_md5(password):
474
    m = hashlib.md5()
475
    print(m.digest())
476
 
13658 manas 477
def main():
16210 amit.gupta 478
    store = getStore(2)
17238 amit.gupta 479
    store.scrapeAffiliate(200)
13679 manas 480
 
16209 amit.gupta 481
if __name__ == '__main__':
482
        main()
14145 amit.gupta 483