EionRobb / purple-discord

A libpurple/Pidgin plugin for Discord
GNU General Public License v3.0
375 stars 42 forks source link

Account management #78

Open alyssarosenzweig opened 7 years ago

alyssarosenzweig commented 7 years ago

Some PRPLs, like XMPP, support account management from within Pidgin. We can too!) Many of the relevant endpoints are public; it should be simple to implement these natively and expose it through the GUI. For these actions, there is no need to depend on harmony itself (which would introduce complex dependencies).

The tricky bits are the private endpoints known through harmony (see https://github.com/nickolas360/harmony/blob/60e6983259f013dee1c05ece1b4e182de074b949/harmony/harmony.py#L98-L286 for the relevant code). In particular, registration, which requires solving a CAPTCHA. harmony's sister project, librecaptcha is capable of solving these with free software, but librecaptcha is a complex module with several complex dependencies. Additionally, it would integrate poorly with the libpurple GUI. There are a few options to deal with this:

  1. Don't support registration
  2. Support registration, but prompt for a CAPTCHA solved externally
  3. Ditto, but open librecaptcha in a terminal emulator directly if it's installed.
  4. Modify librecaptcha to fit better with the purple way (still difficult to work with).
  5. Reimplement librecaptcha natively.

Of these, 2 or 3 are the only ones that are sane.

Any thoughts would be appreciated :smile:

alexolog commented 7 years ago

Jdownloader2 ( http://jdownloader.org ) opens captcha windows, as well as using various captcha solving services. I personally feel that presenting the captcha to the user is sufficient.