mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-24 20:17:24 +08:00
Merge remote-tracking branch 'origin/php8' into php8
This commit is contained in:
+40
-64
@@ -164,6 +164,13 @@ if (!$az) {
|
||||
$redis->set("$passkeyInvalidKey:$passkey", TIMENOW, ['ex' => 24*3600]);
|
||||
warn("Invalid passkey! Re-download the .torrent from $BASEURL");
|
||||
}
|
||||
if ($az["enabled"] == "no")
|
||||
warn("Your account is disabled!", 300);
|
||||
elseif ($az["parked"] == "yes")
|
||||
warn("Your account is parked! (Read the FAQ)", 300);
|
||||
elseif ($az["downloadpos"] == "no")
|
||||
warn("Your downloading privileges have been disabled! (Read the rules)", 300);
|
||||
|
||||
$userid = intval($az['id'] ?? 0);
|
||||
unset($GLOBALS['CURUSER']);
|
||||
$CURUSER = $GLOBALS["CURUSER"] = $az;
|
||||
@@ -401,13 +408,6 @@ if (!isset($self))
|
||||
if ($valid[0] >= 1 && $seeder == 'no') err("You already are downloading the same torrent. You may only leech from one location at a time.", 300);
|
||||
if ($valid[0] >= 3 && $seeder == 'yes') err("You cannot seed the same torrent from more than 3 locations.", 300);
|
||||
|
||||
if ($az["enabled"] == "no")
|
||||
warn("Your account is disabled!", 300);
|
||||
elseif ($az["parked"] == "yes")
|
||||
warn("Your account is parked! (Read the FAQ)", 300);
|
||||
elseif ($az["downloadpos"] == "no")
|
||||
warn("Your downloading privileges have been disabled! (Read the rules)", 300);
|
||||
|
||||
if ($az["class"] < UC_VIP)
|
||||
{
|
||||
$ratio = (($az["downloaded"] > 0) ? ($az["uploaded"] / $az["downloaded"]) : 1);
|
||||
@@ -451,42 +451,30 @@ if (!isset($self))
|
||||
&& $torrent['owner'] != $userid
|
||||
&& get_setting("torrent.paid_torrent_enabled") == "yes"
|
||||
) {
|
||||
$hasBuyCacheKey = \App\Repositories\TorrentRepository::BOUGHT_USER_CACHE_KEY_PREFIX . $torrentid;
|
||||
$hasBuy = $redis->hGet($hasBuyCacheKey, $userid);
|
||||
if ($hasBuy === false) {
|
||||
//no cache
|
||||
$lockName = "load_torrent_bought_user:$torrentid";
|
||||
$loadBoughtLock = new \Nexus\Database\NexusLock($lockName, 300);
|
||||
if ($loadBoughtLock->get()) {
|
||||
//get lock, do load
|
||||
executeCommand("torrent:load_bought_user $torrentid", "string", true, false);
|
||||
} else {
|
||||
do_log("can not get loadBoughtLock: $lockName", 'debug');
|
||||
$torrentRep = new \App\Repositories\TorrentRepository();
|
||||
$buyStatus = $torrentRep->getBuyStatus($userid, $torrentid);
|
||||
if ($buyStatus > 0) {
|
||||
do_log(sprintf("user: %v buy torrent: %v fail count: %v", $userid, $torrentid, $buyStatus), "error");
|
||||
if ($buyStatus > 3) {
|
||||
//warn
|
||||
\App\Utils\MsgAlert::getInstance()->add(
|
||||
"announce_paid_torrent_too_many_times",
|
||||
time() + 86400,
|
||||
"announce to paid torrent and fail too many times, please make sure you have enough bonus!",
|
||||
"",
|
||||
"black"
|
||||
);
|
||||
}
|
||||
//simple cache the hasBuy result
|
||||
$hasBuy = \Nexus\Database\NexusDB::remember(sprintf("user_has_buy_torrent:%s:%s", $userid, $torrentid), 86400*10, function () use($userid, $torrentid) {
|
||||
$exists = \App\Models\TorrentBuyLog::query()->where('uid', $userid)->where('torrent_id', $torrentid)->exists();
|
||||
return intval($exists);
|
||||
});
|
||||
if ($buyStatus > 10) {
|
||||
//disable download
|
||||
(new \App\Repositories\UserRepository())->updateDownloadPrivileges(null, $userid, 'no', 'announce_paid_torrent_too_many_times');
|
||||
}
|
||||
warn("purchase fail, please try again later, please make sure you have enough bonus", 300);
|
||||
}
|
||||
if (!$hasBuy) {
|
||||
$lock = new \Nexus\Database\NexusLock("buying_torrent:$userid", 5);
|
||||
if (!$lock->get()) {
|
||||
$msg = "buying torrent, wait!";
|
||||
do_log("[ANNOUNCE] user: $userid, torrent: $torrentid, $msg", 'error');
|
||||
err($msg);
|
||||
}
|
||||
$bonusRep = new \App\Repositories\BonusRepository();
|
||||
try {
|
||||
$bonusRep->consumeToBuyTorrent($az['id'], $torrent['id'], 'Web');
|
||||
$redis->hSet($hasBuyCacheKey, $userid, 1);
|
||||
$lock->release();
|
||||
} catch (\Exception $exception) {
|
||||
$msg = $exception->getMessage();
|
||||
do_log("[ANNOUNCE] user: $userid, torrent: $torrentid, $msg " . $exception->getTraceAsString(), 'error');
|
||||
$lock->release();
|
||||
err($msg);
|
||||
}
|
||||
if ($buyStatus == \App\Repositories\TorrentRepository::BUY_STATUS_UNKNOWN) {
|
||||
//just enqueue job
|
||||
\App\Utils\ThirdPartyJob::addBuyTorrent($userid, $torrentid);
|
||||
warn("purchase in progress, please wait", 300);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -535,7 +523,7 @@ if (isset($self) && $event == "stopped")
|
||||
sql_query("DELETE FROM peers WHERE id = {$self['id']}") or err("D Err");
|
||||
if (mysql_affected_rows() && !empty($snatchInfo))
|
||||
{
|
||||
// $updateset[] = ($self["seeder"] == "yes" ? "seeders = seeders - 1" : "leechers = leechers - 1");
|
||||
$updateset[] = ($self["seeder"] == "yes" ? "seeders = seeders - 1" : "leechers = leechers - 1");
|
||||
$hasChangeSeederLeecher = true;
|
||||
sql_query("UPDATE snatched SET uploaded = uploaded + $trueupthis, downloaded = downloaded + $truedownthis, to_go = $left, $announcetime, last_action = ".$dt." WHERE id = {$snatchInfo['id']}") or err("SL Err 1");
|
||||
}
|
||||
@@ -556,7 +544,7 @@ elseif(isset($self))
|
||||
if (mysql_affected_rows())
|
||||
{
|
||||
if ($seeder <> $self["seeder"]) {
|
||||
// $updateset[] = ($seeder == "yes" ? "seeders = seeders + 1, leechers = leechers - 1" : "seeders = seeders - 1, leechers = leechers + 1");
|
||||
$updateset[] = ($seeder == "yes" ? "seeders = seeders + 1, leechers = leechers - 1" : "seeders = seeders - 1, leechers = leechers + 1");
|
||||
$hasChangeSeederLeecher = true;
|
||||
}
|
||||
if (!empty($snatchInfo)) {
|
||||
@@ -570,19 +558,7 @@ else
|
||||
if ($event != 'stopped') {
|
||||
$isPeerExistResultSet = sql_query("select id from peers where $selfwhere limit 1");
|
||||
if (mysql_num_rows($isPeerExistResultSet) == 0) {
|
||||
$cacheKey = 'peers:connectable:'.$ip.'-'.$port.'-'.$agent;
|
||||
$connectable = \Nexus\Database\NexusDB::remember($cacheKey, 3600, function () use ($ip, $port) {
|
||||
if (isIPV6($ip)) {
|
||||
$sockres = @fsockopen("tcp://[".$ip."]",$port,$errno,$errstr,1);
|
||||
} else {
|
||||
$sockres = @fsockopen($ip, $port, $errno, $errstr, 1);
|
||||
}
|
||||
if (is_resource($sockres)) {
|
||||
fclose($sockres);
|
||||
return 'yes';
|
||||
}
|
||||
return 'no';
|
||||
});
|
||||
$connectable = "yes";
|
||||
$insertPeerSql = "INSERT INTO peers (torrent, userid, peer_id, ip, port, connectable, uploaded, downloaded, to_go, started, last_action, seeder, agent, downloadoffset, uploadoffset, passkey, ipv4, ipv6, is_seed_box) VALUES ($torrentid, $userid, ".sqlesc($peer_id).", ".sqlesc($ip).", $port, '$connectable', $uploaded, $downloaded, $left, $dt, $dt, '$seeder', ".sqlesc($agent).", $downloaded, $uploaded, ".sqlesc($passkey).", ".sqlesc($ipv4).", ".sqlesc($ipv6).", ".intval($isIPSeedBox).")";
|
||||
do_log("[INSERT PEER] peer not exists for $selfwhere, do insert with $insertPeerSql");
|
||||
|
||||
@@ -590,7 +566,7 @@ else
|
||||
sql_query($insertPeerSql) or err("PL Err 2");
|
||||
if (mysql_affected_rows())
|
||||
{
|
||||
// $updateset[] = ($seeder == "yes" ? "seeders = seeders + 1" : "leechers = leechers + 1");
|
||||
$updateset[] = ($seeder == "yes" ? "seeders = seeders + 1" : "leechers = leechers + 1");
|
||||
$hasChangeSeederLeecher = true;
|
||||
// $check = @mysql_fetch_row(@sql_query("SELECT COUNT(*) FROM snatched WHERE torrentid = $torrentid AND userid = $userid"));
|
||||
$checkSnatchedRes = mysql_fetch_assoc(sql_query("SELECT id FROM snatched WHERE torrentid = $torrentid AND userid = $userid limit 1"));
|
||||
@@ -617,8 +593,8 @@ if (($left > 0 || $event == "completed") && $az['class'] < \App\Models\HitAndRun
|
||||
$hrLog = sprintf("[HR_LOG] user: %d, torrent: %d, hrMode: %s", $userid, $torrentid, $hrMode);
|
||||
if ($hrMode == \App\Models\HitAndRun::MODE_GLOBAL || ($hrMode == \App\Models\HitAndRun::MODE_MANUAL && $torrent['hr'] == \App\Models\Torrent::HR_YES)) {
|
||||
$hrCacheKey = sprintf("hit_and_run:%d:%d", $userid, $torrentid);
|
||||
$hrExists = \Nexus\Database\NexusDB::remember($hrCacheKey, 24*3600, function () use ($torrentid, $userid) {
|
||||
return \App\Models\HitAndRun::query()->where("uid", $userid)->where("torrent_id", $torrentid)->exists();
|
||||
$hrExists = \Nexus\Database\NexusDB::remember($hrCacheKey, mt_rand(86400*365*5, 86400*365*10), function () use ($torrentid, $userid) {
|
||||
return \App\Models\HitAndRun::query()->where("uid", $userid)->where("torrent_id", $torrentid)->exists() ? 1 : 0;
|
||||
});
|
||||
$hrLog .= ", hrExists: $hrExists";
|
||||
if (!$hrExists) {
|
||||
@@ -650,11 +626,11 @@ if (($left > 0 || $event == "completed") && $az['class'] < \App\Models\HitAndRun
|
||||
do_log("$hrLog, not match", "debug");
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($event) && !empty($event)) {
|
||||
$updateset[] = 'seeders = ' . get_row_count("peers", "where torrent = $torrentid and to_go = 0");
|
||||
$updateset[] = 'leechers = ' . get_row_count("peers", "where torrent = $torrentid and to_go > 0");
|
||||
}
|
||||
// revert to only increment/decrement
|
||||
//if (isset($event) && !empty($event)) {
|
||||
// $updateset[] = 'seeders = ' . get_row_count("peers", "where torrent = $torrentid and to_go = 0");
|
||||
// $updateset[] = 'leechers = ' . get_row_count("peers", "where torrent = $torrentid and to_go > 0");
|
||||
//}
|
||||
|
||||
if (count($updateset) || $hasChangeSeederLeecher) // Update only when there is change in peer counts
|
||||
{
|
||||
|
||||
@@ -109,7 +109,7 @@ if ($Attach->enable_attachment())
|
||||
if ($orig && !$stop)
|
||||
{
|
||||
$thumb = imagecreatetruecolor($newwidth, $newheight);
|
||||
imagecopyresized($thumb, $orig, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
|
||||
imagecopyresampled($thumb, $orig, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
|
||||
if ($thumbnailtype_attachment == 'createthumb'){
|
||||
$hasthumb = true;
|
||||
imagejpeg($thumb, $file_location.".".$ext.".thumb.jpg", $thumbquality_attachment);
|
||||
|
||||
@@ -48,7 +48,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST")
|
||||
if(!$orig)
|
||||
stderr($lang_bitbucketupload['std_image_processing_failed'],$lang_bitbucketupload['std_sorry_the_uploaded']."$imgtypes[$it]".$lang_bitbucketupload['std_failed_processing']);
|
||||
$thumb = imagecreatetruecolor($newwidth, $newheight);
|
||||
imagecopyresized($thumb, $orig, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
|
||||
imagecopyresampled($thumb, $orig, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
|
||||
switch ($it) {
|
||||
case 1:
|
||||
$ret = imagegif($thumb, $tgtfile);
|
||||
|
||||
@@ -7,8 +7,6 @@ loggedinorreturn();
|
||||
stdhead($lang_contactstaff['head_contact_staff'], false);
|
||||
begin_main_frame();
|
||||
print("<form id=compose method=post name=\"compose\" action=takecontact.php>");
|
||||
if (isset($_GET["returnto"]) && $_GET["returnto"] || $_SERVER["HTTP_REFERER"])
|
||||
print("<input type=hidden name=returnto value=\"".(htmlspecialchars($_GET["returnto"] ?? '') ? htmlspecialchars($_GET["returnto"] ?? '') : htmlspecialchars($_SERVER["HTTP_REFERER"] ?? ''))."\">");
|
||||
begin_compose($lang_contactstaff['text_message_to_staff'], "new");
|
||||
end_compose();
|
||||
print("</form>");
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ require_once(get_langfile_path());
|
||||
loggedinorreturn();
|
||||
$id = intval($_GET["id"] ?? 0);
|
||||
$customField = new \Nexus\Field\Field();
|
||||
int_check($id);
|
||||
int_check($id, true);
|
||||
if (!isset($id) || !$id)
|
||||
die();
|
||||
|
||||
@@ -483,7 +483,7 @@ WHERE " . $where_area . " ORDER BY torrents.id DESC") or sqlerr(__FILE__, __LINE
|
||||
tr($lang_details['row_hot_meter'], "<table><tr><td class=\"no_border_wide\"><b>" . $lang_details['text_views']."</b>". $row["views"] . "</td><td class=\"no_border_wide\"><b>" . $lang_details['text_hits']. "</b>" . $row["hits"] . "</td><td class=\"no_border_wide\"><b>" .$lang_details['text_snatched'] . "</b><a href=\"viewsnatches.php?id=".$id."\"><b>" . $row["times_completed"]. $lang_details['text_view_snatches'] . "</td><td class=\"no_border_wide\"><b>" . $lang_details['row_last_seeder']. "</b>" . gettime($row["last_action"]) . "</td></tr></table>",1);
|
||||
$bwres = sql_query("SELECT uploadspeed.name AS upname, downloadspeed.name AS downname, isp.name AS ispname FROM users LEFT JOIN uploadspeed ON users.upload = uploadspeed.id LEFT JOIN downloadspeed ON users.download = downloadspeed.id LEFT JOIN isp ON users.isp = isp.id WHERE users.id=".$row['owner']);
|
||||
$bwrow = mysql_fetch_array($bwres);
|
||||
if ($bwrow['upname'] && $bwrow['downname'])
|
||||
if (isset($bwrow['upname']) && isset($bwrow['downname']) && $bwrow['upname'] && $bwrow['downname'])
|
||||
tr($lang_details['row_uploader_bandwidth'], "<img class=\"speed_down\" src=\"pic/trans.gif\" alt=\"Downstream Rate\" /> ".$bwrow['downname']." <img class=\"speed_up\" src=\"pic/trans.gif\" alt=\"Upstream Rate\" /> ".$bwrow['upname']." ".$bwrow['ispname'],1);
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -765,7 +765,7 @@ if ($action == "viewtopic")
|
||||
|
||||
print("<table class=\"main\" width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n");
|
||||
|
||||
$body = "<div id=\"pid".$postid."body\">";
|
||||
$body = "<div id=\"pid".$postid."body\" style=\"word-break: break-all;\">";
|
||||
//hidden content applied to second or higher floor post (for whose user class below Ad , not poster , not mods ,not reply's author)
|
||||
// if ($protected_enabled && $pn+$offset>1 && get_user_class()<UC_ADMINISTRATOR && $userid != $base_posterid && $posterid!=$userid && !$is_forummod){
|
||||
if ($pn+$offset>1 && !can_view_post($userid, $arr)){
|
||||
|
||||
@@ -259,7 +259,7 @@ function maketable($res, $mode = 'seeding')
|
||||
return [$ret, $total_size];
|
||||
}
|
||||
$count = 0;
|
||||
$torrentlist = "";
|
||||
$torrentlist = $pagertop = $pagerbottom = "";
|
||||
switch ($type)
|
||||
{
|
||||
case 'uploaded':
|
||||
|
||||
+1
-1
@@ -228,7 +228,7 @@ $sender = get_username($message['sender']);
|
||||
$reply = " [ <a href=\"sendmessage.php?receiver=" . $message['sender'] . "&replyto=" . $pm_id . "\">".$lang_messages['text_reply']."</a> ]";
|
||||
}
|
||||
}
|
||||
$body = format_comment($message['msg'], false);
|
||||
$body = format_comment($message['msg'], true);
|
||||
//$body = htmlspecialchars_decode($body);
|
||||
$added = $message['added'];
|
||||
if ($message['sender'] == $CURUSER['id'])
|
||||
|
||||
+10
-4
@@ -301,7 +301,7 @@ if ($bonus_tweak == "disable" || $bonus_tweak == "disablesave")
|
||||
stderr($lang_mybonus['std_sorry'],$lang_mybonus['std_karma_system_disabled'].($bonus_tweak == "disablesave" ? "<b>".$lang_mybonus['std_points_active']."</b>" : ""),false);
|
||||
|
||||
$action = htmlspecialchars($_GET['action'] ?? '');
|
||||
$do = htmlspecialchars($_GET['do'] ?? null);
|
||||
$do = htmlspecialchars($_GET['do'] ?? '');
|
||||
unset($msg);
|
||||
if (isset($do)) {
|
||||
if ($do == "upload")
|
||||
@@ -398,7 +398,7 @@ for ($i=0; $i < count($allBonus); $i++)
|
||||
elseif ($bonusarray['art'] == 'noad'){
|
||||
if ($enablenoad_advertisement == 'yes' && get_user_class() >= $noad_advertisement)
|
||||
print("<td class=\"rowfollow\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"".$lang_mybonus['submit_class_above_no_ad']."\" disabled=\"disabled\" /></td>");
|
||||
elseif (strtotime($CURUSER['noaduntil']) >= TIMENOW)
|
||||
elseif (!empty($CURUSER['noaduntil']) && strtotime($CURUSER['noaduntil']) >= TIMENOW)
|
||||
print("<td class=\"rowfollow\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"".$lang_mybonus['submit_already_disabled']."\" disabled=\"disabled\" /></td>");
|
||||
elseif (get_user_class() < $bonusnoad_advertisement)
|
||||
print("<td class=\"rowfollow\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"".get_user_class_name($bonusnoad_advertisement,false,false,true).$lang_mybonus['text_plus_only']."\" disabled=\"disabled\" /></td>");
|
||||
@@ -550,8 +550,6 @@ if ($offervote_bonus > 0)
|
||||
print("<li>".$lang_mybonus['text_offer_vote'].$offervote_bonus.$lang_mybonus['text_point'].add_s($offervote_bonus)."</li>");
|
||||
if ($funboxvote_bonus > 0)
|
||||
print("<li>".$lang_mybonus['text_funbox_vote'].$funboxvote_bonus.$lang_mybonus['text_point'].add_s($funboxvote_bonus)."</li>");
|
||||
if ($ratetorrent_bonus > 0)
|
||||
print("<li>".$lang_mybonus['text_rate_torrent'].$ratetorrent_bonus.$lang_mybonus['text_point'].add_s($ratetorrent_bonus)."</li>");
|
||||
if ($saythanks_bonus > 0)
|
||||
print("<li>".$lang_mybonus['text_say_thanks'].$saythanks_bonus.$lang_mybonus['text_point'].add_s($saythanks_bonus)."</li>");
|
||||
if ($receivethanks_bonus > 0)
|
||||
@@ -611,6 +609,10 @@ if ($action == "exchange") {
|
||||
else {
|
||||
$upload = $CURUSER['uploaded'];
|
||||
$up = $upload + $bonusarray['menge'];
|
||||
do_log(sprintf(
|
||||
"user: %s going to use %s bonus to exchange uploaded from %s to %s",
|
||||
$CURUSER['id'], $points, $CURUSER['uploaded'], $up
|
||||
));
|
||||
// $bonuscomment = date("Y-m-d") . " - " .$points. " Points for upload bonus.\n " .$bonuscomment;
|
||||
// sql_query("UPDATE users SET uploaded = ".sqlesc($up).", seedbonus = seedbonus - $points, bonuscomment = ".sqlesc($bonuscomment)." WHERE id = ".sqlesc($userid)) or sqlerr(__FILE__, __LINE__);
|
||||
$bonusRep->consumeUserBonus($CURUSER['id'], $points, \App\Models\BonusLogs::BUSINESS_TYPE_EXCHANGE_UPLOAD, $points. " Points for uploaded.", ['uploaded' => $up]);
|
||||
@@ -620,6 +622,10 @@ if ($action == "exchange") {
|
||||
if($art == "traffic_downloaded") {
|
||||
$downloaded = $CURUSER['downloaded'];
|
||||
$down = $downloaded + $bonusarray['menge'];
|
||||
do_log(sprintf(
|
||||
"user: %s going to use %s bonus to exchange downloaded from %s to %s",
|
||||
$CURUSER['id'], $points, $CURUSER['downloaded'], $down
|
||||
));
|
||||
$bonusRep->consumeUserBonus($CURUSER['id'], $points, \App\Models\BonusLogs::BUSINESS_TYPE_EXCHANGE_DOWNLOAD, $points. " Points for downloaded.", ['downloaded' => $down]);
|
||||
nexus_redirect("" . get_protocol_prefix() . "$BASEURL/mybonus.php?do=download");
|
||||
}
|
||||
|
||||
+1
-1
@@ -127,7 +127,7 @@ else
|
||||
}
|
||||
else $username = $lang_shoutbox['text_guest'];
|
||||
if (isset($CURUSER) && $CURUSER['timetype'] != 'timealive')
|
||||
$time = strftime("%m.%d %H:%M",$arr["date"]);
|
||||
$time = (new DateTime())->setTimestamp($arr["date"])->format('m.d H:i');
|
||||
else $time = get_elapsed_time($arr["date"]).$lang_shoutbox['text_ago'];
|
||||
print("<tr><td class=\"shoutrow\"><span class='date'>[".$time."]</span> ".
|
||||
$del ." ". $username." " . format_comment($arr["text"],true,false,true,true,600,false,false)."
|
||||
|
||||
Vendored
+3
@@ -71,3 +71,6 @@ img.hitandrun {
|
||||
.codemain>pre {
|
||||
margin: 0;
|
||||
}
|
||||
.word-break-all {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
@@ -151,6 +151,7 @@ $secret = mksecret();
|
||||
$wantpasshash = md5($secret . $wantpassword . $secret);
|
||||
$editsecret = ($verification == 'admin' ? '' : $secret);
|
||||
$invite_count = (int) $invite_count;
|
||||
$passkey = md5($wantusername.date("Y-m-d H:i:s").$wantpasshash);
|
||||
|
||||
$wantusername = sqlesc($wantusername);
|
||||
$wantpasshash = sqlesc($wantpasshash);
|
||||
@@ -167,8 +168,9 @@ $res_check_user = sql_query("SELECT * FROM users WHERE username = " . $wantusern
|
||||
if(mysql_num_rows($res_check_user) == 1)
|
||||
bark($lang_takesignup['std_username_exists']);
|
||||
|
||||
$ret = sql_query("INSERT INTO users (username, passhash, secret, editsecret, email, country, gender, status, class, invites, ".($type == 'invite' ? "invited_by," : "")." added, last_access, lang, stylesheet".($showschool == 'yes' ? ", school" : "").", uploaded) VALUES (" . $wantusername . "," . $wantpasshash . "," . $secret . "," . $editsecret . "," . $email . "," . $country . "," . $gender . ", 'pending', ".$defaultclass_class.",". $invite_count .", ".($type == 'invite' ? "'$inviter'," : "") ." '". date("Y-m-d H:i:s") ."' , " . " '". date("Y-m-d H:i:s") ."' , ".$sitelangid . ",".$defcss.($showschool == 'yes' ? ",".$school : "").",".($iniupload_main > 0 ? $iniupload_main : 0).")") or sqlerr(__FILE__, __LINE__);
|
||||
$ret = sql_query("INSERT INTO users (username, passhash, passkey, secret, editsecret, email, country, gender, status, class, invites, ".($type == 'invite' ? "invited_by," : "")." added, last_access, lang, stylesheet".($showschool == 'yes' ? ", school" : "").", uploaded) VALUES (" . $wantusername . "," . $wantpasshash . "," . sqlesc($passkey) . "," . $secret . "," . $editsecret . "," . $email . "," . $country . "," . $gender . ", 'pending', ".$defaultclass_class.",". $invite_count .", ".($type == 'invite' ? "'$inviter'," : "") ." '". date("Y-m-d H:i:s") ."' , " . " '". date("Y-m-d H:i:s") ."' , ".$sitelangid . ",".$defcss.($showschool == 'yes' ? ",".$school : "").",".($iniupload_main > 0 ? $iniupload_main : 0).")") or sqlerr(__FILE__, __LINE__);
|
||||
$id = mysql_insert_id();
|
||||
fire_event("user_created", \App\Models\User::query()->first($id, \App\Models\User::$commonFields));
|
||||
$tmpInviteCount = get_setting('main.tmp_invite_count');
|
||||
if ($tmpInviteCount > 0) {
|
||||
$userRep = new \App\Repositories\UserRepository();
|
||||
|
||||
@@ -71,7 +71,7 @@ if (isset($searchstr)){
|
||||
|
||||
$ANDOR = ($search_mode == 0 ? " AND " : " OR "); // only affects mode 0 and mode 1
|
||||
foreach ($like_expression_array as &$like_expression_array_element)
|
||||
$like_expression_array_element = "(torrents.name" . $like_expression_array_element.($_GET['ismalldescr'] ? " OR torrents.small_descr". $like_expression_array_element : "").")";
|
||||
$like_expression_array_element = "(torrents.name" . $like_expression_array_element . (isset($_GET['ismalldescr']) && $_GET['ismalldescr'] ? " OR torrents.small_descr" . $like_expression_array_element : "") . ")";
|
||||
$wherea[] = implode($ANDOR, $like_expression_array);
|
||||
$where .= ($where ? " AND " : "") . implode(" AND ", $wherea);
|
||||
}
|
||||
|
||||
+3
-1
@@ -702,7 +702,6 @@ $search_area = 0;
|
||||
if (isset($searchstr))
|
||||
{
|
||||
if (!isset($_GET['notnewword']) || !$_GET['notnewword']){
|
||||
insert_suggest($searchstr, $CURUSER['id']);
|
||||
$notnewword="";
|
||||
}
|
||||
else{
|
||||
@@ -956,6 +955,9 @@ do_log("[TORRENT_COUNT_SQL] $sql", 'debug');
|
||||
|
||||
if ($count)
|
||||
{
|
||||
if (isset($searchstr) && (!isset($_GET['notnewword']) || !$_GET['notnewword'])){
|
||||
insert_suggest($searchstr, $CURUSER['id']);
|
||||
}
|
||||
if ($addparam != "")
|
||||
{
|
||||
if ($pagerlink != "")
|
||||
|
||||
@@ -238,7 +238,7 @@ if (user_can('userprofile') || $user["id"] == $CURUSER["id"])
|
||||
tr_small($lang_userdetails['row_ip_address'], $user['ip'].$locationinfo.$seedBoxIcon, 1);
|
||||
}
|
||||
$clientselect = '';
|
||||
$res = sql_query("SELECT peer_id, agent, ipv4, ipv6, port FROM peers WHERE userid = {$user['id']} GROUP BY agent") or sqlerr();
|
||||
$res = sql_query("SELECT peer_id, agent, ipv4, ipv6, port FROM peers WHERE userid = {$user['id']} GROUP BY agent, ipv4, ipv6, port") or sqlerr();
|
||||
if (mysql_num_rows($res) > 0)
|
||||
{
|
||||
$clientselect .= "<table border='1' cellspacing='0' cellpadding='5'><tr><td class='colhead'>Agent</td><td class='colhead'>IPV4</td><td class='colhead'>IPV6</td><td class='colhead'>Port</td></tr>";
|
||||
|
||||
+18
-10
@@ -168,16 +168,24 @@ function dltable($name, $arr, $torrent, &$isSeedBoxCaseWhens)
|
||||
$s .= "</table>\n";
|
||||
return $s;
|
||||
}
|
||||
$downloaders = array();
|
||||
$seeders = array();
|
||||
$torrent = \App\Models\Torrent::query()->findOrFail($id, ['id', 'seeders', 'leechers']);
|
||||
$subres = sql_query("SELECT id, seeder, finishedat, downloadoffset, uploadoffset, ip, ipv4, ipv6, port, uploaded, downloaded, to_go, UNIX_TIMESTAMP(started) AS st, connectable, agent, peer_id, UNIX_TIMESTAMP(last_action) AS la, userid FROM peers WHERE torrent = $id") or sqlerr();
|
||||
while ($subrow = mysql_fetch_array($subres)) {
|
||||
if ($subrow["seeder"] == "yes")
|
||||
$seeders[] = $subrow;
|
||||
else
|
||||
$downloaders[] = $subrow;
|
||||
}
|
||||
$downloaders = array();
|
||||
$seeders = array();
|
||||
$torrent = \App\Models\Torrent::query()->findOrFail($id, ['id', 'seeders', 'leechers']);
|
||||
$seedersAndLeechers = apply_filter("torrent_seeder_leecher_list", [], $id);
|
||||
if (isset($seedersAndLeechers['seeders'], $seedersAndLeechers['leechers'])) {
|
||||
// dd($seedersAndLeechers);
|
||||
$seeders = $seedersAndLeechers['seeders'];
|
||||
$downloaders = $seedersAndLeechers['leechers'];
|
||||
do_log("SEEDER_LEECHER_FROM_FILTER: torrent_seeder_leecher_list");
|
||||
} else {
|
||||
$subres = sql_query("SELECT id, seeder, finishedat, downloadoffset, uploadoffset, ip, ipv4, ipv6, port, uploaded, downloaded, to_go, UNIX_TIMESTAMP(started) AS st, connectable, agent, peer_id, UNIX_TIMESTAMP(last_action) AS la, userid FROM peers WHERE torrent = $id") or sqlerr();
|
||||
while ($subrow = mysql_fetch_array($subres)) {
|
||||
if ($subrow["seeder"] == "yes")
|
||||
$seeders[] = $subrow;
|
||||
else
|
||||
$downloaders[] = $subrow;
|
||||
}
|
||||
}
|
||||
$seedersCount = count($seeders);
|
||||
$leechersCount = count($downloaders);
|
||||
if ($torrent->seeders != $seedersCount || $torrent->leechers != $leechersCount) {
|
||||
|
||||
@@ -53,7 +53,7 @@ if ($count){
|
||||
}
|
||||
else $username = get_username($arr['userid']);
|
||||
$reportImage = "<img class=\"f_report\" src=\"pic/trans.gif\" alt=\"Report\" title=\"".$lang_viewsnatches['title_report']."\" />";
|
||||
print("<tr$highlight><td class=rowfollow align=center>" . $username ."</td>".(user_can('userprofile') || $arr['userid'] == $CURUSER['id'] ? "<td class=rowfollow align=center><span class='nowrap'>".$arr['ip'].$seedBoxRep->renderIcon($arr['ip'], $arr['userid'])."</span></td>" : "")."<td class=rowfollow align=center>".$uploaded."@".$uprate.$lang_viewsnatches['text_per_second']."<br />".$downloaded."@".$downrate.$lang_viewsnatches['text_per_second']."</td><td class=rowfollow align=center>$ratio</td><td class=rowfollow align=center>$seedtime</td><td class=rowfollow align=center>$leechtime</td><td class=rowfollow align=center>".gettime($arr['completedat'],true,false)."</td><td class=rowfollow align=center>".gettime($arr['last_action'],true,false)."</td><td class=rowfollow align=center style='padding: 0px'>".($userrow['privacy'] != 'strong' || user_can('viewanonymous') ? "<a href=report.php?user={$arr['userid']}>$reportImage</a>" : $reportImage)."</td></tr>\n");
|
||||
print("<tr$highlight><td class=rowfollow align=center>" . $username ."</td>".(user_can('userprofile') ? "<td class=rowfollow align=center><span class='nowrap'>".$arr['ip'].$seedBoxRep->renderIcon($arr['ip'], $arr['userid'])."</span></td>" : "")."<td class=rowfollow align=center>".$uploaded."@".$uprate.$lang_viewsnatches['text_per_second']."<br />".$downloaded."@".$downrate.$lang_viewsnatches['text_per_second']."</td><td class=rowfollow align=center>$ratio</td><td class=rowfollow align=center>$seedtime</td><td class=rowfollow align=center>$leechtime</td><td class=rowfollow align=center>".gettime($arr['completedat'],true,false)."</td><td class=rowfollow align=center>".gettime($arr['last_action'],true,false)."</td><td class=rowfollow align=center style='padding: 0px'>".($userrow['privacy'] != 'strong' || user_can('viewanonymous') ? "<a href=report.php?user={$arr['userid']}>$reportImage</a>" : $reportImage)."</td></tr>\n");
|
||||
}
|
||||
print("</table>\n");
|
||||
print($pagerbottom);
|
||||
|
||||
Reference in New Issue
Block a user