123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?
- //------------- Give out invites! ---------------------------------------//
-
- /*
- Well Endowed (POWER) have a cap of 2 invites. Bombshells (ELITE) have a cap of 3, Top Heavy (TORRENT_MASTER) have a cap of 4
- Every month, on the 8th and the 22nd, each user gets one invite up to their max.
-
- Then, every month, on the 8th and the 22nd, we give out bonus invites like this:
-
- Every POWER, ELITE, or TORRENT_MASTER whose total invitee ratio is above 0.75 and total invitee upload is over 2 GBs gets one invite.
- Every ELITE or TORRENT_MASTER whose total invitee ratio is above 2.0 and total invitee upload is over 10 GBs gets one more invite.
- Every TORRENT_MASTER whose total invitee ratio is above 3.0 and total invitee upload is over 20 GBs gets yet one more invite.
-
- This cascades, so if you qualify for the last bonus group, you also qualify for the first two and will receive three bonus invites.
-
- The bonus invites cannot put a user over their cap.
-
- */
-
- $DB->query("
- SELECT ID
- FROM users_main AS um
- JOIN users_info AS ui ON ui.UserID = um.ID
- WHERE um.Enabled = '1'
- AND ui.DisableInvites = '0'
- AND ((um.PermissionID = ".POWER."
- AND um.Invites < 2)
- OR (um.PermissionID = ".ELITE."
- AND um.Invites < 3)
- OR (um.PermissionID = ".TORRENT_MASTER."
- AND um.Invites < 4))");
-
- $UserIDs = $DB->collect('ID');
- if (count($UserIDs) > 0) {
- foreach ($UserIDs as $UserID) {
- $Cache->begin_transaction("user_info_heavy_$UserID");
- $Cache->update_row(false, array('Invites' => '+1'));
- $Cache->commit_transaction(0);
- }
- $DB->query('
- UPDATE users_main
- SET Invites = Invites + 1
- WHERE ID IN ('.implode(',', $UserIDs).')');
- }
-
- $BonusReqs = array(
- array(0.75, 2 * 1024 * 1024 * 1024),
- array(2.0, 10 * 1024 * 1024 * 1024),
- array(3.0, 20 * 1024 * 1024 * 1024));
-
- // Since MySQL doesn't like subselecting from the target table during an update, we must create a temporary table.
-
- $DB->query("
- CREATE TEMPORARY TABLE temp_sections_schedule_index
- SELECT SUM(Uploaded) AS Upload, SUM(Downloaded) AS Download, Inviter
- FROM users_main AS um
- JOIN users_info AS ui ON ui.UserID = um.ID
- GROUP BY Inviter");
-
- $DB->query("
- SELECT ID
- FROM users_main AS um
- JOIN users_info AS ui ON ui.UserID = um.ID
- JOIN temp_sections_schedule_index AS u ON u.Inviter = um.ID
- WHERE u.Upload > 0.75
- AND u.Upload / u.Download > ".(2*1024*1024*1024)."
- AND um.Enabled = '1'
- AND ui.DisableInvites = '0'
- AND ((um.PermissionID = ".POWER."
- AND um.Invites < 2)
- OR (um.PermissionID = ".ELITE."
- AND um.Invites < 3)
- OR (um.PermissionID = ".TORRENT_MASTER."
- AND um.Invites < 4))");
-
- $UserIDs = $DB->collect('ID');
- if (count($UserIDs) > 0) {
- foreach ($UserIDs as $UserID) {
- $Cache->begin_transaction("user_info_heavy_$UserID");
- $Cache->update_row(false, array('Invites' => '+1'));
- $Cache->commit_transaction(0);
- }
- $DB->query('
- UPDATE users_main
- SET Invites = Invites + 1
- WHERE ID IN ('.implode(',', $UserIDs).')');
- }
-
- $DB->query("
- SELECT ID
- FROM users_main AS um
- JOIN users_info AS ui ON ui.UserID = um.ID
- JOIN temp_sections_schedule_index AS u ON u.Inviter = um.ID
- WHERE u.Upload > 2.0
- AND u.Upload / u.Download > ".(10*1024*1024*1024)."
- AND um.Enabled = '1'
- AND ui.DisableInvites = '0'
- AND ((um.PermissionID = ".ELITE."
- AND um.Invites < 3)
- OR (um.PermissionID = ".TORRENT_MASTER."
- AND um.Invites < 4)
- )");
-
- $UserIDs = $DB->collect('ID');
- if (count($UserIDs) > 0) {
- foreach ($UserIDs as $UserID) {
- $Cache->begin_transaction("user_info_heavy_$UserID");
- $Cache->update_row(false, array('Invites' => '+1'));
- $Cache->commit_transaction(0);
- }
- $DB->query('
- UPDATE users_main
- SET Invites = Invites + 1
- WHERE ID IN ('.implode(',', $UserIDs).')');
- }
-
- $DB->query("
- SELECT ID
- FROM users_main AS um
- JOIN users_info AS ui ON ui.UserID = um.ID
- JOIN temp_sections_schedule_index AS u ON u.Inviter = um.ID
- WHERE u.Upload > 3.0
- AND u.Upload / u.Download > ".(20*1024*1024*1024)."
- AND um.Enabled = '1'
- AND ui.DisableInvites = '0'
- AND (um.PermissionID = ".TORRENT_MASTER."
- AND um.Invites < 4)");
-
- $UserIDs = $DB->collect('ID');
- if (count($UserIDs) > 0) {
- foreach ($UserIDs as $UserID) {
- $Cache->begin_transaction("user_info_heavy_$UserID");
- $Cache->update_row(false, array('Invites' => '+1'));
- $Cache->commit_transaction(0);
- }
- $DB->query('
- UPDATE users_main
- SET Invites = Invites + 1
- WHERE ID IN ('.implode(',', $UserIDs).')');
- }
- ?>
|