Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #4  
Old 05-13-2009, 08:20 AM
OcR Envy's Avatar
OcR Envy OcR Envy is offline
 
Join Date: May 2008
Location: Boston
Posts: 248
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you for both of your responses. I've PMed you the code if you have the chance to review it that would be swell.

Lynne, I've globalized only $vbulletin and a few vars I want to hold the string outside of functions. I'm unsure what else would need to be done.

Dismounted, How would this make a difference? I'm stating that the task works when run manually by clicking on "Run Now" not from outside the Admin CP. I don't think you can even run it stand alone as it calls the db defined by vbulletin. There isn't any code in it that would matter as for member vs guest.

--------------- Added [DATE]1242226401[/DATE] at [TIME]1242226401[/TIME] ---------------

After getting a response from Lynne I've decided to post the code. Anyone who see's an issue please help!

For reference I am not currently giving permission to reuse the code.

PHP Code:
<?php
/*======================================================================*\
|| #################################################################### ||
|| # Who's on XBL By OcR Envy v 2.8                                    ||
|| #################################################################### ||
\*======================================================================*/

// ---------------------------------------------------
// Start Set PHP Environment
// ---------------------------------------------------

error_reporting(E_ALL & ~E_NOTICE);
if (!
is_object($vbulletin->db))
{
    echo 
"No vBulletin Found!";
    exit;
}

// ---------------------------------------------------
// Start Cronjob
// ---------------------------------------------------

global $vbulletin;
global 
$db;

@
set_time_limit(0);
@
ignore_user_abort(true);

$updatetime=time(); 
putenv("TZ=US/Eastern");
$checktime=date("h:i A"time());
$checkdate=date("m/d/y"time());

function 
DownloadUrl($Url){
 
    
$ch curl_init();
        
curl_setopt($chCURLOPT_URL$Url);
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
        
curl_setopt($chCURLOPT_TIMEOUT5); 
        
curl_setopt($chCURLOPT_USERAGENT'vBulletin via cURL/PHP');
        
curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
        
curl_setopt($chCURLOPT_ENCODING'gzip');
        
$output curl_exec($ch);
    
curl_close($ch);

    
$online strstr($output'Server');

    if(
$online) { 
        
$online "false";
    } else {
        if(
$output == "") {
            
$online "false";
        } else {                
            global 
$xml;
            
$xml simplexml_load_string($output);
            
$account=$xml->AccountStatus;
            if(
$account == "Gold") {
                
$online "true";
            } else {
                
$online "false";
            }
        }
    }
    return 
$online;
}

$duncanonline Downloadurl('http://xboxapi.duncanmackenzie.net/gamertag.ashx?GamerTag=outcast%20reborn');
$vbulletin->db->query("UPDATE xblusers SET time='$checktime', date='$checkdate' WHERE title='checked'");

if(
$duncanonline=="true") {
    
$updater="true";
} else {

    
$grabchecked $vbulletin->db->query("SELECT time, date FROM xblusers WHERE title='crashed'");
    
$gchecked=$vbulletin->db->fetch_array($grabchecked);
    
$checkedt=$gchecked['time'];
    
    
    if(
$checkedt=="00:00PM") {
        
$vbulletin->db->query("UPDATE xblusers SET time='$checktime', date='$checkdate' WHERE title='crashed'");
    }
    die;
}


$gamertaggrab=$vbulletin->db->query("SELECT userfield.field5, userfield.field11, userfield.userid FROM userfield INNER JOIN user ON user.userid = userfield.userid AND userfield.field5 > '' WHERE usergroupid IN (6,48,52,50,51,26,58,60,55,46,25)");
while(
$userrow $vbulletin->db->fetch_array($gamertaggrab)) {    
    
$gamertag=$userrow['field5'];
        
    if (
$gamertag) {
        
$duncanonline Downloadurl('http://xboxapi.duncanmackenzie.net/gamertag.ashx?GamerTag='urlencode($gamertag));

        if(
$duncanonline=="true") {
            
$coretag=$xml->Gamertag;                
            
$tagvalid=$xml->PresenceInfo->Valid;        
            
$onlinestatus=$xml->PresenceInfo->Online;        
            
$statustext=$xml->PresenceInfo->StatusText;        
            
$title=$xml->PresenceInfo->Title;        
            
$info=$xml->PresenceInfo->Info;        
            
$info2=$xml->PresenceInfo->Info2;        
            
$lastseen=$xml->PresenceInfo->LastSeen;                
                    
            
$statustext=addslashes($statustext);        
            
$title=addslashes($title);        
            
$info=addslashes($info);        
            
$info2=addslashes($info2);
            
            if (
$onlinestatus=="true") {            
                
$online=1;        
            } else {            
                
$online=0;            
            }                    
                        
            foreach (
$xml->xpath('//Game') as $gameset) {  
                
$gamename=$gameset->Name;            
                
$gametile=$gameset->Image32url;                        
                
$gamename=addslashes($gamename);

                
$vbulletin->db->query("INSERT IGNORE INTO xblgames (name,tile) VALUES ('".$gamename."','".$gametile."')");                                        
            }
    
            if (
$tagvalid=="true")    {
                
$logmsg $logmsg $userrow['userid'] . ": " $gamertag "-" $statustext "<br />";
                
$vbulletin->db->query("INSERT INTO xblstatus (userid,gamertag,online,statustext,title,info,info2,lastseen,updatetime)             
                VALUES ('"
.$userrow['userid']."','$coretag','$online','$statustext','$title','$info','$info2','$lastseen',FROM_UNIXTIME($updatetime)) ON DUPLICATE KEY             
                UPDATE userid='"
.$userrow['userid']."',gamertag='$coretag',online='$online',statustext='$statustext',title='$title',info='$info',info2='$info2',
                lastseen='
$lastseen',updatetime=FROM_UNIXTIME($updatetime)");                                    
                    
                
$vbulletin->db->query("UPDATE userfield SET field12='$statustext',field13='$title',field14='$info2' WHERE userid=".$userrow['userid']);
            }

        }
    }

    
$gamertag=$userrow['field11'];    
        
    if (
$gamertag) {
        
$duncanonline Downloadurl('http://xboxapi.duncanmackenzie.net/gamertag.ashx?GamerTag='urlencode($gamertag));

        if(
$duncanonline=="true") {
            
$coretag=$xml->Gamertag;                
            
$tagvalid=$xml->PresenceInfo->Valid;        
            
$onlinestatus=$xml->PresenceInfo->Online;        
            
$statustext=$xml->PresenceInfo->StatusText;        
            
$title=$xml->PresenceInfo->Title;        
            
$info=$xml->PresenceInfo->Info;        
            
$info2=$xml->PresenceInfo->Info2;        
            
$lastseen=$xml->PresenceInfo->LastSeen;    
                
            
$statustext=addslashes($statustext);        
            
$title=addslashes($title);        
            
$info=addslashes($info);        
            
$info2=addslashes($info2);                            
                    
            if (
$onlinestatus=="true") {            
                
$online=1;        
            } else {            
                
$online=0;            
            }                
                        
            if (
$tagvalid=="true")    {
                
$logmsg $logmsg $userrow['userid'] . ": " $gamertag "-" $statustext "<br />";
                
$vbulletin->db->query("INSERT INTO sxblstatus (userid,gamertag,online,statustext,title,info,info2,lastseen,updatetime)             
                VALUES ('"
.$userrow['userid']."','$coretag','$online','$statustext','$title','$info','$info2','$lastseen',FROM_UNIXTIME($updatetime)) ON DUPLICATE KEY             
                UPDATE userid='"
.$userrow['userid']."',gamertag='$coretag',online='$online',statustext='$statustext',title='$title',info='$info',info2='$info2',
                lastseen='
$lastseen',updatetime=FROM_UNIXTIME($updatetime)");
                    
                
$vbulletin->db->query("UPDATE userfield SET field15='$statustext',field16='$title',field17='$info2' WHERE userid=".$userrow['userid']);                                                            
            }    
        }                        
    }
}

if(
$updater=="true") {
    
$vbulletin->db->query("UPDATE xblusers SET time='00:00PM', date='00/00/00' WHERE title='crashed'");
}
log_cron_action('Updated XBL Status'$nextitem1);

// ---------------------------------------------------
// End Cronjob
// ---------------------------------------------------
?>
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:15 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06040 seconds
  • Memory Usage 2,747KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete