diff --git a/nyaa/routes.py b/nyaa/routes.py index 5fbcb5c..edc302b 100644 --- a/nyaa/routes.py +++ b/nyaa/routes.py @@ -178,7 +178,7 @@ def home(rss): query_args['term'] = '' else: # Otherwise, use db search for everything query_args['term'] = term or '' - print(query_args) + query = search_db(**query_args) if rss: return render_rss('/', query, use_elastic=False) @@ -287,7 +287,6 @@ def _jinja2_filter_rfc822(datestr, fmt=None): def render_rss(label, query, use_elastic): - print(query) rss_xml = flask.render_template('rss.xml', use_elastic=use_elastic, term=label, diff --git a/nyaa/search.py b/nyaa/search.py index 7369fd3..e6353c5 100644 --- a/nyaa/search.py +++ b/nyaa/search.py @@ -177,8 +177,8 @@ def search_elastic(term='', user=None, sort='id', order='desc', s = s.highlight("display_name") # Return query, uncomment print line to debug query - from pprint import pprint - print(json.dumps(s.to_dict())) + # from pprint import pprint + # print(json.dumps(s.to_dict())) return s.execute() diff --git a/nyaa/templates/rss.xml b/nyaa/templates/rss.xml index c495cda..e1787d2 100644 --- a/nyaa/templates/rss.xml +++ b/nyaa/templates/rss.xml @@ -22,7 +22,7 @@ {{ torrent.display_name }} {% if use_elastic %} - {{ torrent.info_hash }} + {{ create_magnet_from_info(torrent.display_name, torrent.info_hash) }} {{ url_for('view_torrent', torrent_id=torrent.meta.id, _external=True) }} {{ torrent.created_time|rfc822_es }} {% else %} diff --git a/nyaa/templates/search_results.html b/nyaa/templates/search_results.html index e8e08be..cc0988f 100644 --- a/nyaa/templates/search_results.html +++ b/nyaa/templates/search_results.html @@ -66,7 +66,11 @@ {% endif %} {% if torrent.has_torrent %}{% endif %} + {% if use_elastic %} + + {% else %} + {% endif %} {{ torrent.filesize | filesizeformat(True) }} {% if use_elastic %} diff --git a/nyaa/torrents.py b/nyaa/torrents.py index a8ad6d0..3d35cc7 100644 --- a/nyaa/torrents.py +++ b/nyaa/torrents.py @@ -3,6 +3,7 @@ import base64 import time from urllib.parse import urlencode from orderedset import OrderedSet +from nyaa import app from nyaa import bencode from nyaa import app @@ -53,10 +54,23 @@ def get_trackers(torrent): return list(trackers) +def get_trackers_magnet(): + trackers = OrderedSet() + + # Our main one first + main_announce_url = app.config.get('MAIN_ANNOUNCE_URL') + if main_announce_url: + trackers.add(main_announce_url) + + # and finally our tracker list + trackers.update(default_trackers()) + + return list(trackers) + def create_magnet(torrent, max_trackers=5, trackers=None): if trackers is None: - trackers = get_trackers(torrent) + trackers = get_trackers_magnet() magnet_parts = [ ('dn', torrent.display_name) @@ -68,6 +82,24 @@ def create_magnet(torrent, max_trackers=5, trackers=None): return 'magnet:?xt=urn:btih:' + b32_info_hash + '&' + urlencode(magnet_parts) +# For processing ES links +@app.context_processor +def create_magnet_from_info(): + def _create_magnet_from_info(display_name, info_hash, max_trackers=5, trackers=None): + if trackers is None: + trackers = get_trackers_magnet() + + magnet_parts = [ + ('dn', display_name) + ] + for tracker in trackers[:max_trackers]: + magnet_parts.append(('tr', tracker)) + + b32_info_hash = base64.b32encode(bytes.fromhex(info_hash)).decode('utf-8') + return 'magnet:?xt=urn:btih:' + b32_info_hash + '&' + urlencode(magnet_parts) + return dict(create_magnet_from_info=_create_magnet_from_info) + + def create_default_metadata_base(torrent, trackers=None): if trackers is None: trackers = get_trackers(torrent)