User:AperfectBot

From Geohashing
Revision as of 00:02, 22 June 2009 by imported>Aperfectring

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.

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: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.

It looks at each of the pages found above for users, and a location, it also looks up the graticule name from the All_Graticules page.

Sections below up to date as of: --aperfectring 19:47, 21 June 2009 (UTC)

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?"

It will print out ALL users it finds, no matter the number.

Location

It looks for a "location" or "where" header

If found, it takes up to the first 75 characters of the section, and appends ... to the result if the string is more than 75 characters long.

If not found, it looks for an "expedition" header, and uses the 75 char limit

If not found, it starts at the beginning of the page, and tries that same 75 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?"

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
  • 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-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)

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)

My opinion: move Future to Recent at midnight Hawaiiish time (yeah, I just said that so I could type three Is in a row), include any future, no matter how far, and five days of past. We haven't yet addressed the issue of archiving versus discarding past pasts. -Robyn 18:10, 18 June 2009 (UTC)

Extra over the weekend is better, but not sufficiently needed that it shouldn't be abandonned if it turns out to be harder to do than you thought. Obviously you need extra future PLANNING pages over the weekend. -Robyn 18:08, 19 June 2009 (UTC)

The extra stuff in the future over a weekend is a given. I want to figure out a way to do it so that it obeys DOW holidays, so that part may be challenging. I don't think the variable number of days in the past shouldn't be too bad. --aperfectring 18:57, 19 June 2009 (UTC)
Today's output, BTW: really good. Compare with my hand-done Current events. -Robyn 19:12, 19 June 2009 (UTC)
Mind you, I took five minutes to do it, and that included moving the section for the 18th to the past. -Robyn 19:15, 19 June 2009 (UTC)
P.S. Do you have a decision/opinion about what to do with the old list? Archive on YYYY-MM-DD pages? (Pro:Already exist, colocates with photos. Con: Some people may think they are messy with the photos) Archive somewhere else? (Pro: no one can complain about you messing up their page. Con: ANOTHER set of pages, not with photos) Delete? (Pro: don't really need them, tidy, can be recreated easily Con: have to be recreated if you want to see them) -Robyn 20:14, 19 June 2009 (UTC)
Are you referring to the part of the list which would be removed from Geo Hashing:Current events when updates occur?
Yes.
If so, while it would be nice to keep it for a brief summary, I don't know how much value it adds. If we keep it somewhere, what do we do with it? Do we only update it rarely, meaning there could be stale information there? Do we never update it, meaning that red links could start showing up if a page is deleted?
I was thinking update it just before archiving, then no further updates.
Keeping all of the archives pages up to date with a summary list seems like it would be a bit intensive to do. I know it isn't the most user-friendly solution, but just discarding the list might be the best to do, but I am even on the fence about that. --aperfectring 20:30, 19 June 2009 (UTC)
I was on the fence, but your point about redlinks has pushed me towards the "discard" side. It's easily re-creatable, by any user, just by going to the Category:Expedition on (date) page. -Robyn 22:06, 19 June 2009 (UTC)

Some new thoughts based on IRC conversations last night, mostly with Robyn. All planning pages further in advance than when coordinates are available will be included in the list. It will probably be easiest to transclude daily auto-generated list pages on a "current hashes" page, which leaves space for manual additions by users. This "current hashes" page will then itself be transcluded on Geo Hashing:Current events. I also think that if this is the method we would take, we could transclude the daily hashes page on the YYYY-MM-DD page within noinclude tags, so the lists don't show up on the monthly page. While redlinks may show up in this list, I don't think it will happen too often, and after the page disappears from the "current hashes" list, it will no longer be bot-updated, so they could be fixed manually. I would like people's opinions on this before beginning to implement it, because it will start creating more pages, and I don't want to annoy joannac. --aperfectring 14:11, 20 June 2009 (UTC)

Positive feedback

A comment from Norsemark on the Current events page to show you that your hard work is appreciated: "It's a great idea, it's motivating to see that others are planning and more likely to encourage others to submit theirs."

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.

Distraction Banana