sfan5
0fac1c820d
Update dark theme ( #441 )
...
* Update dark theme CSS
* Use reponsive table on Admin > Reports page
Fixes dark theme styling of the table header.
2018-02-01 10:50:31 -08:00
Nicolas F
0285c12264
commenting: show CAPTCHA to new accounts ( #443 )
...
Basically re-use the upload CAPTCHA code to also do this for
comments.
2018-02-01 10:50:00 -08:00
Anna-Maria Meriniemi
f8a287caa0
Improve and tidy up email blacklist regexes (Hotmail) ( #438 )
...
Because reading warnings is overrated.
This does not fix people using custom domains, but it's more likely
they'll know what's up when their email is thrown into the void.
Fixes #437 .
2018-01-27 01:55:35 +02:00
Leo Izen
f0bd96fe8d
static: losslessly optimise PNG images even more ( #432 )
...
Used TruePNG and zopflipng to optimise the images even more,
saving a whopping 4073 bytes.
The optimisation is lossless, i.e. the decoded pixel values do not
change at all.
2018-01-16 21:34:43 -08:00
TheAMM
d4fcd36b1b
Fix mods' comment list filter
2018-01-04 00:34:17 +02:00
Nicolas F
362b3e3dfa
user: clean up admin_form HTML ( #400 )
...
Properly scaffold it, remove a superfluous form-group div, and style
the select properly.
2018-01-03 14:28:39 -08:00
Nicolas F
d00f3686f7
static: losslessly optimise PNG images ( #427 )
...
Used zopflipng to optimise the images, saving a whopping 8238 bytes.
The optimisation is lossless, i.e. the decoded pixel values do not
change at all.
2017-12-22 06:44:39 -08:00
Anna-Maria Meriniemi
3941a0b9b3
Quick and dirty comment list for moderators to look at ( #421 )
2017-12-04 15:51:31 +02:00
JodanJodan
052a038763
Add tabindexes to login elements ( #420 )
...
Fixes issue with password managers (e.g. KeePass) tabbing to 'Forgot your password?' link instead of password field.
2017-12-02 13:31:51 +02:00
Anna-Maria Meriniemi
7f9dc622b1
Email blacklist ( #419 )
2017-11-22 17:19:47 -08:00
Anna-Maria Meriniemi
1f31427e5e
Alert hotmail users of the void on register page ( #418 )
...
* Alert hotmail users of the void on register page
* Words
2017-11-22 16:40:23 -08:00
Anna-Maria Meriniemi
5990cf2f50
Remove tracker limit and always add our trackers ( #417 )
...
With all trackers.txt trackers being included in generated .torrents,
we can now be certain the magnet (which use trackers.txt) and the .torrent
uses will not be split up in different swarms in case the main announce dies.
(That is, if uploaders add enough of their own trackers and additional trackers
were deemed unnecessary (at least 5 already), the magnet and .torrent would only
share the main site announce)
2017-11-22 00:02:22 -08:00
TheAMM
4cdf7f4ab3
Support searching for base32 info hash (BTIH)
...
"BitTorrent info hashes" are generally found in magnet uris.
An info hash is 40 characters in hex and 32 in base32 so the searches won't clash.
2017-11-14 21:27:15 +02:00
TheAMM
630c69727d
Torrent validation: explicitly mention missing announce-key
2017-11-13 23:01:58 +02:00
TheAMM
e183d420ea
Fix CF-stripped newlines for comments
2017-11-10 05:50:57 +02:00
TheAMM
faf7548cd0
Convert edited timestamp to local time
2017-11-10 05:50:50 +02:00
TheAMM
0b094a7229
Decode HTML entities in comments, make blockquotes smaller
...
Flask escapes < > etc, and the markdown parser does not consider
> as > aka blockquote. Fixed by decoding HTML source before
rendering markdown.
2017-11-10 02:12:08 +02:00
Andrew Zhao
f6735219f0
Fix keyError from pop ( #407 )
...
Remind me not to ever merge anything ever again
2017-11-06 23:52:25 +02:00
Andrew Zhao
c0be2571e1
Reset page offset when updating search parameters ( #406 )
...
Updating the search query parameters should reset to the first page
2017-11-06 10:13:55 +02:00
Shane
72c997173c
[Schema+config change] Comment editing ( #396 )
...
* Comment editing
* Optional time limit for comment editing
2017-11-05 16:26:30 +02:00
TheAMM
b4c0ad9e84
torrents.py: Add link to torrent page into .torrent comment metadata
2017-11-04 23:46:50 +02:00
Nicolas F
96468a5a11
torrents: don't allow download of deleted torrents ( #399 )
...
Only allow moderators to download torrent files that are deleted.
2017-11-03 18:54:08 +02:00
Nicolas F
7095567b29
Comment deletion: fix small lack of validation ( #395 )
...
People could delete their own comments on torrents other than
the one the URL would indicate, which meant they could mess with
the total comment count on a torrent by having it be higher than
it actually is through repeatedly posting and deleting comments
that way.
However, they could only ever delete their own comments, so this
isn't a huge issue in the first place.
2017-10-29 20:01:19 +02:00
Arylide
ca7dc276e2
Fix some text and revert a js thing
2017-10-20 22:24:36 -07:00
Nicolas F
b4c9d7cd1b
Fix filter dropdowns if JS is disabled ( #389 )
...
Before bootstrap-select is loaded, a small JS piece replaces the
class for the pickers with the appropriate bootstrap-select classes.
If there is no JS, the dropdowns will stay as form-control.
2017-10-20 21:01:36 -07:00
Nicolas F
4019343d50
Implement torrent nuking ability for mods ( #377 )
...
* Implement torrent nuking ability for mods
This deletes all torrents of a specific user.
A current caveat is that it will delete both sukebei and nyaa torrents,
but will only leave a log entry in the current flavour's log.
Also did some bootstrap untangling on the user view page.
* Per-flavour logging
Hopefully this works. Maybe.
* Tracker API: chunk into 100-element sublists
* isort
* Restrict nuking to superadmins
Also do a lint.sh.
2017-10-16 18:17:12 -07:00
Anna-Maria Meriniemi
de1fd2f1bc
[Config change] Upload ratelimit for non-trusted uploaders ( #384 )
...
* Implement upload ratelimit for non-trusted uploaders
Users may upload X torrents in Y minutes after which they
will have to wait Z minutes between uploads.
* Show torrent period count when ratelimited
* Only ratelimit new accounts
2017-10-09 18:41:18 -07:00
Nicolas F
37546354a7
Explicitly tell users they were banned ( #379 )
...
This tells users who are banned the reason that they are banned,
and doesn't show the same message for inactive users.
IP banned users are still just shown the boring 403 page.
2017-10-07 19:16:24 -07:00
Anna-Maria Meriniemi
9e87e810af
[Config change] Password reset by email ( #381 )
...
* Password reset by email
Adds endpoint, templates, email templates, forms
* Timeout password reset request in six hours
2017-10-08 04:34:40 +03:00
Anna-Maria Meriniemi
6d09920abd
Update email verification, add Mailgun backend ( #380 )
...
Changes config.example.py!
2017-10-07 17:31:32 -07:00
Nicolas F
19eaa2c532
Fix timezone awareness for account creation time ( #378 )
2017-10-06 22:36:13 +03:00
Anna-Maria Meriniemi
1e5f61ddf7
[Config change] Require recaptcha of new uploaders ( #376 )
...
* Reorganize config.example.py, add ACCOUNT_RECAPTCHA_AGE
* Require new accounts to pass recaptcha on upload
Based on ACCOUNT_RECAPTCHA_AGE in config.
2017-10-04 16:05:35 -07:00
Nicolas F
214952e7b6
Disable report button on empty reason ( #374 )
...
Previously, people couldn't quite tell you needed to give a report
reason. Now we disable the submit button until there is a reason,
and flask.flash() if someone manages to submit an empty reason
anyway.
2017-10-03 17:03:22 -07:00
Arylide
0eea181020
Fix search form typo and some HTML
2017-10-03 16:57:40 -07:00
nyaadev
4091cba837
fix mysql error and bad colors in css
2017-09-19 01:32:45 +02:00
nyaadev
2e6e924247
fix pep8 error message
2017-09-19 01:16:34 +02:00
nyaadev
89590c91bb
Add ascii check in User.by_username to fix mysql errors
2017-09-18 13:28:15 +02:00
Anna-Maria Meriniemi
c5d705210d
Read-only maintenance mode setting for config.py ( #356 )
...
Disables all POSTs, optionally allowing users to log in (without updating last login date)
Blocked POSTs will redirect to the GET endpoint if possible, otherwise to referrer or in last case, home page.
API requests will get a plaintext message with 405 status code.
2017-09-04 18:16:52 -04:00
Arylide
5e93d7ec6d
probably fix a css thing and change out a tracker
2017-09-04 15:14:26 -07:00
sfan5
45e1a650fb
Improve dark theme (2) ( #358 )
...
* Further improve dark theme
* do something about .alert-info, idk
2017-09-04 18:01:40 -04:00
sfan5
4995f95ebd
Improve dark theme ( #357 )
...
* Add 'dark' class to <body> if dark theme is activated
* Make dark theme suck considerably less
2017-09-03 18:18:39 -04:00
TheAMM
6b49af4fb7
Exception handling: include a random string to identify stacks from log
2017-09-02 22:18:32 +03:00
Anna-Maria Meriniemi
36d3f8aed0
Early filename validation ( #354 )
...
Currently just rejects torrents with RTL overrides in filenames
2017-09-01 18:27:14 -04:00
Anna-Maria Meriniemi
04a8ff95d2
Words ( #355 )
...
* Add words
* Add more words
Words are nice
2017-09-01 18:14:11 -04:00
TheAMM
07b45622f4
Get rid of index name hardcoding, read from database (and cache)
...
Index names are not necessarily named 'ix_table_column', so inspect the real schema for index names. Results are cached in memory.
(I have no clue how, but mine are prefixed idx_ instead of ix_!)
Clears out the "sort" variable naming as well.
2017-08-31 19:12:50 +03:00
nyaadev
57a71be7b8
minor changes
2017-08-31 14:20:34 +02:00
Alex Ingram
df288bfadd
Add Firefox search provider. ( #353 )
...
* Add Firefox search provider.
* Add search provider to layout.
* Add search thing for Sukebei, too.
* Fix layout.
2017-08-30 23:52:50 -04:00
nyaadev
294a12700c
fix mysql being shit
2017-08-31 03:36:29 +02:00
Anna-Maria Meriniemi
4eed4971a3
Fix banning torrents without uploader ip
...
Pretty much just for archived torrents
2017-08-26 02:52:59 +03:00
Anna-Maria Meriniemi
aa3c2ba77b
Fix banning anonymous torrents
...
We miss ye, testing
2017-08-26 02:36:38 +03:00
A nyaa developer
f8a314df4f
Better bans ( #341 )
...
* better bans
* put jinja2 template into correct file
2017-08-25 18:53:35 -04:00
TheAMM
6aab5557d6
...remove debug print
...
Alas, hasty mergers
I'm not force-pushing master on a 1030-star repo because of an accidental debug line, no sirrre.
2017-08-20 04:06:04 +03:00
Anna-Maria Meriniemi
39fcfc0058
Add (optional) validation for minimum anonymous torrent size ( #342 )
...
MINIMUM_ANONYMOUS_TORRENT_SIZE can be used to require a minimum total
size of torrents uploaded by anonymous users (ie. without accounts).
Sets up a "framework" for post-WTForm torrent validation as well;
this can easily be extended into filename blacklists and such.
2017-08-19 20:48:08 -04:00
Nicolas F
48d4217f02
help page: Add help for deletion ( #340 )
...
Some people may not realise that they can do this themselves,
and maybe they'll consult the help page before abusing the report
button.
2017-08-19 06:38:32 -04:00
Kfir Hadas
a758f5f078
Optimize routes (define url_prefix in Blueprints)
...
* /admin/*
* /api/*
2017-08-15 17:12:54 +03:00
nyaadev
0bcd782695
Minor improvements
2017-08-15 01:41:31 +02:00
Arylide
2cd2dbf66d
Replaced dead tracker and give mods a hammer
2017-08-14 16:02:06 -07:00
mreweilk
2e50f14fb7
Change admin routes from /adminlog and /reports to /admin/log and /admin/reports
2017-08-14 13:30:17 -04:00
nyaadev
d5b8a3a2ae
Increase maximum comment size from 255 to 1024.
...
DB change: Change comment text field from VARCHAR(255) to mysql.TEXT
2017-08-14 19:08:36 +02:00
nyaadev
1c3724cae1
Delete cached torrent file when replacing torrent.
2017-08-07 00:20:02 +02:00
nyaadev
602d35bab7
Integrate tracker API for torrent ban/unban
2017-08-06 23:55:45 +02:00
Arylide
5fb178f3a8
idk
2017-08-05 13:03:43 -07:00
TheAMM
7a04d64f9c
Weed out last few hardcoded urls
2017-08-05 22:43:13 +03:00
A nyaa developer
e728ca1818
Expose soft delete to users and allow reuploading of deleted torrents. ( #331 )
...
Add banning torrents for moderators which disallows reuploading.
New delete UI.
2017-08-05 15:41:59 -04:00
Anna-Maria Meriniemi
95e35a10c9
Change torrent Content-Disposition back to inline
...
As per comments in #288 , Firefox forces a "what do you want to do with this"-dialog for 'attachment' even when it's set to open them immediately in another program.
2017-08-03 11:28:21 +03:00
Kfir Hadas
87dd95f1e0
Refactor into an app factory [2 of 2] ( #322 )
...
* Replace all `from nyaa import app` imports with `app = flask.current_app` (or `from flask import current_app as app` where possible)
* Add a separate config object for top-level and class statements as `nyaa.extensions.config`
Required because those codes don't have app context at the time of evaluation/execution.
* Remove `routes.py` file and register all blueprints in `nyaa/__init__.py`
* Refactor `nyaa/__init__.py` into an app factory
* Update tools
* Update tests (temporary, will be replaced)
2017-08-01 21:02:08 +03:00
Kfir Hadas
0181d6cb33
Prepare for app factory [1 of 2] ( #315 )
...
* Move db, assets, debug toolbar and fix_paginate into nyaa.extensions
* Change all `from nyaa import db` imports to `from nyaa.extensions import db`
* Move `nyaa.torrents.create_magnet_from_es_info` context processor into template-utils blueprint
* Fix tools (wrap in `with app.app_context():` where needed)
2017-07-30 20:35:16 +03:00
TheAMM
1dae331156
Completely handle qBittorrent webseeds
...
Fixes #319
Zero webseeds: empty bytestring
One webseed: bytestring
More than one: a list of bytestrings (as the spec asks for!)
2017-07-30 11:49:13 +03:00
TheAMM
987103b213
Handle qButtorrent empty url-list/webseeds
...
url-list is supposed to be omitted in case of no webseeds,
but qB will instead use an empty bytestring '' as the value.
This commit makes the validation more lenient regarding url-list.
2017-07-30 11:36:38 +03:00
Anna-Maria Meriniemi
1bc36c5a17
[Schema change] Add webseed support (BEP-19) ( #317 )
...
Store webseeds in Trackers table with is_webseed flag
Adjusts torrent creation accordingly
2017-07-30 00:00:39 +03:00
Kfir Hadas
b992467dad
Apply isort & flake8 ( #312 )
...
* Update isort settings
* Apply import sorting (isort) on all files in nyaa/
* Fixed Flake8 errors in nyaa/ (see PR for list)
* Add isort to lint.sh and requirements.txt
2017-07-28 20:01:19 +03:00
Kfir Hadas
99c052c85f
Tiny code reformat
2017-07-27 23:29:25 +03:00
Kfir Hadas
42725d4a3c
Hotfix Gravatar
2017-07-27 23:17:06 +03:00
Kfir Hadas
ab6193d01d
Update Gravatar ( #313 )
...
* Update help.html with a section about user avatars
* Update Gravatar implementation to use the rating feature
2017-07-27 16:03:13 -04:00
Kfir Hadas
2424639bf9
Refactor routes.py
2017-07-27 14:14:00 +03:00
Kfir Hadas
c539795fdc
Move the remaining template_global into 'template-utils' blueprint
2017-07-27 14:14:00 +03:00
Kfir Hadas
93f94023d1
Move delete_comment and submit_report into blueprint
2017-07-27 14:14:00 +03:00
Kfir Hadas
ef56e54521
Move torrent magnet and torrent download into 'torrents' blueprint
2017-07-27 14:14:00 +03:00
Kfir Hadas
9fef343c1b
Move torrent edit and upload into 'torrents' blueprint
...
Move supporting functions and variables into other files
* nyaa.views.torrents:
- _create_upload_category_choices
* nyaa.backend:
- get_category_id_map
2017-07-27 14:14:00 +03:00
Kfir Hadas
9acdd14e81
Move /view/<int:torrent_id> route into 'torrents' blueprint
...
and update templates.
2017-07-27 14:14:00 +03:00
Kfir Hadas
42535bbdab
Move 404 handler into 'main' blueprint
2017-07-27 14:14:00 +03:00
Kfir Hadas
4aac17ff23
Move 'before_request' into 'main' blueprint
...
Update comment in api_handler with new before_request location
2017-07-27 14:14:00 +03:00
Kfir Hadas
eccb0ebdff
Move '/' and '/rss' routes into 'main' blueprint
...
and update templates.
2017-07-27 14:14:00 +03:00
Kfir Hadas
f3b923ccca
Move template filters and globals into blueprint ( #301 )
...
* Move 8 of 9 template filters and globals into a blueprint
* Rename nyaa.filters -> nyaa.template_utils
* Fix import sorting
2017-07-27 14:14:00 +03:00
Kfir Hadas
50529920bd
Move /user/activate/<payload> route into users
...
Move supporting functions as well:
- get_serializer
- get_activation_link
2017-07-27 14:14:00 +03:00
Kfir Hadas
0887dde6fc
Move /user/<user_name> route into a blueprint
...
Move supporting functions and variables into other files
* nyaa.utils:
- cached_function
- chain_get
* nyaa.search:
- DEFAULT_MAX_SEARCH_RESULT
- DEFAULT_PER_PAGE
- SERACH_PAGINATE_DISPLAY_MSG
- _generate_query_string
2017-07-27 14:14:00 +03:00
Kfir Hadas
3913d8cea2
Move admin routes into blueprint
...
and update templates
Routes:
* /reports
* /adminlog
2017-07-27 14:14:00 +03:00
Kfir Hadas
f316353176
Move account routes into blueprint ( #292 )
...
and update templates,
and remove unused imports
Routes:
* /login
* /logout
* /register
* /profile
2017-07-27 14:14:00 +03:00
Kfir Hadas
911fbc317f
Move static routes into a blueprint
...
and update templates
Routes:
* /help
* /rules
* /xmlns/nyaa
* /about (commented out)
2017-07-27 14:14:00 +03:00
Kfir Hadas
7e16616a5d
Remove unused imports
2017-07-27 14:14:00 +03:00
Kfir Hadas
de8bd047d5
Apply isort on routes.py
2017-07-27 14:14:00 +03:00
Arylide
dc627bf398
Revert "upload page: use alerts, add alert about rules ( #304 )"
...
This reverts commit c5ce99c3f3
.
2017-07-24 20:03:58 -07:00
queue
b1d187613a
bencode: fix nontermination on empty or malformed input
...
read(1) returns b'' on EOF, which wasn't checked for in a couple cases,
which could cause empty/truncated input to enter one of the `while True`
loops without hope of exit. programming is hard.
2017-07-24 20:53:48 -06:00
Nicolas F
c5ce99c3f3
upload page: use alerts, add alert about rules ( #304 )
...
This changes the tracker announce URL message to be one of those
bootstrap alert bubbles, and adds an additional warning which tells
people to read the rules and not upload off-topic crap.
2017-07-24 16:46:39 +03:00
Arylide
6988daf803
HTML Changes
2017-07-22 20:31:50 -07:00
TheAMM
a50d39ccaa
Improve RSS feed title (show term, torrent/magnet)
2017-07-22 21:54:28 +03:00
TheAMM
c31749c1d5
Add link for site-revision vs Github master comparison in footer
...
Quality of Life. What new features?
2017-07-22 21:41:48 +03:00
TheAMM
6b71cf101e
Add simple info in RSS <description>
...
Allows puny humans to gather some information from the RSS feed
Fixes #299
(... and nobody will know!)
2017-07-22 21:37:53 +03:00
Kfir Hadas
fe4ac73ca2
Update torrent download route headers ( #298 )
...
- Change disposition from inline to attachment
- Add Content-Length header (by updating `_get_cached_torrent_file`)
2017-07-20 11:00:20 +03:00
Arylide
2e8e548067
Revert "Autofocus on search input box"
...
This reverts commit c9389cb888
.
2017-07-17 17:02:19 -07:00