Googer / Professor-Pine

Official repository for the Professor Pine Pokemon GO raid coordination Discord bot
GNU General Public License v3.0
15 stars 19 forks source link

Create and support a new #raid-posts channel #10

Closed digumo closed 5 years ago

digumo commented 5 years ago

It's bad UI to expect users to make discernments when your software already has the necessary data and can make the needed determinations. By defining regions, then expecting users to both know and observe those regions, you are reducing the usefulness of the software. Note: I'm not suggesting the removal of regions, they are helpful for categorization and hierarchy.

For example, some users won't have a clue which region they are in. Other users will not know what side of a boundary they are on if they are too close to it.

Create/use a generalized channel called something like #raid-posts (or even more obvious #raid-image-posts)

When processing the image, perform the lookup of the gym, determine the region, then place the channel in that region.

You can already match the gym name to the lookup table (or hopefully the database). Why make the user know the region when you already know it.

Just cancelling out is a bad approach. https://github.com/Googer/Professor-Pine/blob/main-dev/app/process-image.js#L125

With a dedicated channel for all raid postings, you're reducing the barrier to entry for all users, both advanced and newbies. Heck, keep the region supported posting but also add support for the general channel. I can pretty much promise you will have more users posting into the general channel than the region specific one.

Is there a good reason not to use a general channel when you can lookup the data?

ParadoxBoxx commented 5 years ago

In our use case, we have many gyms with the same name: 7 sprints, 9 starbucks, 3 Forbes road, 3 war memorial. Because the info that is gained from a raid creation is limited, the context of the region is necessary. Depending on how big your server is, Pine is flexible enough to work with one region alone. Your suggestion is correct that one place as a dumping grounds is the most user friendly, but the context is necessary to distinguish duplicate gyms. As an additional layer of protection, Pine searches adjacent regions if he doesn't find what he's looking for.

Airalyn commented 5 years ago

There's also geocode searching that allows us to do things like search for "Panera Bread" in a specific region and it will know which of the duplicate gyms is nearest Panera Bread. This requires location/region context.

Regions can be of any size, so if your coverage area is small and your discord user number is small, you might consider only having 1 region. It also helps to make sure region names are clear - using the neighborhood or town names not just naming them "Region 1-5". Our largest regions are about a 1 hour drive across and our smallest regions a 30min walk end to end.

digumo commented 5 years ago

Thanks for helping to educate me. I'm new to Pine and I'm working through the code and the thought processes behind implementations.

In light of the information about duplicates, here it what I would suggest.

The gyms.json contains ancillary information due to the geocoding. If a gym is found to have duplicate names when posted within a general channel, then provide the user with feedback and options.

Here's a possible response stream of messages.

Msg1: Hey, I found 3 gyms with Shiny Deals at Sprint! Give me a thumbs up on the one you think you're at.
Msg2: Find Shiny Deals by McDonalds at [Street name] #region-x
Msg3: Find Shiny Deals by Another Biz on [Street name] #region-y
Msg4: Find Shiny Deals on [Street name] #region-z

When the user adds a reaction, you then know the location of the gym. This would both serve the purpose to make adding images more streamlined and easier and also educate the user with regards to which region they are operating in. Even in a small area like mine, regions are valuable because many people don't want to drive a full 45 min to get to a gym. By scanning only for raids within a smaller region, they get more value. Yet many users will never learn which region a gym is in. Given that situation, they will be frustrated by not posting the right image in the right region and the immediate fail - and this will absolutely decrease the incentive to use the bot. It requires too much thinking on behalf of the user when software can solve the problem.

Can Pine see user reactions to messages and take an appropriate action? I would think that's probably within the discord code.

Just an idea.

ParadoxBoxx commented 5 years ago

Closing and reopening with clearer title. #18