Subversion Repositories SmartDukaan

Rev

Rev 14415 | Rev 14444 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 14415 Rev 14443
Line 15... Line 15...
15
from pprint import pprint
15
from pprint import pprint
16
from pymongo import MongoClient
16
from pymongo import MongoClient
17
import json
17
import json
18
import pymongo
18
import pymongo
19
import re
19
import re
-
 
20
import time
20
import traceback
21
import traceback
21
import urllib
22
import urllib
22
 
23
 
23
USERNAME='profittill2@gmail.com'
24
USERNAME='profittill2@gmail.com'
24
PASSWORD='spice@2020'
25
PASSWORD='spice@2020'
Line 58... Line 59...
58
        response = br.open(CONFIG_URL)
59
        response = br.open(CONFIG_URL)
59
        
60
        
60
        token =  re.findall('"session_token":"(.*?)"', ungzipResponse(response), re.IGNORECASE)[0]
61
        token =  re.findall('"session_token":"(.*?)"', ungzipResponse(response), re.IGNORECASE)[0]
61
        print token
62
        print token
62
        allOffers = self._getAllOffers(br, token)
63
        allOffers = self._getAllOffers(br, token)
63
        
-
 
64
        allPyOffers = []
-
 
65
        maxSaleDate = self._getLastSaleDate()
-
 
66
        newMaxSaleDate = maxSaleDate
-
 
67
        for offer in allOffers:
-
 
68
            pyOffer = self.covertToObj(offer).__dict__
-
 
69
            allPyOffers.append(pyOffer)
-
 
70
            saleDate = datetime.strptime(pyOffer['saleDate'],"%Y-%m-%d %H:%M:%S")
-
 
71
            if maxSaleDate < saleDate:
-
 
72
                self._updateOrdersPayBackStatus({'subTagId':pyOffer['subTagId'], 'saleDate':pyOffer['saleDate']}, {})
-
 
73
                if newMaxSaleDate < saleDate:
-
 
74
                    newMaxSaleDate = saleDate
-
 
75
                    
-
 
76
        self._setLastSaleDate(newMaxSaleDate)
-
 
77
        self._saveToAffiliate(allPyOffers)
64
        self._saveToAffiliate(allOffers)
78
    
65
    
79
    def _setLastSaleDate(self, saleDate):
66
    def _setLastSaleDate(self, saleDate):
80
        self.db.lastSaleDtate.update({'storeId':self.store_id}, {'$set':{'saleDate':saleDate}})
67
        self.db.lastSaleDtate.update({'storeId':self.store_id}, {'$set':{'saleDate':saleDate}})
81
    
68
    
82
        
69
        
Line 345... Line 332...
345
                tprint("Could not update " + str(order['orderId']))
332
                tprint("Could not update " + str(order['orderId']))
346
                traceback.print_exc()                
333
                traceback.print_exc()                
347
            
334
            
348
    
335
    
349
    def _saveToAffiliate(self, offers):
336
    def _saveToAffiliate(self, offers):
350
        if offers is None or len(offers)==0:
-
 
351
            print "no affiliate have been pushed"
-
 
352
            return
-
 
353
        collection = self.db.snapdealOrderAffiliateInfo
337
        collection = self.db.snapdealOrderAffiliateInfo
354
        try:
-
 
355
            collection.insert(offers,continue_on_error=True)
338
        mcollection = self.db.merchantOrder
356
        except pymongo.errors.DuplicateKeyError as e:
339
        for offer in offers:
357
            print e.details
340
            offer = self.covertToObj(offer)
-
 
341
            collection.update({"adId":offer.adId, "saleAmount":offer.saleAmount, "payOut":offer.payOut},{"$set":todict(offer)}, upsert=True)
-
 
342
            mcollection.update({"subTagId":offer.subTagId, "storeId":3}, {"$set":{"missingAff":False}})
358
            
343
            
359
    
344
    
360
    def _getAllOffers(self, br, token):
345
    def _getAllOffers(self, br, token):
361
        allOffers = []
346
        allOffers = []
362
        nextPage = 1  
347
        nextPage = 1  
Line 376... Line 361...
376
    
361
    
377
    def covertToObj(self,offer):
362
    def covertToObj(self,offer):
378
        offerData = offer['Stat']
363
        offerData = offer['Stat']
379
        offer1 = AffiliateInfo(offerData['affiliate_info1'], self.store_id, offerData['conversion_status'], offerData['ad_id'], 
364
        offer1 = AffiliateInfo(offerData['affiliate_info1'], self.store_id, offerData['conversion_status'], offerData['ad_id'], 
380
                              offerData['datetime'], offerData['payout'], offer['Offer']['name'], offerData['ip'], offerData['conversion_sale_amount'])
365
                              offerData['datetime'], offerData['payout'], offer['Offer']['name'], offerData['ip'], offerData['conversion_sale_amount'])
381
        
-
 
-
 
366
        offer1.saleTime = int(time.mktime(datetime.strptime(offer1.saleDate, "%Y-%m-%d %H:%M:%S").timetuple()))
382
        return offer1
367
        return offer1
383
def getPostData(token, page = 1, limit= 20, startDate=None, endDate=None):
368
def getPostData(token, page = 1, limit= 20, startDate=None, endDate=None):
384
    endDate=date.today() + timedelta(days=1)
369
    endDate=date.today() + timedelta(days=1)
385
    startDate=endDate - timedelta(days=31)
370
    startDate=endDate - timedelta(days=31)
386
 
371
 
Line 410... Line 395...
410
    return urllib.urlencode(parameters)
395
    return urllib.urlencode(parameters)
411
 
396
 
412
def main():
397
def main():
413
    print todict([1,2,"3"])
398
    print todict([1,2,"3"])
414
    store = getStore(3)
399
    store = getStore(3)
415
    store.scrapeStoreOrders()
400
    #store.scrapeStoreOrders()
416
    #store._isSubOrderActive(8, "5970688907")
401
    #store._isSubOrderActive(8, "5970688907")
417
    #store.scrapeAffiliate()
402
    store.scrapeAffiliate()
418
    #store.parseOrderRawHtml(12345, "subtagId", 122323,  "html", 'https://m.snapdeal.com/purchaseMobileComplete?code=1f4166d13ea799b65aa9dea68b3e9e70&order=4509499363')
403
    #store.parseOrderRawHtml(12345, "subtagId", 122323,  "html", 'https://m.snapdeal.com/purchaseMobileComplete?code=1f4166d13ea799b65aa9dea68b3e9e70&order=4509499363')
419
 
404
 
420
 
405
 
421
 
406
 
422
def todict(obj, classkey=None):
407
def todict(obj, classkey=None):