diff --git a/Makefile b/Makefile
index a64ccf347..b55f5f7c9 100644
--- a/Makefile
+++ b/Makefile
@@ -46,6 +46,12 @@ lint-css:
yarn lint:css
yarn lint:css-checkstyle
+.PHONY: lint-php
+lint-php:
+ yarn lint:php:internal
+ yarn lint:php:phpcs || exit 0
+ composer phpstan
+
.PHONY: mysqldump
mysqldump:
mysqldump -h 127.0.0.1 -P 36000 -u gazelle --password=password -d gazelle --skip-add-drop-table --skip-add-locks --single-transaction | sed 's/ AUTO_INCREMENT=[0-9]*//g' > db/data/gazelle.sql
@@ -59,10 +65,7 @@ ocelot-reload-reload:
pkill -USR1 ocelot
.PHONY: test
-test: lint-css
- yarn lint:php:internal
- yarn lint:php:phpcs || exit 0
- composer phpstan
+test: lint-css lint-php
composer test
.PHONY: twig-flush
diff --git a/README.md b/README.md
index a879811cf..b9ddb1674 100644
--- a/README.md
+++ b/README.md
@@ -5,11 +5,12 @@ needs. Gazelle is written in PHP, JavaScript, and MySQL.
## Gazelle Runtime Dependencies
* [Nginx](http://wiki.nginx.org/Main) (recommended)
-* [PHP 7 or newer](https://www.php.net/) (required)
+* [PHP 7.2+](https://www.php.net/) (required)
+* [NodeJS 12+](https://nodejs.org/en/) (required)
* [Memcached](http://memcached.org/) (required)
* [Sphinx 2.0.6 or newer](http://sphinxsearch.com/) (required)
* [procps-ng](http://sourceforge.net/projects/procps-ng/) (recommended)
-* ocelot
+* [ocelot](https://github.com/OPSnet/Ocelot)
_Note: This list may not be exhaustive._
@@ -20,13 +21,22 @@ depedencies through `pip`:
* eac-logchecker
* xld-logchecker
+## Installation
+
+We provide installation notes [here](docs/INSTALL.txt). These notes are provided as a best effort, and are not guaranteed
+to be fully up-to-date or accurate.
+
+Due to the nature of torrenting, we HIGHLY recommend not trying to run this in production if you are not prepared or knowledgeable
+in setting up servers, proxies, and tuning TCP configs to get proper performance and privacy.
+
## Gazelle Development
Docker is used to develop Gazelle. See https://docs.docker.com/engine/install/
for more information on getting Docker set up locally.
-Setup the ocelot container, by cloning it and running:
+Setup the [ocelot](https://github.com/OPSnet/Ocelot) container image, by doing the following:
```bash
+git clone https://github.com/OPSnet/ocelot
docker build . -t ocelot
```
diff --git a/docs/HTML-Official-Colors.txt b/docs/06-HTML-Official-Colors.txt
similarity index 84%
rename from docs/HTML-Official-Colors.txt
rename to docs/06-HTML-Official-Colors.txt
index 1ecec0508..d089031f6 100644
--- a/docs/HTML-Official-Colors.txt
+++ b/docs/06-HTML-Official-Colors.txt
@@ -1,3 +1,12 @@
+From: Spine
+To: Developers
+Date: 2020-03-30
+Subject: Orpheus Development Papers #6 - HTML Official Colors
+Version: 1
+
+List of valid colors to be used [color] BBCode tag. This should match the list of
+colors defined in the Text::$ColorName constant.
+
aliceblue
antiquewhite
aqua
diff --git a/docs/CHANGES.txt b/docs/CHANGES.txt
deleted file mode 100644
index a5368c502..000000000
--- a/docs/CHANGES.txt
+++ /dev/null
@@ -1,571 +0,0 @@
-CHANGE LOG (from WCD)
-
-2016-11-01 by Bourbon
-Remove username substring search functionality. Username searches must now be exact to return a result.
-
-2016-02-18 by newman
-Fix staff seeing FLS-assigned staff PMs. Add checkbox to allow adding a linked account or editing a linked account without updating staff notes
-
-2016-02-13 by lawnmower
-minor usability improvement to artist alias editing
-
-2016-02-11 by newman
-Fix punctuation typo in uploading rules
-
-2016-02-10 by newman
-Make advanced searching by invitees not timeout. Set snatched to off by default to drastically improve page load time
-
-2016-02-06 by newman
-Fix some Staff PM bugs
-
-2016-02-05 by newman
-Add tool to mark multiple torrent groups/collages as FL/NL/Regular, optionally NLing torrents above a certain size. Add level cap to Staff PMs
-
-2016-02-04 by newman
-Fix regex in reports.js to not remove the last character of each line except the last. Redirect to log.php when attempting to report a deleted torrent
-
-2016-01-31 by newman
-Allow locked accounts to send staff PMs to staff only
-
-2016-01-27 by newman
-Fix downloading torrents via wget or other utilities when account is locked. This should prevent plugins like autodl-irssi from downloading torrents after an account becomes locked
-
-2016-01-23 by newman
-Add confirmation for deleting poll options. Don't load all news and blogs when editing one. Don't load all news when writing a new post, instead load 5 and add the "click to view more" link, similar to the homepage. Add "Replies" column to staffpm.php and Staff PMs on user profiles. Add better.php header link
-
-2016-01-19 by newman
-Fix PRs 93 and 91
-
-2016-01-10 by newman
-Fix typo in ajax_report.php
-
-2016-01-08 by newman
-Add lossy master approval request report type. Remove unapproved cassette report type
-
-2016-01-07 by lawnmower
-Remove usage of top_snatchers. Send reseed requests to the last 100 snatchers
-
-2016-01-07 by newman
-Add JS confirmation to request re-seed button
-
-2016-01-05 by newman
-Left align staff PM common answer preview. Sort staff PM common responses alphabetically instead of by ID
-
-2016-01-03 by newman
-Fix several permissions bugs
-
-2015-12-24 by newman
-Fix several XSS, SQLi, and misc vulnerabilities
-
-2015-12-20 by newman
-Add password age to user profiles
-
-2015-12-18 by newman
-Add override option in check_perms() for overriding $MinClass
-
-2015-12-16 by lawnmower
-Fix adding donor points with decimals
-
-2015-12-01 by newman
-Fix typo in locked accounts index.php
-
-2015-11-20 by lawnmower
-Add extension blacklist for uploaded torrents
-
-2015-11-19 by lawnmower
-Fix several XSS and SQLi vulerabilities
-
-2015-11-14 by techietrash
-Fix ctrl+click group collapsing/expanding on OSX
-
-2015-11-13 by newman
-Fix SQLi vulnerability (thanks v1nc3re)
-
-2015-11-06 by newman
-Add proper title to torrent stats page. Update token history to display deleted torrents.
-
-2015-10-31 by newman
-Add read-only version of site options for mods
-
-2015-10-30 by newman
-Update staff.php layout
-
-2015-10-27 by newman
-Paginate ask the staff
-
-2015-10-24 by newman
-Implement locked accounts and site options. Locked accounts is an intermediary between enabled and disabled, and is presented on a user's staff tools. It limits the user to navigating to only the locked page and staffpm. Site options eliminates the need to hardcode values that may change in the future.
-
-Users can now also reset their password without logging out.
-
-2015-10-21 by newman
-Update the IRC message sent when creating a new staff blog to be more useful
-
-2015-10-19 by newman
-Fix capitalization on the torrent group edit page
-
-2014-11-06 by porkpie
- Create a TorrentSearch class that does most of the torrent search job.
- Add PHP post-processing of matches if a search query doesn't need
- any torrent-specific fulltext conditions.
- Comments
-
-2014-11-03 by downinthings
-Fix comments on User API
-
-2014-10-30 by tobbez
-Add stats API method
-
-2014-10-27 by porkpie
-Clear news cache immediately after updating the database
-
-2014-10-20 by Narcolepsy
-Consolidated commit list since 2014-04-20:
-
-Fix some LTR issues (bug thread 189685)
-Move loading comments before View::show_header. This should fix subscriptions and quote notifications appearing when a user is already on the page of that last subscription
-Replace some hardcoded IRC channels with configuration parameters
-Fix HTML in
for non-{Music, Audiobooks, Comedy} requests (bug thread 189855)
-Fix: link directly to the torrent on bad files/folders better.php pages (thread 190009)
-Update internal cache when a cache key is changed
-This should make quote notifications disappear when viewing threads (#183300)
-Cast user id to int on user profile pages to get rid of trailing period
-Remove WhatMan's spellcheck tool (seriously it was crap)
-Fix a few cache key typos:
- Blog => blog
- requests_$RequestID => request_$RequestID
- users_stats_$UserID => user_stats_$UserID
-Fix some sorting issues related to Torrents::get_groups not returning the groups in the same order they were passed in; DO NOT iterate over Torrents::get_groups results...
-Fix image in bookmarks JSON API
-Fix comments appearing on the wrong page (bug thread 190203)
-Passwords aren't limited to 40 characters
-Fix better.php/single and rename some variables so they make some sense
- Bug thread #190289
-Don't continue to process forum post deletes if the post or thread doesn't exist
-Trusting rdns is bad
-Fix two cache issues in the schedule
- - Permissions of users that are demoted to User/Member for low ratio or upload were not updated/cleared, which meant that e.g. demoted PU users could still see the PU forum
- - The cache was cleared before the promotion/demotion queries. This could cause a race condition if the cache key were filled again (through a Users::user_info call)
-Fix some cache issues (bug thread 190802)
-Speed up BBCode
-BBCode profiling
-Fix a bunch of bookmarks stuff. HTML/CSS consistency, jQuerified functions
-Bye sizzle
-show rank 4 instead of 5 when 5 points in pms
-More accurate donor rank expiration times
-Apparently users_donor_ranks can contain NULL values.
- Change these to 0 after fetching to fix cache
-Fix a grammar error and use SITE_NAME constant in the post-invite confirmation PM that gets sent to the inviter
-Remove trailing whitespace in public Gazelle, improve grammar, add some missing spaces in 80char's CSS file
-Remove extraneous whitespace from various files
-Coding standards cleanup in script_start.php
- Remove some WCD-specific smileys from public Gazelle
-
- Remove these:
- * ackbar-what.png
- * jesusfish-what.png
- * louisdefunes-what.png
-Add Tools::check_cidr_range to check if an IP is inside a given range in CIDR format
-Torrent size is a 64-bit Sphinx attribute, so let's make use of it
- Should partially fix bug #185554
-Fix SQLI in PushServer::push_pushbullet
-Minor coding standards fixes in classes/pushserver.class.php
-Fix User Upload Count API
-fix lack of artist name in concert titles
-add mailgun as alternative to self-hosting email, config changes in template to match
-user api additional stats, patch from user downinthings
-
-2014-04-20 by SevenNationArmy
-Replace old IRC applet with Mibbit
-
-2014-04-09 by alderaan
-Rename and reword the labels and tooltips for some profile settings for torrent grouping and release types. These should no longer be misleading or wholly incorrect.
-
-2014-04-09 by alderaan
-Wrap various PM reasons in [quote] tags where appropriate
-
-2014-04-06 by hateradio
-Add wildcard support to taglist in request search
-
-2014-04-05 by DutchDude
-Make blog post author name link to author profile
-
-2014-03-31 by Ajax
-Pushbullet support for push notifications
-
-2014-03-25 by alderaan
-Remove class="wide_input_text" from the "extra log message" and "extra staff notes" text boxes on the Reports v2 and torrent deletion forms
-
-2014-03-24 by alderaan
-Fix various CSS issues with input text boxes of type "search"
-
-2014-03-22 by alderaan
-Forum search: Rename "Username" to "Posted by" and add an HTML5 placeholder for the "posted by" text box
-
-2014-03-22 by alderaan
-"ask the staff" tool: improve display of page header
-
-2014-03-22 by alderaan
-Use HTML5 input type "search" for text boxes in search forms
-
-2014-03-22 by alderaan
-Use HTML5's placeholder attribute for the "search inbox" text box
-
-2014-03-22 by alderaan
-Add class="label" to the form labels on the "create a user" page
-
-2014-03-22 by alderaan
-Add missing header for the "invite pool" staff tool page
-
-2014-03-22 by alderaan
-Remove duplicated "economic stats" link on /tools.php
-
-2014-03-22 by alderaan
-Use HTML5 input type "email" for forms that require email address input
-
-2014-03-22 by alderaan
-Move the text box for entering the target torrent group ID into the same row as its label
-
-2014-03-22 by alderaan
-Add a "release type" label for the drop-down menu when editing torrent groups
-
-2014-03-20 by alderaan
-Use class="wide_input_text" for the "extra log message" and "extra staff notes" text boxes on the Reports v2 and torrent deletion forms
-
-2014-03-20 by alderaan
-Rename "Upload" to "Remove upload privileges" on the torrent deletion form
-
-2014-03-20 by alderaan
-Add