View Single Post
  #4  
Old 7th February 2010, 17:35
cop1976's Avatar
cop1976 cop1976 is offline
Senior Member
 
Join Date: May 2009
United Kingdom
Posts: 30
Default
I add this code before function getscrapedata

Code:
/*Auto Prommote system By joeroberts
To Use call to function in clean up You Must use a new call for each level you want to Promote
autopromote(10,2,1.1,"Power User","user");
autpromote(
$upload = user with upload equle or greater then
$bite = Type of byte Meg Gig Tera
$ratio = user with ratio equle or better then
$new_level = New level to promote to
$old_level = select from user in this level 
)
*/
function autopromote($upload, $bite="1", $ratio, $new_level, $old_level){
       global $db, $db_prefix;
$mb = 1024*1024;
$gb = 1024*1024*1024;
$tb = 1024*1024*1024*1024;
if ($bite == '1')
    $upload = $mb*$upload;
elseif ($bite == '2')
    $upload = $gb*$upload;
elseif ($bite == '3')
    $upload = $tb*$upload;
else return;
    $res1 ="SELECT id FROM ".$db_prefix."_users WHERE  can_do = '".$old_level."' AND active = 1 AND uploaded >= $upload AND uploaded / downloaded >= $ratio AND warned = '0'" ;
$res =$db->sql_query($res1)or btsqlerror($res1);
    $prouser = array();
       while ($arr = $db->sql_fetchrow($res))
       {
        $prouser[] = $arr['id'];
}
$db->sql_freeresult($res);
if(count($prouser) > 0)
  $db->sql_query("UPDATE ".$db_prefix."_users SET  can_do ='".$new_level."' WHERE id IN ( '".implode("','",$prouser)."')") or btsqlerror("UPDATE ".$db_prefix."_users SET  can_do ='".$level."' WHERE id IN ( '".implode("','",$prouser)."')"); 
}
/*Auto Demotion system By joeroberts
To Use call to function in clean up You Must use a new call for each level you want to demote
autodemote(1.0, "user", "Power User");
autodemote(
$ratio = user with ratio less then
$new_level New Level for user
$old_level Level From sich to demote from
)
*/
function autodemote($ratio, $new_level, $old_level){
       global $db, $db_prefix;
    $res1 ="SELECT id FROM ".$db_prefix."_users WHERE  can_do = '".$old_level."' AND active = 1 AND uploaded / downloaded < $ratio AND warned = '0'" ;
$res =$db->sql_query($res1)or btsqlerror($res1);
    $prouser = array();
       while ($arr = $db->sql_fetchrow($res))
       {
        $prouser[] = $arr['id'];
}
$db->sql_freeresult($res);
if(count($prouser) > 0)
  $db->sql_query("UPDATE ".$db_prefix."_users SET  can_do ='".$new_level."' WHERE id IN ( '".implode("','",$prouser)."')") or btsqlerror("UPDATE ".$db_prefix."_users SET  can_do ='".$level."' WHERE id IN ( '".implode("','",$prouser)."')"); 
}
and before autoclean i add

Code:
autopromote(25,2,1.0,"power_user","user");
autodemote(0.9, "user", "power_user");
autopromote(100,2,2.0,"super_user","power_user");
autodemote(1.9, "power_user", "super_user");
autopromote(500,2,3.0,"elite_user","super_user");
autodemote(2.9, "super_user", "elite_user");
I promote manualy user to power user who had only 10 GB upload, and system don't demote him.
Reply With Quote