From 49e9444969757a1fdb63cdc39b91df162b574d48 Mon Sep 17 00:00:00 2001 From: sb745 Date: Tue, 4 Mar 2025 23:56:47 +0200 Subject: [PATCH] Changed stuff for Synthoria --- .docker/Dockerfile | 17 -- .docker/README.md | 48 ----- .docker/entrypoint-sync.sh | 32 ---- .docker/entrypoint.sh | 50 ------ .docker/es_sync_config.json | 11 -- .docker/full-stack.yml | 71 -------- .docker/kibana.config.yml | 9 - .docker/mariadb-init-sql/.gitignore | 1 - .../50-grant-binlog-access.sql | 3 - .docker/nginx.conf | 59 ------- .docker/nyaa-config-partial.py | 10 -- .docker/uwsgi.config.ini | 34 ---- .github/issue_template.md | 3 - .github/workflows/codeql.yml | 100 ----------- .gitignore | 3 +- .travis.yml | 30 ---- README.md | 133 +------------- config.example.py => config.py | 70 +++----- db_create.py | 12 +- db_migrate.py | 32 ---- import_to_es.py | 2 +- lint.sh | 40 ----- migrations/README | 4 - migrations/alembic.ini | 45 ----- migrations/env.py | 87 --------- migrations/script.py.mako | 24 --- .../versions/1add911660a6_admin_log_added.py | 44 ----- ...ceb2cb4d7c_add_comment_count_to_torrent.py | 52 ------ .../3001f79b7722_add_torrents.uploader_ip.py | 30 ---- migrations/versions/500117641608_add_bans.py | 38 ---- .../5cbcee17bece_add_trusted_applications.py | 47 ----- .../versions/6cc823948c5a_add_trackerapi.py | 40 ----- .../versions/7f064e009cab_add_report_table.py | 56 ------ ...8a6a7662eb37_add_user_preferences_table.py | 39 ---- .../97ddefed1834_initial_database_state.py | 166 ------------------ .../b61e4f6a88cc_del_torrents_info.py | 57 ------ .../versions/b79d2fcafd88_comment_text.py | 33 ---- ...f7bf6d0e6bd_add_edited_time_to_comments.py | 30 ---- .../versions/d0eeb8049623_add_comments.py | 37 ---- .../versions/f69d7fec88d6_add_rangebans.py | 40 ----- .../f703f911d4ae_add_registration_ip.py | 28 --- ...ffd23e570f92_add_is_webseed_to_trackers.py | 24 --- nyaa/__init__.py | 2 +- nyaa/static/css/main.css | 2 +- nyaa/static/favicon.png | Bin 2001 -> 0 bytes nyaa/static/img/avatar/default.png | Bin 3552 -> 25577 bytes nyaa/static/img/icons/nyaa/1_1.png | Bin 2796 -> 3602 bytes nyaa/static/img/icons/nyaa/1_2.png | Bin 2740 -> 3602 bytes nyaa/static/img/icons/nyaa/1_3.png | Bin 2784 -> 3602 bytes nyaa/static/img/icons/nyaa/1_4.png | Bin 3421 -> 3602 bytes nyaa/static/img/icons/nyaa/1_5.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/1_6.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/1_7.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/2_1.png | Bin 2499 -> 3602 bytes nyaa/static/img/icons/nyaa/2_2.png | Bin 3074 -> 3602 bytes nyaa/static/img/icons/nyaa/2_3.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/2_4.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/2_5.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/2_6.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/3_1.png | Bin 2349 -> 3602 bytes nyaa/static/img/icons/nyaa/3_2.png | Bin 2178 -> 3602 bytes nyaa/static/img/icons/nyaa/3_3.png | Bin 4154 -> 3602 bytes nyaa/static/img/icons/nyaa/3_4.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/4_1.png | Bin 2965 -> 3602 bytes nyaa/static/img/icons/nyaa/4_2.png | Bin 2847 -> 3602 bytes nyaa/static/img/icons/nyaa/4_3.png | Bin 2800 -> 3602 bytes nyaa/static/img/icons/nyaa/4_4.png | Bin 3138 -> 3602 bytes nyaa/static/img/icons/nyaa/4_5.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/4_6.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/5_1.png | Bin 3962 -> 3602 bytes nyaa/static/img/icons/nyaa/5_2.png | Bin 3982 -> 3602 bytes nyaa/static/img/icons/nyaa/6_1.png | Bin 3316 -> 3602 bytes nyaa/static/img/icons/nyaa/6_2 .png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/6_2.png | Bin 3268 -> 0 bytes nyaa/static/img/icons/nyaa/6_3.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/7_1.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/7_2.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/7_3.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/7_4.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/8_1.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/8_2.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/8_3.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/8_4.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/8_5.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/nyaa/8_6.png | Bin 0 -> 3602 bytes nyaa/static/img/icons/sukebei/1_1.png | Bin 3474 -> 0 bytes nyaa/static/img/icons/sukebei/1_2.png | Bin 3853 -> 0 bytes nyaa/static/img/icons/sukebei/1_3.png | Bin 3267 -> 0 bytes nyaa/static/img/icons/sukebei/1_4.png | Bin 2726 -> 0 bytes nyaa/static/img/icons/sukebei/1_5.png | Bin 3602 -> 0 bytes nyaa/static/img/icons/sukebei/2_1.png | Bin 3811 -> 0 bytes nyaa/static/img/icons/sukebei/2_2.png | Bin 3442 -> 0 bytes nyaa/static/pinned-tab.svg | 7 - nyaa/static/search-sukebei.xml | 14 -- nyaa/static/search.xml | 8 +- nyaa/templates/help.html | 160 +++-------------- nyaa/templates/home.html | 6 +- nyaa/templates/layout.html | 69 +++++--- nyaa/templates/rules.html | 81 +-------- nyaa/templates/upload.html | 6 +- nyaa/templates/xmlns.html | 2 +- nyaa/torrents.py | 2 +- run.py | 2 +- tests/__init__.py | 37 ---- tests/test_api_handler.py | 34 ---- tests/test_backend.py | 56 ------ tests/test_bencode.py | 94 ---------- tests/test_models.py | 0 tests/test_nyaa.py | 55 ------ tests/test_template_utils.py | 98 ----------- tests/test_utils.py | 115 ------------ trackers.txt | 8 +- 112 files changed, 138 insertions(+), 2411 deletions(-) delete mode 100644 .docker/Dockerfile delete mode 100644 .docker/README.md delete mode 100755 .docker/entrypoint-sync.sh delete mode 100755 .docker/entrypoint.sh delete mode 100644 .docker/es_sync_config.json delete mode 100644 .docker/full-stack.yml delete mode 100644 .docker/kibana.config.yml delete mode 100644 .docker/mariadb-init-sql/.gitignore delete mode 100644 .docker/mariadb-init-sql/50-grant-binlog-access.sql delete mode 100644 .docker/nginx.conf delete mode 100644 .docker/nyaa-config-partial.py delete mode 100644 .docker/uwsgi.config.ini delete mode 100644 .github/issue_template.md delete mode 100644 .github/workflows/codeql.yml delete mode 100644 .travis.yml rename config.example.py => config.py (75%) delete mode 100755 db_migrate.py delete mode 100755 lint.sh delete mode 100644 migrations/README delete mode 100644 migrations/alembic.ini delete mode 100644 migrations/env.py delete mode 100644 migrations/script.py.mako delete mode 100644 migrations/versions/1add911660a6_admin_log_added.py delete mode 100644 migrations/versions/2bceb2cb4d7c_add_comment_count_to_torrent.py delete mode 100644 migrations/versions/3001f79b7722_add_torrents.uploader_ip.py delete mode 100644 migrations/versions/500117641608_add_bans.py delete mode 100644 migrations/versions/5cbcee17bece_add_trusted_applications.py delete mode 100644 migrations/versions/6cc823948c5a_add_trackerapi.py delete mode 100644 migrations/versions/7f064e009cab_add_report_table.py delete mode 100644 migrations/versions/8a6a7662eb37_add_user_preferences_table.py delete mode 100644 migrations/versions/97ddefed1834_initial_database_state.py delete mode 100644 migrations/versions/b61e4f6a88cc_del_torrents_info.py delete mode 100644 migrations/versions/b79d2fcafd88_comment_text.py delete mode 100644 migrations/versions/cf7bf6d0e6bd_add_edited_time_to_comments.py delete mode 100644 migrations/versions/d0eeb8049623_add_comments.py delete mode 100644 migrations/versions/f69d7fec88d6_add_rangebans.py delete mode 100644 migrations/versions/f703f911d4ae_add_registration_ip.py delete mode 100644 migrations/versions/ffd23e570f92_add_is_webseed_to_trackers.py delete mode 100644 nyaa/static/favicon.png create mode 100644 nyaa/static/img/icons/nyaa/1_5.png create mode 100644 nyaa/static/img/icons/nyaa/1_6.png create mode 100644 nyaa/static/img/icons/nyaa/1_7.png create mode 100644 nyaa/static/img/icons/nyaa/2_3.png create mode 100644 nyaa/static/img/icons/nyaa/2_4.png create mode 100644 nyaa/static/img/icons/nyaa/2_5.png create mode 100644 nyaa/static/img/icons/nyaa/2_6.png create mode 100644 nyaa/static/img/icons/nyaa/3_4.png create mode 100644 nyaa/static/img/icons/nyaa/4_5.png create mode 100644 nyaa/static/img/icons/nyaa/4_6.png create mode 100644 nyaa/static/img/icons/nyaa/6_2 .png delete mode 100644 nyaa/static/img/icons/nyaa/6_2.png create mode 100644 nyaa/static/img/icons/nyaa/6_3.png create mode 100644 nyaa/static/img/icons/nyaa/7_1.png create mode 100644 nyaa/static/img/icons/nyaa/7_2.png create mode 100644 nyaa/static/img/icons/nyaa/7_3.png create mode 100644 nyaa/static/img/icons/nyaa/7_4.png create mode 100644 nyaa/static/img/icons/nyaa/8_1.png create mode 100644 nyaa/static/img/icons/nyaa/8_2.png create mode 100644 nyaa/static/img/icons/nyaa/8_3.png create mode 100644 nyaa/static/img/icons/nyaa/8_4.png create mode 100644 nyaa/static/img/icons/nyaa/8_5.png create mode 100644 nyaa/static/img/icons/nyaa/8_6.png delete mode 100644 nyaa/static/img/icons/sukebei/1_1.png delete mode 100644 nyaa/static/img/icons/sukebei/1_2.png delete mode 100644 nyaa/static/img/icons/sukebei/1_3.png delete mode 100644 nyaa/static/img/icons/sukebei/1_4.png delete mode 100644 nyaa/static/img/icons/sukebei/1_5.png delete mode 100644 nyaa/static/img/icons/sukebei/2_1.png delete mode 100644 nyaa/static/img/icons/sukebei/2_2.png delete mode 100644 nyaa/static/pinned-tab.svg delete mode 100644 nyaa/static/search-sukebei.xml delete mode 100644 tests/__init__.py delete mode 100644 tests/test_api_handler.py delete mode 100644 tests/test_backend.py delete mode 100644 tests/test_bencode.py delete mode 100644 tests/test_models.py delete mode 100644 tests/test_nyaa.py delete mode 100644 tests/test_template_utils.py delete mode 100644 tests/test_utils.py diff --git a/.docker/Dockerfile b/.docker/Dockerfile deleted file mode 100644 index 1f503fa..0000000 --- a/.docker/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM ubuntu:18.04 - -ENV LANG=en_US.utf-8 LC_ALL=en_US.utf-8 DEBIAN_FRONTEND=noninteractive -RUN apt-get -y update - -COPY ./ /nyaa/ -RUN cat /nyaa/config.example.py /nyaa/.docker/nyaa-config-partial.py > /nyaa/config.py - -# Requirements for running the Flask app -RUN apt-get -y install build-essential git python3 python3-pip libmysqlclient-dev curl -# Helpful stuff for the docker entrypoint.sh script -RUN apt-get -y install mariadb-client netcat - -WORKDIR /nyaa -RUN pip3 install -r requirements.txt - -CMD ["/nyaa/.docker/entrypoint.sh"] diff --git a/.docker/README.md b/.docker/README.md deleted file mode 100644 index b710dfa..0000000 --- a/.docker/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Nyaa on Docker -> [!CAUTION] -> Docker deployment is out of date and currently unsupported in NyaaV3. - -Docker infrastructure is provided to ease setting up a dev environment - -## Quickstart - -Get started by running (from the root of the project): - - docker-compose -f .docker/full-stack.yml -p nyaa build nyaa-flask - docker-compose -f .docker/full-stack.yml -p nyaa up -d - -This builds the Flask app container, then starts up the project. You can then go -to [localhost:8080](http://localhost:8080/) (note that some of the -services are somewhat slow to start so it may not be available for 30s or so). - -You can shut it down with: - - docker-compose -f .docker/full-stack.yml -p nyaa down - -## Details - -The environment includes: - - [nginx frontend](http://localhost:8080/) (on port 8080) - - uwsgi running the flask app - - the ES<>MariaDB sync process - - MariaDB - - ElasticSearch - - [Kibana](http://localhost:8080/kibana/) (at /kibana/) - -MariaDB, ElasticSearch, the sync process, and uploaded torrents will -persistently store their data in volumes which makes future start ups faster. - -To make it more useful to develop with, you can copy `.docker/full-stack.yml` and -edit the copy and uncomment the `- "${NYAA_SRC_DIR}:/nyaa"` line, then -`export NYAA_SRC_DIR=$(pwd)` and start up the environment using the new compose -file: - - cp -a .docker/full-stack.yml .docker/local-dev.yml - cat config.example.py .docker/nyaa-config-partial.py > ./config.py - $EDITOR .docker/local-dev.yml - export NYAA_SRC_DIR=$(pwd) - docker-compose -f .docker/local-dev.yml -p nyaa up -d - -This will mount the local copy of the project files into the Flask container, -which combined with live-reloading in uWSGI should let you make changes and see -them take effect immediately (technically with a ~2 second delay). diff --git a/.docker/entrypoint-sync.sh b/.docker/entrypoint-sync.sh deleted file mode 100755 index b58b646..0000000 --- a/.docker/entrypoint-sync.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -# set +x - -pushd /nyaa - -echo 'Waiting for MySQL to start up' -while ! echo HELO | nc mariadb 3306 &>/dev/null; do - sleep 1 -done -echo 'DONE' - -echo 'Waiting for ES to start up' -while ! echo HELO | nc elasticsearch 9200 &>/dev/null; do - sleep 1 -done -echo 'DONE' - -echo 'Waiting for ES to be ready' -while ! curl -s -XGET 'elasticsearch:9200/_cluster/health?pretty=true&wait_for_status=green' &>/dev/null; do - sleep 1 -done -echo 'DONE' - -echo 'Waiting for sync data file to exist' -while ! [ -f /elasticsearch-sync/pos.json ]; do - sleep 1 -done -echo 'DONE' - -echo 'Starting the sync process' -/usr/bin/python3 /nyaa/sync_es.py /nyaa/.docker/es_sync_config.json diff --git a/.docker/entrypoint.sh b/.docker/entrypoint.sh deleted file mode 100755 index 7688739..0000000 --- a/.docker/entrypoint.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -# set +x - -pushd /nyaa - -echo 'Waiting for MySQL to start up' -while ! echo HELO | nc mariadb 3306 &>/dev/null; do - sleep 1 -done -echo 'DONE' - -if ! [ -f /elasticsearch-sync/flag-db_create ]; then - python3 ./db_create.py - touch /elasticsearch-sync/flag-db_create -fi - -if ! [ -f /elasticsearch-sync/flag-db_migrate ]; then - python3 ./db_migrate.py stamp head - touch /elasticsearch-sync/flag-db_migrate -fi - -echo 'Waiting for ES to start up' -while ! echo HELO | nc elasticsearch 9200 &>/dev/null; do - sleep 1 -done -echo 'DONE' - -echo 'Waiting for ES to be ready' -while ! curl -s -XGET 'elasticsearch:9200/_cluster/health?pretty=true&wait_for_status=green' &>/dev/null; do - sleep 1 -done -echo 'DONE' - -if ! [ -f /elasticsearch-sync/flag-create_es ]; then - # @source create_es.sh - # create indices named "nyaa" and "sukebei", these are hardcoded - curl -v -XPUT 'elasticsearch:9200/nyaa?pretty' -H"Content-Type: application/yaml" --data-binary @es_mapping.yml - curl -v -XPUT 'elasticsearch:9200/sukebei?pretty' -H"Content-Type: application/yaml" --data-binary @es_mapping.yml - touch /elasticsearch-sync/flag-create_es -fi - -if ! [ -f /elasticsearch-sync/flag-import_to_es ]; then - python3 ./import_to_es.py | tee /elasticsearch-sync/import.out - grep -A1 'Save the following' /elasticsearch-sync/import.out | tail -1 > /elasticsearch-sync/pos.json - touch /elasticsearch-sync/flag-import_to_es -fi - -echo 'Starting the Flask app' -/usr/local/bin/uwsgi /nyaa/.docker/uwsgi.config.ini diff --git a/.docker/es_sync_config.json b/.docker/es_sync_config.json deleted file mode 100644 index a6c7f9e..0000000 --- a/.docker/es_sync_config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "save_loc": "/elasticsearch-sync/pos.json", - "mysql_host": "mariadb", - "mysql_port": 3306, - "mysql_user": "nyaadev", - "mysql_password": "ZmtB2oihHFvc39JaEDoF", - "database": "nyaav3", - "internal_queue_depth": 10000, - "es_chunk_size": 10000, - "flush_interval": 5 -} diff --git a/.docker/full-stack.yml b/.docker/full-stack.yml deleted file mode 100644 index f2fb11b..0000000 --- a/.docker/full-stack.yml +++ /dev/null @@ -1,71 +0,0 @@ ---- - -version: "3" -services: - nginx: - image: nginx:1.15-alpine - ports: - - '8080:80' - volumes: - - './nginx.conf:/etc/nginx/nginx.conf:ro' - - '../nyaa/static:/nyaa-static:ro' - depends_on: - - nyaa-flask - - kibana - - nyaa-flask: - image: local/nyaa:devel - volumes: - - 'nyaa-torrents:/nyaa-torrents' - - 'nyaa-sync-data:/elasticsearch-sync' - ## Uncomment this line to have to mount the local dir to the running - ## instance for live changes (after setting NYAA_SRC_DIR env var) - # - "${NYAA_SRC_DIR}:/nyaa" - depends_on: - - mariadb - - elasticsearch - build: - context: ../ - dockerfile: ./.docker/Dockerfile - - nyaa-sync: - image: local/nyaa:devel - volumes: - - 'nyaa-sync-data:/elasticsearch-sync' - command: /nyaa/.docker/entrypoint-sync.sh - depends_on: - - mariadb - - elasticsearch - restart: on-failure - - mariadb: - image: mariadb:10.0 - volumes: - - './mariadb-init-sql:/docker-entrypoint-initdb.d:ro' - - '../configs/my.cnf:/etc/mysql/conf.d/50-binlog.cnf:ro' - - 'mariadb-data:/var/lib/mysql' - environment: - - MYSQL_RANDOM_ROOT_PASSWORD=yes - - MYSQL_USER=nyaadev - - MYSQL_PASSWORD=ZmtB2oihHFvc39JaEDoF - - MYSQL_DATABASE=nyaav3 - - elasticsearch: - image: elasticsearch:6.5.4 - volumes: - - elasticsearch-data:/usr/share/elasticsearch/data - depends_on: - - mariadb - - kibana: - image: kibana:6.5.4 - volumes: - - './kibana.config.yml:/usr/share/kibana/config/kibana.yml:ro' - depends_on: - - elasticsearch - -volumes: - nyaa-torrents: - nyaa-sync-data: - mariadb-data: - elasticsearch-data: diff --git a/.docker/kibana.config.yml b/.docker/kibana.config.yml deleted file mode 100644 index da9dc09..0000000 --- a/.docker/kibana.config.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- - -server.name: kibana -server.host: 'kibana' -server.basePath: /kibana -# server.rewriteBasePath: true -# server.defaultRoute: /kibana/app/kibana -elasticsearch.url: http://elasticsearch:9200 -xpack.monitoring.ui.container.elasticsearch.enabled: true diff --git a/.docker/mariadb-init-sql/.gitignore b/.docker/mariadb-init-sql/.gitignore deleted file mode 100644 index aecee65..0000000 --- a/.docker/mariadb-init-sql/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!*.sql diff --git a/.docker/mariadb-init-sql/50-grant-binlog-access.sql b/.docker/mariadb-init-sql/50-grant-binlog-access.sql deleted file mode 100644 index 81fac03..0000000 --- a/.docker/mariadb-init-sql/50-grant-binlog-access.sql +++ /dev/null @@ -1,3 +0,0 @@ -GRANT REPLICATION SLAVE ON *.* TO 'nyaadev'@'%'; -GRANT REPLICATION CLIENT ON *.* TO 'nyaadev'@'%'; -FLUSH PRIVILEGES; diff --git a/.docker/nginx.conf b/.docker/nginx.conf deleted file mode 100644 index 27f3757..0000000 --- a/.docker/nginx.conf +++ /dev/null @@ -1,59 +0,0 @@ - -user nginx; -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - - -events { - worker_connections 1024; -} - - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - charset utf-8; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - #tcp_nopush on; - - keepalive_timeout 65; - - gzip on; - - server { - listen 80; - server_name localhost default; - - location /static { - alias /nyaa-static; - } - - # fix kibana redirecting to localhost/kibana (without the port) - rewrite ^/kibana$ http://$http_host/kibana/ permanent; - location /kibana/ { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_cache_bypass $http_upgrade; - - proxy_set_header Host 'kibana'; - proxy_set_header X-Real-IP $remote_addr; - - proxy_pass http://kibana:5601/; - } - - location / { - include /etc/nginx/uwsgi_params; - uwsgi_pass nyaa-flask:5000; - } - } -} diff --git a/.docker/nyaa-config-partial.py b/.docker/nyaa-config-partial.py deleted file mode 100644 index 65a7616..0000000 --- a/.docker/nyaa-config-partial.py +++ /dev/null @@ -1,10 +0,0 @@ -# This is only a partial config file that will be appended to the end of -# config.example.py to build the full config for the docker environment - -SITE_NAME = 'Nyaa [DEVEL]' -GLOBAL_SITE_NAME = 'nyaa.devel' -SQLALCHEMY_DATABASE_URI = ('mysql://nyaadev:ZmtB2oihHFvc39JaEDoF@mariadb/nyaav3?charset=utf8mb4') -# MAIN_ANNOUNCE_URL = 'http://chihaya:6881/announce' -# TRACKER_API_URL = 'http://chihaya:6881/api' -BACKUP_TORRENT_FOLDER = '/nyaa-torrents' -ES_HOSTS = ['elasticsearch:9200'] diff --git a/.docker/uwsgi.config.ini b/.docker/uwsgi.config.ini deleted file mode 100644 index 7e8d620..0000000 --- a/.docker/uwsgi.config.ini +++ /dev/null @@ -1,34 +0,0 @@ -[uwsgi] -# socket = [addr:port] -socket = 0.0.0.0:5000 -#chmod-socket = 664 - -die-on-term = true - -# logging -#disable-logging = True -#logger = file:uwsgi.log - -# Base application directory -chdir = /nyaa - -# WSGI module and callable -# module = [wsgi_module_name]:[application_callable_name] -module = WSGI:app - -# master = [master process (true of false)] -master = true - -# debugging -catch-exceptions = true - -# performance -processes = 4 -buffer-size = 8192 - -loop = gevent -socket-timeout = 10 -gevent = 1000 -gevent-monkey-patch = true - -py-autoreload = 2 diff --git a/.github/issue_template.md b/.github/issue_template.md deleted file mode 100644 index 6419727..0000000 --- a/.github/issue_template.md +++ /dev/null @@ -1,3 +0,0 @@ -Describe your issue/feature request here (you can remove all this text). Describe well and include images if relevant. - -Please make sure to skim through the existing issues, as your issue/request/etc. may have already been noted! diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index 72b55e1..0000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,100 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL Advanced" - -on: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - schedule: - - cron: '37 6 * * 4' - -jobs: - analyze: - name: Analyze (${{ matrix.language }}) - # Runner size impacts CodeQL analysis time. To learn more, please see: - # - https://gh.io/recommended-hardware-resources-for-running-codeql - # - https://gh.io/supported-runners-and-hardware-resources - # - https://gh.io/using-larger-runners (GitHub.com only) - # Consider using larger runners or machines with greater resources for possible analysis time improvements. - runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} - permissions: - # required for all workflows - security-events: write - - # required to fetch internal or private CodeQL packs - packages: read - - # only required for workflows in private repositories - actions: read - contents: read - - strategy: - fail-fast: false - matrix: - include: - - language: javascript-typescript - build-mode: none - - language: python - build-mode: none - # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' - # Use `c-cpp` to analyze code written in C, C++ or both - # Use 'java-kotlin' to analyze code written in Java, Kotlin or both - # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both - # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, - # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. - # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how - # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - # Add any setup steps before running the `github/codeql-action/init` action. - # This includes steps like installing compilers or runtimes (`actions/setup-node` - # or others). This is typically only required for manual builds. - # - name: Setup runtime (example) - # uses: actions/setup-example@v1 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality - - # If the analyze step fails for one of the languages you are analyzing with - # "We were unable to automatically build your code", modify the matrix above - # to set the build mode to "manual" for that language. Then modify this step - # to build your code. - # ℹ️ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - if: matrix.build-mode == 'manual' - shell: bash - run: | - echo 'If you are using a "manual" build mode for one or more of the' \ - 'languages you are analyzing, replace this with the commands to build' \ - 'your code, for example:' - echo ' make bootstrap' - echo ' make release' - exit 1 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 - with: - category: "/language:${{matrix.language}}" diff --git a/.gitignore b/.gitignore index 4fe76c2..f815666 100644 --- a/.gitignore +++ b/.gitignore @@ -14,14 +14,13 @@ __pycache__ # Databases *.sql -/test.db +/synthoria.db # Webserver /uwsgi.sock # Application /install/* -/config.py /es_sync_config.json /test_torrent_batch diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8c6f6c2..0000000 --- a/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: python - -python: "3.13" - -dist: jammy - -matrix: - fast_finish: true - -cache: pip - -services: - mysql - -before_install: - - mysql -u root -e 'CREATE DATABASE nyaav3 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;' - -install: - - pip install -r requirements.txt - - pip install pytest-cov - - sed "s/mysql:\/\/test:test123@/mysql:\/\/root:@/" config.example.py > config.py - - ./db_create.py - - ./db_migrate.py stamp head - -script: - - ./dev.py test --cov=nyaa --cov-report=term tests - - ./dev.py lint - -notifications: - email: false diff --git a/README.md b/README.md index b00ea62..4fa7a78 100644 --- a/README.md +++ b/README.md @@ -1,138 +1,19 @@ -# NyaaV3 [![python](https://img.shields.io/badge/Python-3.13-3776AB.svg?style=flat&logo=python&logoColor=white)](https://www.python.org) ![Maintenance](https://img.shields.io/maintenance/yes/2025) +# Synthoria Archive [![python](https://img.shields.io/badge/Python-3.13-3776AB.svg?style=flat&logo=python&logoColor=white)](https://www.python.org) ![Maintenance](https://img.shields.io/badge/maintained-passively-yellow) +Spaghetti code based on [NyaaV3](https://github.com/sb745/NyaaV3) -## Setting up for development -This project uses Python 3.13. The codebase has been updated from the original Python 3.7 version to use modern Python features and updated dependencies. -This guide assumes you are using Linux and are somewhat capable with the commandline. -Running Nyaa on Windows may be possible, but it's currently unsupported. - -### Major changes from NyaaV2 -- Updated from Python 3.7 to Python 3.13 -- Updated all dependencies to their latest versions -- Modernized code patterns for Flask 3.0 and SQLAlchemy 2.0 -- Replaced deprecated Flask-Script, orderedset and `flask.Markup` with Flask CLI, orderly-set and markupsafe -- Implemented mail error handling - -### Code Quality -- Before we get any deeper, remember to follow PEP8 style guidelines and run `python dev.py lint` before committing to see a list of warnings/problems. - - You may also use `python dev.py fix && python dev.py isort` to automatically fix some of the issues reported by the previous command. -- Other than PEP8, try to keep your code clean and easy to understand, as well. It's only polite! - -### Running tests -The `tests` folder contains tests for the the `nyaa` module and the webserver. To run the tests: -- Make sure that you are in the Python virtual environment. -- Run `python dev.py test` while in the repository directory. - -### Setting up Pyenv -pyenv eases the use of different Python versions, and as not all Linux distros offer 3.13 packages, it's right up our alley. -- Install [dependencies](https://github.com/pyenv/pyenv/wiki/Common-build-problems) -- Install [pyenv](https://github.com/pyenv/pyenv/blob/master/README.md#installation) -- Install [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv/blob/master/README.md) -- Install Python 3.13 with `pyenv` and create a virtualenv for the project: - - `pyenv install 3.13.2` - - `pyenv virtualenv 3.13.2 nyaa` - - `pyenv activate nyaa` -- Install dependencies with `pip install -r requirements.txt` -- Copy `config.example.py` into `config.py` - - Change `SITE_FLAVOR` in your `config.py` depending on which instance you want to host - -### Setting up MySQL/MariaDB database -> [!WARNING] -> You *may* use SQLite but it is currently untested and unsupported. -- Enable `USE_MYSQL` flag in config.py -- Install MariaDB by following instructions [here](https://downloads.mariadb.org/mariadb/repositories/) -- Run the following commands logged in as your root db user (substitute for your own `config.py` values if desired): - - `CREATE USER 'test'@'localhost' IDENTIFIED BY 'test123';` - - `GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';` - - `FLUSH PRIVILEGES;` - - `CREATE DATABASE nyaav3 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;` - -### Finishing up -- Run `python db_create.py` to create the database and import categories - - Follow the advice of `db_create.py` and run `python db_migrate.py stamp head` to mark the database version for Alembic -- Start the dev server with `python run.py` -- When you are finished developing, deactivate your virtualenv with `pyenv deactivate` or `source deactivate` (or just close your shell session) - -You're now ready for simple testing and development! -Continue below to learn about database migrations and enabling the advanced search engine, Elasticsearch. - - -## Database migrations -> [!WARNING] -> The database migration feature has been updated but will no longer be supported in NyaaV3. -- Database migrations are done with [Flask-Migrate](https://flask-migrate.readthedocs.io/), a wrapper around [Alembic](http://alembic.zzzcomputing.com/en/latest/). -- The migration system has been updated to use Flask CLI instead of the deprecated Flask-Script. -- If someone has made changes in the database schema and included a new migration script: - - If your database has never been marked by Alembic (you're on a database from before the migrations), run `python db_migrate.py db stamp head` before pulling the new migration script(s). - - If you already have the new scripts, check the output of `python db_migrate.py db history` instead and choose a hash that matches your current database state, then run `python db_migrate.py db stamp `. - - Update your branch (eg. `git fetch && git rebase origin/master`) - - Run `python db_migrate.py db upgrade head` to run the migration. Done! -- If *you* have made a change in the database schema: - - Save your changes in `models.py` and ensure the database schema matches the previous version (ie. your new tables/columns are not added to the live database) - - Run `python db_migrate.py db migrate -m "Short description of changes"` to automatically generate a migration script for the changes - - Check the script (`migrations/versions/...`) and make sure it works! Alembic may not able to notice all changes. - - Run `python db_migrate.py db upgrade` to run the migration and verify the upgrade works. - - (Run `python db_migrate.py db downgrade` to verify the downgrade works as well, then upgrade again) - - -## Setting up and enabling Elasticsearch - -### Installing Elasticsearch -- Install JDK with `sudo apt-get install openjdk-8-jdk` -- Install Elasticsearch - - [From packages](https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html) - - Enable the service: - - `sudo systemctl enable elasticsearch.service` - - `sudo systemctl start elasticsearch.service` - - or [simply extracting the archives and running the files](https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html), if you don't feel like permanently installing ES -- Run `curl -XGET 'localhost:9200'` and make sure ES is running -- Install [Kibana](https://www.elastic.co/products/kibana) as a search debug frontend for ES (*optional*) - -### Enabling MySQL Binlogging -- Edit your MariaDB/MySQL server configuration and add the following under `[mariadb]`: - ``` - log-bin - server_id=1 - log-basename=master1 - binlog-format=row - ``` -- Restart MariaDB/MySQL (`sudo service mysql restart`) -- Copy the example configuration (`es_sync_config.example.json`) as `es_sync_config.json` and adjust options in it to your liking (verify the connection options!) -- Connect to mysql as root - - Verify that the result of `SHOW VARIABLES LIKE 'binlog_format';` is `ROW` - - Execute `GRANT REPLICATION SLAVE ON *.* TO 'username'@'localhost';` to allow your configured user access to the binlog - -### Setting up ES -- Run `./create_es.sh` to create the indices for the torrents: `nyaa` and `sukebei` - - The output should show `acknowledged: true` twice -- Stop the Nyaa app if you haven't already -- Run `python import_to_es.py` to import all the torrents (on nyaa and sukebei) into the ES indices. - - This may take some time to run if you have plenty of torrents in your database. - -Enable the `USE_ELASTIC_SEARCH` flag in `config.py` and (re)start the application. -Elasticsearch should now be functional! The ES indices won't be updated "live" with the current setup, continue below for instructions on how to hook Elasticsearch up to MySQL binlog. - -However, take note that binglog is not necessary for simple ES testing and development; you can simply run `import_to_es.py` from time to time to reindex all the torrents. - - -### Setting up sync_es.py -`sync_es.py` keeps the Elasticsearch indices updated by reading the binlog and pushing the changes to the ES indices. -- Make sure `es_sync_config.json` is configured with the user you grated the `REPLICATION` permissions -- Run `import_to_es.py` and copy the outputted JSON into the file specified by `save_loc` in your `es_sync_config.json` -- Run `sync_es.py` as-is *or*, for actual deployment, set it up as a service and run it, preferably as the system/root - - Make sure `sync_es.py` runs within the venv with the right dependencies! - -You're done! The script should now be feeding updates from the database to Elasticsearch. -Take note, however, that the specified ES index refresh interval is 30 seconds, which may feel like a long time on local development. Feel free to adjust it or [poke Elasticsearch yourself!](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html) +## Documentation +> [!IMPORTANT] +> No support will be given for running this software. For documentation and instructions please check the original [NyaaV3](https://github.com/sb745/NyaaV3) repo. ## License This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the [LICENSE](LICENSE) file for more details. ## Disclaimer > [!CAUTION] -> **This project was created as a learning experience, and while it's a torrent tracker, I can't control how people choose to use it.** +> **This project was created as a learning experience, and while it's a torrent tracker, we can't control how people choose to use it.** By using this software, you're agreeing to a few things: -- I'm not responsible for any legal issues that might come up from using this tracker, especially if it's used to share copyrighted content without permission. +- We're not responsible for any legal issues that might come up from using this tracker, especially if it's used to share copyrighted content without permission. - It's your responsibility to make sure you're following the laws in your area when using this software. **Please use this project wisely and stay on the right side of the law.** Happy coding! diff --git a/config.example.py b/config.py similarity index 75% rename from config.example.py rename to config.py index 6904e4b..2491be4 100644 --- a/config.example.py +++ b/config.py @@ -1,65 +1,43 @@ import os import re -DEBUG = True +DEBUG = False -###################### -## Maintenance mode ## -###################### - -# A read-only maintenance mode, in which the database is not modified MAINTENANCE_MODE = False -# A maintenance message (used in layout.html template) MAINTENANCE_MODE_MESSAGE = 'Site is currently in read-only maintenance mode.' -# Allow logging in during maintenance (without updating last login date) MAINTENANCE_MODE_LOGINS = True -# Block *anonymous* uploads completely -RAID_MODE_LIMIT_UPLOADS = False -# Message prepended to the full error message (account.py) +RAID_MODE_LIMIT_UPLOADS = True RAID_MODE_UPLOADS_MESSAGE = 'Anonymous uploads are currently disabled.' # Require manual activation for newly registered accounts -RAID_MODE_LIMIT_REGISTER = False +RAID_MODE_LIMIT_REGISTER = True # Message prepended to the full error message (account.py) -RAID_MODE_REGISTER_MESSAGE = 'Registration is currently being limited.' +RAID_MODE_REGISTER_MESSAGE = 'Registration is currently limited.' -############# -## General ## -############# +SITE_NAME = 'Synthoria Archive' +GLOBAL_SITE_NAME = 'Synthoria Archive' -# What the site identifies itself as. This affects templates, not database stuff. -SITE_NAME = 'Nyaa' -# What the both sites are labeled under (used for eg. email subjects) -GLOBAL_SITE_NAME = 'Nyaa.si' - -# General prefix for running multiple sites, eg. most database tables are site-prefixed SITE_FLAVOR = 'nyaa' # 'nyaa' or 'sukebei' -# Full external urls to both sites, used for site-change links -EXTERNAL_URLS = {'fap':'***', 'main':'***'} +EXTERNAL_URLS = {'fap':'***', 'main':'archive.synthoria.moe'} # Secret keys for Flask CSRF_SESSION_KEY = '***' SECRET_KEY = '***' # Session cookie configuration -SESSION_COOKIE_NAME = 'nyaav3_session' +SESSION_COOKIE_NAME = 'synthoria_session' SESSION_COOKIE_SECURE = True SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_SAMESITE = 'Lax' -# Present a recaptcha for anonymous uploaders USE_RECAPTCHA = False -# Require email validation USE_EMAIL_VERIFICATION = False -# Use MySQL or Sqlite3 (mostly deprecated) USE_MYSQL = True # Show seeds/peers/completions in torrent list/page ENABLE_SHOW_STATS = True -# Enable password recovery (by reset link to given email address) -# Depends on email support! -ALLOW_PASSWORD_RESET = True +ALLOW_PASSWORD_RESET = False # A list of strings or compiled regexes to deny registering emails by. # Regexes will be .search()'d against emails, @@ -81,17 +59,16 @@ EMAIL_SERVER_BLACKLIST = ( ) - # Recaptcha keys (https://www.google.com/recaptcha) -RECAPTCHA_PUBLIC_KEY = '***' -RECAPTCHA_PRIVATE_KEY = '***' +# RECAPTCHA_PUBLIC_KEY = '***' +# RECAPTCHA_PRIVATE_KEY = '***' BASE_DIR = os.path.abspath(os.path.dirname(__file__)) if USE_MYSQL: - SQLALCHEMY_DATABASE_URI = ('mysql://test:test123@localhost/nyaav3?charset=utf8mb4') + SQLALCHEMY_DATABASE_URI = ('mysql://synthuser:synthpass@localhost/synthoria?charset=utf8mb4') else: SQLALCHEMY_DATABASE_URI = ( - 'sqlite:///' + os.path.join(BASE_DIR, 'test.db') + '?check_same_thread=False') + 'sqlite:///' + os.path.join(BASE_DIR, 'synthoria.db') + '?check_same_thread=False') ########### ## EMAIL ## @@ -117,12 +94,12 @@ SMTP_PASSWORD = '***' MAX_FILES_VIEW = 1000 # Verify uploaded torrents have the given tracker in them? -ENFORCE_MAIN_ANNOUNCE_URL = False -MAIN_ANNOUNCE_URL = 'http://127.0.0.1:6881/announce' +ENFORCE_MAIN_ANNOUNCE_URL = True +MAIN_ANNOUNCE_URL = 'https://tracker.synthoria.moe:6969/announce' # Tracker API integration - don't mind this -TRACKER_API_URL = 'http://127.0.0.1:6881/api' -TRACKER_API_AUTH = 'topsecret' +# TRACKER_API_URL = 'http://127.0.0.1:6881/api' +# TRACKER_API_AUTH = 'topsecret' ############# ## Account ## @@ -147,7 +124,7 @@ ACCOUNT_RECAPTCHA_AGE = 7 * 24 * 3600 # A week # Seconds after which an IP is allowed to register another account # (0 disables the limitation) -PER_IP_ACCOUNT_COOLDOWN = 24 * 3600 +PER_IP_ACCOUNT_COOLDOWN = 72 * 3600 # Backup original .torrent uploads BACKUP_TORRENT_FOLDER = 'torrents' @@ -192,19 +169,19 @@ EDITING_TIME_LIMIT = 0 # Whether to use Gravatar or just always use the default avatar # (Useful if run as development instance behind NAT/firewall) -ENABLE_GRAVATAR = True +ENABLE_GRAVATAR = False ########################## ## Trusted Requirements ## ########################## # Minimum number of uploads the user needs to have in order to apply for trusted -TRUSTED_MIN_UPLOADS = 10 +TRUSTED_MIN_UPLOADS = 3 # Minimum number of cumulative downloads the user needs to have across their # torrents in order to apply for trusted -TRUSTED_MIN_DOWNLOADS = 10000 +TRUSTED_MIN_DOWNLOADS = 0 # Number of days an applicant needs to wait before re-applying -TRUSTED_REAPPLY_COOLDOWN = 90 +TRUSTED_REAPPLY_COOLDOWN = 30 ########### ## Cache ## @@ -231,3 +208,6 @@ CACHE_THRESHOLD = 8192 # To actually make this work across multiple worker processes, use redis # RATELIMIT_STORAGE_URL="redis://host:port" RATELIMIT_KEY_PREFIX="nyaaratelimit_" + +# Use this to show the commit hash in the footer (see layout.html) +# COMMIT_HASH="[enter your commit hash here]"; \ No newline at end of file diff --git a/db_create.py b/db_create.py index 0eaad9f..54f3900 100755 --- a/db_create.py +++ b/db_create.py @@ -14,12 +14,14 @@ from nyaa.extensions import db app = create_app('config') NYAA_CATEGORIES: List[Tuple[str, List[str]]] = [ - ('Anime', ['Anime Music Video', 'English-translated', 'Non-English-translated', 'Raw']), - ('Audio', ['Lossless', 'Lossy']), - ('Literature', ['English-translated', 'Non-English-translated', 'Raw']), - ('Live Action', ['English-translated', 'Idol/Promotional Video', 'Non-English-translated', 'Raw']), + ('Voicebanks', ['VOCALOID', 'UTAU', 'Synthesizer V', 'CeVIO', 'Piapro Studio', 'NEUTRINO', 'Other']), + ('Software', ['Synthesizers', 'Plugins', 'Tools', 'Applications', 'Games', 'Other']), + ('Voice Sequences', ['VSQ/VSQx', 'UST', 'MIDI', 'Other']), + ('Reclists', ['Japanese', 'English', 'Chinese', 'Korean', 'Spanish', 'Other']), ('Pictures', ['Graphics', 'Photos']), - ('Software', ['Applications', 'Games']), + ('Audio', ['Songs', 'Demos', 'Other']), + ('Video', ['Music Videos', 'Promo Videos', 'Demos', 'Other']), + ('Lyrics', ['Japanese', 'English', 'Chinese', 'Korean', 'Spanish', 'Other']), ] diff --git a/db_migrate.py b/db_migrate.py deleted file mode 100755 index 928ea1d..0000000 --- a/db_migrate.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Database migration script for Nyaa. -Compatible with Python 3.13 and Flask-Migrate 4.0. -""" -import sys -from typing import List - -from flask_migrate import Migrate -from flask.cli import FlaskGroup - -from nyaa import create_app -from nyaa.extensions import db - -app = create_app('config') -migrate = Migrate(app, db) - -def create_cli_app(): - return app - -cli = FlaskGroup(create_app=create_cli_app) - -if __name__ == "__main__": - # Patch sys.argv to default to 'db' - if len(sys.argv) > 1 and sys.argv[1] not in ['--help', '-h']: - if sys.argv[1] not in ['db', 'routes', 'shell', 'run']: - args: List[str] = sys.argv.copy() - args.insert(1, 'db') - sys.argv = args - - cli() diff --git a/import_to_es.py b/import_to_es.py index fbd25b2..52bb9b9 100755 --- a/import_to_es.py +++ b/import_to_es.py @@ -1,6 +1,6 @@ #!/usr/bin/env python """ -Bulk load torents from mysql into elasticsearch `nyaav3` index, +Bulk load torents from mysql into elasticsearch `synthoria` index, which is assumed to already exist. This is a one-shot deal, so you'd either need to complement it with a cron job or some binlog-reading thing (TODO) diff --git a/lint.sh b/lint.sh deleted file mode 100755 index af1a6f8..0000000 --- a/lint.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -# Lint checker/fixer -# This script is deprecated, but still works. - -function auto_fix() { - ./dev.py fix && ./dev.py isort -} - - -function check_lint() { - ./dev.py lint -} - -# MAIN -action=auto_fix # default action -for arg in "$@" -do - case "$arg" in - "-h" | "--help") - echo "+ ========================= +" - echo "+ This script is deprecated +" - echo "+ Please use ./dev.py +" - echo "+ ========================= +" - echo "" - echo "Lint checker/fixer" - echo "" - echo "Usage: $0 [-c|--check] [-h|--help]" - echo " No arguments : Check and auto-fix some warnings/errors" - echo " -c | --check : only check lint (don't auto-fix)" - echo " -h | --help : show this help and exit" - exit 0; - ;; - "-c" | "--check") - action=check_lint - ;; - esac -done - -${action} # run selected action -if [[ $? -ne 0 ]]; then exit 1; fi diff --git a/migrations/README b/migrations/README deleted file mode 100644 index e9c5557..0000000 --- a/migrations/README +++ /dev/null @@ -1,4 +0,0 @@ -> [!WARNING] -> No longer supported in NyaaV3. - -Generic single-database configuration. \ No newline at end of file diff --git a/migrations/alembic.ini b/migrations/alembic.ini deleted file mode 100644 index f8ed480..0000000 --- a/migrations/alembic.ini +++ /dev/null @@ -1,45 +0,0 @@ -# A generic, single database configuration. - -[alembic] -# template used to generate migration files -# file_template = %%(rev)s_%%(slug)s - -# set to 'true' to run the environment during -# the 'revision' command, regardless of autogenerate -# revision_environment = false - - -# Logging configuration -[loggers] -keys = root,sqlalchemy,alembic - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S diff --git a/migrations/env.py b/migrations/env.py deleted file mode 100644 index 4593816..0000000 --- a/migrations/env.py +++ /dev/null @@ -1,87 +0,0 @@ -from __future__ import with_statement -from alembic import context -from sqlalchemy import engine_from_config, pool -from logging.config import fileConfig -import logging - -# this is the Alembic Config object, which provides -# access to the values within the .ini file in use. -config = context.config - -# Interpret the config file for Python logging. -# This line sets up loggers basically. -fileConfig(config.config_file_name) -logger = logging.getLogger('alembic.env') - -# add your model's MetaData object here -# for 'autogenerate' support -# from myapp import mymodel -# target_metadata = mymodel.Base.metadata -from flask import current_app -config.set_main_option('sqlalchemy.url', - current_app.config.get('SQLALCHEMY_DATABASE_URI')) -target_metadata = current_app.extensions['migrate'].db.metadata - -# other values from the config, defined by the needs of env.py, -# can be acquired: -# my_important_option = config.get_main_option("my_important_option") -# ... etc. - - -def run_migrations_offline(): - """Run migrations in 'offline' mode. - - This configures the context with just a URL - and not an Engine, though an Engine is acceptable - here as well. By skipping the Engine creation - we don't even need a DBAPI to be available. - - Calls to context.execute() here emit the given string to the - script output. - - """ - url = config.get_main_option("sqlalchemy.url") - context.configure(url=url) - - with context.begin_transaction(): - context.run_migrations() - - -def run_migrations_online(): - """Run migrations in 'online' mode. - - In this scenario we need to create an Engine - and associate a connection with the context. - - """ - - # this callback is used to prevent an auto-migration from being generated - # when there are no changes to the schema - # reference: http://alembic.readthedocs.org/en/latest/cookbook.html - def process_revision_directives(context, revision, directives): - if getattr(config.cmd_opts, 'autogenerate', False): - script = directives[0] - if script.upgrade_ops.is_empty(): - directives[:] = [] - logger.info('No changes in schema detected.') - - engine = engine_from_config(config.get_section(config.config_ini_section), - prefix='sqlalchemy.', - poolclass=pool.NullPool) - - connection = engine.connect() - context.configure(connection=connection, - target_metadata=target_metadata, - process_revision_directives=process_revision_directives, - **current_app.extensions['migrate'].configure_args) - - try: - with context.begin_transaction(): - context.run_migrations() - finally: - connection.close() - -if context.is_offline_mode(): - run_migrations_offline() -else: - run_migrations_online() diff --git a/migrations/script.py.mako b/migrations/script.py.mako deleted file mode 100644 index 2c01563..0000000 --- a/migrations/script.py.mako +++ /dev/null @@ -1,24 +0,0 @@ -"""${message} - -Revision ID: ${up_revision} -Revises: ${down_revision | comma,n} -Create Date: ${create_date} - -""" -from alembic import op -import sqlalchemy as sa -${imports if imports else ""} - -# revision identifiers, used by Alembic. -revision = ${repr(up_revision)} -down_revision = ${repr(down_revision)} -branch_labels = ${repr(branch_labels)} -depends_on = ${repr(depends_on)} - - -def upgrade(): - ${upgrades if upgrades else "pass"} - - -def downgrade(): - ${downgrades if downgrades else "pass"} diff --git a/migrations/versions/1add911660a6_admin_log_added.py b/migrations/versions/1add911660a6_admin_log_added.py deleted file mode 100644 index 1bfcb17..0000000 --- a/migrations/versions/1add911660a6_admin_log_added.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Admin log added - -Revision ID: 1add911660a6 -Revises: 7f064e009cab -Create Date: 2017-06-29 02:57:39.715965 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '1add911660a6' -down_revision = '7f064e009cab' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('nyaa_adminlog', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('log', sa.String(length=1024), nullable=False), - sa.Column('admin_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['admin_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('sukebei_adminlog', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('log', sa.String(length=1024), nullable=False), - sa.Column('admin_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['admin_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('sukebei_adminlog') - op.drop_table('nyaa_adminlog') - # ### end Alembic commands ### diff --git a/migrations/versions/2bceb2cb4d7c_add_comment_count_to_torrent.py b/migrations/versions/2bceb2cb4d7c_add_comment_count_to_torrent.py deleted file mode 100644 index 3114e27..0000000 --- a/migrations/versions/2bceb2cb4d7c_add_comment_count_to_torrent.py +++ /dev/null @@ -1,52 +0,0 @@ -"""Add comment_count to Torrent - -Revision ID: 2bceb2cb4d7c -Revises: d0eeb8049623 -Create Date: 2017-05-26 15:07:21.114331 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '2bceb2cb4d7c' -down_revision = 'd0eeb8049623' -branch_labels = None -depends_on = None - -COMMENT_UPDATE_SQL = '''UPDATE {0}_torrents - SET comment_count = ( - SELECT COUNT(*) FROM {0}_comments - WHERE {0}_torrents.id = {0}_comments.torrent_id - );''' - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('nyaa_torrents', sa.Column('comment_count', sa.Integer(), nullable=False)) - op.create_index(op.f('ix_nyaa_torrents_comment_count'), 'nyaa_torrents', ['comment_count'], unique=False) - - op.add_column('sukebei_torrents', sa.Column('comment_count', sa.Integer(), nullable=False)) - op.create_index(op.f('ix_sukebei_torrents_comment_count'), 'sukebei_torrents', ['comment_count'], unique=False) - # ### end Alembic commands ### - - connection = op.get_bind() - - print('Updating comment counts on nyaa_torrents...') - connection.execute(sa.sql.text(COMMENT_UPDATE_SQL.format('nyaa'))) - print('Done.') - - print('Updating comment counts on sukebei_torrents...') - connection.execute(sa.sql.text(COMMENT_UPDATE_SQL.format('sukebei'))) - print('Done.') - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_nyaa_torrents_comment_count'), table_name='nyaa_torrents') - op.drop_column('nyaa_torrents', 'comment_count') - - op.drop_index(op.f('ix_sukebei_torrents_comment_count'), table_name='sukebei_torrents') - op.drop_column('sukebei_torrents', 'comment_count') - # ### end Alembic commands ### diff --git a/migrations/versions/3001f79b7722_add_torrents.uploader_ip.py b/migrations/versions/3001f79b7722_add_torrents.uploader_ip.py deleted file mode 100644 index 52fe0ba..0000000 --- a/migrations/versions/3001f79b7722_add_torrents.uploader_ip.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Add uploader_ip column to torrents table. - -Revision ID: 3001f79b7722 -Revises: -Create Date: 2017-05-21 18:01:35.472717 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '3001f79b7722' -down_revision = '97ddefed1834' -branch_labels = None -depends_on = None - -TABLE_PREFIXES = ('nyaa', 'sukebei') - - -def upgrade(): - - for prefix in TABLE_PREFIXES: - op.add_column(prefix + '_torrents', sa.Column('uploader_ip', sa.Binary(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - for prefix in TABLE_PREFIXES: - op.drop_column(prefix + '_torrents', 'uploader_ip') diff --git a/migrations/versions/500117641608_add_bans.py b/migrations/versions/500117641608_add_bans.py deleted file mode 100644 index d26f4ec..0000000 --- a/migrations/versions/500117641608_add_bans.py +++ /dev/null @@ -1,38 +0,0 @@ -"""Add bans table - -Revision ID: 500117641608 -Revises: b79d2fcafd88 -Create Date: 2017-08-17 01:44:39.205126 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '500117641608' -down_revision = 'b79d2fcafd88' -branch_labels = None -depends_on = None - - -def upgrade(): - op.create_table('bans', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('admin_id', sa.Integer(), nullable=False), - sa.Column('user_id', sa.Integer(), nullable=True), - sa.Column('user_ip', sa.Binary(length=16), nullable=True), - sa.Column('reason', sa.String(length=2048), nullable=False), - sa.ForeignKeyConstraint(['admin_id'], ['users.id'], ), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id'), - ) - op.create_index('user_ip_16', 'bans', ['user_ip'], unique=True, mysql_length=16) - op.create_index('user_ip_4', 'bans', ['user_ip'], unique=True, mysql_length=4) - - -def downgrade(): - op.drop_index('user_ip_4', table_name='bans') - op.drop_index('user_ip_16', table_name='bans') - op.drop_table('bans') diff --git a/migrations/versions/5cbcee17bece_add_trusted_applications.py b/migrations/versions/5cbcee17bece_add_trusted_applications.py deleted file mode 100644 index 29167cb..0000000 --- a/migrations/versions/5cbcee17bece_add_trusted_applications.py +++ /dev/null @@ -1,47 +0,0 @@ -"""Add trusted applications - -Revision ID: 5cbcee17bece -Revises: 8a6a7662eb37 -Create Date: 2018-11-05 15:16:07.497898 - -""" -from alembic import op -import sqlalchemy as sa -import sqlalchemy_utils - - -# revision identifiers, used by Alembic. -revision = '5cbcee17bece' -down_revision = '8a6a7662eb37' -branch_labels = None -depends_on = None - - -def upgrade(): - op.create_table('trusted_applications', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('submitter_id', sa.Integer(), nullable=False, index=True), - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('closed_time', sa.DateTime(), nullable=True), - sa.Column('why_want', sa.String(length=4000), nullable=False), - sa.Column('why_give', sa.String(length=4000), nullable=False), - sa.Column('status', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['submitter_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('trusted_reviews', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('reviewer_id', sa.Integer(), nullable=False), - sa.Column('app_id', sa.Integer(), nullable=False), - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('comment', sa.String(length=4000), nullable=False), - sa.Column('recommendation', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['app_id'], ['trusted_applications.id'], ), - sa.ForeignKeyConstraint(['reviewer_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - - -def downgrade(): - op.drop_table('trusted_reviews') - op.drop_table('trusted_applications') diff --git a/migrations/versions/6cc823948c5a_add_trackerapi.py b/migrations/versions/6cc823948c5a_add_trackerapi.py deleted file mode 100644 index d40e954..0000000 --- a/migrations/versions/6cc823948c5a_add_trackerapi.py +++ /dev/null @@ -1,40 +0,0 @@ -"""Add trackerapi table - -Revision ID: 6cc823948c5a -Revises: b61e4f6a88cc -Create Date: 2018-02-11 20:57:15.244171 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '6cc823948c5a' -down_revision = 'b61e4f6a88cc' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('nyaa_trackerapi', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('info_hash', sa.BINARY(length=20), nullable=False), - sa.Column('method', sa.String(length=255), nullable=False), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('sukebei_trackerapi', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('info_hash', sa.BINARY(length=20), nullable=False), - sa.Column('method', sa.String(length=255), nullable=False), - sa.PrimaryKeyConstraint('id') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('sukebei_trackerapi') - op.drop_table('nyaa_trackerapi') - # ### end Alembic commands ### diff --git a/migrations/versions/7f064e009cab_add_report_table.py b/migrations/versions/7f064e009cab_add_report_table.py deleted file mode 100644 index 3e3992e..0000000 --- a/migrations/versions/7f064e009cab_add_report_table.py +++ /dev/null @@ -1,56 +0,0 @@ -"""Add Report table - -Revision ID: 7f064e009cab -Revises: 2bceb2cb4d7c -Create Date: 2017-05-29 16:50:28.720980 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '7f064e009cab' -down_revision = '2bceb2cb4d7c' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('nyaa_reports', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('reason', sa.String(length=255), nullable=False), - - # sqlalchemy_utils.types.choice.ChoiceType() - sa.Column('status', sa.Integer(), nullable=False), - - sa.Column('torrent_id', sa.Integer(), nullable=False), - sa.Column('user_id', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['torrent_id'], ['nyaa_torrents.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('sukebei_reports', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('reason', sa.String(length=255), nullable=False), - - # sqlalchemy_utils.types.choice.ChoiceType() - sa.Column('status', sa.Integer(), nullable=False), - - sa.Column('torrent_id', sa.Integer(), nullable=False), - sa.Column('user_id', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['torrent_id'], ['sukebei_torrents.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('sukebei_reports') - op.drop_table('nyaa_reports') - # ### end Alembic commands ### diff --git a/migrations/versions/8a6a7662eb37_add_user_preferences_table.py b/migrations/versions/8a6a7662eb37_add_user_preferences_table.py deleted file mode 100644 index 48ca434..0000000 --- a/migrations/versions/8a6a7662eb37_add_user_preferences_table.py +++ /dev/null @@ -1,39 +0,0 @@ -"""Add user preferences table - -Revision ID: 8a6a7662eb37 -Revises: f703f911d4ae -Create Date: 2018-11-20 17:02:26.408532 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '8a6a7662eb37' -down_revision = 'f703f911d4ae' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('user_preferences', - sa.Column('user_id', sa.Integer(), nullable=False), - sa.Column('hide_comments', sa.Boolean(), server_default=sa.sql.expression.false(), nullable=False), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='CASCADE'), - sa.PrimaryKeyConstraint('user_id') - ) - - connection = op.get_bind() - - print('Populating user_preferences...') - connection.execute(sa.sql.text('INSERT INTO user_preferences (user_id) SELECT id FROM users')) - print('Done.') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('user_preferences') - # ### end Alembic commands ### diff --git a/migrations/versions/97ddefed1834_initial_database_state.py b/migrations/versions/97ddefed1834_initial_database_state.py deleted file mode 100644 index fcb1dcb..0000000 --- a/migrations/versions/97ddefed1834_initial_database_state.py +++ /dev/null @@ -1,166 +0,0 @@ -"""Initial database state - -Revision ID: 97ddefed1834 -Revises: -Create Date: 2017-05-26 18:46:14.440040 - -""" -from alembic import op -import sqlalchemy as sa -import sqlalchemy_utils -from sqlalchemy.dialects import mysql - -# revision identifiers, used by Alembic. -revision = '97ddefed1834' -down_revision = None -branch_labels = None -depends_on = None - -TABLE_PREFIXES = ('nyaa', 'sukebei') - -def upgrade(): - # Shared tables - op.create_table('users', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('username', sa.String(length=32, collation='ascii_general_ci'), nullable=False), - sa.Column('email', sqlalchemy_utils.types.email.EmailType(length=255), nullable=True), - - # These are actually PasswordType, UserStatusType and UserLevelType, - # but database-wise binary and integers are what's being used - sa.Column('password_hash', sa.Binary(length=255), nullable=False), - sa.Column('status', sa.Integer(), nullable=False), - sa.Column('level', sa.Integer(), nullable=False), - - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('last_login_date', sa.DateTime(), nullable=True), - sa.Column('last_login_ip', sa.Binary(), nullable=True), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('email'), - sa.UniqueConstraint('username') - ) - - op.create_table('trackers', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('uri', sa.String(length=255, collation='utf8_general_ci'), nullable=False), - sa.Column('disabled', sa.Boolean(), nullable=False), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('uri') - ) - - # Nyaa and Sukebei - for prefix in TABLE_PREFIXES: - # Main categories - op.create_table(prefix + '_main_categories', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=64), nullable=False), - sa.PrimaryKeyConstraint('id') - ) - # Sub categories - op.create_table(prefix + '_sub_categories', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('main_category_id', sa.Integer(), nullable=False), - sa.Column('name', sa.String(length=64), nullable=False), - sa.ForeignKeyConstraint(['main_category_id'], [prefix + '_main_categories.id'], ), - sa.PrimaryKeyConstraint('id', 'main_category_id') - ) - # Main torrent table - op.create_table(prefix + '_torrents', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('info_hash', sa.BINARY(length=20), nullable=False), - sa.Column('display_name', sa.String(length=255, collation='utf8_general_ci'), nullable=False), - sa.Column('torrent_name', sa.String(length=255), nullable=False), - sa.Column('information', sa.String(length=255), nullable=False), - sa.Column('description', mysql.TEXT(collation='utf8mb4_bin'), nullable=False), - sa.Column('filesize', sa.BIGINT(), nullable=False), - sa.Column('encoding', sa.String(length=32), nullable=False), - sa.Column('flags', sa.Integer(), nullable=False), - sa.Column('uploader_id', sa.Integer(), nullable=True), - sa.Column('has_torrent', sa.Boolean(), nullable=False), - sa.Column('created_time', sa.DateTime(), nullable=False), - sa.Column('updated_time', sa.DateTime(), nullable=False), - sa.Column('main_category_id', sa.Integer(), nullable=False), - sa.Column('sub_category_id', sa.Integer(), nullable=False), - sa.Column('redirect', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['main_category_id', 'sub_category_id'], [prefix + '_sub_categories.main_category_id', prefix + '_sub_categories.id'], ), - sa.ForeignKeyConstraint(['main_category_id'], [prefix + '_main_categories.id'], ), - sa.ForeignKeyConstraint(['redirect'], [prefix + '_torrents.id'], ), - sa.ForeignKeyConstraint(['uploader_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_' + prefix + '_torrents_display_name'), prefix + '_torrents', ['display_name'], unique=False) - op.create_index(op.f('ix_' + prefix + '_torrents_filesize'), prefix + '_torrents', ['filesize'], unique=False) - op.create_index(op.f('ix_' + prefix + '_torrents_flags'), prefix + '_torrents', ['flags'], unique=False) - op.create_index(op.f('ix_' + prefix + '_torrents_info_hash'), prefix + '_torrents', ['info_hash'], unique=True) - op.create_index(prefix + '_uploader_flag_idx', prefix + '_torrents', ['uploader_id', 'flags'], unique=False) - - # Statistics for torrents - op.create_table(prefix + '_statistics', - sa.Column('torrent_id', sa.Integer(), nullable=False), - sa.Column('seed_count', sa.Integer(), nullable=False), - sa.Column('leech_count', sa.Integer(), nullable=False), - sa.Column('download_count', sa.Integer(), nullable=False), - sa.Column('last_updated', sa.DateTime(), nullable=True), - sa.ForeignKeyConstraint(['torrent_id'], [prefix + '_torrents.id'], ondelete='CASCADE'), - sa.PrimaryKeyConstraint('torrent_id') - ) - op.create_index(op.f('ix_' + prefix + '_statistics_download_count'), prefix + '_statistics', ['download_count'], unique=False) - op.create_index(op.f('ix_' + prefix + '_statistics_leech_count'), prefix + '_statistics', ['leech_count'], unique=False) - op.create_index(op.f('ix_' + prefix + '_statistics_seed_count'), prefix + '_statistics', ['seed_count'], unique=False) - - # Trackers relationships for torrents - op.create_table(prefix + '_torrent_trackers', - sa.Column('torrent_id', sa.Integer(), nullable=False), - sa.Column('tracker_id', sa.Integer(), nullable=False), - sa.Column('order', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['torrent_id'], [prefix + '_torrents.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['tracker_id'], ['trackers.id'], ondelete='CASCADE'), - sa.PrimaryKeyConstraint('torrent_id', 'tracker_id') - ) - op.create_index(op.f('ix_' + prefix + '_torrent_trackers_order'), prefix + '_torrent_trackers', ['order'], unique=False) - - # Torrent filelists - op.create_table(prefix + '_torrents_filelist', - sa.Column('torrent_id', sa.Integer(), nullable=False), - sa.Column('filelist_blob', mysql.MEDIUMBLOB(), nullable=True), - sa.ForeignKeyConstraint(['torrent_id'], [prefix + '_torrents.id'], ondelete='CASCADE'), - sa.PrimaryKeyConstraint('torrent_id'), - mysql_row_format='COMPRESSED' - ) - - # Torrent info_dicts - op.create_table(prefix + '_torrents_info', - sa.Column('torrent_id', sa.Integer(), nullable=False), - sa.Column('info_dict', mysql.MEDIUMBLOB(), nullable=True), - sa.ForeignKeyConstraint(['torrent_id'], [prefix + '_torrents.id'], ondelete='CASCADE'), - sa.PrimaryKeyConstraint('torrent_id'), - mysql_row_format='COMPRESSED' - ) - # ### end Alembic commands ### - - -def downgrade(): - # Note: this may fail. It's better to just drop all tables instead (or reset the database) - - # Nyaa and Sukebei - for prefix in TABLE_PREFIXES: - op.drop_table(prefix + '_torrents_info') - op.drop_table(prefix + '_torrents_filelist') - op.drop_index(op.f('ix_' + prefix + '_torrent_trackers_order'), table_name=prefix + '_torrent_trackers') - op.drop_table(prefix + '_torrent_trackers') - op.drop_index(op.f('ix_' + prefix + '_statistics_seed_count'), table_name=prefix + '_statistics') - op.drop_index(op.f('ix_' + prefix + '_statistics_leech_count'), table_name=prefix + '_statistics') - op.drop_index(op.f('ix_' + prefix + '_statistics_download_count'), table_name=prefix + '_statistics') - op.drop_table(prefix + '_statistics') - op.drop_table(prefix + '_torrents') - op.drop_index(prefix + '_uploader_flag_idx', table_name=prefix + '_torrents') - op.drop_index(op.f('ix_' + prefix + '_torrents_info_hash'), table_name=prefix + '_torrents') - op.drop_index(op.f('ix_' + prefix + '_torrents_flags'), table_name=prefix + '_torrents') - op.drop_index(op.f('ix_' + prefix + '_torrents_filesize'), table_name=prefix + '_torrents') - op.drop_index(op.f('ix_' + prefix + '_torrents_display_name'), table_name=prefix + '_torrents') - op.drop_table(prefix + '_sub_categories') - op.drop_table(prefix + '_main_categories') - - # Shared tables - op.drop_table('users') - op.drop_table('trackers') - # ### end Alembic commands ### diff --git a/migrations/versions/b61e4f6a88cc_del_torrents_info.py b/migrations/versions/b61e4f6a88cc_del_torrents_info.py deleted file mode 100644 index e3bd4de..0000000 --- a/migrations/versions/b61e4f6a88cc_del_torrents_info.py +++ /dev/null @@ -1,57 +0,0 @@ -"""Remove bencoded info dicts from mysql - -Revision ID: b61e4f6a88cc -Revises: cf7bf6d0e6bd -Create Date: 2017-08-29 01:45:08.357936 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql -import sys - -# revision identifiers, used by Alembic. -revision = 'b61e4f6a88cc' -down_revision = 'cf7bf6d0e6bd' -branch_labels = None -depends_on = None - - -def upgrade(): - print("--- WARNING ---") - print("This migration drops the torrent_info tables.") - print("You will lose all of your .torrent files if you have not converted them beforehand.") - print("Use the migration script at utils/infodict_mysql2file.py") - print("Type OKAY and hit Enter to continue, CTRL-C to abort.") - print("--- WARNING ---") - try: - if input() != "OKAY": - sys.exit(1) - except KeyboardInterrupt: - sys.exit(1) - - op.drop_table('sukebei_torrents_info') - op.drop_table('nyaa_torrents_info') - - -def downgrade(): - op.create_table('nyaa_torrents_info', - sa.Column('info_dict', mysql.MEDIUMBLOB(), nullable=True), - sa.Column('torrent_id', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False), - sa.ForeignKeyConstraint(['torrent_id'], ['nyaa_torrents.id'], name='nyaa_torrents_info_ibfk_1', ondelete='CASCADE'), - sa.PrimaryKeyConstraint('torrent_id'), - mysql_collate='utf8_bin', - mysql_default_charset='utf8', - mysql_engine='InnoDB', - mysql_row_format='COMPRESSED' - ) - op.create_table('sukebei_torrents_info', - sa.Column('info_dict', mysql.MEDIUMBLOB(), nullable=True), - sa.Column('torrent_id', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False), - sa.ForeignKeyConstraint(['torrent_id'], ['sukebei_torrents.id'], name='sukebei_torrents_info_ibfk_1', ondelete='CASCADE'), - sa.PrimaryKeyConstraint('torrent_id'), - mysql_collate='utf8_bin', - mysql_default_charset='utf8', - mysql_engine='InnoDB', - mysql_row_format='COMPRESSED' - ) diff --git a/migrations/versions/b79d2fcafd88_comment_text.py b/migrations/versions/b79d2fcafd88_comment_text.py deleted file mode 100644 index ec582ab..0000000 --- a/migrations/versions/b79d2fcafd88_comment_text.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Change comment text field from VARCHAR(255) to mysql.TEXT - -Revision ID: b79d2fcafd88 -Revises: ffd23e570f92 -Create Date: 2017-08-14 18:57:44.165168 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -# revision identifiers, used by Alembic. -revision = 'b79d2fcafd88' -down_revision = 'ffd23e570f92' -branch_labels = None -depends_on = None - -TABLE_PREFIXES = ('nyaa', 'sukebei') - -def upgrade(): - for prefix in TABLE_PREFIXES: - op.alter_column(prefix + '_comments', 'text', - existing_type=mysql.VARCHAR(charset='utf8mb4', collation='utf8mb4_bin', length=255), - type_=mysql.TEXT(collation='utf8mb4_bin'), - existing_nullable=False) - - -def downgrade(): - for prefix in TABLE_PREFIXES: - op.alter_column(prefix + '_comments', 'text', - existing_type=mysql.TEXT(collation='utf8mb4_bin'), - type_=mysql.VARCHAR(charset='utf8mb4', collation='utf8mb4_bin', length=255), - existing_nullable=False) diff --git a/migrations/versions/cf7bf6d0e6bd_add_edited_time_to_comments.py b/migrations/versions/cf7bf6d0e6bd_add_edited_time_to_comments.py deleted file mode 100644 index 11f7ccb..0000000 --- a/migrations/versions/cf7bf6d0e6bd_add_edited_time_to_comments.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Add edited_time to Comments - -Revision ID: cf7bf6d0e6bd -Revises: 500117641608 -Create Date: 2017-10-28 15:32:12.687378 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'cf7bf6d0e6bd' -down_revision = '500117641608' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('nyaa_comments', sa.Column('edited_time', sa.DateTime(), nullable=True)) - op.add_column('sukebei_comments', sa.Column('edited_time', sa.DateTime(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('sukebei_comments', 'edited_time') - op.drop_column('nyaa_comments', 'edited_time') - # ### end Alembic commands ### diff --git a/migrations/versions/d0eeb8049623_add_comments.py b/migrations/versions/d0eeb8049623_add_comments.py deleted file mode 100644 index 47e2a7a..0000000 --- a/migrations/versions/d0eeb8049623_add_comments.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Add comments table. - -Revision ID: d0eeb8049623 -Revises: 3001f79b7722 -Create Date: 2017-05-22 22:58:12.039149 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'd0eeb8049623' -down_revision = '3001f79b7722' -branch_labels = None -depends_on = None - -TABLE_PREFIXES = ('nyaa', 'sukebei') - - -def upgrade(): - for prefix in TABLE_PREFIXES: - op.create_table(prefix + '_comments', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('torrent_id', sa.Integer(), nullable=False), - sa.Column('user_id', sa.Integer(), nullable=True), - sa.Column('created_time', sa.DateTime(), nullable=True), - sa.Column('text', sa.String(length=255, collation='utf8mb4_bin'), nullable=False), - sa.ForeignKeyConstraint(['torrent_id'], [prefix + '_torrents.id'], ondelete='CASCADE'), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='CASCADE'), - sa.PrimaryKeyConstraint('id') - ) - - -def downgrade(): - for prefix in TABLE_PREFIXES: - op.drop_table(prefix + '_comments') diff --git a/migrations/versions/f69d7fec88d6_add_rangebans.py b/migrations/versions/f69d7fec88d6_add_rangebans.py deleted file mode 100644 index 9011744..0000000 --- a/migrations/versions/f69d7fec88d6_add_rangebans.py +++ /dev/null @@ -1,40 +0,0 @@ -"""add rangebans - -Revision ID: f69d7fec88d6 -Revises: 6cc823948c5a -Create Date: 2018-06-01 14:01:49.596007 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'f69d7fec88d6' -down_revision = '6cc823948c5a' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('rangebans', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('cidr_string', sa.String(length=18), nullable=False), - sa.Column('masked_cidr', sa.BigInteger(), nullable=False), - sa.Column('mask', sa.BigInteger(), nullable=False), - sa.Column('enabled', sa.Boolean(), nullable=False), - sa.Column('temp', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_rangebans_mask'), 'rangebans', ['mask'], unique=False) - op.create_index(op.f('ix_rangebans_masked_cidr'), 'rangebans', ['masked_cidr'], unique=False) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_rangebans_masked_cidr'), table_name='rangebans') - op.drop_index(op.f('ix_rangebans_mask'), table_name='rangebans') - op.drop_table('rangebans') - # ### end Alembic commands ### diff --git a/migrations/versions/f703f911d4ae_add_registration_ip.py b/migrations/versions/f703f911d4ae_add_registration_ip.py deleted file mode 100644 index 784415d..0000000 --- a/migrations/versions/f703f911d4ae_add_registration_ip.py +++ /dev/null @@ -1,28 +0,0 @@ -"""add registration IP - -Revision ID: f703f911d4ae -Revises: f69d7fec88d6 -Create Date: 2018-07-09 13:04:50.652781 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'f703f911d4ae' -down_revision = 'f69d7fec88d6' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users', sa.Column('registration_ip', sa.Binary(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('users', 'registration_ip') - # ### end Alembic commands ### diff --git a/migrations/versions/ffd23e570f92_add_is_webseed_to_trackers.py b/migrations/versions/ffd23e570f92_add_is_webseed_to_trackers.py deleted file mode 100644 index 61db4b7..0000000 --- a/migrations/versions/ffd23e570f92_add_is_webseed_to_trackers.py +++ /dev/null @@ -1,24 +0,0 @@ -"""Add is_webseed to Trackers - -Revision ID: ffd23e570f92 -Revises: 1add911660a6 -Create Date: 2017-07-29 19:03:58.244769 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'ffd23e570f92' -down_revision = '1add911660a6' -branch_labels = None -depends_on = None - - -def upgrade(): - op.add_column('trackers', sa.Column('is_webseed', sa.Boolean(), nullable=False)) - - -def downgrade(): - op.drop_column('trackers', 'is_webseed') diff --git a/nyaa/__init__.py b/nyaa/__init__.py index e62ec22..e6c249d 100644 --- a/nyaa/__init__.py +++ b/nyaa/__init__.py @@ -26,7 +26,7 @@ def create_app(config: Any) -> Flask: app.config.from_object(config) # Session cookie configuration - app.config['SESSION_COOKIE_NAME'] = 'nyaav3_session' + app.config['SESSION_COOKIE_NAME'] = 'synthoria_session' app.config['SESSION_COOKIE_SECURE'] = True app.config['SESSION_COOKIE_HTTPONLY'] = True app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' diff --git a/nyaa/static/css/main.css b/nyaa/static/css/main.css index 0ecd081..73f56f6 100644 --- a/nyaa/static/css/main.css +++ b/nyaa/static/css/main.css @@ -577,7 +577,7 @@ body.dark .panel-deleted > .panel-heading { .torrent-list .hdr-date, .torrent-list .hdr-downloads, - .torrent-list td: nth-of-type(5), + .torrent-list td:nth-of-type(5), .torrent-list td:nth-of-type(8) { display: none; } diff --git a/nyaa/static/favicon.png b/nyaa/static/favicon.png deleted file mode 100644 index 4a14d5f5f5d0e65fb4eaa562f853a82267663847..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2001 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 IM6N<$g4y12Z~y=R literal 3552 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 2796 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 2740 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 2784 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 3421 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/1_6.png b/nyaa/static/img/icons/nyaa/1_6.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 zcmV+t4(;)YP)StO&>uS)ve<0AYj>5AR{$W90N^4L=L-RlQUJ&DC0@ZjPh;=*jPLSYvv5M~MFBAl0-BNIsH z15C~g000{K(ZT*WKal6<?_01!^k@7iDG<<3=fuAC~28EsPoqkpK{9G%|Vj005J}`Hw&=0RYXHq~ibpyyzHQsFW8>#s~laM4*8xut5h5 z!4#~(4xGUqyucR%VFpA%3?#rj5JCpzfE)^;7?wd9RKPme1hudO8lVxH;SjXJF*pt9 z;1XPc>u?taU>Kgl7`%oF1VP9M6Ja4bh!J9r*dopd7nzO(B4J20l7OTj>4+3jBE`sZ zqynizYLQ(?Bl0bB6giDtK>Co|$RIL`{EECsF_eL_Q3KQhbwIhO9~z3rpmWi5G!I>X zmZEFX8nhlgfVQHi(M#xcbO3#dj$?q)F%D*o*1Pf{>6$SWH+$s3q(pv=X`qR|$iJF~TPzlc-O$C3+J1 z#CT#lv5;6stS0Uu9wDA3UMCI{Uz12A4#|?_P6{CkNG+sOq(0IRX`DyT~9-sA|ffUF>wk++Z!kWZ5P$;0Hg6gtI-;!FvmBvPc55=u2?Kjj3apE5$3psG>L zsh-pbs)#zDT1jo7c2F-(3)vyY4>O^>2$gY-Gd%Qm(Z8e zYv>2*=jns=cMJ`N4THx>VkjAF8G9M07`GWOnM|ey)0dgZR4~^v8<}UA514ONSSt1^ zd=-((5|uiYR+WC0=c-gyb5%dpd8!Lkt5pxHURHgkMpd&=fR^vEcAI*_=wwAG2sV%zY%w@v@XU~7=xdm1xY6*0;iwVIXu6TaXrs|dqbIl~ z?uTdNHFy_3W~^@g_pF#!K2~{F^;XxcN!DEJEbDF7 zS8PxlSDOr*I-AS3sI8l=#CDr)-xT5$k15hA^;2%zG3@;83hbKf2JJcaVfH2VZT8O{ z%p4LO);n}Nd~$Sk%yw*Wyz8XlG{dRHsl(}4XB%gsbDi@w7p6;)%MzD%mlsoQr;4X; zpL)xc%+^yMd)ZNTI#eJ*$O)i@o$z8)e??LqN_gLa_%;TM>o2SC_ zkmoO6c3xRt`@J4dvz#WL)-Y|z+r(Soy~}%GIzByR`p)SCKE^%*pL(B%zNWq+-#xw~ ze%5}Oeh2)X`#bu}{g3#+;d$~F@lFL`0l@*~0lk45fwKc^10MvL1f>Tx1&sx}1}_Xg z6+#RN4Ot&@lW)Km@*DYMGu&q^n$Z=?2%QyL8~QNJCQKgI5srq>2;UHXZ>IT7>CCnW zh~P(Th`1kV8JQRPeH1AwGO8}>QM6NZadh`A)~w`N`)9q5@sFvDxjWlxwsLl7tZHmh zY-8-3xPZ8-xPf?w_(k!T5_A(J3GIpG#Ms0=iQ{tu=WLoYoaCBRmULsT<=mpV7v|~C z%bs^USv6UZd^m-e5|^?+<%1wXP%juy<)>~<9TW0|n}ttBzM_qyQL(qUN<5P0omQ3h zINdvaL;7fjPeygdGYL;pD|wL_lDQ-EO;$wK-mK5raoH_7l$?~Dqf!lNmb5F^Ft;eT zPi8AClMUo~=55LwlZVRpxOiFd;3B_8yA~shQx|tGF!j;$toK>JuS&gYLDkTP@C~gS@r~shUu{a>bfJ1` z^^VQ7&C1OKHDNXFTgC{M|V%fo{xK_dk6MK@9S!GZ*1JJzrV5xZBjOk z9!NTH<(q(S+MDf~ceQX@Dh|Ry<-sT4rhI$jQ0Sq~!`#Eo-%($2E^vo}is5J@NVEf|KK?WT&2;PCq@=ncR8z zO#GQ^T~S@VXG71PKNocFOt)Y6$@AXlk6rM*aP%VgV%sIRORYVwJx6|U{ozQjTW{-S z_si{9Jg#)~P3t?+@6&(!YQWWV*Z9{iU7vZq@5byKw{9lg9JnRA_4s!7?H6|n?o8ZW zdXIRo{Jz@#>IeD{>VLHUv1Pz*;P_y`V9&!@5AO~Mho1hF|I>%z(nrik)gwkDjgOrl z9~%uCz4Bzvli{bbrxVZ0epdf^>vOB;-~HnIOV3#R*zgPai_gEVd8zYq@2jb=I>#f& zAH2?aJ@Kaet-oMPpjZGN00m%7M1Ir75{xk$fonhxxB~P7c)su70kXhFpvR7%2gZOr@K8h+ zS{`v5z!=jDTmlAB@-|u1A}|RQydVg|!F|9DJNOLX*}-$b2%4FXMP#v63rGXTm>%Ff znrYX8ZPxS`m_n0kSVX=7ED;!+WH*|XgTQgeGz$!)WIh*>|Nq>9FvfVmDU`IEz%Ix9 z5?yamL_Wv=Tb97sA9LSS%os;&X5!4Kk?E7@%NY@opG{gqMYM!K7gcIg zDA@DBlXz{iwe}oJTDe-A2ky1H*0!8L7YTO9A^SUHpK`l>S%KRsq)MQRD*DVt+v&}9 zX$KHPV4qrJ+6HNV!r_@a2b^$B;hDQ=e`l#I*w@x4TyNJWfnZ;~n}{)H3%cm0^c@rQ z={jG=Sb^J*W=t!DbV;X}P88CPz|EnHO5-ROW_o8F|G{mcA9Z89TWvaKE4_Uj(LB*`?BHl*kOQ(=jKzR5HfwptR_Q$GkbT=;m2l z*P4Uqrda)2)A#+`M18vTc5o#^E`qeSO6wahQ~!@K8>K;6_o`0 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/1_7.png b/nyaa/static/img/icons/nyaa/1_7.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/2_1.png b/nyaa/static/img/icons/nyaa/2_1.png index 3aef4ac4e6aa0ec520cde1bed80fd49a16fde1fd..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa 100644 GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 2499 zcmV;!2|V_RP)0~~g;cQ?XSG~SZ*CT<1=TDl{F&HqrCFX!c^2~7Cd#V~5he6HN;7cg zksVLskDUD;(HVp$G5CA-ew;&}e?cLhUAM=+!HMs1^KZ0{!)inC6WCiRZ5E>TqV}No z;%qfnL25dBM-|yASS!dcB{7#=BQoY0QcdXH=v`!HlAnXqL}r%wFK=U{QF>D=IQJut ze+%=~FCfIM{OkA;oj;@Vdt~=wokX8Q8FY}_E?l2Qb;{M+XPSc8RMZLdG4xSV3s6Vo zCrB+MyMWA6)N$#uPod9H*(L)j>xj*yY;5mjU?#;wq_`8Q7P&`a( zJ#ka^Tgh(0x0ovv7+A(oD;IuF*LcjgyBIx{D9;0`hWjScGoHMkauh3twkZx$9-(jn zr-&}2%IG3RlYB>z+CXL_Du4=(S!J@B>~1o<=<1NPdvS7MLt-$B;bgmS2ajA0?=e)1iZeK^Ky2~|L4DG#D8F0q&JZes6T^<9(&&Qd_ApjI%8(v( z9=ji%6?=iZ;jPS5YWZ_2wZx01GrsaLGZ-&*P&J%tCv^--tRE+S&u|LsDk_J{BZd>$ zw^3p7Xn+#~88ed_%{aG0KI54HpjG|H1VuKkbsUn;Q)7 z>s>MDEB7f=Cj8Rl?x&2A`luSNT&B{C7!IL=l3_K1a{(b~@vqZ}|2R%R(&a;EklqB& z4Y94Wlv*e>35r`NwV?|#Udat2Gvu2opOU>$C6O8#mfx;$;dSHx`Nzz?m@r{N^yH(m zn7T0D-0>c1ocd$0w?3+d^)0a^XKWN5L08ZtVo692S#eUjL`OsF{y@RtpiYDCuR4B&*t zze*uy3Sv7um;8JREtK1^j>$+Th1D-p>4G4&j?5O4tyFxJuVeYi-g={#D^tv)lUB<; zGUIOCC%SIk8ZlvrX|8(u%MZMVQ|;vY$epEdn$jg~pCr)kmW38CF*1?BU-AEo$`u?R zrPHF@x1=I;RtiCdq&}qthS0L-p>AP^Wh%!gIjQ9EGW?T?ucOdKp_lw6`a0jz*w|?9 zK$9`=ZZu{*ZivV0h;@1&xJ$cdRJN1Me)6ZpwhB|&jZQN%iSl782MPX=;AF{g>8$Y} zZq*%}5tI*g4b_M0LePU;Z&1EL{si^_a%&`stS2y+*gE=uNy$g%G;?SFAX*cyd6ygF z@j7Ci-Upt;?o&vhmDmpQhshqKZ1T`9=dFJVc9QI411O`1W!ulTW8FZut{CY9B(~H0O$MjSHGfSuTmRi~S7}PoYr4eTw59~^6OB?U zx+QIhThfM@=CWyDe&CbVP!q}X#1CMl<&V4K2@0LqSIKOqa1=XD_lHTohwyKab1O;N zcuPzE#dApjkQYr397HK81mGn;X?ZV^R z*|PAX@;EW+Gd=Sk^(|uSQ%_bOKc>EK`*h)>!zhPlzvJ(J`^#u?`oDhclHD`LU7q*E z;tADb$q>`5_t#SYa#V%E)#L{W?;*E`%roSVk=c$Qk1Lru-1*B->Xg9qPgw!HM z`lQ?!>2}H&(DI-{U^$T%Qd`LFBic%G3&nQQ&y4zGbq*JQA>{eQXu}R8CaXD05rW&u zZ6mab+)e@uh|a-o$2pC8|LFNoE zBi2lDAAu#+7ZEoXaZC8~j;i6F38)l^CouFB&Pilv8bA+^ z!iZdJ6?*`ykJ51>D<~et=^?Qi-+0-sQY~cH<8LIsl42XzCRSfHUHT*4e-QFKW7MnZ z&}O3B7+EcwO?WG*0}M~)P9yz)#6OARPL#Z+M9?h|G8Ud*I81UK&M8KwQfk98`}1sk zf2RMhBo>ibCcj{|nbHQj{wi-0&-{X$b2;)Q&i_uD&mUa3ue$$g`8QrJ#gsy!UIqXF N002ovPDHLkV1ig<*UbO` diff --git a/nyaa/static/img/icons/nyaa/2_2.png b/nyaa/static/img/icons/nyaa/2_2.png index a45d97bdfbb9d2398feb85582d4906d2bf714298..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa 100644 GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 3074 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/2_4.png b/nyaa/static/img/icons/nyaa/2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 zcmV+t4(;)YP)StO&>uS)ve<0AYj>5AR{$W90N^4L=L-RlQUJ&DC0@ZjPh;=*jPLSYvv5M~MFBAl0-BNIsH z15C~g000{K(ZT*WKal6<?_01!^k@7iDG<<3=fuAC~28EsPoqkpK{9G%|Vj005J}`Hw&=0RYXHq~ibpyyzHQsFW8>#s~laM4*8xut5h5 z!4#~(4xGUqyucR%VFpA%3?#rj5JCpzfE)^;7?wd9RKPme1hudO8lVxH;SjXJF*pt9 z;1XPc>u?taU>Kgl7`%oF1VP9M6Ja4bh!J9r*dopd7nzO(B4J20l7OTj>4+3jBE`sZ zqynizYLQ(?Bl0bB6giDtK>Co|$RIL`{EECsF_eL_Q3KQhbwIhO9~z3rpmWi5G!I>X zmZEFX8nhlgfVQHi(M#xcbO3#dj$?q)F%D*o*1Pf{>6$SWH+$s3q(pv=X`qR|$iJF~TPzlc-O$C3+J1 z#CT#lv5;6stS0Uu9wDA3UMCI{Uz12A4#|?_P6{CkNG+sOq(0IRX`DyT~9-sA|ffUF>wk++Z!kWZ5P$;0Hg6gtI-;!FvmBvPc55=u2?Kjj3apE5$3psG>L zsh-pbs)#zDT1jo7c2F-(3)vyY4>O^>2$gY-Gd%Qm(Z8e zYv>2*=jns=cMJ`N4THx>VkjAF8G9M07`GWOnM|ey)0dgZR4~^v8<}UA514ONSSt1^ zd=-((5|uiYR+WC0=c-gyb5%dpd8!Lkt5pxHURHgkMpd&=fR^vEcAI*_=wwAG2sV%zY%w@v@XU~7=xdm1xY6*0;iwVIXu6TaXrs|dqbIl~ z?uTdNHFy_3W~^@g_pF#!K2~{F^;XxcN!DEJEbDF7 zS8PxlSDOr*I-AS3sI8l=#CDr)-xT5$k15hA^;2%zG3@;83hbKf2JJcaVfH2VZT8O{ z%p4LO);n}Nd~$Sk%yw*Wyz8XlG{dRHsl(}4XB%gsbDi@w7p6;)%MzD%mlsoQr;4X; zpL)xc%+^yMd)ZNTI#eJ*$O)i@o$z8)e??LqN_gLa_%;TM>o2SC_ zkmoO6c3xRt`@J4dvz#WL)-Y|z+r(Soy~}%GIzByR`p)SCKE^%*pL(B%zNWq+-#xw~ ze%5}Oeh2)X`#bu}{g3#+;d$~F@lFL`0l@*~0lk45fwKc^10MvL1f>Tx1&sx}1}_Xg z6+#RN4Ot&@lW)Km@*DYMGu&q^n$Z=?2%QyL8~QNJCQKgI5srq>2;UHXZ>IT7>CCnW zh~P(Th`1kV8JQRPeH1AwGO8}>QM6NZadh`A)~w`N`)9q5@sFvDxjWlxwsLl7tZHmh zY-8-3xPZ8-xPf?w_(k!T5_A(J3GIpG#Ms0=iQ{tu=WLoYoaCBRmULsT<=mpV7v|~C z%bs^USv6UZd^m-e5|^?+<%1wXP%juy<)>~<9TW0|n}ttBzM_qyQL(qUN<5P0omQ3h zINdvaL;7fjPeygdGYL;pD|wL_lDQ-EO;$wK-mK5raoH_7l$?~Dqf!lNmb5F^Ft;eT zPi8AClMUo~=55LwlZVRpxOiFd;3B_8yA~shQx|tGF!j;$toK>JuS&gYLDkTP@C~gS@r~shUu{a>bfJ1` z^^VQ7&C1OKHDNXFTgC{M|V%fo{xK_dk6MK@9S!GZ*1JJzrV5xZBjOk z9!NTH<(q(S+MDf~ceQX@Dh|Ry<-sT4rhI$jQ0Sq~!`#Eo-%($2E^vo}is5J@NVEf|KK?WT&2;PCq@=ncR8z zO#GQ^T~S@VXG71PKNocFOt)Y6$@AXlk6rM*aP%VgV%sIRORYVwJx6|U{ozQjTW{-S z_si{9Jg#)~P3t?+@6&(!YQWWV*Z9{iU7vZq@5byKw{9lg9JnRA_4s!7?H6|n?o8ZW zdXIRo{Jz@#>IeD{>VLHUv1Pz*;P_y`V9&!@5AO~Mho1hF|I>%z(nrik)gwkDjgOrl z9~%uCz4Bzvli{bbrxVZ0epdf^>vOB;-~HnIOV3#R*zgPai_gEVd8zYq@2jb=I>#f& zAH2?aJ@Kaet-oMPpjZGN00m%7M1Ir75{xk$fonhxxB~P7c)su70kXhFpvR7%2gZOr@K8h+ zS{`v5z!=jDTmlAB@-|u1A}|RQydVg|!F|9DJNOLX*}-$b2%4FXMP#v63rGXTm>%Ff znrYX8ZPxS`m_n0kSVX=7ED;!+WH*|XgTQgeGz$!)WIh*>|Nq>9FvfVmDU`IEz%Ix9 z5?yamL_Wv=Tb97sA9LSS%os;&X5!4Kk?E7@%NY@opG{gqMYM!K7gcIg zDA@DBlXz{iwe}oJTDe-A2ky1H*0!8L7YTO9A^SUHpK`l>S%KRsq)MQRD*DVt+v&}9 zX$KHPV4qrJ+6HNV!r_@a2b^$B;hDQ=e`l#I*w@x4TyNJWfnZ;~n}{)H3%cm0^c@rQ z={jG=Sb^J*W=t!DbV;X}P88CPz|EnHO5-ROW_o8F|G{mcA9Z89TWvaKE4_Uj(LB*`?BHl*kOQ(=jKzR5HfwptR_Q$GkbT=;m2l z*P4Uqrda)2)A#+`M18vTc5o#^E`qeSO6wahQ~!@K8>K;6_o`0 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/2_5.png b/nyaa/static/img/icons/nyaa/2_5.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/2_6.png b/nyaa/static/img/icons/nyaa/2_6.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/3_1.png b/nyaa/static/img/icons/nyaa/3_1.png index d78a9108fb44dd678dcbd0f743f95431d8848152..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa 100644 GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 2349 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# delta 2176 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 4154 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 Ef-CY8A^-pY diff --git a/nyaa/static/img/icons/nyaa/3_4.png b/nyaa/static/img/icons/nyaa/3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/4_1.png b/nyaa/static/img/icons/nyaa/4_1.png index 54bafbc2ace75532ca87307a9bd016cc7835e7be..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa 100644 GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 2965 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 2847 zcmV+)3*hvLP)KJE~YhVl$x~P;Wx)?LV?aQmW7Hj;uVqXn}RC^ z&@BWC+eRyf>*=((u4r~75rmO*^i#uAOF?54mY58w$^SJD10!Gou8~}A3?Tv>I+EBY z%`^>-Cgp;Zk}EnDQYWfx3#DbFjsxHa5Cg(UtBW$Ud?rr7tEHnvWC*q)kdqai+Mtkm zB!-e`&T>01{y#~uj|E~;D?}j*$9IS=D)mZJDd2}*}CTr&u8H#aL4mZSIX)F;?Wy* z^KK2rB1+{&nn2Hv)I=+KCD1eKMwTvxR~Mo_{vAjKYlZIvqR>{mSM@$fB25RiA zq9A~|Z(elJK?ecnorl@pS8|!u&C~wEgI0`@XYO$a`#Q@crP(C5K_TZQ?=X;sFa|WP zZPes19enWN2w1ny)q{^asw#<{vv)Z9u<6+6JKy}~n)8o}W0Nku`n)|8i~lac!&rb7 zq7(tRF|Njs>2gHp#EQ7Ic^5k1ZLj6!&4dcTNs|~{OFDFqN9{`Vp9f%1Xio0g9X&tM zd7$phuSKux*GYSEbE$rnW$g~l#6qPzn`+#+arMURqJA7_c7JnmE1m#R z!EE)SSx4-#VBz0cJGnX_y?Kc#R@EqLutZxK06D%{xZ^cm&9`eprB z@8GZA#XfK4@8`4PPx;dO`QrOoGLJ7TV8vqoejZ}OsMC$3zw>iFp=oNz+MoN~%3 z`40J|vpKWnvesL7quAlmw@YAthHHb--SS9Jlg& zX`J=UFPD$gIaiG#36jUG^_+9g$q&Eehh*g+1@HR-zVkl5_db?>h$9wp(8oCVTXl~-m>i5_zJ_P4*C@P9Few8OM%(}stK(>VVZIAgN- z-$c3&d00SKg&;)5BG|Ps6||AZVh5IuTcCR!l`_Rdn+xFkJ_s&-xCaDzvcJDSi??mt zmNm_qHEUpCK#~f1_Xvpuz|^Tzzwm`GEMC0$si&Sw`Et3O@7caea+II`^rw@7DS7?% z*8_X)S#a8ZVXpZqtG*~@(>K}lbtxOa#t**DkG{)q4&{=S+`NVde#0Xd^Z3|x-O`4P zOw%dPU$Jp|dgX4v{q_^bkUXwmzdmXG!4H10=CscpJC?UeYr-V=Ik|q>@Z_#FEL_4t^6NEC--c!7Ylt zrGnV23?F#I)$7*rDs+|htP_?GzvJpCAnWjsNmozl+_ukK*Y&;pxkn#;-O{B?femZV ziH9y*w{G*ajwg24-n#GphXHHWtO4FM<&H^Rul)SSuT&co6p=BlrArUVT7hJSB$jz{ zNLz(O;)QR#`oZTu`R#9yt+nplg4>qTsh~h4wo0wTx3CJrM4>1Q1N;Uf z{V0vGXvI>a$ZNaf4C{ zdp*BR@K9Ck)e038r>vpVrM44eXhoP3ScFRKA{410Qblu!j%l{!r0RpnJQlu3)0eRZ zT3`ZV$ZsyWoWOC%9hb#zq#%j2AUG+ z@7X1^q3Hu{f~yV0H%V!!;|OgS8lhUlYsuE#GHwUPCq%RXp$`xRSOuvS$iSFL$r^SA z%cVL*7-2LrME$$|infuqskg#XN~Y3So4maWuGMMDrqK#Z6Nt%l zSE+eK4N5*86DT&YiUcv1O(cgR@}vYPg=$G1Ym@^-{dpkR49B?{j* zv-j~WOEU5!Z#gw{@{QAalWU*8!;%ikl}2j3 z*aaL2LqG&aF&Ls2glHLwH^T5vTE0jf9HQZg;BqHU44~q==Xu!+=72E({}j1)?b=+c z1eUIs-RF}!C6gepC*K65o%b%d5z~@QBc8+n8a59Rhd362PjQGsCxsHC(LgK#3Z)4U zf&}$Cd{+`4N^P0tH%Z zB+|kZZCsnK60@c6`w4(`tl+EkM5sZ{sDGI%I{|Js5<}v002ovPDHLkV1o2FXKnxh diff --git a/nyaa/static/img/icons/nyaa/4_3.png b/nyaa/static/img/icons/nyaa/4_3.png index 1637f818236ade87b1082a60ed061b11f8a72aef..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa 100644 GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 2800 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 3138 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 diff --git a/nyaa/static/img/icons/nyaa/4_5.png b/nyaa/static/img/icons/nyaa/4_5.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/4_6.png b/nyaa/static/img/icons/nyaa/4_6.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/5_1.png b/nyaa/static/img/icons/nyaa/5_1.png index 8ac0fe68ccb715353aea6a02bc94f9d31b6da809..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa 100644 GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 3962 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 U)c`crEC2ui07*qoM6N<$f_)gtF8}}l diff --git a/nyaa/static/img/icons/nyaa/5_2.png b/nyaa/static/img/icons/nyaa/5_2.png index 0a6ba5c0056ade8bdd6146341a018f1cb5424c97..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa 100644 GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 3982 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 diff --git a/nyaa/static/img/icons/nyaa/6_1.png b/nyaa/static/img/icons/nyaa/6_1.png index 79fe8e50174f56e4b1be1e8c04b6d9a42aceeec0..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa 100644 GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 3316 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/6_2.png b/nyaa/static/img/icons/nyaa/6_2.png deleted file mode 100644 index 6ceba49db8b267adb902211f33ae02c20b167c7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3268 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/7_1.png b/nyaa/static/img/icons/nyaa/7_1.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/7_2.png b/nyaa/static/img/icons/nyaa/7_2.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/7_3.png b/nyaa/static/img/icons/nyaa/7_3.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/7_4.png b/nyaa/static/img/icons/nyaa/7_4.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/8_1.png b/nyaa/static/img/icons/nyaa/8_1.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/8_2.png b/nyaa/static/img/icons/nyaa/8_2.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/8_3.png b/nyaa/static/img/icons/nyaa/8_3.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/8_4.png b/nyaa/static/img/icons/nyaa/8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/8_5.png b/nyaa/static/img/icons/nyaa/8_5.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 zcmV+t4(;)YP)StO&>uS)ve<0AYj>5AR{$W90N^4L=L-RlQUJ&DC0@ZjPh;=*jPLSYvv5M~MFBAl0-BNIsH z15C~g000{K(ZT*WKal6<?_01!^k@7iDG<<3=fuAC~28EsPoqkpK{9G%|Vj005J}`Hw&=0RYXHq~ibpyyzHQsFW8>#s~laM4*8xut5h5 z!4#~(4xGUqyucR%VFpA%3?#rj5JCpzfE)^;7?wd9RKPme1hudO8lVxH;SjXJF*pt9 z;1XPc>u?taU>Kgl7`%oF1VP9M6Ja4bh!J9r*dopd7nzO(B4J20l7OTj>4+3jBE`sZ zqynizYLQ(?Bl0bB6giDtK>Co|$RIL`{EECsF_eL_Q3KQhbwIhO9~z3rpmWi5G!I>X zmZEFX8nhlgfVQHi(M#xcbO3#dj$?q)F%D*o*1Pf{>6$SWH+$s3q(pv=X`qR|$iJF~TPzlc-O$C3+J1 z#CT#lv5;6stS0Uu9wDA3UMCI{Uz12A4#|?_P6{CkNG+sOq(0IRX`DyT~9-sA|ffUF>wk++Z!kWZ5P$;0Hg6gtI-;!FvmBvPc55=u2?Kjj3apE5$3psG>L zsh-pbs)#zDT1jo7c2F-(3)vyY4>O^>2$gY-Gd%Qm(Z8e zYv>2*=jns=cMJ`N4THx>VkjAF8G9M07`GWOnM|ey)0dgZR4~^v8<}UA514ONSSt1^ zd=-((5|uiYR+WC0=c-gyb5%dpd8!Lkt5pxHURHgkMpd&=fR^vEcAI*_=wwAG2sV%zY%w@v@XU~7=xdm1xY6*0;iwVIXu6TaXrs|dqbIl~ z?uTdNHFy_3W~^@g_pF#!K2~{F^;XxcN!DEJEbDF7 zS8PxlSDOr*I-AS3sI8l=#CDr)-xT5$k15hA^;2%zG3@;83hbKf2JJcaVfH2VZT8O{ z%p4LO);n}Nd~$Sk%yw*Wyz8XlG{dRHsl(}4XB%gsbDi@w7p6;)%MzD%mlsoQr;4X; zpL)xc%+^yMd)ZNTI#eJ*$O)i@o$z8)e??LqN_gLa_%;TM>o2SC_ zkmoO6c3xRt`@J4dvz#WL)-Y|z+r(Soy~}%GIzByR`p)SCKE^%*pL(B%zNWq+-#xw~ ze%5}Oeh2)X`#bu}{g3#+;d$~F@lFL`0l@*~0lk45fwKc^10MvL1f>Tx1&sx}1}_Xg z6+#RN4Ot&@lW)Km@*DYMGu&q^n$Z=?2%QyL8~QNJCQKgI5srq>2;UHXZ>IT7>CCnW zh~P(Th`1kV8JQRPeH1AwGO8}>QM6NZadh`A)~w`N`)9q5@sFvDxjWlxwsLl7tZHmh zY-8-3xPZ8-xPf?w_(k!T5_A(J3GIpG#Ms0=iQ{tu=WLoYoaCBRmULsT<=mpV7v|~C z%bs^USv6UZd^m-e5|^?+<%1wXP%juy<)>~<9TW0|n}ttBzM_qyQL(qUN<5P0omQ3h zINdvaL;7fjPeygdGYL;pD|wL_lDQ-EO;$wK-mK5raoH_7l$?~Dqf!lNmb5F^Ft;eT zPi8AClMUo~=55LwlZVRpxOiFd;3B_8yA~shQx|tGF!j;$toK>JuS&gYLDkTP@C~gS@r~shUu{a>bfJ1` z^^VQ7&C1OKHDNXFTgC{M|V%fo{xK_dk6MK@9S!GZ*1JJzrV5xZBjOk z9!NTH<(q(S+MDf~ceQX@Dh|Ry<-sT4rhI$jQ0Sq~!`#Eo-%($2E^vo}is5J@NVEf|KK?WT&2;PCq@=ncR8z zO#GQ^T~S@VXG71PKNocFOt)Y6$@AXlk6rM*aP%VgV%sIRORYVwJx6|U{ozQjTW{-S z_si{9Jg#)~P3t?+@6&(!YQWWV*Z9{iU7vZq@5byKw{9lg9JnRA_4s!7?H6|n?o8ZW zdXIRo{Jz@#>IeD{>VLHUv1Pz*;P_y`V9&!@5AO~Mho1hF|I>%z(nrik)gwkDjgOrl z9~%uCz4Bzvli{bbrxVZ0epdf^>vOB;-~HnIOV3#R*zgPai_gEVd8zYq@2jb=I>#f& zAH2?aJ@Kaet-oMPpjZGN00m%7M1Ir75{xk$fonhxxB~P7c)su70kXhFpvR7%2gZOr@K8h+ zS{`v5z!=jDTmlAB@-|u1A}|RQydVg|!F|9DJNOLX*}-$b2%4FXMP#v63rGXTm>%Ff znrYX8ZPxS`m_n0kSVX=7ED;!+WH*|XgTQgeGz$!)WIh*>|Nq>9FvfVmDU`IEz%Ix9 z5?yamL_Wv=Tb97sA9LSS%os;&X5!4Kk?E7@%NY@opG{gqMYM!K7gcIg zDA@DBlXz{iwe}oJTDe-A2ky1H*0!8L7YTO9A^SUHpK`l>S%KRsq)MQRD*DVt+v&}9 zX$KHPV4qrJ+6HNV!r_@a2b^$B;hDQ=e`l#I*w@x4TyNJWfnZ;~n}{)H3%cm0^c@rQ z={jG=Sb^J*W=t!DbV;X}P88CPz|EnHO5-ROW_o8F|G{mcA9Z89TWvaKE4_Uj(LB*`?BHl*kOQ(=jKzR5HfwptR_Q$GkbT=;m2l z*P4Uqrda)2)A#+`M18vTc5o#^E`qeSO6wahQ~!@K8>K;6_o`0 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/nyaa/8_6.png b/nyaa/static/img/icons/nyaa/8_6.png new file mode 100644 index 0000000000000000000000000000000000000000..997e51763c1b19e36d3a83b0f3cc360cbfe4e4fa GIT binary patch literal 3602 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 YKjo>%JKy9)-2eap07*qoM6N<$f&r+@=>Px# literal 0 HcmV?d00001 diff --git a/nyaa/static/img/icons/sukebei/1_1.png b/nyaa/static/img/icons/sukebei/1_1.png deleted file mode 100644 index 4558da5f8e92a84cfe3bae97dfffc90b787ecd82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3474 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 A6951J diff --git a/nyaa/static/img/icons/sukebei/1_2.png b/nyaa/static/img/icons/sukebei/1_2.png deleted file mode 100644 index 4af134578708345c17755ba22987dd7061052799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3853 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 diff --git a/nyaa/static/img/icons/sukebei/1_5.png b/nyaa/static/img/icons/sukebei/1_5.png deleted file mode 100644 index b2a7326279a369281530b73607e1d561a2b09dd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3602 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 ZUjgvkyU0J<>VyCQ002ovPDHLkV1f-1I;8*r diff --git a/nyaa/static/img/icons/sukebei/2_2.png b/nyaa/static/img/icons/sukebei/2_2.png deleted file mode 100644 index 1cea34f7930f854688310ed132bfbcab61ad931a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3442 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 UzY&#U;s5{u07*qoM6N<$f;NrDMF0Q* diff --git a/nyaa/static/pinned-tab.svg b/nyaa/static/pinned-tab.svg deleted file mode 100644 index 28034c3..0000000 --- a/nyaa/static/pinned-tab.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/nyaa/static/search-sukebei.xml b/nyaa/static/search-sukebei.xml deleted file mode 100644 index f2d7dad..0000000 --- a/nyaa/static/search-sukebei.xml +++ /dev/null @@ -1,14 +0,0 @@ - -Sukebei (Nyaa.si) - -Search torrents on Sukebei (Nyaa.si). -UTF-8 -data:image/png;base64,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 - - - - - - -https://sukebei.nyaa.si/ - diff --git a/nyaa/static/search.xml b/nyaa/static/search.xml index 763d2ab..c4bb7fe 100644 --- a/nyaa/static/search.xml +++ b/nyaa/static/search.xml @@ -1,14 +1,14 @@ Nyaa.si -Search torrents on Nyaa.si. +Search torrents on Synthoria Archive. UTF-8 data:image/png;base64,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 - + - -https://nyaa.si/ + +https://archive.synthoria.moe/ \ No newline at end of file diff --git a/nyaa/templates/help.html b/nyaa/templates/help.html index 4cc8266..04976aa 100644 --- a/nyaa/templates/help.html +++ b/nyaa/templates/help.html @@ -10,20 +10,20 @@ {{ linkable_header("Torrent Colors", "torrent-colors") }}
-
- Green entries (trusted) are: + Green (trusted) entries are:
    -
  • Torrents uploaded by trusted users.
  • +
  • Torrents that have been verified by the archive team or trusted users.
- Red entries (remake) are torrents that match any of the following: + Red (repack) entries are torrents that match any of the following:
    -
  • Reencode of original release.
  • -
  • Remux of another uploader's original release for hardsubbing and/or fixing purposes.
  • -
  • Reupload of original release using non-original file names.
  • -
  • Reupload of original release with missing and/or unrelated additional files.
  • +
  • Repackage or recompress of original media.
  • +
  • Unofficial edit, reencode or remaster of original media.
  • +
  • Reupload of original media with missing and/or unrelated additional files.
- Orange entries are: + Orange (collection) entries are:
    -
  • Batches of completed series.
  • +
  • Torrents that represent a larger collection or bundle, such as a series of related files, a collection of works by a single author, or a curated selection of files on a specific topic.
  • +
  • Torrents that provide supplementary materials or resources related to other files in the archive, such as documentation, tutorials, or additional data.
Grey entries are:
    @@ -33,7 +33,7 @@ {{ linkable_header("Using the Search Engine", "using-search") }}
    - Search results can be filtered by category, remake, trusted, and users. + Search results can be filtered by category, edited, trusted, and users. The results can be further sorted by size, date, seeders, leechers, completed count, and comment count.
    @@ -88,8 +88,9 @@ {{ linkable_header("Changing Your User's Avatar", "avatar") }}
    - The site uses the Gravatar service for user avatars. - Check out Gravatar's help section for more detailed instructions. + The site uses the Gravatar service for user avatars. + Check out Gravatar's help section for more detailed instructions. + Gravatar is disabled until further notice..
    {{ linkable_header("Deleting Your Torrent", "delete") }} @@ -102,134 +103,17 @@ {{ linkable_header("Getting Trusted Status", "trusted") }}
    - At the moment we have no established process for granting trusted status to users - who did not previously have it. If and when we establish such a process it will be announced. + At the moment we have no established process for granting trusted status to users. + Please contact the team if you'd like to apply as a trusted user.
    -{{ linkable_header("IRC Help Channel Policies", "irchelp") }}
    -

    Our IRC help channel is at Rizon #nyaa-help. A webchat link - pre-filled with our channel is available right here.

    - - Read this to avoid getting banned: -
      -
    • The IRC channel is for site support only.
    • -
    • XDCC, similar services, and their triggers are not allowed.
    • -
    • Do not idle if you do not need site support unless you have voice/+ access, you may be removed otherwise
    • -
    • We do not know when A or B will be released, if it's authentic, or anything about a particular release. Do not ask.
    • -
    • Requests are not allowed. We only manage the site; we do not necessarily have the material you want on hand.
    • -
    • Use English only. Even though we aren't all from English-speaking countries, we need level ground to communicate on.
    • -
    • Do NOT under any circumstances send private messages to the staff. Ask your question in the channel on joining and wait; a staff member will respond in due time.
    • -
    - - Keep these things in mind when asking for help: -
      -
    • We are not interested in your user name. Paste a link to your account if you want us to do something with it.
    • -
    • Provide as many details as possible. If you are having trouble submitting any kind of entry, we want to know everything about you and what (except any passwords) you supply to the form in question.
    • -
    +

    Copyright infringement

    +

    If you are a copyright holder and believe that your work is being hosted on this platform + without your permission, please contact us at pbagnpg@flagubevn.zbr (ROT13 encoded). We take copyright infringement seriously and will + promptly remove any infringing content upon receipt of a valid takedown notice. Please provide us with + sufficient information to identify the copyrighted work, such as the title, description, and URL of the infringing + content, as well as proof of your ownership or rights to the work. We will respond to all valid takedown notices and work + with you to resolve the issue promptly.

    - -{#
    -

    Help

    -

    The search engine is located at the top right, and it allows users to search through the torrent titles available on the site. Results matching either word A or B can be included by typing a vertical bar between them (|). Results matching a certain word can be excluded by prefixing that word with a hyphen-minus (-). Phrases can be matched by surrounding them with double-quotes (). Search results can be filtered by category, remake, trusted, and/or A+ status, and then narrowed down further by age and size ranges as well as excluding specific users. Sorting can be done in ascending or descending order by date, amount of seeders/leechers/downloads, size, or name. The search engine adapts to the current view and makes it possible to search for specific torrents in a specific subcategory from a specific user.

    -

    Blue entries:

    -
      -
    • -

      Torrents marked as A+ quality are blue in the torrent lists.

      -
    • -
    • -

      These are exclusive torrents picked by us.

      -
    • -
    • -

      They represent the best available version of this content.

      -
    • -
    • -

      There will be no duplicates.

      -
    • -
    • -

      Only versions that we actually consider worthy of a seal of approval will be listed.

      -
    • -
    -

    Uploaders are encouraged to leave a complete description of the release on the torrent information page. This is especially true for batches.

    -

    Green entries: Torrents uploaded by trusted users are green in the torrent lists.

    -

    Orange entries: Torrents must be marked as remakes if any of the following applies to the release:

    -
      -
    • -

      Reencode of original release.

      -
    • -
    • -

      Remux of another uploader's original release for hardsubbing and/or fixing purposes.

      -
    • -
    • -

      Reupload of original release using non-original file names.

      -
    • -
    • -

      Reupload of original release with missing and/or unrelated additional files.

      -
    • -
    -

    Red entries: Torrents containing completed series or other complete sets are red.

    -

    Grey entries: Hidden torrents are grey.

    -

    The tools to manage your torrents are located right above the torrent's details on the information page. Editable fields are the torrent's title, category, description, information link, metadata, and the alias and key fields which are explained on the page. It is also possible to hide the torrent which prevents it from being displayed in lists or even delete it altogether.

    -

    Pseudo-anonymous uploads are torrents that will appear to be anonymous, but you can still manage them through your account.

    -

    Flagging torrents points them out for moderator review. Torrents can be flagged by clicking on the link located in the upper right corner of their information pages.

    -

    RSS is a useful Web feed that automatically updates when a torrent is added by a user. Many programs such as popular BitTorrent clients, which can be set up for automatic downloading, can make use of RSS feeds. The RSS feed link is dynamic which means that it will - like the search function - adapt to the current view, search results included.

    -

    BBCode user input is parsed by the torrent descriptions, information links, and torrent comments, and they all support basic BBCode like [b], [i], [s], [u], [left], [center], [right], [code], [email], [img], [url], [color], [font], [size], [quote], and [spoiler].

    -

    The upload page returns various HTTP status codes in order to simplify automated uploads. The following details the custom codes used:

    -
      -
    • -

      200: The ID of the uploaded torrent can be found in the Record-ID header.

      -
    • -
    • -

      418: You're doing it wrong.

      -
    • -
    • -

      460: You forgot to include a valid announce URL. Torrents using only DHT are not allowed, because this is most often just a mistake on behalf of the uploader.

      -
    • -
    • -

      461: This torrent already exists in the database.

      -
    • -
    • -

      462: The file you uploaded or linked to does not seem to be a torrent.

      -
    • -
    • -

      463: The form is missing required data like the category and/or the checkbox which confirms that you have read the rules.

      -
    • -
    • -

      520: Server-side error. Wait for a few minutes, and then notify Nyaa if the problem did not go away.

      -
    • -
    -

    IRC help channel

    -

    NyaaV3 IRC

    -

    The IRC channel is only for site support.

    -

    Read this to avoid getting banned:

    -
      -
    • -

      Do not sit around if you do not need site support unless you have voice/+ access.

      -
    • -
    • -

      Requests are not allowed. We only manage the site; we do not necessarily have the material you want on hand.

      -
    • -
    • -

      We do not know when A or B will be released, if it's authentic, or anything about a particular release. Do not ask.

      -
    • -
    • -

      XDCC, similar services, and their triggers are not allowed.

      -
    • -
    • -

      Use English only. Even though we aren't all from English-speaking countries, we need level ground to communicate on.

      -
    • -
    • -

      Do not send private messages to the staff. Ask your question in the channel on joining and wait; a staff member will respond in due time.

      -
    • -
    -

    Keep these things in mind when asking for help:

    -
      -
    • -

      We are not interested in your user name. Paste a link to your account if you want us to do something with it.

      -
    • -
    • -

      Provide as many details as possible. If you are having trouble submitting any kind of entry, we want to know everything about you and what (except any passwords) you supply to the form in question.

      -
    • -
    -
    #} {% endblock %} diff --git a/nyaa/templates/home.html b/nyaa/templates/home.html index a80641e..814b99a 100644 --- a/nyaa/templates/home.html +++ b/nyaa/templates/home.html @@ -4,9 +4,9 @@ {% if search.term %} {% else %} - - - + + + {% endif %} {% endblock %} {% block body %} diff --git a/nyaa/templates/layout.html b/nyaa/templates/layout.html index 029b1e3..0ae9491 100644 --- a/nyaa/templates/layout.html +++ b/nyaa/templates/layout.html @@ -182,29 +182,52 @@ {% endif %}
- {% set nyaa_cats = [('1_0', 'Anime', 'Anime'), - ('1_1', '- Anime Music Video', 'Anime - AMV'), - ('1_2', '- English-translated', 'Anime - English'), - ('1_3', '- Non-English-translated', 'Anime - Non-English'), - ('1_4', '- Raw', 'Anime - Raw'), - ('2_0', 'Audio', 'Audio'), - ('2_1', '- Lossless', 'Audio - Lossless'), - ('2_2', '- Lossy', 'Audio - Lossy'), - ('3_0', 'Literature', 'Literature'), - ('3_1', '- English-translated', 'Literature - English'), - ('3_2', '- Non-English-translated', 'Literature - Non-English'), - ('3_3', '- Raw', 'Literature - Raw'), - ('4_0', 'Live Action', 'Live Action'), - ('4_1', '- English-translated', 'Live Action - English'), - ('4_2', '- Idol/Promotional Video', 'Live Action - Idol/PV'), - ('4_3', '- Non-English-translated', 'Live Action - Non-English'), - ('4_4', '- Raw', 'Live Action - Raw'), + {% set nyaa_cats = [('1_0', 'Voicebanks', 'Voicebanks'), + ('1_1', '- VOCALOID', 'Voicebanks - VOCALOID'), + ('1_2', '- UTAU', 'Voicebanks - UTAU'), + ('1_3', '- Synthesizer V', 'Voicebanks - SynthV'), + ('1_4', '- CeVIO', 'Voicebanks - CeVIO'), + ('1_5', '- Piapro Studio', 'Voicebanks - Piapro Studio'), + ('1_6', '- NEUTRINO', 'Voicebanks - NEUTRINO'), + ('1_7', '- Other', 'Voicebanks - Other'), + ('2_0', 'Software', 'Software'), + ('2_1', '- Synthesizers', 'Software - Synthesizers'), + ('2_2', '- Plugins', 'Software - Plugins'), + ('2_3', '- Tools', 'Software - Tools'), + ('2_4', '- Applications', 'Software - Applications'), + ('2_5', '- Games', 'Software - Games'), + ('2_6', '- Other', 'Software - Other'), + ('3_0', 'Voice Sequences', 'Voice Sequences'), + ('3_1', '- VSQ/VSQx', 'Voice Sequences - VSQ/VSQx'), + ('3_2', '- UST', 'Voice Sequences - UST'), + ('3_3', '- MIDI', 'Voice Sequences - MIDI'), + ('3_4', '- Other', 'Voice Sequences - Other'), + ('4_0', 'Reclists', 'Reclists'), + ('4_1', '- Japanese', 'Reclists - Japanese'), + ('4_2', '- English', 'Reclists - English'), + ('4_3', '- Chinese', 'Reclists - Chinese'), + ('4_4', '- Korean', 'Reclists - Korean'), + ('4_5', '- Spanish', 'Reclists - Spanish'), + ('4_6', '- Other', 'Reclists - Other'), ('5_0', 'Pictures', 'Pictures'), ('5_1', '- Graphics', 'Pictures - Graphics'), ('5_2', '- Photos', 'Pictures - Photos'), - ('6_0', 'Software', 'Software'), - ('6_1', '- Applications', 'Software - Apps'), - ('6_2', '- Games', 'Software - Games')] + ('6_0', 'Audio', 'Audio'), + ('6_1', '- Songs', 'Audio - Songs'), + ('6_2', '- Demos', 'Audio - Demos'), + ('6_3', '- Other', 'Audio - Other'), + ('7_0', 'Video', 'Video'), + ('7_1', '- Music Videos', 'Video - Music Videos'), + ('7_2', '- Promo Videos', 'Video - Promo Videos'), + ('7_3', '- Demos', 'Video - Demos'), + ('7_4', '- Other', 'Video - Other'), + ('8_0', 'Lyrics', 'Lyrics'), + ('8_1', '- Japanese', 'Lyrics - Japanese'), + ('8_2', '- English', 'Lyrics - English'), + ('8_3', '- Chinese', 'Lyrics - Chinese'), + ('8_4', '- Korean', 'Lyrics - Korean'), + ('8_5', '- Spanish', 'Lyrics - Spanish'), + ('8_6', '- Other', 'Lyrics - Other')] %} {% set suke_cats = [('1_0', 'Art', 'Art'), @@ -237,7 +260,7 @@ @@ -271,7 +294,7 @@ @@ -331,7 +354,7 @@ diff --git a/nyaa/templates/rules.html b/nyaa/templates/rules.html index feceb6a..63305a4 100644 --- a/nyaa/templates/rules.html +++ b/nyaa/templates/rules.html @@ -4,85 +4,22 @@

Site Rules

- {# Spoilers: Your account will be banned if you repeatedly post these without using the [spoiler] tag properly. #} -

Breaking any of the rules on this page may result in being banned

-

Shitposting and Trolling: Your account will be banned if you keep this up. Repeatedly making inaccurate/false reports falls under this rule as well.

+

Breaking any of the rules on this page may result in getting banned

+

Shitposting and trolling: Your account will be banned if you keep this up. Repeatedly making inaccurate/false reports falls under this rule as well.

Bumping: Your account will be banned if you keep deleting and reposting your torrents.

-

Flooding: If you have five or more releases of the same type to release in one go, make a batch torrent containing all of them.

URL redirection services: These are removed on sight along with their torrents.

Advertising: No.

-

Content restrictions: This site is for content that originates from and/or is specific to China, Japan, and/or Korea.

-

Other content is not allowed without exceptions and will be removed.


-

{{ config.EXTERNAL_URLS['main'] }} is for work-safe content only. The following rules apply:

+

Malware: No.

+

Content restrictions: This site is for content related to voice synthesizers. Other content is prohibited without exceptions and will be removed.

+

Synthoria is dedicated to hosting and preserving legal torrents only. We do not facilitate piracy in any form. This website is not a platform for pirated materials, and we encourage users to respect the intellectual property rights of creators and owners.

+

This platform may host content that does not strictly adhere to the End User License Agreement (EULA) of certain voice synthesizers. While we allow such content to be shared, we emphasize that users who download and use this content do so at their own risk. By using this content, users acknowledge that they are responsible for ensuring compliance with the relevant EULA and any applicable laws. We do not condone or encourage any violation of EULAs or laws, and we disclaim any liability for any consequences arising from the use of such content.

+

Notes concerning uploading other people's work:

  • -

    No pornography of any kind.

    +

    Do not upload cracked or pirated voice synthesizers or voicebanks. Only official, legal, or open-source content is allowed.

  • -

    No extreme visual content. This means no scat, gore, or any other of such things.

    -
  • -
  • -

    Troll torrents are not allowed. These will be removed on sight.

    -
  • -

-

{{ config.EXTERNAL_URLS['fap'] }} is the place for non-work-safe content only. Still, the following rules apply:

-
    -
  • -

    No extreme real life visual content. This means no scat, gore, bestiality, or any other of such things.

    -
  • -
  • -

    Absolutely no real life child pornography of any kind.

    -
  • -
  • -

    Troll torrents are not allowed. These will be removed on sight.

    -
  • -

-

Torrent information: Text files (.txt) or info files (.nfo) for torrent or release group information are preferred.

-

Torrents containing (.chm) or (.url) files may be removed.


-

Upper limits on video resolution based on source:

-
    -
  • -

    DVD source video is limited to 1024x576p.

    -
  • -
  • -

    Web source video is limited to 1920x1080p or source resolution, whichever is lower.

    -
  • -
  • -

    TV source video is by default limited to 1920x1080p. SD channels, however, are limited to 480p.

    -
  • -
  • -

    Blu-ray source video is limited to 1920x1080p.

    -
  • -
  • -

    UHD source video is limited to 3840x2160p.

    -
  • -

-

Naturally, untouched sources are not bound by these limits. Leaks are also not subject to any resolution limits.


-

Finally, a few notes concerning tagging and using other people's work:

-
    -
  • -

    Do not add your own tag(s) when reuploading an original release.

    -
  • -
  • -

    Unless you are reuploading an original release, you should either avoid using tags that are not your own or make it extremely clear to everyone that you are the one responsible for the upload.

    -
  • -
  • -

    If these policies are not obeyed, then those torrents will be removed if reported by a group or person commonly seen as the owner of the tag(s). This especially applies to remake torrents.

    -
  • -
  • -

    Although only hinted at above, we may remove troll torrents tagged with A-sucks, B-is-slow, or such if reported by A or B.

    -
  • -
  • -

    Remakes which are utterly bit rate-starved are not allowed.

    -
  • -
  • -

    Remakes which add watermarks or such are not allowed.

    -
  • -
  • -

    Remakes which reencode video to XviD or worse are not allowed.

    -
  • -
  • -

    Remakes of JPG/PNG-based releases are not allowed without exceptions since there is most often no point in making such.

    +

    Do not upload voicebanks where the author has explicitly stated that redistribution is prohibited.

diff --git a/nyaa/templates/upload.html b/nyaa/templates/upload.html index 1ca14a7..853448a 100644 --- a/nyaa/templates/upload.html +++ b/nyaa/templates/upload.html @@ -86,20 +86,20 @@