Subversion Repositories SmartDukaan

Rev

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

Rev 13774 Rev 13781
Line 21... Line 21...
21
        
21
        
22
    def getName(self):
22
    def getName(self):
23
        return "flipkart"
23
        return "flipkart"
24
    
24
    
25
    def parseOrderRawHtml(self, orderId, subTagId, userId, rawHtml, orderSuccessUrl):
25
    def parseOrderRawHtml(self, orderId, subTagId, userId, rawHtml, orderSuccessUrl):
-
 
26
        response = {}
26
        if orderSuccessUrl == ORDER_SUCCESS_URL:
27
        if orderSuccessUrl == ORDER_SUCCESS_URL:
27
            try:
28
            try:
28
                soup = BeautifulSoup(rawHtml)
29
                soup = BeautifulSoup(rawHtml)
29
                orderUrl = soup.find('div', {"id":"thank-you-box-wrapper"}).div.findAll('div', recursive=False)[1].a['href']
30
                orderUrl = soup.find('div', {"id":"thank-you-box-wrapper"}).div.findAll('div', recursive=False)[1].a['href']
30
                orderId = re.findall(r'.*&oid=(.*)&?.*?', orderUrl)[0]
31
                orderId = re.findall(r'.*&oid=(.*)&?.*?', orderUrl)[0]
-
 
32
                response["result"] = 'HTML_REQUIRED'
31
                return ORDER_REDIRECT_URL % (orderId)
33
                response["url"] = ORDER_REDIRECT_URL % (orderId)
-
 
34
                return response
32
            except:
35
            except:
33
                return False
36
                response["result"] = 'IGNORED'
34
        
37
        
35
            finally:
-
 
36
                return False
-
 
37
        else:
38
        else:
-
 
39
            try:
38
            merchantOrder = Order(orderId, userId, subTagId, self.store_id, orderSuccessUrl)
40
                merchantOrder = Order(orderId, userId, subTagId, self.store_id, orderSuccessUrl)
39
             
41
                 
40
            soup = BeautifulSoup(rawHtml,from_encoding="utf-8")
42
                soup = BeautifulSoup(rawHtml,from_encoding="utf-8")
41
            
43
                
42
            table = soup.body.findAll("table", recursive=False)[1]
44
                table = soup.body.findAll("table", recursive=False)[1]
43
            #print table
45
                #print table
44
            tables = table.tr.td.findAll("table", recursive=False)
46
                tables = table.tr.td.findAll("table", recursive=False)
45
            for tr in tables[2].findAll("tr"):
47
                for tr in tables[2].findAll("tr"):
46
                boldElement = tr.td.b
48
                    boldElement = tr.td.b
47
                if "Order Placed" in str(boldElement):
49
                    if "Order Placed" in str(boldElement):
48
                    merchantOrder.placedOn = boldElement.next_sibling.strip()
50
                        merchantOrder.placedOn = boldElement.next_sibling.strip()
49
                if "order number" in str(boldElement):
51
                    if "order number" in str(boldElement):
50
                    merchantOrder.merchantOderId = boldElement.next_sibling.strip()
52
                        merchantOrder.merchantOderId = boldElement.next_sibling.strip()
51
                if "Order Total" in str(boldElement):
53
                    if "Order Total" in str(boldElement):
52
                    merchantOrder.paidAmount = boldElement.next_sibling.strip()
54
                        merchantOrder.paidAmount = boldElement.next_sibling.strip()
53
                    print merchantOrder.paidAmount
55
                        print merchantOrder.paidAmount
54
            anchors = table.tr.td.findAll("a", recursive=False)
56
                anchors = table.tr.td.findAll("a", recursive=False)
55
            anchors.pop(-1)
57
                anchors.pop(-1)
56
            
58
                
57
            count = 1
59
                count = 1
58
            subOrders = []
60
                subOrders = []
59
            merchantOrder.subOrders = subOrders
61
                merchantOrder.subOrders = subOrders
60
            for anchor in anchors:
62
                for anchor in anchors:
61
                
63
                    
62
                tab = anchor.next_sibling
64
                    tab = anchor.next_sibling
63
                status = MStore.ORDER_PLACED
65
                    status = MStore.ORDER_PLACED
64
                subStr = "Delivery #" + str(count) + ":"
66
                    subStr = "Delivery #" + str(count) + ":"
65
                if subStr in  tab.find("b").text:
67
                    if subStr in  tab.find("b").text:
66
                    detailedStatus = tab.find("b").text.replace(subStr, '').strip()
68
                        detailedStatus = tab.find("b").text.replace(subStr, '').strip()
67
                
-
 
68
                tab = tab.next_sibling.next_sibling
-
 
69
                trs = tab.find("table").findAll("tr", recursive = False)
-
 
70
                
-
 
71
                estimatedDelivery = trs[0].td.find("b").next_sibling.strip()
-
 
72
                
-
 
73
                orderItemTrs = trs[1].findAll("td", recursive=False)[1].table.findAll("tr", recursive = False)
-
 
74
                i = -1
-
 
75
                for orderItemTr in orderItemTrs:
-
 
76
                    i += 1
-
 
77
                    if i%2 == 0:
-
 
78
                        continue
-
 
79
                    merchantSubOrderId = orderItemTr.find("input")["name"]
-
 
80
                    
69
                    
-
 
70
                    tab = tab.next_sibling.next_sibling
-
 
71
                    trs = tab.find("table").findAll("tr", recursive = False)
-
 
72
                    
-
 
73
                    estimatedDelivery = trs[0].td.find("b").next_sibling.strip()
-
 
74
                    
-
 
75
                    orderItemTrs = trs[1].findAll("td", recursive=False)[1].table.findAll("tr", recursive = False)
-
 
76
                    i = -1
-
 
77
                    for orderItemTr in orderItemTrs:
-
 
78
                        i += 1
-
 
79
                        if i%2 == 0:
-
 
80
                            continue
-
 
81
                        merchantSubOrderId = orderItemTr.find("input")["name"]
-
 
82
                        
-
 
83
                    
-
 
84
                    
-
 
85
                        
81
                
86
                
82
                
87
                
83
                    
-
 
84
            
-
 
85
            
-
 
86
                    #subOrder = SubOrder(productTitle, productUrl, merchantOrder.placedOn, amountPaid, status, quantity)
88
                        #subOrder = SubOrder(productTitle, productUrl, merchantOrder.placedOn, amountPaid, status, quantity)
87
            
89
            except:
-
 
90
                response['result'] = 'PARSE_ERROR'    
88
                    
91
                    
89
        
92
        
90
 
93
 
91
def main():
94
def main():
92
    store = getStore(1)
95
    store = getStore(1)