diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 7494152..1b8035d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,11 @@ Changelog ========= +0.3.3 (2015-01-13) +------------------ +- 修复扇贝改版导致"无法获取组员用户名导致发送短信失败"的问题 +- 修复扇贝改版导致"无法成功踢人"的问题 + 0.3.2 (2014-08-22) ------------------ - 小组管理页面改版 diff --git a/shanbay/__init__.py b/shanbay/__init__.py index 4c46ca4..dd83126 100644 --- a/shanbay/__init__.py +++ b/shanbay/__init__.py @@ -6,7 +6,7 @@ """Python API for shanbay.com""" __title__ = 'shanbay' -__version__ = '0.3.2' +__version__ = '0.3.3' __author__ = 'mozillazg' __email__ = 'mozillazg101@gmail.com' __license__ = 'MIT' diff --git a/shanbay/team.py b/shanbay/team.py index 1a5720a..b1a325a 100644 --- a/shanbay/team.py +++ b/shanbay/team.py @@ -173,8 +173,10 @@ def get_tag_string(html, class_, tag='td', n=0): for member_html in members_html.find_all('tr', class_='member'): _id = member_html.attrs['data-id'] try: - username = member_html.find_all('td', class_='user' - )[0].find('img').attrs['alt'] + user_url = member_html.find_all('td', class_='user' + )[0].find('a').attrs['href'] + username = self.get_username('http://www.shanbay.com' + + user_url) except Exception as e: logger.exception(e) username = '' @@ -217,6 +219,12 @@ def get_tag_string(html, class_, tag='td', n=0): members.append(member) return members + def get_username(self, url): + html = self.request(url).text + soup = BeautifulSoup(html) + t = soup.find_all(class_='page-header')[0].find_all('h2')[0].text.strip() + return t.strip(u'的日记').strip() + def dismiss(self, member_ids): """踢人. 注意别把自己给踢了. @@ -225,13 +233,18 @@ def dismiss(self, member_ids): """ url = 'http://www.shanbay.com/api/v1/team/member/' data = { - 'action': 'dismiss', + 'action': 'dispel', } if isinstance(member_ids, (list, tuple)): data['ids'] = ','.join(map(str, member_ids)) else: data['ids'] = member_ids - return self.request(url, 'put', data=data).ok + r = self.request(url, 'put', data=data) + try: + return r.json()['msg'] == "SUCCESS" + except Exception as e: + logger.exception(e) + return False def forum_id(self): """小组发帖要用的 forum_id"""