diff --git a/import_to_es.py b/import_to_es.py index 886211f..106cbc1 100644 --- a/import_to_es.py +++ b/import_to_es.py @@ -8,6 +8,7 @@ with a cron job or some binlog-reading thing (TODO) from nyaa import app from nyaa.models import Torrent from elasticsearch import Elasticsearch +from elasticsearch.client import IndicesClient from elasticsearch import helpers import progressbar import sys @@ -21,7 +22,8 @@ bar = progressbar.ProgressBar( ' (', progressbar.ETA(), ') ', ]) -es = Elasticsearch() +es = Elasticsearch(timeout=30) +ic = IndicesClient(es) # turn into thing that elasticsearch indexes. We flatten in # the stats (seeders/leechers) so we can order by them in es naturally. @@ -89,4 +91,10 @@ def page_query(query, limit=sys.maxsize, batch_size=10000): bar.update(start) start = min(limit, start + batch_size) +# turn off refreshes while bulk loading +ic.put_settings(body={'index': {'refresh_interval': '-1'}}, index=app.config['ES_INDEX_NAME']) + helpers.bulk(es, (mk_es(t) for t in page_query(Torrent.query)), chunk_size=10000) + +# restore to near-enough real time +ic.put_settings(body={'index': {'refresh_interval': '30s'}}, index=app.config['ES_INDEX_NAME']) diff --git a/nyaa/routes.py b/nyaa/routes.py index 30b3135..266689b 100644 --- a/nyaa/routes.py +++ b/nyaa/routes.py @@ -116,15 +116,13 @@ def home(rss): if flask.request.args.get('page') == 'rss': rss = True - term = flask.request.args.get('q') + term = flask.request.args.get('q', flask.request.args.get('term')) sort = flask.request.args.get('s') order = flask.request.args.get('o') - category = flask.request.args.get('c') - quality_filter = flask.request.args.get('f') - user_name = flask.request.args.get('u') - page = flask.request.args.get('p') - if page: - page = int(page) + category = flask.request.args.get('c', flask.request.args.get('cats')) + quality_filter = flask.request.args.get('f', flask.request.args.get('filter')) + user_name = flask.request.args.get('u', flask.request.args.get('user')) + page = flask.request.args.get('p', flask.request.args.get('offset', 1, int), int) per_page = app.config.get('RESULTS_PER_PAGE') if not per_page: @@ -143,7 +141,7 @@ def home(rss): 'order': order or 'desc', 'category': category or '0_0', 'quality_filter': quality_filter or '0', - 'page': page or 1, + 'page': page, 'rss': rss, 'per_page': per_page } diff --git a/nyaa/static/js/main.js b/nyaa/static/js/main.js index b9c140b..63f32c5 100644 --- a/nyaa/static/js/main.js +++ b/nyaa/static/js/main.js @@ -105,8 +105,13 @@ document.addEventListener("DOMContentLoaded", function() { var previewTabEl = markdownEditor.querySelector(previewTabSelector); var targetEl = markdownEditor.querySelector(targetSelector); + var reader = new commonmark.Parser({safe: true}); + var writer = new commonmark.HtmlRenderer({safe: true}); + writer.softbreak = '
'; + previewTabEl.addEventListener('click', function () { - targetEl.innerHTML = marked(sourceSelector.value.trim(), { sanitize: true, breaks:true }); + var parsed = reader.parse(sourceSelector.value.trim()); + targetEl.innerHTML = writer.render(parsed); }); }); }); diff --git a/nyaa/static/pinned-tab.svg b/nyaa/static/pinned-tab.svg new file mode 100644 index 0000000..28034c3 --- /dev/null +++ b/nyaa/static/pinned-tab.svg @@ -0,0 +1,7 @@ + + + diff --git a/nyaa/templates/layout.html b/nyaa/templates/layout.html index 232d2d5..9f91979 100644 --- a/nyaa/templates/layout.html +++ b/nyaa/templates/layout.html @@ -8,6 +8,7 @@ + @@ -34,7 +35,7 @@ - +