User:Shubinator/Bot admin

I've started programming a new bot to update DYK. After a couple of hours last night I did a test run:. Before I go any further, I need to get some logistics sorted out, like getting an admin. No point spending hours on a project that can't be completed. If I sent you a link here, I want you to consider running the bot.

Why I'm making a bot
Well, this should be obvious. The DYKadminBot is broken and doesn't seem to be in the repair shop. It's a lot of work for the DYK admins to remember the updates every 6 hours. So I've decided to take a whack at a new bot. It'll essentially do the same thing as the DYKadminBot did, so if the previous bot comes back from the grave before the new bot goes live, I'll stop programming it.

Why I need an admin
The bot itself needs to have the admin bit since it'll be editing numerous protected pages including T:DYK, the queues, and the next update time. Adminbots can only be run by administrators, so I need an admin (or two) to run the bot.

How it'll work
This is all what I envision and might change. I'm open to ideas.

The bot
The bot will be a program that you'll run on your computer. Most likely it'll be a .jar file since I'm programming in Java. Since the bot is on your computer, you'll need to keep your computer running and connected to the Internet for the bot to work. When you start the bot, it'll ask for a username and password. If it can log in, it will close the login window and open up the console. You can close the console if you want and the bot will run in the background. (No input from you will be needed after the bot logs in.) A system tray icon, instead of a particular window, will indicate if the bot is running. The console, if you choose to open it, will have a log of what the bot is doing. There'll be a few buttons, like Exit and Force Exit, but these will be accessible from the system tray icon as well.

Phases of development

 * 1) I'll program the bot to do the admin tasks (update T:DYK, reset time, clear queue, bump next queue number). If I get the time, I'll also put in archiving and credits, but I might do it while the bot is waiting for approval, or later. Test edits will be run in my userspace sandbox, with the pages not protected.
 * 2) I'll email the bot to you. You'll protect the sandbox pages whose real analogs are protected, and then run test edits. This part is both to make sure the bot works with protected articles and to get you familiar with the bot.
 * 3) You'll create a user for the bot. Don't tell me the password, even when it isn't an admin.
 * 4) Get the bot approved, and get admin status for it.
 * 5) Run the bot in the real Wikipedia.

Testing
After the first stage you'll be running the bot. During testing I'll keep an eye on the bot's edits, and I'll program in a shutoff, but you'll ultimately have control of the bot. The shutoff will be a Wikipedia page that the bot will check before doing an update. If the bot is in the middle of an update and something goes horribly wrong (for example, it's in an infinite loop of edits), it's up to you to Force Exit the bot. After the kinks have been worked out and the bot is in action, I won't have access to the shutoff either, since it'll be protected.

Technical details
Since I have Windows Vista, it's best if you do too. More critical though is that you have the current release of the Java Runtime Enviroment (JRE).

Trust
You'll need to trust me, and I'll need to trust you, for this project to work. In the second stage, you'll need to give the bot your username and password when it prompts you, and later, when the bot gets approved, you'll need to give the bot its password (I can't program it in of course). I promise the bot will only login with the password and not do anything else with it. If you want, you can temporarily change your password for the second phase. I'll also give you the code for the bot, so you don't have to completely take my word that it's not doing something fishy. If you're tech-savvy I can give you instructions on compiling the code yourself so you know that the code you see is the code that's running (I'd guess this would take at least half an hour to set up the first time, mainly in getting Eclipse and the JavaWikiBotFramework, and getting all the pieces to recognize each other).

Transitioning to a server
I've put some thought in putting the bot on a server. There are rumors that the toolserver might have caused the demise of the previous bot. I have access to a server I can put the bot on. However, I'm unwilling to do this, because I don't think the Wikipedia community would want me to be that close to the password (frankly, neither do I). When the bot is on your computer, I can't have it send information to me without you knowing. If it's on a server, I could theoretically tweak the bot between runs to write the password to a file, then I could access the file. So I don't think a server will happen any time soon, unless you have access to a server (in which case I'd be happy to tweak the bot to be accessible through the Internet if needed).

So there's the plan. Now, the big question: are you up for it? Shubinator (talk) 00:28, 28 February 2009 (UTC)