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. Much thanks goes to Robyn and others who helped with the planning and suggestions for improvement.
How it works at the moment I edited this
It looks at Category:Meetup on YYYY-MM-DD for the most recent days, and all days where coords are available, and finds all pages in it which have a title that matches: YYYY-MM-DD lat lon
It also looks at Category:Expedition_planning for all pages matching YYYY-MM-DD lat lon where the date is further in the future than the latest available coordinates.
Go here for information about how it constructs the summary.
The bot takes about 10-15 minutes to complete one iteration. Most of this time is actually fetching and writing the pages. The actual processing time is rather minimal.
Tasks Remaining
These are in rough order of importance
- Put the code into source control somewhere
- Check for Template:Maintained, and don't write to pages which have it. (I don't think this is really necessary for this bot, at least thus far)
- 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.
- Auto-categorizing shouldn't be needed for pages to be included in the list, so I think this task should be postponed. --aperfectring 19:53, 21 June 2009 (UTC)
- 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-22
- Move the output from its current location, to a template: Template:Recent_expeditions
- Change the old output page into a transclusion tag, to preview what the final results on the current events page will look like.
- Add includeonly tags around a "provide your own update" link, which goes to an edit page.
- Add a "How to change the text of my planning/expedition summary" link, which should be to a simple, user-friendly description of how it chooses the text.
- Add a "Report a problem" link
2009-06-21
- Start using templates and transclusion.
- This should (at least in my deranged mind) make dealing with user edits to the daily lists easier to cope with.
- Add at least some user modification of the list
- Status: The first part seems to be mostly in place, the only part of that which is left is to write the output which is now here to a template page. I also think I have something ready for test on the second point. I also added a hook which will allow us to enhance the date links with holidays.
2009-06-20
- Switching to a new set of categories as follows:
- Category:Meetup on YYYY-MM-DD for anything from the latest available back to the first in the list
- Category:Expedition planning for anything further in the future than the latest available
- Still looking for the best way to figure out the last the coords are available for.
- My current thought is to use the python implementation posted here.
- Status: The above is complete. The bot also will create empty date stubs now. I am now looking for input on my update below.
2009-06-19
- More planning on picking the dates to report.
- My current thought is to report everything from Expedition planning from three weekdays ago, until the latest available coordinates. This gives people a bit more time to report on a potentially geohash-busy weekend, but means that the number of days in the recent past list is not constant. This table assumes no DOW holidays.
Today (US Eastern Time) First day reported Last day reported Sunday Wednesday Monday Monday Wednesday Tuesday Tuesday Thursday Wednesday Wednesday Friday Thursday Thursday Monday Friday Friday Tuesday Monday Saturday Wednesday Monday
- Another option is to have a fixed number of past days in the list (let's say 3), and all days where coordinates are available. This keeps the recent past list a constant size, but if people are busy geohashing on weekends, their expedition planning could drop off the page before it is reported on. This table assumes no DOW holidays.
Today (US Eastern Time) First day reported Last day reported Sunday Thursday Monday Monday Friday Tuesday Tuesday Saturday Wednesday Wednesday Sunday Thursday Thursday Monday Friday Friday Tuesday Monday Saturday Wednesday Monday
- If I get some decent feedback on which of the above is best, I will begin coding on it.
- Figure out how to determine what days there are coordinates available for.
- Status: I am now using the first option, and parsing both Category:Expedition planning and Category:Expeditions. It now updates about every 7 minutes with the truncated date list.
2009-06-18
- Reverse the sort of the dates
- Plan out how to pick the dates to report
- Status: first point done, second still in progress.
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.
- Status: All of the above complete. Let me know if the bot misbehaves. If it starts misbehaving really badly, use the Distraction Banana section below.
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)
EMERGENCY STOP SECTION
Putting any text beneath the following header will cause the bot to stop running. Please only do so if the bot is REALLY misbehaving.