Hi,
I've almost never did a 'complete' rebuild of our forum indexes. Everytime I find my self faced with timeout, browser or network problems interrupting the process. And I find the feedback provided by maintainence scripts in general not the nicest thing. A progress bar would be much better.
I suddenly become very creative and productive when exams are around the corner!
I've just finished porting the vBulletin search index rebuilding code to Python. Tested it on my notebook with my (3 posts) test vB installation, and it worked great. Comparing the 'word' and 'postindex' tables it produces, they were exactly the same as those produced by vBulletin.
Our current host is not so great. They have an old version of python and don't have the MySQL package installed. I will test it again when I load my test installation with data from our live installation.
Anyway, I have questions about laws/ethics of distributing the code I made.
1. First of all, the code is almost a literal translation of the vBulletin code. I wanted it to produce the same results, so I had to do it this way (at least initially). It is, of course, written in a different programming language, so I had to read PHP and write Python myself. So it is not an exact copy. But I haven't even changed function and variable names.
2. I had to 'borrow' the list of bad words found in searchwords.php. Is this list available somewhere else on the net? where did vBulletin get it from? I can probably find similar, maybe even better lists, but I want it to be as close to the way vBulletin originally works as possible.
Another problem I'm wondering about is if this is considered a hack at all. It's doesn't contain any PHP
I am planning to re-write it later all in my own code, but untill then, can I release this hack here?
I'll leave you now with what it looks like:
Code:
C:\Documents and Settings\TOSHIBA\Desktop>python vbindexer.py
vbindexer v0.1a (c) 2004, Ahmad Alhashemi <http://www.ahmadh.com/>
MySQL host:
MySQL username:
MySQL password:
MySQL database ['forum']:
Table prefix [none]:
Empty existing indexes first? [y]:
Dropping indexes... Done.
Indexing posts...
post# progress done/total ETA
7 [=======================100%=======================] 3/ 3 00:00:00
* For the clueless. Python is a (the) programming langauge. See
http://www.python.org/ for more information.