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

Reply
 
Thread Tools Display Modes
  #1  
Old 08-13-2013, 03:16 PM
RideMonkey! RideMonkey! is offline
 
Join Date: Aug 2009
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Thoughts on a SQL query for removing spam

I've written up the following to do some database purging of spam that has accumulated. I've commented what each section is designed to do - could someone take a look and see if A) it makes sense, or B) I'm missing anything?

Code:
# Remove all moderated visitor messages
delete from `visitormessage` where visitormessage.state = 'moderation'

# Ban all users who have left a visitor message containing a URL, have no posts and haven't logged on in 6 months
update `user`
left join (visitormessage)
on (user.userid=visitormessage.postuserid)
set user.usergroupid='14', user.displaygroupid='14'
where visitormessage.pagetext like '%url%' and
user.posts < 1 and
user.lastactivity < UNIX_TIMESTAMP('2013-02-12 00:00:00')


# Delete all visitor messages for banned users with fewer than 5 posts
delete `visitormessage` from `visitormessage`
left join (user)
on (user.userid=visitormessage.postuserid)
where user.usergroupid='14' and
user.posts < 5

# Delete user homepages for banned users, or those with no posts 
update `user` set homepage='' where usergroupid='14'
update `user` set homepage='' where posts < 1

# Delete signatures for banned users
update `usertextfield`
left join (user)
on (user.userid = usertextfield.userid)
set signature=''
where user.usergroupid='14'	

# Delete URL-containing signatures from users with no posts
update `usertextfield`
left join (user)
on (user.userid = usertextfield.userid)
set usertextfield.signature=''
where usertextfield.signature like '%url%' and
user.posts < 1
Reply With Quote
  #2  
Old 08-13-2013, 03:42 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm not an sql expert or anything but they seem to do what the comments suggest. The only thing I'm wondering is, does %url% match a url? I thought it would match text that literally has 'url' in it somewhere. ETA: oh, maybe you're matching the 'url' in the bbcode tag? I guess that could work.
Reply With Quote
  #3  
Old 08-13-2013, 03:59 PM
RideMonkey! RideMonkey! is offline
 
Join Date: Aug 2009
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yes, I'm looking for the bbcode tag with URL in it. "http" doesn't work because you don't have to include that in the URL tag, and "www" would not catch anything that had a subdomain that wasn't www... so, I'm figuring this will catch the majority. I may go back through and do a more granular cleanup but selecting these statements out of the database is eliciting thousands of spam visitor messages & profiles so I figured I'd start with a bulk remove and decide where to go from there.

Thanks for the feedback. Do I need to run any cleanup tasks in VB after doing this? I couldn't find any counters for visitor messages so my assumption was there wasn't anything additional.
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 09:56 AM.


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.04121 seconds
  • Memory Usage 2,175KB
  • Queries Executed 11 (?)
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
  • (1)bbcode_code
  • (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_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