Subversion Repositories SmartDukaan

Rev

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

Rev 17480 Rev 17599
Line 122... Line 122...
122
                    resp['result'] = 'DETAIL_NOT_CREATED_KNOWN'
122
                    resp['result'] = 'DETAIL_NOT_CREATED_KNOWN'
123
                else:   
123
                else:   
124
                    try:
124
                    try:
125
                        self.parseNewStlye(merchantOrder, soup)
125
                        self.parseNewStlye(merchantOrder, soup)
126
                        resp['result'] = 'DETAIL_CREATED'
126
                        resp['result'] = 'DETAIL_CREATED'
127
                        return
-
 
128
                    except:
127
                    except:
129
                        try:
128
                        try:
130
                            traceback.print_exc()
129
                            traceback.print_exc()
131
                            self.parseOldStlye(merchantOrder, soup)
130
                            self.parseOldStlye(merchantOrder, soup)
132
                            resp['result'] = 'DETAIL_CREATED'
131
                            resp['result'] = 'DETAIL_CREATED'
133
                            return
-
 
134
                        except:
132
                        except:
135
                            traceback.print_exc()
133
                            traceback.print_exc()
136
                            try:
134
                            try:
137
                                self.parseCancelled(merchantOrder, soup)
135
                                self.parseCancelled(merchantOrder, soup)
138
                                resp['result'] = 'ORDER_CANCELLED'
136
                                resp['result'] = 'ORDER_CANCELLED'
139
                                return
-
 
140
                            except:
137
                            except:
141
                                try:
138
                                try:
142
                                    if soup.find("h1").text.strip() in ["Your Account"] or soup.find("h1").span.text=="Account":
139
                                    if soup.find("h1").text.strip() in ["Your Account"] or soup.find("h1").span.text=="Account":
143
                                        resp['result'] = 'DETAIL_NOT_CREATED_KNOWN'
140
                                        resp['result'] = 'DETAIL_NOT_CREATED_KNOWN'
144
                                    else:
141
                                    else:
Line 146... Line 143...
146
                                except:
143
                                except:
147
                                    if soup.find(id="ap_signin_pagelet_title").find("h1").text.strip()=="Sign In":
144
                                    if soup.find(id="ap_signin_pagelet_title").find("h1").text.strip()=="Sign In":
148
                                        resp['result'] = 'DETAIL_NOT_CREATED_KNOWN'
145
                                        resp['result'] = 'DETAIL_NOT_CREATED_KNOWN'
149
                                    else:
146
                                    else:
150
                                        raise
147
                                        raise
151
                order = self.db.merchantOrder.find_one({"orderId":orderId})
-
 
152
                if order is not None:
148
                if resp['result'] == 'DETAIL_NOT_CREATED_KNOWN':
153
                    self.db.merchantOrder.update({"orderId":orderId}, {"$set":{"status":"html_required"}})
149
                    self.db.merchantOrder.update({"orderId":orderId}, {"$set":{"status":"html_required"}})
154
            except:
150
            except:
155
                order = self.db.merchantOrder.find_one({"orderId":orderId})
-
 
156
                if order is not None:
-
 
157
                    self.db.merchantOrder.update({"orderId":orderId}, {"$set":{"status":"parse_failed"}})
151
                self.db.merchantOrder.update({"orderId":orderId}, {"$set":{"status":"parse_failed"}})
158
                print "Error occurred"
152
                print "Error occurred"
159
                resp['result'] = 'DETAIL_NOT_CREATED_UNKNOWN'
153
                resp['result'] = 'DETAIL_NOT_CREATED_UNKNOWN'
160
                traceback.print_exc()
154
                traceback.print_exc()
161
        return resp    
155
        return resp    
162
                    
156
                    
Line 349... Line 343...
349
                j=i+1
343
                j=i+1
350
                if not deliverySpanTop:
344
                if not deliverySpanTop:
351
                    if i%2==1:
345
                    if i%2==1:
352
                        continue
346
                        continue
353
                    j=i/2 + 1
347
                    j=i/2 + 1
354
                    deliverySpan = productDiv.div.div.span
348
                    deliverySpan = statusDiv.div.div.span
355
                    productDiv = productDivs[i+1].div
-
 
356
                imgDiv  = productDiv.div.div
349
                imgDiv  = productDiv.div.div
357
                detailDiv = imgDiv.find_next_sibling('div')
350
                detailDiv = imgDiv.find_next_sibling('div')
358
                detailDivs = detailDiv.findAll('div', recursive=False)
351
                detailDivs = detailDiv.findAll('div', recursive=False)
359
                arr = detailDivs[0].a.text.strip().split(" of ", 1)
352
                arr = detailDivs[0].a.text.strip().split(" of ", 1)
360
                (productTitle, quantity) = (arr[-1], (1 if len(arr)==1 else int(arr[0])) )
353
                (productTitle, quantity) = (arr[-1], (1 if len(arr)==1 else int(arr[0])) )
Line 381... Line 374...
381
                        subOrder.estimatedDeliveryDate = "Not available"
374
                        subOrder.estimatedDeliveryDate = "Not available"
382
                        
375
                        
383
                createdOn = datetime.fromtimestamp(merchantOrder.createdOnInt)
376
                createdOn = datetime.fromtimestamp(merchantOrder.createdOnInt)
384
                subOrder.trackAfter = int(time.mktime(max(estDlvyTime-timedelta(days=4),createdOn + timedelta(days=3)).timetuple()))
377
                subOrder.trackAfter = int(time.mktime(max(estDlvyTime-timedelta(days=4),createdOn + timedelta(days=3)).timetuple()))
385
                subOrder.detailedStatus = subOrderStatus
378
                subOrder.detailedStatus = subOrderStatus
-
 
379
                status=MStore.ORDER_PLACED
-
 
380
                try:
-
 
381
                    status = self._getStatusFromDetailedStatus(subOrderStatus)
-
 
382
                except:
-
 
383
                    try:
-
 
384
                        dateString = subOrderStatus.split("Delivered ")[1].strip()
-
 
385
                        subOrder.status = MStore.ORDER_DELIVERED
-
 
386
                        subOrder.detailedStatus = 'Delivered'
-
 
387
                        subOrder.deliveredOn = datetime.strftime(getDateStringDelivered(dateString), '%d-%b-%y')
-
 
388
                    except:
-
 
389
                        try:
-
 
390
                            dateString = subOrderStatus.split("Arriving ")[1].split("by")[0].strip()
-
 
391
                            subOrder.status = MStore.ORDER_SHIPPED
-
 
392
                            subOrder.deliveryEstimate = datetime.strftime(getDateStringArriving(dateString), '%d-%b-%y')
-
 
393
                        except:
-
 
394
                            print "Unknown status Alert -", status
-
 
395
                
386
                subOrder.deliveryCharges = shippingPrice
396
                subOrder.deliveryCharges = shippingPrice
387
                if trackingUrl:
397
                if trackingUrl:
388
                    subOrder.tracingkUrl  = trackingUrl
398
                    subOrder.tracingkUrl  = trackingUrl
389
                subOrder.imgUrl = imgDiv.img["src"]
399
                subOrder.imgUrl = imgDiv.img["src"]
390
                (cashbackAmount, percentage) = self.getCashbackAmount(subOrder.productCode, amountPaid)
400
                (cashbackAmount, percentage) = self.getCashbackAmount(subOrder.productCode, amountPaid)
Line 396... Line 406...
396
                    cashbackStatus = Store.CB_NA
406
                    cashbackStatus = Store.CB_NA
397
                subOrder.cashBackStatus = cashbackStatus
407
                subOrder.cashBackStatus = cashbackStatus
398
                subOrder.cashBackAmount = cashbackAmount
408
                subOrder.cashBackAmount = cashbackAmount
399
                if percentage > 0:
409
                if percentage > 0:
400
                    subOrder.cashBackPercentage = percentage
410
                    subOrder.cashBackPercentage = percentage
401
                if hasattr(subOrder, 'deliveredOn'):                               
411
                if hasattr(subOrder, 'deliveredOn') or subOrder.status==Store.ORDER_DELIVERED:                               
402
                    subOrder.status = Store.ORDER_DELIVERED
412
                    subOrder.status = Store.ORDER_DELIVERED
403
                    subOrder.closed = True
413
                    subOrder.closed = True
404
                    if subOrder.cashBackStatus == Store.CB_PENDING:
414
                    if subOrder.cashBackStatus == Store.CB_PENDING:
405
                        subOrder.cashBackStatus = Store.CB_APPROVED
415
                        subOrder.cashBackStatus = Store.CB_APPROVED
406
                elif closedStatus:
416
                elif closedStatus:
Line 754... Line 764...
754
#            o = session.query(OrdersRaw).filter_by(id = orderId).one()
764
#            o = session.query(OrdersRaw).filter_by(id = orderId).one()
755
#            o.status = 'ORDER_CREATED'
765
#            o.status = 'ORDER_CREATED'
756
#            session.commit()
766
#            session.commit()
757
#        finally:
767
#        finally:
758
#            session.close()
768
#            session.close()
-
 
769
    store.trackOrdersForUser(10466, 'https://www.amazon.in/gp/css/summary/edit.html?orderID=403-7498756-0837158', readSSh('/AmazonTrack/User10466/403-7498756-0837158'))
759
    store.trackOrdersForUser(12243, 'https://www.amazon.in/gp/css/summary/edit.html?orderID=171-1842941-8579542', readSSh('/AmazonTrack/User12243/171-1842941-8579542'))
770
    store.trackOrdersForUser(10466, 'https://www.amazon.in/gp/css/summary/edit.html?orderID=403-2539406-8617932', readSSh('/AmazonTrack/User10466/403-2539406-8617932'))
-
 
771
    #store.parseOrderRawHtml(3324325, '12', 10466, readSSh('/home/amit/s1.html'), 'https://www.amazon.in/gp/css/summary/edit.html?orderID=403-7498756-0837158')
760
    
772
    
761
def getSummaryFile(directory):
773
def getSummaryFile(directory):
762
    date1 = datetime(2015,1,1)
774
    date1 = datetime(2015,1,1)
763
    finalFile = None
775
    finalFile = None
764
    try:
776
    try:
Line 866... Line 878...
866
        
878
        
867
    finally:
879
    finally:
868
        session.close()
880
        session.close()
869
    
881
    
870
if __name__ == '__main__':
882
if __name__ == '__main__':
871
#        readSSh("~/46417.html")
-
 
872
        main()
-
 
873
        #getDateStringArriving()
-
 
874
883
#    readSSh("/AmazonTrack/User2942/402-2467356-7564367")
-
 
884
#    readSSh("/AmazonTrack/User10466/orderSummary18-11:21:32:36")
-
 
885
#    readSSh("/AmazonTrack/User10466/403-7498756-0837158")
-
 
886
    main()
-
 
887