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 {
var $UseSSL = false; // If we're using SSL for blog and news links
function open_feed() {
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";
@ -8,11 +10,12 @@ function close_feed() {
echo "\t</channel>\n</rss>";
}
function channel($Title, $Description, $Section='') {
echo "\t\t<title>", $Title, " :: ", SITE_NAME, "</title>\n";
echo "\t\t<link>http://", SITE_URL, "/", $Section, "</link>\n";
echo "\t\t<description>", $Description, "</description>\n";
$Site = $this->UseSSL ? 'https://'.SSL_SITE_URL : 'http://'.NONSSL_SITE_URL;
echo "\t\t<title>$Title :: ". SITE_NAME. "</title>\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<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<generator>Gazelle Feed Class</generator>\n\n";
}
@ -22,15 +25,15 @@ function item($Title, $Description, $Page, $Creator, $Comments='', $Category='',
} else {
$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\t<title><![CDATA[$Title]]></title>\n";
$Item .= "\t\t\t<description><![CDATA[$Description]]></description>\n";
$Item .= "\t\t\t<pubDate>$Date</pubDate>\n";
$Item .= "\t\t\t<link>http://$Site/$Page</link>\n";
$Item .= "\t\t\t<guid>http://$Site/$Page</guid>\n";
$Item .= "\t\t\t<link>$Site/$Page</link>\n";
$Item .= "\t\t\t<guid>$Site/$Page</guid>\n";
if ($Comments != '') {
$Item .= "\t\t\t<comments>http://$Site/$Comments</comments>\n";
$Item .= "\t\t\t<comments>$Site/$Comments</comments>\n";
}
if ($Category != '') {
$Item .= "\t\t\t<category><![CDATA[$Category]]></category>\n";

View File

@ -108,6 +108,8 @@ define('STATUS_CHAN', '#');
// Miscellaneous values
$ForumsRevealVoters = array();
$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');

View File

@ -193,7 +193,6 @@
// Update LastUpdate every 10 minutes
if(strtotime($UserSessions[$SessionID]['LastUpdate'])+600<time()) {
$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)."'");
$Cache->begin_transaction('users_sessions_'.$UserID);
$Cache->delete_row($SessionID);
@ -1224,7 +1223,7 @@ function update_hash($GroupID) {
MAX(t.Scene) AS Scene,
MAX(t.HasLog) AS HasLog,
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.Format SEPARATOR ' ') AS Format,
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('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');

View File

@ -168,13 +168,14 @@
$MaxVotes = 0;
}
$RevealVoters = in_array($ForumID, $ForumsRevealVoters);
//Polls lose the you voted arrow thingy
$DB->query("SELECT Vote FROM forums_polls_votes WHERE UserID='".$LoggedUser['ID']."' AND TopicID='$ThreadID'");
list($UserResponse) = $DB->next_record();
if (!empty($UserResponse) && $UserResponse != 0) {
$Answers[$UserResponse] = '&raquo; '.$Answers[$UserResponse];
} else {
if(!empty($UserResponse) && $ForumID == STAFF_FORUM) {
if(!empty($UserResponse) && $RevealVoters) {
$Answers[$UserResponse] = '&raquo; '.$Answers[$UserResponse];
}
}
@ -187,7 +188,7 @@
<? if ($UserResponse !== null || $Closed || $ThreadInfo['IsLocked'] || $LoggedUser['Class'] < $Forums[$ForumID]['MinClassWrite']) { ?>
<ul class="poll nobullet">
<?
if($ForumID != STAFF_FORUM) {
if(!$RevealVoters) {
foreach($Answers as $i => $Answer) {
if (!empty($Votes[$i]) && $TotalVotes > 0) {
$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>
</ul>
<?
if($ForumID == STAFF_FORUM) {
?>
<br />
<strong>Votes:</strong> <?=number_format($TotalVotes)?> / <?=$StaffCount ?>
<br />
<strong>Missing Votes:</strong> <?=implode(", ", $StaffNames)?>
<br /><br />
<?
}
?>
<a href="#" onclick="AddPollOption(<?=$ThreadID?>); return false;">[+]</a>
<?
}
@ -292,7 +299,7 @@
</form>
</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') { ?>
<form action="forums.php" method="post">
<input type="hidden" name="action" value="poll_mod"/>

View File

@ -432,7 +432,7 @@ function next_hour() {
foreach($Passkeys as $Passkey) {
update_tracker('update_user', array('passkey' => $Passkey, 'can_leech' => '1'));
}
/*
// Put user on ratio watch if he doesn't meet the standards
sleep(10);
@ -440,6 +440,7 @@ function next_hour() {
WHERE m.Uploaded/m.Downloaded < m.RequiredRatio
AND i.RatioWatchEnds='0000-00-00 00:00:00'
AND m.Enabled='1'
AND m.Downloaded > 100<<30
AND m.can_leech='1'");
$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."), '');
echo "Ratio watch on: $UserID\n";
}
*/
sleep(5);
//------------- Rescore 0.95 logs of disabled users

View File

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

View File

@ -240,7 +240,16 @@ function header_link($SortKey,$DefaultWay="desc") {
foreach(array('hascue','scene','freetorrent','releasetype') as $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>
</select>
<select name="freetorrent">
<option value="">Freeleech</option>
<option value="1" <?selected('freetorrent',1)?>>Yes</option>
<option value="0" <?selected('freetorrent',0)?>>No</option>
<option value="">Leech Status</option>
<option value="1" <?selected('freetorrent',1)?>>Freeleech</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>
</td>
</tr>
@ -784,7 +795,7 @@ function header_link($SortKey,$DefaultWay="desc") {
}
if(isset($_GET['freetorrent']) && $_GET['freetorrent']!=='') {
$Filter = true;
if((int)$Data['FreeTorrent']==$_GET['freetorrent']) {
if((int)$Data['FreeTorrent'] & $_GET['freetorrent'] || (int)$Data['FreeTorrent'] == $_GET['freetorrent']) {
$Pass = true;
}
}

View File

@ -229,9 +229,7 @@
$UpdateSet[]="PermissionID='$Class'";
$EditSummary[]="class changed to ".make_class_string($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']);
if($DB->record_count() == 2) {
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, \
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, \
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.Format SEPARATOR ' ') AS Format, \
GROUP_CONCAT(DISTINCT t.Encoding SEPARATOR ' ') AS Encoding, \
@ -68,7 +68,7 @@ source torrents {
sql_attr_bool = scene
sql_attr_bool = haslog
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
}