Git Product home page Git Product logo

natty's Introduction

Build Status

General

Background and History

The New Answers to Old Questions tool helps us find all new answers to questions that are 30 days old. However, there's an issue with the tool: It's not real time. There are requests on Stack Overflow Meta to not only make it real time, but there are also request to enhance the tool to add more features to it. However, these requests have not yet been implemented.

Why do we need the bot?

This project aims to not only overcome the issue of the tool not being real time, but also to allow users under 10,000 reputation to be able to take a look and help to moderate the new answers to old questions.

Accounts

The Project is running in the SOBotics room. A sample image of a report is

Sample Image

Setup

You need to just clone the directory and run the setup file.

git clone https://github.com/SOBotics/Natty.git
sh setup.sh

It will ask you for a set of data and then create the jar which you can run.


You can read more (including the complete setup) at the Natty Docs on http://SOBotics.org.

natty's People

Contributors

aralun avatar bhargav-rao avatar felixsfd avatar filnor avatar geisterfurz007 avatar kamil-tekiela avatar mdoubledash avatar mureinik avatar superplane39 avatar tripleee avatar tunaki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

natty's Issues

Add a specific error message when trying to report too new answers

When I report an answer to Natty with the command @Natty report <link to answer> and the answer is not to an old question, I recieve the following message from Natty:

Post is not allowed to be reported in this room.

This message doesn't make it clear that I tried to report a too new answer. It would be better to have a specific error message for that, something like:

Post is not a new answer to an old question.

Or even shorter, although the abbreviation might be confusing for newer users:

Post is not a NATO.

Feature Requests

Use this issue to report any Feature Requests. They can be of the type,

  • Additional Filters : They extend the Validator and return only those results that pass that filter.
  • Blacklisting Keywords : Of the type, Please help, How can I, etc

Feedback tp should be same as report command

The feedback tp should work as report command if post is not already present this since it will avoid userscript to have to call Natty or Sentinel api to check if already reported.

Suggested modification:

@Natty feedback <link> tp

should if post is not present report the post, hence work as the report command. The check is that post (NATO) is not present and the command is tp. The response will be as if it was reported and post will be marked with tn

Different filters depending on site

If we add support for more pages in the SE-network, we should make lists that define, which filters are used on which site. This could be achieved by adding the interface FilterList and classes like StackOverflowFilterList and AskUbuntuFilterList that are implementing this interface

Possible issue with `fetch links`

I've noticed a couple of "inconsistencies" recently in Natty links. The first time I figured it was a user-error on my end, but this time it seems more obvious that something's going wrong. Or it could be another user-error ...

Natty responded SOBotics chat permalink to a @natty fetch links 5 with two unhandled (but deleted) posts. When checking via Sentinel, it showed that Feedback had been received, two hours earlier, by two separate users. The reports were via Natty, not Sentinel as I can see in the chat search.

So it seems that Natty is responding with links that have already been handled?

Cancel fetch request command

Can we have a cancel command on fetch ? I accidentally hit @Natty fetch without the amount option and @ Natty keep posting indefinitely the posts with feedback needed.

Other suggestion would be not letting fetch command run without amount option

Intelligent blacklist

The current blacklist catches lots of tps, but it's pretty dumb. Every phrase has a value of 2.0.

Statistics show, that not every blacklisted word works as good as the others. Some have a higher percentage of fps, others almost none.

If Natty would frequently (once a day?) fetch statistics about each blacklisted phrase (like the statistics provided in Sentinel's search), we could calculate the value based on the percentage of fps.

Example:

((1−fps/postsMatchingThePhrase)^maxScore) * maxScore

maxScore should be pretty high, so that a post containing a phrase with 0% fps will always be reported. Let's use for example 4.

For "please help", this would result in a value of 3.96.

"i have the same problem" has a higher percentage of fps. So the value would be only 2.98.

I tried to show this in a spreadsheet:

Natty-IntelligentBlacklist.xlsx

bildschirmfoto 2017-01-09 um 21 38 37

hope the export from Apple Numbers worked correctly.

Add v4 commands to the docs

I can't find the new commands added in v4 (like who, for example) anywhere in the docs. Those should be added.

Feature Request: `fetch links` results most-recent first

With 16,000+ unhandled Natty reports on Ask Ubuntu, I'm not sure we ever catch up to the point where fetch links is helpful.

It would be nice if fetch links reported most-recent first so that we could make sure that recent, more "urgent" reports are handled.

Update chatexchange library

As you might have heard, Stack Exchange will remove OpenID.

Since tunaki/chatexchange is currently using OpenID to connect to chat, we had to release an update. If you don't update, you won't be able to connect to chat after July 25, 2018.

We've moved the project to org.sobotics.*. This is the updated dependency:

<dependency>
  <groupId>org.sobotics</groupId>
  <artifactId>chatexchange</artifactId>
  <version>2.0.0</version>
</dependency>

You'll have to update your import statements. All APIs are still the same, so you don't have to modify the implementation.

If you have issues updating your project, feel free to ask for help in our chatroom.

Implement a "why" command

When we switch the style of the reports in SOBotics, it could be useful, having a why command like Smokey. Replying why to a report could trigger a message in the style of check explain

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.