Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
L4nz committed Mar 2, 2012
0 parents commit 3ba1efb
Show file tree
Hide file tree
Showing 1,182 changed files with 85,184 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
config.php
release/*
static/similar
150 changes: 150 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
CHANGELOG
2010-08-28
-Upgrade Sphinx to 1.10b

2010-08-25
-Better handling of special characters in torrent searches
-Improved file name search
-Add negations to request searches

2010-08-11
-Fixed long standing IE Bug. Turns out that IE fails to handle unicode data in the Content-disposition header so this value is now urlencoded ensuring compatibility.

2010-08-10
-Added check for CustomPerms IP protection on login

2010-07-30
-Add collage stats to user profiles

2010-07-04
-Updated sphinx.conf

2010-06-26
-Fixed IP bans and added to public repo
-Added catch for missing system 'host' command
-Logged in users can't hit register.php
-Fix in URL_REGEX to allow URLs of the form http://foo.com/

2010-06-09
-Delete torrent files when torrent is deleted

2010-06-04
-User proper names on bookmark/notify links if a group is already bookmarked or in the notifications

2010-05-21
-Sortable invitee list

2010-05-16
-Escape tag links on user torrent pages

2010-05-12
-Make the "view tags" button change to "hide tags" if tags are shown
-Make editing upload/download amounts work on 32bit systems
-Fix a typo in class_cache, not major
-Add default values to schedule table

2010-05-09
-Add catchup link to subscriptions page

2010-05-05
-Move $Classes fetching code to somewhere globally accessible so that schedule can fetch it

2010-05-03
-Fixed bug in 32bit parser that would allow clients to set private=0

2010-05-01
-Add preview functionality to thread creation page

2010-04-30
-Fix various subscription bugs

2010-04-29
-Properly update cache and database when a forum post is removed

2010-04-28
-Alias IDs now show next to artists in the artist box
-Users with an infinite ratio now get promoted along with those who have a
ratio of 1.05 or higher

2010-04-26
-Fixed bug where snatchlists were not visible to other users at paranoia level
1 (should be 2 or higher)

2010-04-19
-Add requests to sphinx.conf

2010-04-18
-Fix request sorting

2010-04-15
-Added clickable staff notes

2010-04-14
-Add stylesheet and avatar search to advanced user search

2010-04-13
-Require authorization to manually run schedule
-Fix minor bbcode bug which didn't allow question marks in filenames

2010-04-11
-Add "visible" checkbox to user profiles. Unticked, this will remove a user from a peer list.
-Add option to disable PM privileges of user

2010-04-07
-Fix critical bug where users can view staff forum posts by changing the ID on the reports page

2010-03-18
-Clear notifications per torrent or filter

2010-03-16
-Notifications groups actually work now
-Post history and subscriptions pages now default to unread posts with collapsed post bodies

2010-03-14
-Group notifications by filter

2010-03-13
-Added ability to view a user's downloaded torrents as well as snatched

2010-03-12
-Thread subscriptions
-Various bugfixes, see resolved gazelle bug forum
-Standardised Email and Image regexes across gazelle

2010-03-10
-Completed requestsv2, feel free to use it now

2010-03-09
-Add size and files column to notifications page and clone the browse layout
-Don't redirect if ssl url == nonssl url
-Fix some more warnings when calling sphinxapi.php
-Year filter in notifications also checks remaster year

2010-03-07
-Change INSERT INTO to REPLACE INTO to avoid errors when updating the sphinx*_delta tables

2010-03-04
-Added initial version of requestsv2, will need more updates so not advised to
update yet

2010-03-02
-Fixed bug in notifications by tags

2010-03-01
-Fixed bug in notifications by release type

2010-02-28
-Fixed bug which causes stats to be altered if the tracker updates while someone with stat editing powers moderates a profile
-Fixed artist permission
-Fixed two permission bugs
-Removed references to What.CD in takemoderate.php
-Fixed E_NOTICE with regards to taglist on browse2.php
-Removed geodistribution from stats, fixed stats so they don't whitepage
-Fixed the user geodistribution stats and geoip database updater, and added a function for an unsigned ip2long
-Kill poll manager, it doesn't work anymore - use the forums
-Fix width of poll replies, don't display poll if there aren't any
-Re-add reports folder
-Fixed "database schema" tool
-Fix upscale pool blank message
-Fix number of posts in a forum after a thread has been moved out of it
-Strip out SVN revision echo
133 changes: 133 additions & 0 deletions COPYING.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
COPYRIGHTED AND PATENTED PENDING BY WHAT.CD INCORPORATED, DBA/AKA PROJECT
GAZELLE

END-USER LICENSE AGREEMENT

The Gazelle Source Code (hereinafter referred to as the Software) is made
publically available free of charge by Project Gazelle (sometimes a trade and
business name for the legally consituted entity known as What.CD Incorporated,
a Panamanian Corporation), copyright and patent pending owner (hereinafter
referred to as the Licensor or Original Licensor) to anyone who wishes to use
and/or share or distribute and/or change or modify it (hereinafter referred to
as either the Licensee and/or End-User) FOR NONCOMMERCIAL PURPOSES ONLY under
the following terms and conditions (hereinafter referred to as the "License"):

Section 1. You may copy and distribute verbatim copies of the Software's
source code as you receive it, in any medium, provided that you conspicuously
and appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this License
and to the absence of any warranty; and give any other recipients of the
Software a copy of this License along with the Software.

Section 2: You may modify or change your copy or copies of the Software or
any portion of it, thus forming a work based on the Software, and copy and
distribute such modifications or work under the terms of Section 1 above,
provided that you also meet all of these conditions:

2.1: You must cause the modified files to carry prominent notices stating
that you changed the files and the date of any change.

2.2: You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Software or any part thereof,
to be licensed as a whole at no charge to all third parties under the terms of
this License.

Section 3: You may copy and distribute the Software (or a work based on it,
under the terms of Section 2) in object code or executable form under the
terms of Sections 1 and 2 above provided that you also do one of the
following:

3.1: Accompany it with the complete corresponding machine-readable source
code, which must be distributed under the terms of Sections 1 and 2 above on
a medium customarily used for software interchange; or,

3.2: Accompany it with a written offer, valid for at least one year, to
give any third party, for a charge no more than your cost of physically
performing source distribution, a complete machine-readable copy of the
corresponding source code, to be distributed under the terms of Sections 1 and
2 above on a medium customarily used for software interchange; or,

3.3: Accompany it with the information you received as to the offer to
distribute corresponding source code. (This alternative is allowed only for
noncommercial distribution and only if you received the Software in object
code or executable form with such an offer, in accord with Subsection 3.2
above.)

Section 4: You may not copy, modify, sublicense, or distribute the Software
except as expressly provided under this License. Any attempt otherwise to
copy, modify, sublicense or distribute the Software is void, and will
automatically terminate your rights under this License. Parties who have
received copies, or rights, from you under this License, however, will not
have their licenses terminated so long as such parties remain in full
compliance with the terms and conditions of this License.

Section 5: This License and nothing else grants you permission to use, modify
and/or distribute the Software or its derivative works and only in accordance
with the terms and conditions of this License. Otherwise, use, modification
and/or distribution of this Software is prohibited by international laws and
treaties as regards intellectual property. Therefore, by using, modifying
and/or distributing the Software (or any work based on the Software), you
indicate your acceptance of this License to do so, and all its terms and
conditions for copying, distributing or modifying the software or works based
on it.

Section 6: Each time you redistribute the Software (or any work based on the
Software), the recipient automatically receives a license from the Original
Licensor to copy, distribute and/or modify the Software subject to these terms
and conditions. You may not impose any further restrictions on the
recipients' exercise of the rights granted herein. You are not responsible for
enforcing compliance by third parties to this License.

Section 7: NO WARRANTY

7.1: BECAUSE THE SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT
WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT/PATENT HOLDERS AND/OR OTHER
PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE PROGRAM
PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
CORRECTION.


7.2:. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT/PATENT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED
BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER
SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

Section 8: If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or otherwise)
that contradict the conditions of this License, they do not excuse you from
the conditions of this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent
obligations, then as a consequence you may not distribute the Software at all.
For example, if a patent license would not permit royalty-free redistribution
of the Software by all those who receive copies directly or indirectly through
you, then the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Software.

Section 9: If any portion or section of this License is held invalid or
unenforceable under any particular circumstance, the balance of this License
and pertinent section is intended to apply and the section as a whole is
intended to apply in other circumstances.

Section 10: Each version of the Software is given a distinguishing version
number. If the Software specifies a version number of this License which
applies to it and "any later version", you have the option of following the
terms and conditions either of that version or of any later version. If the
Software does not specify a version number of this License, you may choose any
version ever published by the Licensor.

Section 11: This Software is distributed pursuant to the terms and conditions
of this License and is distributed free of charge FOR NONCOMMERCIAL PURPOSES
ONLY. THE USE, DISTRIBUTION AND/OR MODIFICATION OF THIS SOFTWARE FOR
COMMERCIAL PURPOSES IS EXPRESSLY PROHIBITED BY INTERNATIONAL LAWS AND TREATIES
AS REGARDS INTELLECTUAL PROPERTY.

30 changes: 30 additions & 0 deletions INSTALL.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
INSTALLATION NOTES
1. Set up MySQL and memcached. We run memcached with the command:
memcached -d -m 5120 -s /var/run/memcached.sock -a 0777 -t16 -C -u root
This gives it 5 gigs of RAM, you probably want to set that a bit lower!
2. Run gazelle.sql (preferably as root) to create the database, the table, and the default data.
3. Install sphinx - we recommend you use the included sphinx.conf
For documentation, read http://www.sphinxsearch.com/docs/current.html

After you've installed, create the indices:
/usr/local/bin/indexer -c /etc/sphinx/sphinx.conf --all

4. Move classes/config.template to classes/config.php. Edit the config.php as needed.
We use http://grc.com/passwords.html for our passwords - you'll be generating a lot of these.
5. Sign up. The first user is made a sysop!
6. Set up cron jobs. You need a cron job for the schedule, a cron job for
the peerupdate (all groups are cached, but the peer counts change often,
so peerupdate is a script to update them), and the two sphinx indices.
These are our cron jobs:

0,15,30,45 * * * * /usr/local/bin/php /var/www/vhosts/what/schedule.php SCHEDULE_KEY >> /root/schedule.log
10,25,40,55 * * * * /usr/local/bin/php /var/www/vhosts/what/peerupdate.php SCHEDULE_KEY >> /root/peerupdate.log
* * * * * /usr/local/bin/indexer -c /etc/sphinx/sphinx.conf --rotate delta
5 0,12 * * * /usr/local/bin/indexer -c /etc/sphinx/sphinx.conf --rotate --all

7. You're probably going to want geoip information, so first you need to fill in the geoip_country tables by visiting /tools.php?action=update_geoip .
After that finishes parsing information from maxmind, you'll may want to map users to countries by running:
"INSERT INTO users_geodistribution (Code, Users) SELECT g.Code, COUNT(u.ID) AS Users FROM geoip_country AS g JOIN users_main AS u ON INET_ATON(u.IP) BETWEEN g.StartIP AND g.EndIP WHERE u.Enabled='1' GROUP BY g.Code ORDER BY Users DESC"
This will fill in the table needed for stats.

8. Start modifying stuff. Hopefully, everything will have gone smoothly so far and nothing will have exploded (ha ha ha)
1 change: 1 addition & 0 deletions ajax.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<? require('classes/script_start.php'); ?>
1 change: 1 addition & 0 deletions announce.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d14:failure reason40:Invalid .torrent, try downloading again.e
Loading

0 comments on commit 3ba1efb

Please sign in to comment.