aboutsummaryrefslogtreecommitdiffstats
path: root/youtube
diff options
context:
space:
mode:
authorJames Taylor <user234683@users.noreply.github.com>2019-09-27 19:27:19 -0700
committerJames Taylor <user234683@users.noreply.github.com>2019-09-27 19:27:19 -0700
commit9abb83fdbc05294f186daeefff8c85cfda06b7d2 (patch)
tree1d04c83f88d67d844624ced65477f88f22d92455 /youtube
parente68ac26b4e2c216dad41e22da91067e2ddc80d00 (diff)
downloadyt-local-9abb83fdbc05294f186daeefff8c85cfda06b7d2.tar.lz
yt-local-9abb83fdbc05294f186daeefff8c85cfda06b7d2.tar.xz
yt-local-9abb83fdbc05294f186daeefff8c85cfda06b7d2.zip
Extraction: Fix did_you_mean and showing_results_for
Diffstat (limited to 'youtube')
-rw-r--r--youtube/search.py11
-rw-r--r--youtube/templates/search.html6
-rw-r--r--youtube/yt_data_extract.py15
3 files changed, 18 insertions, 14 deletions
diff --git a/youtube/search.py b/youtube/search.py
index ba40f0b..cb66744 100644
--- a/youtube/search.py
+++ b/youtube/search.py
@@ -83,6 +83,17 @@ def get_search_page():
yt_data_extract.prefix_urls(item_info)
yt_data_extract.add_extra_html_info(item_info)
+ corrections = search_info['corrections']
+ if corrections['type'] == 'did_you_mean':
+ corrected_query_string = request.args.to_dict(flat=False)
+ corrected_query_string['query'] = [corrections['corrected_query']]
+ corrections['corrected_query_url'] = util.URL_ORIGIN + '/search?' + urllib.parse.urlencode(corrected_query_string, doseq=True)
+ elif corrections['type'] == 'showing_results_for':
+ no_autocorrect_query_string = request.args.to_dict(flat=False)
+ no_autocorrect_query_string['autocorrect'] = ['0']
+ no_autocorrect_query_url = util.URL_ORIGIN + '/search?' + urllib.parse.urlencode(no_autocorrect_query_string, doseq=True)
+ corrections['original_query_url'] = no_autocorrect_query_url
+
return flask.render_template('search.html',
header_playlist_names = local_playlist.get_playlist_names(),
query = query,
diff --git a/youtube/templates/search.html b/youtube/templates/search.html
index aef914a..8b803e7 100644
--- a/youtube/templates/search.html
+++ b/youtube/templates/search.html
@@ -29,10 +29,10 @@
<div id="result-info">
<div id="number-of-results">Approximately {{ '{:,}'.format(estimated_results) }} results ({{ '{:,}'.format(estimated_pages) }} pages)</div>
{% if corrections['type'] == 'showing_results_for' %}
- <div>Showing results for <a>{{ corrections['corrected_query']|safe }}</a></div>
- <div>Search instead for <a href="{{ corrections['original_query_url'] }}">{{ corrections['original_query'] }}</a></div>
+ <div>Showing results for <a>{{ common_elements.text_runs(corrections['corrected_query_text']) }}</a></div>
+ <div>Search instead for <a href="{{ corrections['original_query_url'] }}">{{ corrections['original_query_text'] }}</a></div>
{% elif corrections['type'] == 'did_you_mean' %}
- <div>Did you mean <a href="{{ corrections['corrected_query_url'] }}">{{ corrections['corrected_query']|safe }}</a></div>
+ <div>Did you mean <a href="{{ corrections['corrected_query_url'] }}">{{ common_elements.text_runs(corrections['corrected_query_text']) }}</a></div>
{% endif %}
</div>
<div class="item-list">
diff --git a/youtube/yt_data_extract.py b/youtube/yt_data_extract.py
index 13d6ede..cccd679 100644
--- a/youtube/yt_data_extract.py
+++ b/youtube/yt_data_extract.py
@@ -554,27 +554,20 @@ def extract_search_info(polymer_json):
continue
if type == 'didYouMeanRenderer':
renderer = renderer[type]
- corrected_query_string = request.args.to_dict(flat=False)
- corrected_query_string['query'] = [renderer['correctedQueryEndpoint']['searchEndpoint']['query']]
- corrected_query_url = util.URL_ORIGIN + '/search?' + urllib.parse.urlencode(corrected_query_string, doseq=True)
info['corrections'] = {
'type': 'did_you_mean',
- 'corrected_query': yt_data_extract.format_text_runs(renderer['correctedQuery']['runs']),
- 'corrected_query_url': corrected_query_url,
+ 'corrected_query': renderer['correctedQueryEndpoint']['searchEndpoint']['query'],
+ 'corrected_query_text': renderer['correctedQuery']['runs'],
}
continue
if type == 'showingResultsForRenderer':
renderer = renderer[type]
- no_autocorrect_query_string = request.args.to_dict(flat=False)
- no_autocorrect_query_string['autocorrect'] = ['0']
- no_autocorrect_query_url = util.URL_ORIGIN + '/search?' + urllib.parse.urlencode(no_autocorrect_query_string, doseq=True)
info['corrections'] = {
'type': 'showing_results_for',
- 'corrected_query': yt_data_extract.format_text_runs(renderer['correctedQuery']['runs']),
- 'original_query_url': no_autocorrect_query_url,
- 'original_query': renderer['originalQuery']['simpleText'],
+ 'corrected_query_text': renderer['correctedQuery']['runs'],
+ 'original_query_text': renderer['originalQuery']['simpleText'],
}
continue