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

Reply
 
Thread Tools Display Modes
  #1  
Old 12-02-2007, 08:44 PM
AceNZ AceNZ is offline
 
Join Date: Nov 2007
Location: Nelson, NZ
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How to set a different session timeout for spiders?

I would like to set a different session timeout for spiders than for logged-in users. Spiders don't usually accept cookies, so it can quickly look like you have hundreds of them simultaneously accessing the site, when in fact it's just a single spider making a lot of requests. Reducing the session timeout will help minimize that effect.

I suspect that spiders aren't identified until the who is online page is displayed -- so it would actually be OK to make this change for all guests.... Ideally, the code would detect whether an incoming request included a session cookie, and set the timeout based on that.

Does anyone know where I would look in the code to make such a change?
Reply With Quote
  #2  
Old 12-02-2007, 09:48 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Why not just set your crawl-delay in your robots.txt file?
Reply With Quote
  #3  
Old 12-02-2007, 09:52 PM
AceNZ AceNZ is offline
 
Join Date: Nov 2007
Location: Nelson, NZ
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
Why not just set your crawl-delay in your robots.txt file?
I don't want to reduce the speed at which the site is crawled. I want to reduce (or ideally coalesce) the redundant / meaningless guest users in the who is online list.

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

I think I've figured out half of the answer (and I'm starting to understand vB's plugin system at the same time). I added the following code to the who's online online_query hook:

PHP Code:
if($vbulletin->options['WOLguests']){
  
$rkdatecut TIMENOW 300;
  
$hook_query_where " and session.userid <> 0 or (session.userid = 0 and session.lastactivity > $rkdatecut)";

The seems to have the effect I'm looking for in online.php. Now I'm looking for a similar hook for the summary that's displayed on the forum home page.

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

Unfortunately, there doesn't seem to be a hook in the associated query in the forumhome code, so I had to modifiy the code directly instead. Not ideal, but it works.

PHP Code:
$datecut TIMENOW $vbulletin->options['cookietimeout'];
$rkcut TIMENOW 300;
$numbervisible 0;
$numberregistered 0;
$numberguest 0;

$forumusers $db->query_read_slave("
        SELECT
            user.username, (user.options & " 
$vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, user.usergroupid,
            session.userid, session.inforum, session.lastactivity,
            IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
        FROM " 
TABLE_PREFIX "session AS session
        LEFT JOIN " 
TABLE_PREFIX "user AS user ON(user.userid = session.userid)
        WHERE (session.lastactivity > 
$datecut and session.userid <> 0) or (session.lastactivity > $rkcut and session.userid = 0)
        " 
iif($vbulletin->options['displayloggedin'] == OR $vbulletin->options['displayloggedin'] == 3"ORDER BY username ASC") . "
    "
); 
Reply With Quote
Reply


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 12:34 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06401 seconds
  • Memory Usage 2,194KB
  • Queries Executed 13 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (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_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
  • 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