vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Add-On Releases - vBISpy - AJAX real-time feed of new posts/threads (https://vborg.vbsupport.ru/showthread.php?t=125947)

MPDev 09-05-2006 10:00 PM

vBISpy - AJAX real-time feed of new posts/threads
 
After seeing the http://www.digg.com/spy application; I wondered if this could be done for vBulletin as well. I came across this webpage which had a "how to" on how they built a similiar application to do the same thing. Taking a page from their book (i.e. the code), I modified it for use with vBulletin.

During development, I also came across this post here on vBulletin.Org where the very subject had already been discussed.

So I put this together; a simple ZIP file with a single PHP script, three javascript files and 4 images.

Installation

. UNZIP the file into your forums directory
. That's it!

Virtually all the code to customize the page is in the vaispy.php script; there are no plugins, no templates and no phrases. You do not need to do anything further; this should work right out of the box.

In your browser, open the URL:

http://www.yourforum.com/forum/vaispy.php

You can see examples of this at:

http://www.viperalley.com/forum/vaispy.php
http://www.extremefitness.com/forum/vaispy.php

Note: I claim no ownership of this code except for the file vaispy.php - the rest of the files were using 'freely distributable' sources. As such, you may use these files as you wish, but please do not remove the copyrights.

This modification is for vBulletin 3.6 only, if you are running vBulletin 3.5 you will need to see this thread.

JOIN THE vBIspy Network!
Once you have this mod installed, you can join the vBIspy network to have your threads appear on this site; the vBIspy Network is a great way for people to see what's going on in various vBulletin communities and for forum owners to promote their sites and generate new traffic.

Optional add-ons

Who's Online mod for this: https://vborg.vbsupport.ru/showthread.php?t=126209

vBAdvanced Module: https://vborg.vbsupport.ru/showthread.php?t=126421

UPDATES
1.0.4
Added buro9's code from here

1.0.5 - 9.9.06
Modified some JavaScript in va_spy.js to remove split strings

1.0.6 - 9.10.06
Added date cuffoff code from here and changed init() to spyinit() - changed vaispy.php and va_spy.js files.

1.0.7 - 9.12.06
va_spy.js: Added a forum url variable to allow for integration with portals or other products outside the forum directory
va_spy.js: Added xmldelay variable at top of script for easier configuration or repolling
Updated files: vaispy.php, vb_spy.js

1.0.8 - 9.13.06
vaispy.php - changed code for checking for forum permissions to include password protected forums, added javascript tag for script code

1.0.9 - 9.16.06
vaispy.php
va_spy.js
va_effects.js
- modified to allow for proper display in Opera browsers and moved more html into vaispy.php to allow for stylevars, trimmed va_effects.js to remove unused code (ForumDog's suggestions, except not using templates yet), changed way threads are parsed (removes html as well)

1.0.10 - 9.17.06
va_prototype.js - removed 20kb of unused code

1.1.11 - 9.25.2006
vaispy.php
va_spy.js
- added SirAdrian's mods for thread status icons and alternating row colors
- added code to prepopulate the first 10 rows with existing threads allowing for 5 new ones to be added in scrolling mode (versus scrolling starting from the first thread).
- added option to display subscribed threads only

1.1.12 - 9.26.2006
vaispy.php
- added code to add empty rows if initial pull has less than 20 rows.

MPDev 09-06-2006 12:55 PM

Keep in mind, this kind of script can add to your server load if alot of users are using it; it polls the lookup script every 7 seconds to give it a real-time effect; you may need to adjust this to suit your own needs.

The last line of the file:

Code:

                setTimeout("getXML()", 7000);
can be changed to allow for greater periods of delay between polling.

Enjoy.

Cheertobi 09-06-2006 01:05 PM

Great stuff, does it check the forumspermissions?!

Tobi

MPDev 09-06-2006 01:07 PM

Yes, forum permissions are checked. You can also exclude specific forums by changing the line:

Code:

    // Do not list these forums even if they have permissions (test categories, etc)
    $blockforums = "26,13";

in vaispy.php - I use this to block test post forums and such.

-=Sniper=- 09-06-2006 01:09 PM

cool :)

Cheertobi 09-06-2006 01:10 PM

Great, right now, it does not dispay anything, but there are new post!

MPDev 09-06-2006 01:15 PM

Make sure you uploaded all your files properly into their respective directories; the javascript clients are required.

ericgtr 09-06-2006 01:17 PM

I am having the same problem here, the page shows up fine and the .js files are being called without any errors, only nothing shows up.

FFW 09-06-2006 01:22 PM

Working fine for me here. Only thing I had to change was the forum title -- the php file contains the title of your site (Viper Alley).

Thanks a lot MPDev :)

Cheertobi 09-06-2006 01:23 PM

All files are uploaded and in the right directories!

MPDev 09-06-2006 01:25 PM

<a href="http://www.extremefitness.com/forum/vaispy.php" target="_blank">http://www.extremefitness.com/forum/vaispy.php</a>

I just uploaded the files to here and it worked right out of the box. If you post a URL, I'll take a look using the Firefox JavaScript console.

ericgtr 09-06-2006 01:27 PM

Sure, the only thing I changed was the title http://www.guitarblast.com/vaispy.php All the .js files are in the clientscript directory.

MPDev 09-06-2006 01:29 PM

Okay, redownload and upload the vaispy.php script; when I loaded your page it didn't like an ampersand in the title.

Code:

Error: not well-formed
Source File: http://www.guitarblast.com/vaispy.php?do=xml&r=0.9394500932840069&_=
Line: 45, Column: 34
Source Code:
<title>Perfect Strangers (mange & Fredrik)</title>---------------------------------^

I added a call to htmlspecialchars_uni for the title and forum names.

Cheertobi 09-06-2006 01:31 PM

You also can check it here :-D

Tobi

MPDev 09-06-2006 01:33 PM

Working for me, Cheertobi. You, too, Ericgtr.

Cheertobi 09-06-2006 01:33 PM

Yep, I just uploaded the new files ;)

Thanks!

ericgtr 09-06-2006 01:35 PM

Quote:

Originally Posted by MPDev
Okay, redownload and upload the vaispy.php script; when I loaded your page it didn't like an ampersand in the title.

Code:

Error: not well-formed
Source File: http://www.guitarblast.com/vaispy.php?do=xml&r=0.9394500932840069&_=
Line: 45, Column: 34
Source Code:
<title>Perfect Strangers (mange & Fredrik)</title>---------------------------------^

I added a call to htmlspecialchars_uni for the title and forum names.

Excellent, that fixed it, thanks! So how is this tracking exactly, I can see it updates in time intervals so each update will show when a user is viewing different forums, etc?

Zachariah 09-06-2006 01:36 PM

woohoo more Ajax
:D

janjalani 09-06-2006 01:38 PM

sweet! installed and working fine!

MPDev 09-06-2006 01:39 PM

No, it's just doing a single query to get new posts/threads; that's all. It's a global thing (with permissions), so it doesn't require looking at any specific forum.

I have ideas for future use and how to filter what you see; but this gets everyone started.

And was meant to be as simple as possible to get running. ;)

DementedMindz 09-06-2006 01:39 PM

nice work MPDEV but whats up with your sites title in the explorer bar? <title>ViperAlley iSpy</title> also if you use things like vBMicrostats https://vborg.vbsupport.ru/showthread.php?t=116027 they dont work.

MPDev 09-06-2006 01:43 PM

I removed the name from the ZIP, just an oversight.

janjalani 09-06-2006 01:43 PM

when I rename vaispy.php to spy.php it doesnt work anymore :(

djwins 09-06-2006 01:43 PM

Is this 3.6 only? I'm on 3.5.4 and get this mysql error:

Invalid SQL:

## GET LATEST THREADS ##
SELECT thread.*, post.pagetext AS preview
FROM thread AS thread
LEFT JOIN deletionlog AS deletionlog ON(thread.threadid = deletionlog.primaryid AND type = 'thread')
LEFT JOIN post AS post ON(post.postid = thread.lastpostid)
WHERE open <> 10 AND thread.lastpostid > 0
AND forumid NOT IN (0,42)
AND thread.visible = '1'
AND deletionlog.primaryid IS NULL
ORDER BY lastpost
DESC LIMIT 10;

MySQL Error : Unknown column 'thread.lastpostid' in 'where clause'
Error Number : 1054

EDIT: Yeah 'thread.lastpostid' is new in 3.6 :(

MPDev 09-06-2006 01:44 PM

It won't work it you rename the file without changing the code.

I don't have 3.5x to run it on for testing.

janjalani 09-06-2006 01:45 PM

oh! how to make it slower?

DementedMindz 09-06-2006 01:45 PM

if you use things like vBMicrostats https://vborg.vbsupport.ru/showthread.php?t=116027 they dont work its not picking that up for some reason.

ericgtr 09-06-2006 01:49 PM

Quote:

Originally Posted by janjalani
when I rename vaispy.php to spy.php it doesnt work anymore :(

You also have to change it in the va_spy.js file.

ericgtr 09-06-2006 01:50 PM

BTW, I clicked the install button. This mod is slicker than a safeway chicken! :D

dirtycrow 09-06-2006 01:51 PM

i know you said it checks forum permissions, but how about password protected forums?

dirtycrow 09-06-2006 02:02 PM

answered my own question. it lets you view new posts and threads in forums that are simply password protected.

lasto 09-06-2006 02:12 PM

hmm looks good - one question MPdev could it pull the first img file from the first post in the thread as well ?

Boots 09-06-2006 02:27 PM

If I am logged in this shows nothing... if I logout it works fine.. any ideas?

DementedMindz 09-06-2006 02:31 PM

Yeah i can see it when im logged out lol and it looks horrible on internet explorer it looks like it has a bunch of lines under the last table

DementedMindz 09-06-2006 02:39 PM

seems like a nice way to kill someones site would be to dos this page. maybe you could make it so only registered user can see it or have some sort of permissions?

Adrian Schneider 09-06-2006 02:39 PM

Not bad... I'm glad someone finally made it (after seeing the request thread).

The only thing that would be better is if it read from the session table, but that would be a larger undertaking because you'd have to convert the location field to URL and then fetch the threadID, postID, etc like vBulletin does in WOL. Usergroup permissions (even hardcoded) is a must for this BTW.

ChrisSy 09-06-2006 03:01 PM

Aww man, this is just the kind of hack i was looking for!

Has anyone installed this on a large board yet? Im interested to know about server load.

MPDev 09-06-2006 03:28 PM

Quote:

Originally Posted by dirtycrow
answered my own question. it lets you view new posts and threads in forums that are simply password protected.

You can try changing line 46 in vaispy.php to - I dont have any password protected forums.

Code:

            if (($forumperms[$forum["forumid"]] & $vbulletin->bf_ugp_forumpermissions['canview']) AND verify_forum_password($forum["forumid"], null, false)) {

MPDev 09-06-2006 03:37 PM

Quote:

Originally Posted by DementedMindz
seems like a nice way to kill someones site would be to dos this page. maybe you could make it so only registered user can see it or have some sort of permissions?

If I wanted to DDOS someone's site I would only have to call any one of the number of vBulletin scripts repeatedly.

da420 09-06-2006 03:41 PM

Very nice. Will install after work. :)


All times are GMT. The time now is 04:23 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.01877 seconds
  • Memory Usage 1,820KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_code_printable
  • (4)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete