finished up rss, changed rss behavior to include pre-defined trackers only, also cleaned up debug statements

This commit is contained in:
aldacron 2017-05-16 00:46:25 -07:00
parent 899aa01473
commit 2005174358
5 changed files with 41 additions and 6 deletions

View File

@ -178,7 +178,7 @@ def home(rss):
query_args['term'] = '' query_args['term'] = ''
else: # Otherwise, use db search for everything else: # Otherwise, use db search for everything
query_args['term'] = term or '' query_args['term'] = term or ''
print(query_args)
query = search_db(**query_args) query = search_db(**query_args)
if rss: if rss:
return render_rss('/', query, use_elastic=False) 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): def render_rss(label, query, use_elastic):
print(query)
rss_xml = flask.render_template('rss.xml', rss_xml = flask.render_template('rss.xml',
use_elastic=use_elastic, use_elastic=use_elastic,
term=label, term=label,

View File

@ -177,8 +177,8 @@ def search_elastic(term='', user=None, sort='id', order='desc',
s = s.highlight("display_name") s = s.highlight("display_name")
# Return query, uncomment print line to debug query # Return query, uncomment print line to debug query
from pprint import pprint # from pprint import pprint
print(json.dumps(s.to_dict())) # print(json.dumps(s.to_dict()))
return s.execute() return s.execute()

View File

@ -22,7 +22,7 @@
<item> <item>
<title>{{ torrent.display_name }}</title> <title>{{ torrent.display_name }}</title>
{% if use_elastic %} {% if use_elastic %}
<link>{{ torrent.info_hash }}</link> <link>{{ create_magnet_from_info(torrent.display_name, torrent.info_hash) }}</link>
<guid isPermaLink="true">{{ url_for('view_torrent', torrent_id=torrent.meta.id, _external=True) }}</guid> <guid isPermaLink="true">{{ url_for('view_torrent', torrent_id=torrent.meta.id, _external=True) }}</guid>
<pubDate>{{ torrent.created_time|rfc822_es }}</pubDate> <pubDate>{{ torrent.created_time|rfc822_es }}</pubDate>
{% else %} {% else %}

View File

@ -66,7 +66,11 @@
{% endif %} {% endif %}
<td style="white-space: nowrap;text-align: center;"> <td style="white-space: nowrap;text-align: center;">
{% if torrent.has_torrent %}<a href="{{ url_for('download_torrent', torrent_id=torrent.id) }}"><i class="fa fa-fw fa-download"></i></a>{% endif %} {% if torrent.has_torrent %}<a href="{{ url_for('download_torrent', torrent_id=torrent.id) }}"><i class="fa fa-fw fa-download"></i></a>{% endif %}
{% if use_elastic %}
<a href="{{ create_magnet_from_info(torrent.display_name, torrent.info_hash) }}"><i class="fa fa-fw fa-magnet"></i></a>
{% else %}
<a href="{{ torrent.magnet_uri }}"><i class="fa fa-fw fa-magnet"></i></a> <a href="{{ torrent.magnet_uri }}"><i class="fa fa-fw fa-magnet"></i></a>
{% endif %}
</td> </td>
<td class="text-center">{{ torrent.filesize | filesizeformat(True) }}</td> <td class="text-center">{{ torrent.filesize | filesizeformat(True) }}</td>
{% if use_elastic %} {% if use_elastic %}

View File

@ -3,6 +3,7 @@ import base64
import time import time
from urllib.parse import urlencode from urllib.parse import urlencode
from orderedset import OrderedSet from orderedset import OrderedSet
from nyaa import app
from nyaa import bencode from nyaa import bencode
from nyaa import app from nyaa import app
@ -53,10 +54,23 @@ def get_trackers(torrent):
return list(trackers) 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): def create_magnet(torrent, max_trackers=5, trackers=None):
if trackers is None: if trackers is None:
trackers = get_trackers(torrent) trackers = get_trackers_magnet()
magnet_parts = [ magnet_parts = [
('dn', torrent.display_name) ('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) 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): def create_default_metadata_base(torrent, trackers=None):
if trackers is None: if trackers is None:
trackers = get_trackers(torrent) trackers = get_trackers(torrent)