mikifus / padland

Padland is a tool to manage, share, remember and read collaborative documents based on the Etherpad technology in Android.
Apache License 2.0
62 stars 15 forks source link

Add support for MyPads and password-protected pads #48

Open Porkepix opened 6 years ago

Porkepix commented 6 years ago

Some services now rely on MyPads, something on top of traditional pads to manage them with an account, be able to have a "library of pads" or protect them with a password. For example, the one with Framasoft can be found here: https://mypads.framapad.org/mypads/?/login Trying to open such a document seems as of now to result in a white, empty screen and stuck the application. It's still possible to go back (no crash), but not even a screen stating this is unsupported.

So, this is kind of a double issue, but unsupported pads and so on should be presented as being unsupported, and the best would be to support MyPad and password-protected pads.

mikifus commented 6 years ago

Hi,

You are right. The app would not load MyPads for several reasons:

So I managed to workaround these issues and I did open mypads, both interface and pads.

I released a new Beta version that activates local storage and you can try and tell me if it works for you: https://github.com/mikifus/padland/releases/tag/v1.4-beta

But you need one more thing. Add framasoft.org to your server list, even if it is not a pad server, it will include it into the whitelist, allowing MyPads to load scripts from there.

These are workarounds but I aim towards fully implementing MyPads in the future. For that I need to implement LDAP login or MyPads should implement API Tokens for external apps. This will take time, so I hope the workaround is good for you meanwhile.

Porkepix commented 6 years ago

@mikifus Getting an error, can't install it. From adb logcat -v threadtime: 03-21 13:33:41.144 27196 27196 D InstallAppProgress: Installation error code: -7

Instead of adding servers which are not really pads servers, can't we have a custom field for the mypads URL scheme? Or guess it? I've to admit I don't know enough about how is this implemented.

mikifus commented 6 years ago

Installation error is because you installed the app from F-droid which compiles it with another signature. You may backup your list of pads and uninstall to be able to use the beta version.

Instead of adding servers which are not really pads servers, can't we have a custom field for the mypads URL scheme? Or guess it? I've to admit I don't know enough about how is this implemented.

Framasoft is merging two domains to run MyPads, this is a problem only in their implementation. Other services won't have this problem, and it makes it impossible to guess.

Another possibility is that I add an option in the settings that would "Allow insecure connections".

Porkepix commented 6 years ago

@mikifus I can afford to lose some pads I guess, but anyway, when you talk about backing them up, how? I searched in the application bug couldn't find anything to backup or export.

mikifus commented 6 years ago

I'm afraid manually, like write down the list somewhere.

Porkepix commented 6 years ago

@mikifus So, I gave it a try. It does work, however depending on the URL scheme, you get a webpage view with an iframe inside of it. The button to open it fully is here though and allow to do it. However I think this could be done automatically by the application.

Besides that, even if it's a workaround it's currently working. Maybe everything can't be done on the application-side though?

Also, I file #50 for the export/import/backup.

mikifus commented 6 years ago

Well, MyPads is a software for usage in desktop browser. It doesn't look like it has an API where an external service could rely on. It lacks documentation too.

I actually thought of building a similar service on my own to complement the app.

Porkepix commented 6 years ago

What do you mean by "building a similar service on your own"?

mikifus commented 6 years ago

MyPads works as an Etherpad Lite plugin. I thought about making an actual site like Framapad from scratch that would integrate better with the app.

Porkepix commented 6 years ago

This is a little bit out of topic, but there exist also https://github.com/xwiki-labs/cryptpad which aim to provide pads with encryption. No idea about the technical side of the project nor about how easy is it to interact with though. EDIT: There's also https://github.com/hackmdio/hackmd