Use SSL for links in RSS feed if appropriate

Add support for multiple forums with public voters

Use geoip function

Add support for neutral leech in Sphinx
This commit is contained in:
What.CD 2011-05-13 08:00:07 +00:00
parent dcaa536e58
commit edaabc385b
10 changed files with 48 additions and 29 deletions

View File

@ -1,5 +1,7 @@
<? <?
class FEED { class FEED {
var $UseSSL = false; // If we're using SSL for blog and news links
function open_feed() { function open_feed() {
header("Content-type: application/xml; charset=UTF-8"); header("Content-type: application/xml; charset=UTF-8");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n","<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n\t<channel>\n"; echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n","<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n\t<channel>\n";
@ -8,11 +10,12 @@ function close_feed() {
echo "\t</channel>\n</rss>"; echo "\t</channel>\n</rss>";
} }
function channel($Title, $Description, $Section='') { function channel($Title, $Description, $Section='') {
echo "\t\t<title>", $Title, " :: ", SITE_NAME, "</title>\n"; $Site = $this->UseSSL ? 'https://'.SSL_SITE_URL : 'http://'.NONSSL_SITE_URL;
echo "\t\t<link>http://", SITE_URL, "/", $Section, "</link>\n"; echo "\t\t<title>$Title :: ". SITE_NAME. "</title>\n";
echo "\t\t<description>", $Description, "</description>\n"; echo "\t\t<link>$Site/$Section</link>\n";
echo "\t\t<description>$Description</description>\n";
echo "\t\t<language>en-us</language>\n"; echo "\t\t<language>en-us</language>\n";
echo "\t\t<lastBuildDate>", date('r'), "</lastBuildDate>\n"; echo "\t\t<lastBuildDate>". date('r'). "</lastBuildDate>\n";
echo "\t\t<docs>http://blogs.law.harvard.edu/tech/rss</docs>\n"; echo "\t\t<docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
echo "\t\t<generator>Gazelle Feed Class</generator>\n\n"; echo "\t\t<generator>Gazelle Feed Class</generator>\n\n";
} }
@ -22,15 +25,15 @@ function item($Title, $Description, $Page, $Creator, $Comments='', $Category='',
} else { } else {
$Date = date("r",strtotime($Date)); $Date = date("r",strtotime($Date));
} }
$Site = NONSSL_SITE_URL; $Site = $this->UseSSL ? 'https://'.SSL_SITE_URL : 'http://'.NONSSL_SITE_URL;
$Item = "\t\t<item>\n"; $Item = "\t\t<item>\n";
$Item .= "\t\t\t<title><![CDATA[$Title]]></title>\n"; $Item .= "\t\t\t<title><![CDATA[$Title]]></title>\n";
$Item .= "\t\t\t<description><![CDATA[$Description]]></description>\n"; $Item .= "\t\t\t<description><![CDATA[$Description]]></description>\n";
$Item .= "\t\t\t<pubDate>$Date</pubDate>\n"; $Item .= "\t\t\t<pubDate>$Date</pubDate>\n";
$Item .= "\t\t\t<link>http://$Site/$Page</link>\n"; $Item .= "\t\t\t<link>$Site/$Page</link>\n";
$Item .= "\t\t\t<guid>http://$Site/$Page</guid>\n"; $Item .= "\t\t\t<guid>$Site/$Page</guid>\n";
if ($Comments != '') { if ($Comments != '') {
$Item .= "\t\t\t<comments>http://$Site/$Comments</comments>\n"; $Item .= "\t\t\t<comments>$Site/$Comments</comments>\n";
} }
if ($Category != '') { if ($Category != '') {
$Item .= "\t\t\t<category><![CDATA[$Category]]></category>\n"; $Item .= "\t\t\t<category><![CDATA[$Category]]></category>\n";

View File

@ -108,6 +108,8 @@ define('STATUS_CHAN', '#');
// Miscellaneous values // Miscellaneous values
$ForumsRevealVoters = array();
$Categories = array('Music', 'Applications', 'E-Books', 'Audiobooks', 'E-Learning Videos', 'Comedy', 'Comics'); $Categories = array('Music', 'Applications', 'E-Books', 'Audiobooks', 'E-Learning Videos', 'Comedy', 'Comics');
$CategoryIcons = array('music.png', 'apps.png', 'ebook.png', 'audiobook.png', 'elearning.png', 'comedy.png', 'comics.png'); $CategoryIcons = array('music.png', 'apps.png', 'ebook.png', 'audiobook.png', 'elearning.png', 'comedy.png', 'comics.png');

View File

@ -193,7 +193,6 @@
// Update LastUpdate every 10 minutes // Update LastUpdate every 10 minutes
if(strtotime($UserSessions[$SessionID]['LastUpdate'])+600<time()) { if(strtotime($UserSessions[$SessionID]['LastUpdate'])+600<time()) {
$DB->query("UPDATE users_main SET LastAccess='".sqltime()."' WHERE ID='$LoggedUser[ID]'"); $DB->query("UPDATE users_main SET LastAccess='".sqltime()."' WHERE ID='$LoggedUser[ID]'");
$DB->query("UPDATE users_sessions SET IP='".$_SERVER['REMOTE_ADDR']."', Browser='".$Browser."', OperatingSystem='".$OperatingSystem."', LastUpdate='".sqltime()."' WHERE UserID='$LoggedUser[ID]' AND SessionID='".db_string($SessionID)."'"); $DB->query("UPDATE users_sessions SET IP='".$_SERVER['REMOTE_ADDR']."', Browser='".$Browser."', OperatingSystem='".$OperatingSystem."', LastUpdate='".sqltime()."' WHERE UserID='$LoggedUser[ID]' AND SessionID='".db_string($SessionID)."'");
$Cache->begin_transaction('users_sessions_'.$UserID); $Cache->begin_transaction('users_sessions_'.$UserID);
$Cache->delete_row($SessionID); $Cache->delete_row($SessionID);
@ -1224,7 +1223,7 @@ function update_hash($GroupID) {
MAX(t.Scene) AS Scene, MAX(t.Scene) AS Scene,
MAX(t.HasLog) AS HasLog, MAX(t.HasLog) AS HasLog,
MAX(t.HasCue) AS HasCue, MAX(t.HasCue) AS HasCue,
MAX(t.FreeTorrent) AS FreeTorrent, BIT_OR(t.FreeTorrent-1) AS FreeTorrent,
GROUP_CONCAT(DISTINCT t.Media SEPARATOR ' ') AS Media, GROUP_CONCAT(DISTINCT t.Media SEPARATOR ' ') AS Media,
GROUP_CONCAT(DISTINCT t.Format SEPARATOR ' ') AS Format, GROUP_CONCAT(DISTINCT t.Format SEPARATOR ' ') AS Format,
GROUP_CONCAT(DISTINCT t.Encoding SEPARATOR ' ') AS Encoding, GROUP_CONCAT(DISTINCT t.Encoding SEPARATOR ' ') AS Encoding,

View File

@ -87,4 +87,5 @@ function display_array($Array, $Escape = array()) {
header('Expires: '.date('D, d M Y H:i:s', time()+(2*60*60)).' GMT'); header('Expires: '.date('D, d M Y H:i:s', time()+(2*60*60)).' GMT');
header('Last-Modified: '.date('D, d M Y H:i:s').' GMT'); header('Last-Modified: '.date('D, d M Y H:i:s').' GMT');
$Feed->UseSSL = (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443);
require(SERVER_ROOT.'/sections/feeds/index.php'); require(SERVER_ROOT.'/sections/feeds/index.php');

View File

@ -168,13 +168,14 @@
$MaxVotes = 0; $MaxVotes = 0;
} }
$RevealVoters = in_array($ForumID, $ForumsRevealVoters);
//Polls lose the you voted arrow thingy //Polls lose the you voted arrow thingy
$DB->query("SELECT Vote FROM forums_polls_votes WHERE UserID='".$LoggedUser['ID']."' AND TopicID='$ThreadID'"); $DB->query("SELECT Vote FROM forums_polls_votes WHERE UserID='".$LoggedUser['ID']."' AND TopicID='$ThreadID'");
list($UserResponse) = $DB->next_record(); list($UserResponse) = $DB->next_record();
if (!empty($UserResponse) && $UserResponse != 0) { if (!empty($UserResponse) && $UserResponse != 0) {
$Answers[$UserResponse] = '&raquo; '.$Answers[$UserResponse]; $Answers[$UserResponse] = '&raquo; '.$Answers[$UserResponse];
} else { } else {
if(!empty($UserResponse) && $ForumID == STAFF_FORUM) { if(!empty($UserResponse) && $RevealVoters) {
$Answers[$UserResponse] = '&raquo; '.$Answers[$UserResponse]; $Answers[$UserResponse] = '&raquo; '.$Answers[$UserResponse];
} }
} }
@ -187,7 +188,7 @@
<? if ($UserResponse !== null || $Closed || $ThreadInfo['IsLocked'] || $LoggedUser['Class'] < $Forums[$ForumID]['MinClassWrite']) { ?> <? if ($UserResponse !== null || $Closed || $ThreadInfo['IsLocked'] || $LoggedUser['Class'] < $Forums[$ForumID]['MinClassWrite']) { ?>
<ul class="poll nobullet"> <ul class="poll nobullet">
<? <?
if($ForumID != STAFF_FORUM) { if(!$RevealVoters) {
foreach($Answers as $i => $Answer) { foreach($Answers as $i => $Answer) {
if (!empty($Votes[$i]) && $TotalVotes > 0) { if (!empty($Votes[$i]) && $TotalVotes > 0) {
$Ratio = $Votes[$i]/$MaxVotes; $Ratio = $Votes[$i]/$MaxVotes;
@ -253,11 +254,17 @@
<? } ?> <? } ?>
<li><a href="forums.php?action=change_vote&amp;threadid=<?=$ThreadID?>&amp;auth=<?=$LoggedUser['AuthKey']?>&amp;vote=0">Blank</a> - <?=$StaffVotes[0]?>&nbsp;(<?=number_format(((float) $Votes[0]/$TotalVotes)*100, 2)?>%)</li> <li><a href="forums.php?action=change_vote&amp;threadid=<?=$ThreadID?>&amp;auth=<?=$LoggedUser['AuthKey']?>&amp;vote=0">Blank</a> - <?=$StaffVotes[0]?>&nbsp;(<?=number_format(((float) $Votes[0]/$TotalVotes)*100, 2)?>%)</li>
</ul> </ul>
<?
if($ForumID == STAFF_FORUM) {
?>
<br /> <br />
<strong>Votes:</strong> <?=number_format($TotalVotes)?> / <?=$StaffCount ?> <strong>Votes:</strong> <?=number_format($TotalVotes)?> / <?=$StaffCount ?>
<br /> <br />
<strong>Missing Votes:</strong> <?=implode(", ", $StaffNames)?> <strong>Missing Votes:</strong> <?=implode(", ", $StaffNames)?>
<br /><br /> <br /><br />
<?
}
?>
<a href="#" onclick="AddPollOption(<?=$ThreadID?>); return false;">[+]</a> <a href="#" onclick="AddPollOption(<?=$ThreadID?>); return false;">[+]</a>
<? <?
} }
@ -292,7 +299,7 @@
</form> </form>
</div> </div>
<? } ?> <? } ?>
<? if(check_perms('forums_polls_moderate') && $ForumID != STAFF_FORUM) { ?> <? if(check_perms('forums_polls_moderate') && !$RevealVoters) { ?>
<? if (!$Featured || $Featured == '0000-00-00 00:00:00') { ?> <? if (!$Featured || $Featured == '0000-00-00 00:00:00') { ?>
<form action="forums.php" method="post"> <form action="forums.php" method="post">
<input type="hidden" name="action" value="poll_mod"/> <input type="hidden" name="action" value="poll_mod"/>

View File

@ -432,7 +432,7 @@ function next_hour() {
foreach($Passkeys as $Passkey) { foreach($Passkeys as $Passkey) {
update_tracker('update_user', array('passkey' => $Passkey, 'can_leech' => '1')); update_tracker('update_user', array('passkey' => $Passkey, 'can_leech' => '1'));
} }
/*
// Put user on ratio watch if he doesn't meet the standards // Put user on ratio watch if he doesn't meet the standards
sleep(10); sleep(10);
@ -440,6 +440,7 @@ function next_hour() {
WHERE m.Uploaded/m.Downloaded < m.RequiredRatio WHERE m.Uploaded/m.Downloaded < m.RequiredRatio
AND i.RatioWatchEnds='0000-00-00 00:00:00' AND i.RatioWatchEnds='0000-00-00 00:00:00'
AND m.Enabled='1' AND m.Enabled='1'
AND m.Downloaded > 100<<30
AND m.can_leech='1'"); AND m.can_leech='1'");
$OnRatioWatch = $DB->collect('ID'); $OnRatioWatch = $DB->collect('ID');
@ -458,7 +459,7 @@ function next_hour() {
send_pm($UserID, 0, db_string("You have been put on Ratio Watch"), db_string("This happens when your ratio falls below the requirements we have outlined in the rules located [url=http://".NONSSL_SITE_URL."/rules.php?p=ratio]here[/url].\n For information about ratio watch, click the link above."), ''); send_pm($UserID, 0, db_string("You have been put on Ratio Watch"), db_string("This happens when your ratio falls below the requirements we have outlined in the rules located [url=http://".NONSSL_SITE_URL."/rules.php?p=ratio]here[/url].\n For information about ratio watch, click the link above."), '');
echo "Ratio watch on: $UserID\n"; echo "Ratio watch on: $UserID\n";
} }
*/
sleep(5); sleep(5);
//------------- Rescore 0.95 logs of disabled users //------------- Rescore 0.95 logs of disabled users

View File

@ -13,7 +13,4 @@
die("Invalid IP"); die("Invalid IP");
} }
$DB->query("SELECT Code FROM geoip_country WHERE ".ip2long($_GET['ip'])." BETWEEN StartIP AND EndIP LIMIT 1"); die(geoip($_GET['ip']));
list($CC) = $DB->next_record();
die($CC);

View File

@ -240,7 +240,16 @@ function header_link($SortKey,$DefaultWay="desc") {
foreach(array('hascue','scene','freetorrent','releasetype') as $Search) { foreach(array('hascue','scene','freetorrent','releasetype') as $Search) {
if(isset($_GET[$Search]) && $_GET[$Search]!=='') { if(isset($_GET[$Search]) && $_GET[$Search]!=='') {
$SS->set_filter($Search, array($_GET[$Search])); if($Search == 'freetorrent') {
switch($_GET[$Search]) {
case 0: $SS->set_filter($Search, array(0)); break;
case 1: $SS->set_filter($Search, array(1)); break;
case 2: $SS->set_filter($Search, array(2)); break;
case 3: $SS->set_filter($Search, array(0), true); break;
}
} else {
$SS->set_filter($Search, array($_GET[$Search]));
}
} }
} }
@ -479,9 +488,11 @@ function header_link($SortKey,$DefaultWay="desc") {
<option value="0" <?selected('scene',0)?>>No</option> <option value="0" <?selected('scene',0)?>>No</option>
</select> </select>
<select name="freetorrent"> <select name="freetorrent">
<option value="">Freeleech</option> <option value="">Leech Status</option>
<option value="1" <?selected('freetorrent',1)?>>Yes</option> <option value="1" <?selected('freetorrent',1)?>>Freeleech</option>
<option value="0" <?selected('freetorrent',0)?>>No</option> <option value="2" <?selected('freetorrent',2)?>>Neutral Leech</option>
<option value="3" <?selected('freetorrent',3)?>>Either</option>
<option value="0" <?selected('freetorrent',0)?>>Normal</option>
</select> </select>
</td> </td>
</tr> </tr>
@ -784,7 +795,7 @@ function header_link($SortKey,$DefaultWay="desc") {
} }
if(isset($_GET['freetorrent']) && $_GET['freetorrent']!=='') { if(isset($_GET['freetorrent']) && $_GET['freetorrent']!=='') {
$Filter = true; $Filter = true;
if((int)$Data['FreeTorrent']==$_GET['freetorrent']) { if((int)$Data['FreeTorrent'] & $_GET['freetorrent'] || (int)$Data['FreeTorrent'] == $_GET['freetorrent']) {
$Pass = true; $Pass = true;
} }
} }

View File

@ -229,9 +229,7 @@
$UpdateSet[]="PermissionID='$Class'"; $UpdateSet[]="PermissionID='$Class'";
$EditSummary[]="class changed to ".make_class_string($Class); $EditSummary[]="class changed to ".make_class_string($Class);
$LightUpdates['PermissionID']=$Class; $LightUpdates['PermissionID']=$Class;
if ($Class == 6) {
$DB->query("UPDATE users_info SET RestrictedForums = CONCAT('30,', RestrictedForums) WHERE UserID = ".$UserID);
}
$DB->query("SELECT DISTINCT DisplayStaff FROM permissions WHERE ID = $Class OR ID = ".$ClassLevels[$Cur['Class']]['ID']); $DB->query("SELECT DISTINCT DisplayStaff FROM permissions WHERE ID = $Class OR ID = ".$ClassLevels[$Cur['Class']]['ID']);
if($DB->record_count() == 2) { if($DB->record_count() == 2) {
if($Classes[$Class]['Level'] < $Cur['Class']) { if($Classes[$Class]['Level'] < $Cur['Class']) {

View File

@ -23,7 +23,7 @@ source torrents {
g.CatalogueNumber, g.CategoryID, UNIX_TIMESTAMP(g.Time) AS Time, g.ReleaseType, \ g.CatalogueNumber, g.CategoryID, UNIX_TIMESTAMP(g.Time) AS Time, g.ReleaseType, \
MAX(CEIL(t.Size/1024)) AS Size, SUM(t.Snatched) AS Snatched, SUM(t.Seeders) AS Seeders, \ MAX(CEIL(t.Size/1024)) AS Size, SUM(t.Snatched) AS Snatched, SUM(t.Seeders) AS Seeders, \
SUM(t.Leechers) AS Leechers, MAX(t.LogScore) AS LogScore, MAX(t.Scene) AS Scene, \ SUM(t.Leechers) AS Leechers, MAX(t.LogScore) AS LogScore, MAX(t.Scene) AS Scene, \
MAX(t.HasLog) AS HasLog, MAX(t.HasCue) AS HasCue, MAX(t.FreeTorrent) AS FreeTorrent, \ MAX(t.HasLog) AS HasLog, MAX(t.HasCue) AS HasCue, BIT_OR(t.FreeTorrent-1) AS FreeTorrent, \
GROUP_CONCAT(DISTINCT t.Media SEPARATOR ' ') AS Media, \ GROUP_CONCAT(DISTINCT t.Media SEPARATOR ' ') AS Media, \
GROUP_CONCAT(DISTINCT t.Format SEPARATOR ' ') AS Format, \ GROUP_CONCAT(DISTINCT t.Format SEPARATOR ' ') AS Format, \
GROUP_CONCAT(DISTINCT t.Encoding SEPARATOR ' ') AS Encoding, \ GROUP_CONCAT(DISTINCT t.Encoding SEPARATOR ' ') AS Encoding, \
@ -68,7 +68,7 @@ source torrents {
sql_attr_bool = scene sql_attr_bool = scene
sql_attr_bool = haslog sql_attr_bool = haslog
sql_attr_bool = hascue sql_attr_bool = hascue
sql_attr_bool = freetorrent sql_attr_uint = freetorrent
sql_query_info = SELECT ID, GroupName, ArtistName, TagList, Filelist FROM sphinx_hash WHERE ID = $id sql_query_info = SELECT ID, GroupName, ArtistName, TagList, Filelist FROM sphinx_hash WHERE ID = $id
} }