| 616 | return False |
| 617 | |
| 618 | def login(self): |
| 619 | if len(self.redirect_uri) < 4: |
| 620 | print '[ERROR] Login failed due to network problem, please try again.' |
| 621 | return False |
| 622 | r = self.session.get(self.redirect_uri) |
| 623 | r.encoding = 'utf-8' |
| 624 | data = r.text |
| 625 | doc = xml.dom.minidom.parseString(data) |
| 626 | root = doc.documentElement |
| 627 | |
| 628 | for node in root.childNodes: |
| 629 | if node.nodeName == 'skey': |
| 630 | self.skey = node.childNodes[0].data |
| 631 | elif node.nodeName == 'wxsid': |
| 632 | self.sid = node.childNodes[0].data |
| 633 | elif node.nodeName == 'wxuin': |
| 634 | self.uin = node.childNodes[0].data |
| 635 | elif node.nodeName == 'pass_ticket': |
| 636 | self.pass_ticket = node.childNodes[0].data |
| 637 | |
| 638 | if '' in (self.skey, self.sid, self.uin, self.pass_ticket): |
| 639 | return False |
| 640 | |
| 641 | self.base_request = { |
| 642 | 'Uin': self.uin, |
| 643 | 'Sid': self.sid, |
| 644 | 'Skey': self.skey, |
| 645 | 'DeviceID': self.device_id, |
| 646 | } |
| 647 | return True |
| 648 | |
| 649 | def init(self): |
| 650 | url = self.base_uri + '/webwxinit?r=%i&lang=en_US&pass_ticket=%s' % (int(time.time()), self.pass_ticket) |