HomePhabricator

Modernize email command parsing

Description

Modernize email command parsing

Summary:
Ref T7199. This prepares for an exciting new world of more powerful "!action" commands. In particular:

  • We parse multiple commands per mail.
  • We parse command arguments (these are currently not used).
  • We parse commands at the beginning or end of mail.

Additionally:

  • Do a quick modernization pass on all handlers.
  • Break legacy compatibility with really hacky Facebook stuff (see T1992). They've theoretically been on notice for a year and a half, and their setup relies on calling very old reply handler APIs directly.
  • Some of these handlers had some copy/paste fluff.
  • The Releeph handler is unreachable, but fix it in theory.

Test Plan:

  • Sent mail to a file; used "!unsubscribe".
  • Sent mail to a legalpad document; used "!unsubscribe".
  • Sent mail to a task; used various "!close", "!claim", "!assign", etc.
  • Sent mail to a paste.
  • Sent mail to a revision; used various "!reject", "!claim", etc.
  • Tried to send mail to a pull request but it's not actually reachable.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T7199

Differential Revision: https://secure.phabricator.com/D12230

Details

Provenance
epriestleyAuthored on
epriestleyPushed on Mar 31 2015, 11:48 PM
Reviewer
btrahan
Differential Revision
D12230: Modernize email command parsing
Parents
rP030e05aa4ca5: Remove reply handler instructions from email
Branches
Unknown
Tags
Unknown
Tasks
T7199: Expand the power of "!action" commands in email