From be2fa1077486d5af62ab75fd2b2692d7268d26b1 Mon Sep 17 00:00:00 2001 From: WindSoilder Date: Wed, 2 Sep 2020 20:54:29 +0800 Subject: [PATCH 1/5] fit new stackoverflow css class --- howdoi/howdoi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/howdoi/howdoi.py b/howdoi/howdoi.py index 09074c695..8de85df70 100755 --- a/howdoi/howdoi.py +++ b/howdoi/howdoi.py @@ -320,10 +320,10 @@ def _get_answer(args, links): args['tags'] = [t.text for t in html('.post-tag')] if not instructions and not args['all']: - text = get_text(first_answer.find('.post-text').eq(0)) + text = get_text(first_answer.find('.js-post-body').eq(0)) elif args['all']: texts = [] - for html_tag in first_answer.items('.post-text > *'): + for html_tag in first_answer.items('.js-post-body > *'): current_text = get_text(html_tag) if current_text: if html_tag[0].tag in ['pre', 'code']: From 38125bd038465204dcbd927e3b029d411197feb3 Mon Sep 17 00:00:00 2001 From: WindSoilder Date: Wed, 2 Sep 2020 21:42:32 +0800 Subject: [PATCH 2/5] debug on tests --- test_howdoi.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test_howdoi.py b/test_howdoi.py index e1bd72a2b..88c818f8c 100644 --- a/test_howdoi.py +++ b/test_howdoi.py @@ -115,6 +115,7 @@ def test_answer_links_using_l_option(self): def test_answer_links_using_all_option(self): for query in self.queries: response = self.call_howdoi(query + ' -a') + print(response) self.assertNotEqual(re.match('.*http.?://.*questions/\d.*', response, re.DOTALL), None) def test_position(self): @@ -127,6 +128,7 @@ def test_all_text(self): query = self.queries[0] first_answer = self.call_howdoi(query) second_answer = self.call_howdoi(query + ' -a') + print(second_answer) self.assertNotEqual(first_answer, second_answer) self.assertNotEqual(re.match('.*Answer from http.?://.*', second_answer, re.DOTALL), None) From bec3fe58b63f6e63afabf7a6fedf388655db1bb1 Mon Sep 17 00:00:00 2001 From: WindSoilder Date: Wed, 2 Sep 2020 21:45:57 +0800 Subject: [PATCH 3/5] debug on tests --- howdoi/howdoi.py | 1 + test_howdoi.py | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/howdoi/howdoi.py b/howdoi/howdoi.py index 8de85df70..7e39a92b8 100755 --- a/howdoi/howdoi.py +++ b/howdoi/howdoi.py @@ -369,6 +369,7 @@ def _get_answers(args): """ question_links = _get_links_with_cache(args['query']) + print(question_links) if not question_links: return False diff --git a/test_howdoi.py b/test_howdoi.py index 88c818f8c..e1bd72a2b 100644 --- a/test_howdoi.py +++ b/test_howdoi.py @@ -115,7 +115,6 @@ def test_answer_links_using_l_option(self): def test_answer_links_using_all_option(self): for query in self.queries: response = self.call_howdoi(query + ' -a') - print(response) self.assertNotEqual(re.match('.*http.?://.*questions/\d.*', response, re.DOTALL), None) def test_position(self): @@ -128,7 +127,6 @@ def test_all_text(self): query = self.queries[0] first_answer = self.call_howdoi(query) second_answer = self.call_howdoi(query + ' -a') - print(second_answer) self.assertNotEqual(first_answer, second_answer) self.assertNotEqual(re.match('.*Answer from http.?://.*', second_answer, re.DOTALL), None) From f91063bfa0b272a242741af23dfa67affc4c7016 Mon Sep 17 00:00:00 2001 From: WindSoilder Date: Wed, 2 Sep 2020 21:48:04 +0800 Subject: [PATCH 4/5] debug on tests --- howdoi/howdoi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/howdoi/howdoi.py b/howdoi/howdoi.py index 7e39a92b8..342120474 100755 --- a/howdoi/howdoi.py +++ b/howdoi/howdoi.py @@ -313,6 +313,7 @@ def _get_answer(args, links): cache.set(cache_key, page) html = pq(page) + print(page) first_answer = html('.answer').eq(0) @@ -369,7 +370,6 @@ def _get_answers(args): """ question_links = _get_links_with_cache(args['query']) - print(question_links) if not question_links: return False From 4a6bab47d20a8e8178453ed06cc7b2b606b09d0f Mon Sep 17 00:00:00 2001 From: WindSoilder Date: Wed, 2 Sep 2020 21:57:45 +0800 Subject: [PATCH 5/5] fix CI --- howdoi/howdoi.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/howdoi/howdoi.py b/howdoi/howdoi.py index 342120474..47f20e791 100755 --- a/howdoi/howdoi.py +++ b/howdoi/howdoi.py @@ -313,18 +313,24 @@ def _get_answer(args, links): cache.set(cache_key, page) html = pq(page) - print(page) first_answer = html('.answer').eq(0) instructions = first_answer.find('pre') or first_answer.find('code') args['tags'] = [t.text for t in html('.post-tag')] + # make decision on answer body class. + if first_answer.find(".js-post-body"): + answer_body_cls = ".js-post-body" + else: + # rollback to post-text class + answer_body_cls = ".post-text" + if not instructions and not args['all']: - text = get_text(first_answer.find('.js-post-body').eq(0)) + text = get_text(first_answer.find(answer_body_cls).eq(0)) elif args['all']: texts = [] - for html_tag in first_answer.items('.js-post-body > *'): + for html_tag in first_answer.items('{} > *'.format(answer_body_cls)): current_text = get_text(html_tag) if current_text: if html_tag[0].tag in ['pre', 'code']: