User:AperfectBot
This bot is owned by aperfectring. It is an implementation of pywikipediabot, and uses some code stolen from graciously donated by relet. Its job is to maintain the future and recent past planning pages lists, and to create new planning pages upon request.
Contents
What should the Bot be named?
The most pressing issue right now is what to call my bot. Voice your opinion or add new name suggestions below! --aperfectring 18:55, 12 June 2009 (UTC)
- ApeRobot - Vaguely similar to my nick, and my favorite option.
- APRBot - Much more representative of who owns it.
- RingBot
- AperfectBot - Robyn's favorite. relet's too. <---Winner
- Considering that I didn't realize who "APR" was in the chatroom for quite a while, and that the first line on the bot's page will be something like "This is a bot owned by Aperfectring," you might as well go with your first choice. Also: Ringbot, Aperfectbot. (The last is my favourite). -Robyn 19:01, 12 June 2009 (UTC)
- BotheRing
- SpideRing - Xore's vote. In my opinion, the name has a certain ring to it that I like. --Xore 21:29, 12 June 2009 (UTC)
- My contributions --Xore 20:40, 12 June 2009 (UTC)
- That's the other thing I like about wiki. Everyone pitches in to solve important issues. -Robyn 22:56, 12 June 2009 (UTC)
- johnny
How it works at the moment I edited this
It looks at Category:Expedition_planning, and finds all pages in it which have a title that matches: YYYY-MM-DD lat lon
It looks at each of those pages for users, and a location, it also looks up the graticule name from the All_Graticules page.
Users
It looks for a "people" or "participants" header
If found, it assumes one user per line, and lists the users as one of the two things:
- The User:* tag found at the beginning of the line
- The first word of the line
If no header is found, it looks for all User:* tags, and lists all unique occurrences
If at this point, still no user is found, it assumes there is none, and uses the following text: "Unknown, maybe you?"
Location
It looks for a "location" or "where" header
If found, it takes up to the first 50 characters of the section, and appends ... to the result if the string is more than 50 characters long.
If not found, it starts at the beginning of the page, and tries that same 50 char thing.
If still not found, it jumps into the first section and tries again.
Finally, if there is still no text, it will use this: "Unknown, why not have a spontaneous adventure?"
- It looks to me like 50 characters isn't quite enough for a lot of the location descriptions, so I will up it to 75, or maybe 100 today. Also, I will explicitly strip out any section headers which mysteriously weren't trimmed out before. --aperfectring 11:51, 17 June 2009 (UTC)
Name
If the name isn't found in All_Graticules, it calls the graticule "Unknown (lat, lon)"
Summary
This seems to be able to produce something meaningful for just about every old planning page where something meaningful can be made. --aperfectring 02:27, 16 June 2009 (UTC)
Tasks Remaining
These are in rough order of importance
- Put the code into source control somewhere
- Sectionalize the results by date
- Let the bot be distracted by bananas
- This is for a failsafe. I will put a section on the bot page so that if any text is put into it, the bot won't write to any pages. This section should only be used if the bot has gone hog-wild and is being very destructive.
- Have the bot run (almost) constantly
- Check for Template:Maintained, and don't write to pages which have it.
- Limit the list to 3 days past, the present day, and as many future days are available
- Parse Meetup on *DATE* pages to look for uncategorized expeditions, and categorize them as Expedition planning.
- I will include a comment that this category was added by a bot, and if it does not apply, to add at least one of any other appropriate categories for an expedition page
- In the bot, this should be done before parsing the Expedition planning page, so that any new expeditions it finds will be added to the list ASAP.
- Create a list of graticule and graticule talk pages on which planning occurs
- Create a parsing engine for these pages, to be able to include their plans in the list
- Sort the results for each day using an undetermined key to sort on
- Let AperfectBot eat bananas
Task scheduling
I will use this section to plan out my time in the evening on tasks. I will probably put in an hour or two of work on most weekdays. Anything from before 2009-06-17 is included for historical purposes.
2009-06-17
- Tweak the length of location descriptions
- Trim out the extra instances of header boundaries in the location descriptions
- Begin work on sectionalizing the results by date
- Possibly start the bot in a continuous loop, which means that it will provide updates about every 30 minutes, if needed. I will leave this going overnight and while I am at work the next day, if I do it.
2009-06-16
- Fix up some location parsing.
- Status: Did some work on it, but not a whole lot
2009-06-15
- Look for more options as far as people going
- Look for more options as far as the location the hashpoint is in
- Status: The user list may get a little better with time, but its quite close at this point. There is still work to be done on the location.
2009-06-14
- Status: 100% less shouting on the page
2009-06-13
- More thorough planning
- Begin coding in earnest
- Status: By the end of the day, I had a very basic parser, which wrote the full contents of Category:Expedition planning to a page on the wiki.
2009-06-12
- Begin preliminary planning
--aperfectring 12:05, 17 June 2009 (UTC)
Other people's thoughts
If anyone else has ideas for things to be included in the bot, please put them here. Thanks. --aperfectring 12:05, 17 June 2009 (UTC)