View Full Version : bun_bot, volume 3
mrs_bun
02-20-2009, 05:24 AM
Post ideas for bun bot here, or just be yelly and mean.
.Rikku.
02-20-2009, 11:37 AM
Stop bring uDERDERDERDERDERDERDERDERDER
Change named to bun_butt.
Fonzy
02-20-2009, 11:46 AM
http://wut.ca/memberlist.php?ltr=B&pp=30&sort=username&order=asc
:huh:
Dirk Magirk
02-20-2009, 12:40 PM
Change named to bun_butt.
wat in the fuck
Tee See Em
02-20-2009, 12:50 PM
I'm having fun with branches. :V (http://github.com/JeremyBanks/vbbot/network)
LegendShark
02-20-2009, 01:22 PM
Its almost like Bun doesn't need to show up any more. Her work is already done for her.
Psion
02-20-2009, 01:39 PM
bun_bot = mrs_bun + Real Touch
mrs_bun
02-20-2009, 02:12 PM
Its almost like Bun doesn't need to show up any more. Her work is already done for her.
bun_bot = mrs_bun + Real Touch
You sons of two bitches.
Psion
02-20-2009, 02:22 PM
Do you have a servo, bun?
Magic Stagstation
02-20-2009, 03:43 PM
Look on the bright side Bun: at least nobody thinks the bot is smarter. Yet.
Cee Pee
02-20-2009, 04:50 PM
Look on the bright side Bun: at least nobody thinks the bot is smarter. Yet.
It's not supposed to be smarter, as it's composed of bun quotes, and the less smarter ones at that. So aside from the occasional witty response, nope, it's not smarter. It might if I add more people's quotes. :V
Shadow
02-20-2009, 04:52 PM
It's not supposed to be smarter, as it's composed of bun quotes, and the less smarter ones at that. So aside from the occasional witty response, nope, it's not smarter. It might if I add more people's quotes. :V
How about just add the entire database of Wikiquote? :V
LegendShark
02-20-2009, 04:53 PM
How about just add the entire database of Wikiquote? :V
Holy shit thats a great idea. And it will be renamed Awesome_Bot.
Shadow
02-20-2009, 04:53 PM
Holy shit thats a great idea. And it will be renamed Awesome_Bot.
Or just Steve or something.
Tidal Kraken
02-20-2009, 04:54 PM
It's not supposed to be smarter, as it's composed of bun quotes, and the less smarter ones at that. So aside from the occasional witty response, nope, it's not smarter. It might if I add more people's quotes. :V
http://wut.ca/search.php?do=finduser&u=51
Cee Pee
02-20-2009, 04:59 PM
http://wut.ca/search.php?do=finduser&u=51
I already have some targets at mind (possibly also myself), but anyone willing could ultimately sign up. I'm just thinking whether I should make multiple bot accounts or just let this bot be renamed and let it say who it's impersonating in said post, and randomly change between people.
As for Wikiquote, would be awesome, dunno if wikiquote has bot-readable text so that I don't have to go all over the quotes myself.
Shadow
02-20-2009, 05:01 PM
Well, maybe you should get on that! :V
Well, maybe you should get on that! :V
Indeed. I would love a bot that just spewed out random wisdom.
Gen 12:3 To them who are good to you will I give blessing, and on him who does you wrong will I put my curse: and you will become a name of blessing to all the families of the earth.
Fonzy
02-21-2009, 11:39 PM
Gen 12:3 To them who are good to you will I give blessing, and on him who does you wrong will I put my curse: and you will become a name of blessing to all the families of the earth.
Best bot yet.
Son 7:4 Your neck is as a tower of ivory; your eyes like the waters in Heshbon, by the doorway of Bath-rabbim; your nose is as the tower on Lebanon looking over Damascus:
Fonzy
02-22-2009, 07:18 PM
I have to say, though, this "bot-ism" ("bot-u-lism"?) is going to kill the Source eventually.
Cee Pee
02-22-2009, 07:25 PM
I have to say, though, this "bot-ism" ("bot-u-lism"?) is going to kill the Source eventually.
Yeah, it might (http://en.wikipedia.org/wiki/Botulism).
In all seriousness however, if it's restricted to one forum (which has been coined the spam forum in the CoC), IMO it's fine. It might run too fast, though I have now added some features due to which it should be significantly slowed down but still post in the newest threads next time I run it.
The posts could indeed have more content, though I haven't found a good resource with actual God phrases (sometimes it's talking to itself in third person, which isn't right >_>).
SizzlingStapleCider
02-22-2009, 07:25 PM
I have to say, though, this "bot-ism" ("bot-u-lism"?) is going to kill the Source eventually.
It doesn't make sense if you say "bot-ism", but if you just say "bot-u-lism", then we'd get it still and it would be funny.
Zindaras
02-23-2009, 08:29 AM
Post ideas for bun bot here, or just be yelly and mean.
Less bot, more bun. :rip:
Tee See Em
03-04-2009, 12:18 PM
Less bot, more bun. :rip:
This is a test, I've made some minor changes to the API.
Tee See Em
03-04-2009, 12:24 PM
This is a test, I've made some minor changes to the API. TS = vbbot.VBSite("http://wut.ca/", cookie_prefix="vb")
me = vbbot.VBUser(TS, 1, open(".pwhash").read())
post = me.prepare_post(p=9290)
post.message += "This is a test, I've made some minor changes to the API."
post_id = post.post()
This should make it easier if you want to modify the default post contents or body, without having to mess with the post_data dictionary directly. If a post is successfully made it won't let you re-.post() it, because that would fail anyway because it would use a duplicate security key.
The .make_post() method still exists, but it's now just a smaller wrapper:
def make_post(self, message, title=None, t=None, p=None):
post = self.prepare_post(t, p)
post.message = message
post.title = title
return(post.post())
This should handle encoding shit correctly, I'm just going to have it reply to this to make sure it gets it right:
Unicode: ∂†®ƒ¬©¨§ˆ®¶§˚
Not-HTML: <b>this is so not actually</b> <code>HTML</code>
URLEncoding (for some reason): ++%A8+%A8%A5+%A8%A5++%A8THIS+IS+%23%25%23%25%23+POINTLESS
Smilies (also for no reason): :V:p:rofl::dance::nono::huh::confused::rip:
Mass of quotes and stuff: "'\ !!@$!@````'""' #%$*#$*@%!# '' ' " \ --#
Tee See Em
03-04-2009, 12:26 PM
TS = vbbot.VBSite("http://wut.ca/", cookie_prefix="vb")
me = vbbot.VBUser(TS, 1, open(".pwhash").read())
post = me.prepare_post(p=9290)
post.message += "This is a test, I've made some minor changes to the API."
post_id = post.post()
This should make it easier if you want to modify the default post contents or body, without having to mess with the post_data dictionary directly. If a post is successfully made it won't let you re-.post() it, because that would fail anyway because it would use a duplicate security key.
The .make_post() method still exists, but it's now just a smaller wrapper:
def make_post(self, message, title=None, t=None, p=None):
post = self.prepare_post(t, p)
post.message = message
post.title = title
return(post.post())
This should handle encoding shit correctly, I'm just going to have it reply to this to make sure it gets it right:
Unicode: ∂†®ƒ¬©¨§ˆ®¶§˚
Not-HTML: <b>this is so not actually</b> <code>HTML</code>
URLEncoding (for some reason): ++%A8+%A8%A5+%A8%A5++%A8THIS+IS+%23%25%23%25%23+POINTLESS
Smilies (also for no reason): :V:p:rofl::dance::nono::huh::confused::rip:
Mass of quotes and stuff: "'\ !!@$!@````'""' #%$*#$*@%!# '' ' " \ --#
Please work.
Tee See Em
03-04-2009, 12:29 PM
Please work.
TS = vbbot.VBSite("http://wut.ca/", cookie_prefix="vb")
me = vbbot.VBUser(TS, 1, open(".pwhash").read())
post_id = me.make_post("Please work.", p=12472, prepend_quote=True)
print(post_id)
WTF it fucked up horribly. That was not supposed to happen.
BeautifulSoup is supposed to deal with unicode properly, so I'm going to think that could possibly be my fault. I thought it dealt with HTML entities, but I guess it doesn't. That's a pain. I'll have to see if there's a function somewhere in one of the DOM modules for dealing with that, because it's really too much of a mess to fight with myself.
Tee See Em
03-04-2009, 12:32 PM
For reference: html.entities.entitydefs includes all of the named html entities, in case I decide do write a regex callback thing to deal with it myself.
Tee See Em
03-04-2009, 12:34 PM
http://groups.google.com.au/group/comp.lang.python/msg/f77f2093ff48331d
Tee See Em
03-04-2009, 12:38 PM
TS = vbbot.VBSite(&";http://wut.ca/&";, cookie_prefix=&";vb&";)
me = vbbot.VBUser(TS, 1, open(&";.pwhash&";).read())
post = me.prepare_post(p=9290)
post.messa≥ += &";This is a test, I've made some min∨ chan≥s to the API.&";
post_id = post.post()
This should make it easier if you want to modify the defau< post contents ∨ body, without having to mess with the post_data dictionary directly. If a post is successfully made it won't ≤t you re-.post() it, because that would fail anyway because it would use a duplicate security key.
The .make_post() mðod still eξsts, but it's now just a smal≤r wrapper:
def make_post(self, messa≥, tit≤=Noâ‰♥, t=Noâ‰♥, p=Noâ‰♥):
post = self.prepare_post(t, p)
post.messa≥ = messa≥
post.tit≤ = tit≤
return(post.post())
This should h∧≤ encoding shit c∨rectly, I'm just going to have it reply to this to make sure it ≥ts it right:
U∋code: ∂†®ƒ¬©¨§ˆ®¶§˚
Not-HTML: <b>this is so ¬ actually</b> <code>HTML</code>
URLEncoding (f∨ some reason): ++%A8+%A8%A5+%A8%A5++%A8THIS+IS+%23%25%23%25%23+POINTLESS
Smilies (also f∨ no reason): :V:p:rofl::dance::nono::huh::confused::rip:
Mass of "es ∧ stuff: &";'\ !!@$!@````'&";&";' #%$*#$*@%!# '' ' &"; \ --#
Further testing.
Tee See Em
03-04-2009, 12:39 PM
Further testing.
Somehow passing it to a method that totally shouldn't do anything except replace some entities fucked up the encoding horribly. Nice.
EDIT: What is the solution not?
value = saxutils.unescape(textarea.string, html.entities.entitydefs)
I should have realized, but there you are.
Tee See Em
03-04-2009, 12:42 PM
TS = vbbot.VBSite("http://wut.ca/", cookie_prefix="vb")
me = vbbot.VBUser(TS, 1, open(".pwhash").read())
post = me.prepare_post(p=9290)
post.message += "This is a test, I've made some minor changes to the API."
post_id = post.post()
This should make it easier if you want to modify the default post contents or body, without having to mess with the post_data dictionary directly. If a post is successfully made it won't let you re-.post() it, because that would fail anyway because it would use a duplicate security key.
The .make_post() method still exists, but it's now just a smaller wrapper:
def make_post(self, message, title=None, t=None, p=None):
post = self.prepare_post(t, p)
post.message = message
post.title = title
return(post.post())
This should handle encoding shit correctly, I'm just going to have it reply to this to make sure it gets it right:
Unicode: ∂†®ƒ¬©¨§ˆ®¶§˚
Not-HTML: <b>this is so not actually</b> <code>HTML</code>
URLEncoding (for some reason): ++%A8+%A8%A5+%A8%A5++%A8THIS+IS+%23%25%23%25%23+POINTLESS
Smilies (also for no reason): :V:p:rofl::dance::nono::huh::confused::rip:
Mass of quotes and stuff: "'\ !!@$!@````'""' #%$*#$*@%!# '' ' " \ --#
Further testing, should fix unicode errors?
Tee See Em
03-04-2009, 12:47 PM
I think I'm going to have to concede it to BeautifulSoup being designed for Python 2, which had a much more messed up unicode implementation, and it's trying to compensate for that even though it's using Python 3, which handles it all fine.
Not sure what to do about that.
Tee See Em
03-04-2009, 12:47 PM
I think I'm going to have to concede it to BeautifulSoup being designed for Python 2, which had a much more messed up unicode implementation, and it's trying to compensate for that even though it's using Python 3, which handles it all fine.
Not sure what to do about that.
Bleh.
Tee See Em
03-04-2009, 12:51 PM
I think I'm going to have to concede it to BeautifulSoup being designed for Python 2, which had a much more messed up unicode implementation, and it's trying to compensate for that even though it's using Python 3, which handles it all fine.
Not sure what to do about that.Here's the branch, anyway. (http://github.com/JeremyBanks/vbbot/tree/preparing_posts) I don't think it introduces any NEW problems, it just forced me to accept existing ones.
Cee Pee
03-04-2009, 01:04 PM
Hm. I used html.entities.name2codepoint for this.
Tee See Em
03-04-2009, 01:04 PM
I'm just actually looking at your code now (I did upload it already, I just hadn't really browsed it). You've written quite a bit, haven't you? :V
tsbot # preparing_posts $ git diff preparing_posts cp -- vbbot.py
diff --git a/vbbot.py b/vbbot.py
index f7cf46e..ff0867f 100644
--- a/vbbot.py
+++ b/vbbot.py
@@ -7,14 +7,12 @@
# spamming, and I'd like it to at least be illegal for people to do so,
# even if that wouldn't stop them.
import sys
+import re
import urllib.request
import urllib.parse
from collections import UserString
from BeautifulSoup import BeautifulSoup
from pprint import pprint
-from copy import copy
-import html.entities
-from xml.sax import saxutils
def encode_cookies(dictionary):
"""Returns cookies encoded in a header-friendly format from a dictionary
@@ -36,49 +34,6 @@ class VBUnknownError(VBBotException):
Typically this will be replaced by more granular exception
handling later."""
-class VBDuplicateError(VBBotException):
- """Raised when duplicate content is detected or a security
- key is reused. Maybe. You'll probably actually get a VBUnknownError."""
-
-class VBPreparedPost(object):
- """A post to be made to a thread."""
-
- def __init__(self, user, identifier, post_data):
- self.user = user
- self.posted = False
- self.post_data = copy(post_data)
- self.identifier = identifier
-
- self.message = self.post_data["message"] or None
- self.title = self.post_data["title"] or None
-
- def post(self):
- if self.posted:
- raise(VBDuplicateError("Post already submitted."))
-
- post_url = "newreply.php?do=postreply&{0}={1}".format(*self.iden
-
- if self.message is not None:
- self.post_data["message"] = self.message
-
- if self.title is not None:
- self.post_data["title"] = self.title
-
- result = self.user.get_page(post_url, post_data=self.post_data)
-
- response_qs = urllib.parse.parse_qs(urllib.parse.urlparse(result
-
- try:
- id = int(response_qs["p"][0])
-
- self.posted = True
-
- return(id)
- except Exception:
- raise(VBUnknownError("I have no idea.\n\n" + repr(respon
-
-
-
class PageRequest(UserString):
def __new__(cls, *a, decode=None, **kw):
response = urllib.request.urlopen(urllib.request.Request(*a, **k
@@ -115,7 +70,7 @@ def form_defaults(soup_form):
for textarea in soup_form.findAll("textarea"):
attributes = dict(textarea.attrs)
- results[attributes["name"]] = textarea.string
+ results[attributes["name"]] = textarea.contents[0]
return(results)
@@ -135,7 +90,7 @@ class VBSite(object):
self.encoding = encoding or "ISO-8859-1"
-class VBUser(object):
+class VBSession(object):
def __init__(self, site, *args):
"""
2 args = userid, password hash
@@ -206,18 +161,14 @@ class VBUser(object):
return(response)
- def make_post(self, message, title=None, t=None, p=None, prepend_quote=F
- post = self.prepare_post(t, p)
+ def get_threads_active_today(self, page=0):
+ """Returns a something (maybe a new VBThread class?) of all thre
+ that were active in the last 24 hours. Returns a list containing
+ the specified page of the results, where "ALL" is a valid choice
- if prepend_quote:
- post.message += message
- else:
- post.message = message
-
- post.title = title
- return(post.post())
+ raise(NotImplementedException("Coming soon, but maybe not like t
- def prepare_post(self, t=None, p=None):
+ def prepare_post(self, t=None, p=None, forums=None, threads=None, noquot
if (t and p) or not (t or p):
raise(ValueError("threadid xor postid required."))
@@ -226,16 +177,53 @@ class VBUser(object):
else:
identifier = "p", p
- form_url = "newreply.php?do=newreply&{0}={1}".format(*identifier
-
+ form_url = "newreply.php?do=newreply&noquote={0}&{1}={2}".format
form_page = self.get_page(form_url)
soup = BeautifulSoup(str(form_page))
-
+
+ if forums or threads:
+ soup_breadcrumb = soup.findAll("span", { "class" : "navb
+ if len(soup_breadcrumb) > 1:
+ regex = re.compile("forumdisplay\.php\?f=(\d+)$"
+
+ thread = soup_breadcrumb.pop()
+ if threads and threads.count(thread) == 0:
+ raise(VBBotException("Not allowe
+ if forums:
+ currentforum = soup_breadcrumb.pop()
+
+ forumlink = currentforum.find("a")
+ # lol fat
+ fattributes = dict(forumlink.attrs)
+ if "href" in fattributes:
+ fresult = regex.search(fattribut
+ if fresult:
+ fid = int(fresult.group(
+
+ if forums.count(fid) ==
+ raise(VBBotExcep
+
soup_form = soup.find("form", action=lambda url: "do=postreply"
- post_data = form_defaults(soup_form)
+ try:
+ post_data = form_defaults(soup_form)
+ except:
+ raise(VBUnknownError("Illegal or no form."))
+
+ return(post_data)
+
+ def make_post(self, post_data, message, title="", t=None, p=None):
+ if (t and p) or not (t or p):
+ raise(ValueError("threadid xor postid required."))
+ if t:
+ identifier = "t", t
+ else:
+ identifier = "p", p
+
+ post_url = "newreply.php?do=postreply&{0}={1}".format(*identifie
+
# We copy all of the form fields sent by the server,
# and then overwrite the ones we need to change.
# This should accomidate any changes made to the
@@ -247,5 +235,42 @@ class VBUser(object):
del(post_data["preview"])
- return(VBPreparedPost(self, identifier, post_data))
+ post_data["message"] = message
+
+ if title:
+ post_data["title"] = title
+
+ result = self.get_page(post_url, post_data=post_data)
+
+ try:
+ response_qs = urllib.parse.parse_qs(urllib.parse.urlpars
+ return(int(response_qs["p"][0]))
+ except:
+ raise(VBUnknownError("Illegal response."))
+
+class VBUser(object):
+ def __init__(self, site, id, name):
+ self.id = id
+ self.name = name
+ self.site = site
+
+ @property
+ def url(self):
+ return("{0.site}member.php?u={0.id}".format(self))
+
+ def __repr__(self):
+ return("{self.__class__}(site={self.site!r}, id={self.id!r}, nam
+
+
+class VBThread(object):
+ def __init__(self, site, id, subject):
+ self.site = site
+ self.id = id
+ self.subject = subject
+
+ @property
+ def url(self):
+ return("{0.site}viewthread.php?t={0.id}".format(self))
+ def __repr__(self):
+ return("{self.__class__}(site={self.site!r}, id={self.id!r}, sub
tsbot # preparing_posts $
Tee See Em
03-04-2009, 01:06 PM
Does .contents[0] work properly and .string not? I didn't realize you'd already made a bunch of those changes.
EDIT: Checked, it doesn't make a difference to the decoding, so I'm going to leave it as .string because it looks cleaner to me.
Cee Pee
03-04-2009, 01:10 PM
I'm just actually looking at your code now (I did upload it already, I just hadn't really browsed it). You've written quite a bit, haven't you? :V
Well, yes, but it was all kind of hacky but it worked, mostly.
Does .contents[0] work properly and .string not? I didn't realize you'd already made a bunch of those changes.
EDIT: Checked, it doesn't make a difference to the decoding, so I'm going to leave it as .string because it looks cleaner to me.
Yeah, I found I got a list back for .contents instead of a string, so I was like WTF and added [0] to it to fix it. Didn't notice .string was available. >_>
Tee See Em
03-04-2009, 01:10 PM
Oh. I just realized that there were branches merged into yours that weren't in my master yet. I haven't touched this in a while, I'm getting mixed up. I think I'll spend some time dealing with those branches I made but didn't quite finish (some of which I think you may have sort-of finished?) so that I have a tree that's less messy. I created them for the lulz, but now the lulz are actually getting in the way.
Tee See Em
03-04-2009, 01:11 PM
Yeah, I found I got a list back for .contents instead of a string, so I was like WTF and added [0] to it to fix it. Didn't notice .string was available. >_>I was originally trying to use findChildren(), which doesn't even work, so I can't really comment. :P
Cee Pee
03-04-2009, 01:11 PM
Also, what's with the clipboard code?
Tee See Em
03-04-2009, 01:14 PM
Also, what's with the clipboard code?
It's more friendly to be able to just put a link to the created post in your clipboard than having to manually copypaste, even though I'm not really making use of that at the moment. I had the function lying around, so I figured I'd throw it in there. It works on Mac OS and can be supported on Linux, but Windows is out of luck. Maybe I'll worry about that later.
It's more friendly to be able to just put a link to the created post in your clipboard then having to manually copypaste, even though I'm not really making use of that at the moment. I had the function lying around, so I figured I'd throw it in there. It works on Mac OS and can be supported on Linux, but Windows is out of luck. Maybe I'll worry about that later.
Gen 43:23 Then the servant said, Peace be with you: have no fear: your God, even the God of your father, has put wealth in your bags for you: I had your money. Then he let Simeon come out to them.
Cee Pee
03-04-2009, 01:25 PM
In heaven, money comes in bags.
In heaven, money comes in bags.
Gen 44:8 See, the money which was in the mouth of our bags we gave back to you when we came again from Canaan: how then might we take silver or gold from your lord's house?
Tee See Em
03-04-2009, 02:23 PM
Merged branch preparing_posts into master, so that old link won't work. I'm happy at how I'm getting this to look. I'm disabling some automatic stuff so that it doesn't collapse redundant stuff automatically, because that would be no fun. Here's the network (http://github.com/JeremyBanks/vbbot/network): 84
Tee See Em
03-04-2009, 02:24 PM
Also I've just renamed get_threads_active_today to search, because that's what it is now, and it's one hell of a lot easier to type.
Also I've just renamed get_threads_active_today to search, because that's what it is now, and it's one hell of a lot easier to type.
Gen 31:32 As for your gods, if anyone of us has them, let him be put to death: make search before us all for what is yours, and take it. For Jacob had no knowledge that Rachel had taken them.
Cee Pee
03-04-2009, 03:10 PM
Gen 31:32 As for your gods, if anyone of us has them, let him be put to death: make search before us all for what is yours, and take it. For Jacob had no knowledge that Rachel had taken them.
Funny thing is that it tred to match "hell" but it wasn't in the bible. :(
Funny thing is that it tred to match "hell" but it wasn't in the bible. :(
Gen 1:21 And God made great sea-beasts, and every sort of living and moving thing with which the waters were full, and every sort of winged bird: and God saw that it was good.
Tee See Em
03-04-2009, 03:17 PM
Yay, it can now automatically traverse pages in search results. Even if can't do arbitrary searches, it's still limited to the two special-cases, I think I'll merge it in.
Arbitrary searches have a lot of fields to deal with, and I don't feel like doing that, since I don't think it's going to be important.
Page 1 of 5
search.php?searchid=14479&page=1
Page 2 of 5
search.php?searchid=14479&page=2
Page 3 of 5
search.php?searchid=14479&page=3
Page 4 of 5
search.php?searchid=14479&page=4
Page 5 of 5
search.php?searchid=14479&page=5
[VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=541, subject='Genius', latest_post=12502),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=448, subject='Addressing Addiction', latest_post=12496),
[...]
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=344, subject='Cocks', latest_post=9278),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=360, subject='So...', latest_post=9264),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=354, subject='Mac stuff', latest_post=9227),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=350, subject='Hay Fonzy', latest_post=9195),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=352, subject='The Irony', latest_post=9177)]
tsbot # search $
Yay, it can now automatically traverse pages in search results. Even if can't do arbitrary searches, it's still limited to the two special-cases, I think I'll merge it in.
Arbitrary searches have a lot of fields to deal with, and I don't feel like doing that, since I don't think it's going to be important.
Page 1 of 5
search.php?searchid=14479&page=1
Page 2 of 5
search.php?searchid=14479&page=2
Page 3 of 5
search.php?searchid=14479&page=3
Page 4 of 5
search.php?searchid=14479&page=4
Page 5 of 5
search.php?searchid=14479&page=5
[VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=541, subject='Genius', latest_post=12502),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=448, subject='Addressing Addiction', latest_post=12496),
[...]
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=344, subject='Cocks', latest_post=9278),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=360, subject='So...', latest_post=9264),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=354, subject='Mac stuff', latest_post=9227),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=350, subject='Hay Fonzy', latest_post=9195),
VBThread(site=VBSite(url='http://wut.ca/', encoding='ISO-8859-1', cookie_prefix='vb'), id=352, subject='The Irony', latest_post=9177)]
tsbot # search $
Gen 27:34 And hearing the words of his father, Esau gave a great and bitter cry, and said to his father, Give a blessing to me, even to me, O my father!
Fonzy
03-04-2009, 03:25 PM
Gen 27:34 And hearing the words of his father, Esau gave a great and bitter cry, and said to his father, Give a blessing to me, even to me, O my father!
STOP SPAMMING THE THREAD YOU TWAT.
Tee See Em
03-04-2009, 03:28 PM
Merged into master. It has screwed up my graph again, showing make_thread an an ancestor of search, but whatever.
On that topic, I really should do make_thread now. I'll go merge all of the outstanding changes into it, because it isn't even using the same structure anymore.
Cee Pee
03-04-2009, 03:32 PM
STOP SPAMMING THE THREAD YOU TWAT.
Thread moved to meta.
vBulletin® v3.7.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.