示例#1
0
function transcode_init_sphql()
{
    // Initializes a basic SphinxqlQuery object
    $SphQL = new SphinxqlQuery();
    $SphQL->select('groupid')->from('better_transcode')->where('logscore', 100)->where_match('FLAC', 'format')->order_by('RAND()')->limit(0, TORRENTS_PER_PAGE, TORRENTS_PER_PAGE);
    if (in_array($_GET['target'], array('v0', 'v2', '320'))) {
        // V0/V2/320 is missing
        $SphQL->where_match('!' . $_GET['target'], 'encoding', false);
    } elseif ($_GET['target'] === 'all') {
        // all transcodes are missing
        $SphQL->where_match('!(v0 | v2 | 320)', 'encoding', false);
    } else {
        // any transcode is missing
        $SphQL->where_match('!(v0 v2 320)', 'encoding', false);
    }
    if (!empty($_GET['search'])) {
        $SphQL->where_match($_GET['search'], '(groupname,artistname,year,taglist)');
    }
    return $SphQL;
}
示例#2
0
if ($CategoryName === 'Music') {
    $ArtistForm = Requests::get_artists($RequestID);
    $ArtistName = Artists::display_artists($ArtistForm, false, true);
    $FullName = $ArtistName . $Title;
} else {
    $FullName = $Title;
}
$DB->query("\n\tSELECT UserID\n\tFROM requests_votes\n\tWHERE RequestID = {$RequestID}");
$UserIDs = $DB->to_array();
foreach ($UserIDs as $User) {
    list($VoterID) = $User;
    Misc::send_pm($VoterID, 0, "The request \"{$FullName}\" has been filled", 'One of your requests — [url=' . site_url() . "requests.php?action=view&id={$RequestID}]{$FullName}" . '[/url] — has been filled. You can view it here: [url]' . site_url() . "torrents.php?torrentid={$TorrentID}" . '[/url]');
}
$RequestVotes = Requests::get_votes_array($RequestID);
Misc::write_log("Request {$RequestID} ({$FullName}) was filled by user {$FillerID} ({$FillerUsername}) with the torrent {$TorrentID} for a " . Format::get_size($RequestVotes['TotalBounty']) . ' bounty.');
// Give bounty
$DB->query("\n\tUPDATE users_main\n\tSET Uploaded = (Uploaded + " . $RequestVotes['TotalBounty'] . ")\n\tWHERE ID = {$FillerID}");
$Cache->delete_value("user_stats_{$FillerID}");
$Cache->delete_value("request_{$RequestID}");
if ($GroupID) {
    $Cache->delete_value("requests_group_{$GroupID}");
}
$DB->query("\n\tSELECT ArtistID\n\tFROM requests_artists\n\tWHERE RequestID = {$RequestID}");
$ArtistIDs = $DB->to_array();
foreach ($ArtistIDs as $ArtistID) {
    $Cache->delete_value("artists_requests_{$ArtistID}");
}
Requests::update_sphinx_requests($RequestID);
$SphQL = new SphinxqlQuery();
$SphQL->raw_query("UPDATE requests, requests_delta SET torrentid = {$TorrentID}, fillerid = {$FillerID} WHERE id = {$RequestID}", false);
header("Location: requests.php?action=view&id={$RequestID}");
示例#3
0
文件: user.php 项目: Kufirc/Gazelle
				Invite Tree <a href="#" onclick="$('#invitetree').gtoggle(); return false;" class="brackets">View</a>
			</div>
			<div id="invitetree" class="hidden">
<?php 
    $Tree->make_tree();
    ?>
			</div>
		</div>
<?php 
}
if (check_perms('users_mod')) {
    DonationsView::render_donation_history(Donations::get_donation_history($UserID));
}
// Requests
if (empty($LoggedUser['DisableRequests']) && check_paranoia_here('requestsvoted_list')) {
    $SphQL = new SphinxqlQuery();
    $SphQLResult = $SphQL->select('id, votes, bounty')->from('requests, requests_delta')->where('userid', $UserID)->where('torrentid', 0)->order_by('votes', 'desc')->order_by('bounty', 'desc')->limit(0, 100, 100)->query();
    if ($SphQLResult->has_results()) {
        $SphRequests = $SphQLResult->to_array('id', MYSQLI_ASSOC);
        ?>
		<div class="box" id="requests_box">
			<div class="head">
				Requests <a href="#" onclick="$('#requests').gtoggle(); return false;" class="brackets">View</a>
			</div>
			<div id="requests" class="request_table hidden">
				<table cellpadding="6" cellspacing="1" border="0" class="border" width="100%">
					<tr class="colhead_dark">
						<td style="width: 48%;">
							<strong>Request Name</strong>
						</td>
						<td>
示例#4
0
<?php

$SphQL = new SphinxqlQuery();
$SphQL->select('id, votes, bounty')->from('requests, requests_delta');
$SortOrders = array('votes' => 'votes', 'bounty' => 'bounty', 'lastvote' => 'lastvote', 'filled' => 'timefilled', 'year' => 'year', 'created' => 'timeadded', 'random' => false);
if (empty($_GET['order']) || !isset($SortOrders[$_GET['order']])) {
    $_GET['order'] = 'created';
}
$OrderBy = $_GET['order'];
if (!empty($_GET['sort']) && $_GET['sort'] === 'asc') {
    $OrderWay = 'asc';
} else {
    $_GET['sort'] = 'desc';
    $OrderWay = 'desc';
}
$NewSort = $_GET['sort'] === 'asc' ? 'desc' : 'asc';
if ($OrderBy === 'random') {
    $SphQL->order_by('RAND()', '');
    unset($_GET['page']);
} else {
    $SphQL->order_by($SortOrders[$OrderBy], $OrderWay);
}
$Submitted = !empty($_GET['submit']);
//Paranoia
if (!empty($_GET['userid'])) {
    if (!is_number($_GET['userid'])) {
        error('User ID must be an integer');
    }
    $UserInfo = Users::user_info($_GET['userid']);
    if (empty($UserInfo)) {
        error('That user does not exist');
示例#5
0
}
/** End default parameters and validation **/
/** Start preparation of property arrays **/
array_pop($Bitrates);
// remove 'other'
$SearchBitrates = array_merge($Bitrates, array('v0', 'v1', 'v2', '24bit'));
foreach ($SearchBitrates as $ID => $Val) {
    $SearchBitrates[$ID] = strtolower($Val);
}
foreach ($Formats as $ID => $Val) {
    $SearchFormats[$ID] = strtolower($Val);
}
/** End preparation of property arrays **/
/** Start query preparation **/
$SphQL = new SphinxqlQuery();
$SphQLTor = new SphinxqlQuery();
if ($OrderBy == 'random') {
    $SphQL->select('id, groupid, categoryid')->order_by('RAND()', '');
    $Random = true;
} elseif ($GroupResults) {
    $OrderProperties = $SortOrders[$OrderBy];
    $SphQL->select('groupid, categoryid' . (isset($AggregateExp[$OrderProperties[0]]) ? ', ' . $AggregateExp[$OrderProperties[0]] : ''))->group_by('groupid')->order_by($OrderProperties[0], $OrderWay)->order_group_by($OrderProperties[1], $OrderWay);
} else {
    $SphQL->select('id, groupid, categoryid')->order_by($SortOrders[$OrderBy], $OrderWay);
}
$SphQL->from('torrents, delta');
$SphQLTor->select('id, groupid')->from('torrents, delta');
/** End query preparation **/
/** Start building search query **/
$Filtered = false;
$EnableNegation = false;
示例#6
0
if (!isset($_GET['type']) || !is_number($_GET['type']) || $_GET['type'] > 3) {
    error(0);
}
$Options = array('v0', 'v2', '320');
$Encodings = array('V0 (VBR)', 'V2 (VBR)', '320');
$EncodingKeys = array_fill_keys($Encodings, true);
if ($_GET['type'] === '3') {
    $List = "!(v0 | v2 | 320)";
} else {
    $List = '!' . $Options[$_GET['type']];
    if ($_GET['type'] !== '0') {
        $_GET['type'] = display_str($_GET['type']);
    }
}
$SphQL = new SphinxqlQuery();
$SphQL->select('id, groupid')->from('better_transcode')->where('logscore', 100)->where_match('FLAC', 'format')->where_match($List, 'encoding', false)->order_by('RAND()')->limit(0, TORRENTS_PER_PAGE, TORRENTS_PER_PAGE);
if (!empty($_GET['search'])) {
    $SphQL->where_match($_GET['search'], '(groupname,artistname,year,taglist)');
}
$SphQLResult = $SphQL->query();
$TorrentCount = $SphQLResult->get_meta('total');
if ($TorrentCount == 0) {
    error('No results found!');
}
$Results = $SphQLResult->to_array('groupid');
$Groups = Torrents::get_groups(array_keys($Results));
$TorrentGroups = array();
foreach ($Groups as $GroupID => $Group) {
    if (empty($Group['Torrents'])) {
        unset($Groups[$GroupID]);
示例#7
0
文件: add.php 项目: Kufirc/Gazelle
            }
            if ($HasCue == "'1'") {
                $Title .= ' / Cue';
            }
            $Title .= ' / ' . trim($Media);
            if ($Scene == '1') {
                $Title .= ' / Scene';
            }
            if ($Freeleech == '1') {
                $Title .= ' / Freeleech!';
            }
            if ($Freeleech == '2') {
                $Title .= ' / Neutral leech!';
            }
            $UploaderInfo = Users::user_info($UploaderID);
            $Item = $Feed->item($Title, Text::strip_bbcode($Body), 'torrents.php?action=download&amp;authkey=[[AUTHKEY]]&amp;torrent_pass=[[PASSKEY]]&amp;id=' . $TorrentID, $UploaderInfo['Username'], "torrents.php?id={$PageID}", trim($TagList));
            $Feed->populate('torrents_bookmarks_t_' . $LoggedUser['torrent_pass'], $Item);
        }
    } elseif ($Type == 'request') {
        $DB->query("\n\t\t\tSELECT UserID\n\t\t\tFROM {$Table}\n\t\t\tWHERE {$Col} = '" . db_string($PageID) . "'");
        if ($DB->record_count() < 100) {
            // Sphinx doesn't like huge MVA updates. Update sphinx_requests_delta
            // and live with the <= 1 minute delay if we have more than 100 bookmarkers
            $Bookmarkers = implode(',', $DB->collect('UserID'));
            $SphQL = new SphinxqlQuery();
            $SphQL->raw_query("UPDATE requests, requests_delta SET bookmarker = ({$Bookmarkers}) WHERE id = {$PageID}");
        } else {
            Requests::update_sphinx_requests($PageID);
        }
    }
}
示例#8
0
文件: sphinx.php 项目: Kufirc/Gazelle
    $NumResults = $DB->record_count();
    if (!$NumResults) {
        $TotalMatches = 0;
    } elseif ($NumResults == LOG_ENTRIES_PER_PAGE) {
        // This is a lot faster than SQL_CALC_FOUND_ROWS
        $SphQL = new SphinxqlQuery();
        $Result = $SphQL->select('id')->from('log, log_delta')->limit(0, 1, 1)->query();
        $Debug->log_var($Result, '$Result');
        $TotalMatches = min(SPHINX_MAX_MATCHES, $Result->get_meta('total_found'));
    } else {
        $TotalMatches = $NumResults + $Offset;
    }
    $QueryStatus = 0;
} else {
    $Page = min(SPHINX_MAX_MATCHES / TORRENTS_PER_PAGE, $Page);
    $SphQL = new SphinxqlQuery();
    $SphQL->select('id')->from('log, log_delta')->where_match($_GET['search'], 'message')->order_by('id', 'DESC')->limit($Offset, LOG_ENTRIES_PER_PAGE, $Offset + LOG_ENTRIES_PER_PAGE);
    $Result = $SphQL->query();
    $Debug->log_var($Result, '$Result');
    $Debug->set_flag('Finished SphQL query');
    if ($QueryStatus = $Result->Errno) {
        $QueryError = $Result->Error;
    }
    $NumResults = $Result->get_result_info('num_rows');
    $TotalMatches = min(SPHINX_MAX_MATCHES, $Result->get_meta('total_found'));
    if ($NumResults > 0) {
        $LogIDs = $Result->collect('id');
        $Log = $DB->query('
			SELECT ID, Message, Time
			FROM log
			WHERE ID IN (' . implode(',', $LogIDs) . ')
示例#9
0
    $DB->query("\n\t\tUPDATE users_main\n\t\tSET Uploaded = 0\n\t\tWHERE ID = {$FillerID}");
    $DB->query('
		UPDATE users_main
		SET Downloaded = Downloaded + ' . ($RequestVotes['TotalBounty'] - $Uploaded) . "\n\t\tWHERE ID = {$FillerID}");
} else {
    $DB->query('
		UPDATE users_main
		SET Uploaded = Uploaded - ' . $RequestVotes['TotalBounty'] . "\n\t\tWHERE ID = {$FillerID}");
}
Misc::send_pm($FillerID, 0, 'A request you filled has been unfilled', "The request \"[url=" . site_url() . "requests.php?action=view&amp;id={$RequestID}]{$FullName}" . "[/url]\" was unfilled by [url=" . site_url() . 'user.php?id=' . $LoggedUser['ID'] . ']' . $LoggedUser['Username'] . '[/url] for the reason: [quote]' . $_POST['reason'] . "[/quote]\nIf you feel like this request was unjustly unfilled, please [url=" . site_url() . "reports.php?action=report&amp;type=request&amp;id={$RequestID}]report the request[/url] and explain why this request should not have been unfilled.");
$Cache->delete_value("user_stats_{$FillerID}");
if ($UserID !== $LoggedUser['ID']) {
    Misc::send_pm($UserID, 0, 'A request you created has been unfilled', "The request \"[url=" . site_url() . "requests.php?action=view&amp;id={$RequestID}]{$FullName}" . "[/url]\" was unfilled by [url=" . site_url() . 'user.php?id=' . $LoggedUser['ID'] . ']' . $LoggedUser['Username'] . "[/url] for the reason: [quote]" . $_POST['reason'] . '[/quote]');
}
Misc::write_log("Request {$RequestID} ({$FullName}), with a " . Format::get_size($RequestVotes['TotalBounty']) . ' bounty, was unfilled by user ' . $LoggedUser['ID'] . ' (' . $LoggedUser['Username'] . ') for the reason: ' . $_POST['reason']);
$Cache->delete_value("request_{$RequestID}");
$Cache->delete_value("request_artists_{$RequestID}");
if ($GroupID) {
    $Cache->delete_value("requests_group_{$GroupID}");
}
Requests::update_sphinx_requests($RequestID);
if (!empty($ArtistForm)) {
    foreach ($ArtistForm as $ArtistType) {
        foreach ($ArtistType as $Artist) {
            $Cache->delete_value('artists_requests_' . $Artist['id']);
        }
    }
}
$SphQL = new SphinxqlQuery();
$SphQL->raw_query("\n\t\tUPDATE requests, requests_delta\n\t\tSET torrentid = 0, fillerid = 0\n\t\tWHERE id = {$RequestID}", false);
header("Location: requests.php?action=view&id={$RequestID}");