Read the rules before proceeding!

Topic: e1547: e621+e926 mobile app Updated.

Posted under e621 Tools and Applications

e1547 Revived(?)

After using the 1547 App for quite a while and starting to like it alot,
I saw that sadly, perlatus seems to have stopped development.

I decided to fork the project and update the app to improve and fix it up a bit.

Thats it. I hope updating this might be useful to anybody out there.

Regards.

Updated

Version 1.0.1

This version doesn't contain many features,
I was stuck at one particular issue for quite a while.

Also, git didn't track all the files I added.
So now, all project files should be on the github.

Regards.

Version 1.1.0

After being a lazy ass for quite a while,
I have now finally implemented pools.

Any feedback on the app is welcome.

Regards.

I like this, even though the current features are a bit basic.
There are a couple of bugs that I've noticed, though.
- If you are not logged in, clicking on the "Favorites" link in the menu will result in an infinite loop
- There is a logout link in the settings, even when you are not logged in
- Pretty sure the posts in pools are shown in a reverse order
- While the webm support is still being worked on, it might be better to just hide the webm files from view. Kinda frustrating clicking image after image, while nothing loads.

Other than that, landscape mode would be a nice feature to have.

bitwolfy said:
I like this, even though the current features are a bit basic.
There are a couple of bugs that I've noticed, though.
- If you are not logged in, clicking on the "Favorites" link in the menu will result in an infinite loop
- There is a logout link in the settings, even when you are not logged in
- Pretty sure the posts in pools are shown in a reverse order
- While the webm support is still being worked on, it might be better to just hide the webm files from view. Kinda frustrating clicking image after image, while nothing loads.

Other than that, landscape mode would be a nice feature to have.

Thank you for your feedback, it is highly appreciated.

I know the app sadly only has little features compared to other clients.
I will try to implement everything that I can think of when I find the time
and have made the necessary learning progress. This is my first project in flutter
and I am at the beginning of understanding how to build apps with this framework.

I maintain this app because I really like using it myself and I thought it deserved some more love.

Based on your feedback I present this update:

Version 1.1.1

I pushed a quick hotfix which fixes reported bugs
and adds a few small things I wanted to add anyways.

Regards.

I appreciate a quick update.
Unfortunately, no posts load at all for me in v.1.1.1, not sure why.
Additionally, it does not seem to accept my API key when I'm trying to login. Weird.

bitwolfy said:
I appreciate a quick update.
Unfortunately, no posts load at all for me in v.1.1.1, not sure why.
Additionally, it does not seem to accept my API key when I'm trying to login. Weird.

The issue seems to be with the way I've setup the variable for hiding Webm posts. if you flick the switch once or twice, loading posts should work again.

I haven't found any issue with logging in tho.

I will push another fix for the Webm problem when I wake up again.

nevermind, I cant sleep like this, I will fix it right fucking now.

Weirdly enough, the issue didn't occur when upgrading from an old version, only when installing it fresh.

And now we have:

Version 1.1.2

I changed this one line which ruined it all.
Now it should work.

Regards.

Updated

Version 1.1.3

I wasnt really sure wether this
was a minor or a patch version. Its a patch now.

Regards.

bitwolfy said:
I appreciate a quick update.
Unfortunately, no posts load at all for me in v.1.1.1, not sure why.
Additionally, it does not seem to accept my API key when I'm trying to login. Weird.

I'm also experiencing login issues. It says it requires 32 characters but API key is only 24 characters long.

scrumpycrump said:
I'm also experiencing login issues. It says it requires 32 characters but API key is only 24 characters long.

Alright, I found the issue.
It seems that they updated the generation of API keys.

I had an old API key, which was 32 x a-f and 0-9 characters.
Which is why I couldn't reproduce this issue,
so thanks for mentioning the 24 char length.
Newer ones are 24 x A-z and 0-9 characters,
so now the app should support both.

Version 1.1.4

You should now be able to log in.
Finally.

Regards.

Updated

Version 1.1.5

Quality of life patch.
Some things look better now, I guess.

Any feedback on the app is welcome.

Regards.

Thank you so much for the quick updates! I'm still having an issue logging in now it just says 'failed to login.'

scrumpycrump said:
Thank you so much for the quick updates! I'm still having an issue logging in now it just says 'failed to login.'

I am very sorry, I tried but I cant reproduce this. I can login just fine on my end.
I also checked the code and there shouldnt be any message that is simply 'failed to login.'
Have you made sure that your details are correct?

In the meantime I've worked on an update:

Version 1.2.0

After sitting at my desk for the whole night,
my back feels broken. But maybe it was worth it.

Any feedback on the app is welcome.

Regards.

Updated

Version 1.2.1

I've ironed out some issues and added some features.
Everything in small scale but complementary to the update from yesterday.

Sadly nothing too crazy,
I spent alot of time trying to optimize the post page,
but it didnt work out in the end.

Regards.

Version 1.2.2

After the ironing I am now folding the-
uh what?

This patch contains a mixed bag of fixes and features.

Regards.

Version 1.2.3

Hotpatch. I noticed the pool pages after the first arent loading.
Now they are.

Regards.

Version 1.2.4

After spending hours and hours
trying to implement quote parsing,

I have done it. Quotes now look like quotes.

I also quickly introduced voting and comments.
However, the comments arent how I want them to be yet.

Regards.

Version 1.2.5

At this point you probably have noticed that
I dont manage to implement the stuff I write in
"Whats next" but instead I implement something completely different!

As always I also spent half the time trying to implement something,
for it to ultimateively fail (namely: image animation, slide to dismiss and collapsible appbar)

In that spirit, heres the blacklist update.

Regards.

Updated

Snowy

Privileged

I'm unable to input my API key properly on 1.2.5. It's being coerced to lower case but the new keys are case-sensitive.

snowy said:
I'm unable to input my API key properly on 1.2.5. It's being coerced to lower case but the new keys are case-sensitive.

Ah, thank you very much. This went unnoticed to me,
probably because I always use the paste from clipboard button.
Talking about different ways of using the app.

It should be fixed in this next version:

Version 1.2.6

I spent the entire night working on a custom DText parser.
It's not done, but maybe some day in the future,
all DText will finally be correctly parsed.

Regards.

binaryfloof said: I spent the entire night working on a custom DText parser.

Out of curiosity, is there a specific reason why you are parsing DText yourself instead of sending a request to e621?
I'm asking because I considered doing that myself for my userscript, but it seemed way too much work for not enough payoff.

bitwolfy said:
Out of curiosity, is there a specific reason why you are parsing DText yourself instead of sending a request to e621?

I'm not sure what you mean by sending a request to e621.

The app is not a webview, all data is pulled from the JSON API and then parsed into all things that are displayed.

Therefore I basically have to parse DText myself. I have to translate it into actual UI elements in the App.

It would be alot easier if e621 would use markdown. sigh.

I never thought about using a webview, that could be worth a consideration. On the other hand I already started doing it anyways.

binaryfloof said: I'm not sure what you mean by sending a request to e621.

I meant POSTing to the API to turn DText into HTML, the same way the site itself does it
I guess, parsing the DText might be faster than an API request. Not sure, though.
And yeah, I would much prefer it if the site used markdown as well. But what can you do.

bitwolfy said:
I meant POSTing to the API to turn DText into HTML, the same way the site itself does it
I guess, parsing the DText might be faster than an API request. Not sure, though.
And yeah, I would much prefer it if the site used markdown as well. But what can you do.

I too wish the site used bbcode. It's a long term goal to convert to it. Markdown is too sensitive to random punctuation.

kiranoot said:
Markdown is too sensitive to random punctuation.

Does escaping not solve this problem?
I think with markdown becoming more popular in everyday use
it's okay to expect a user to escape characters.
I might be missing an aspect here though.

Funnily enough I spent alot of time yesterday
making sure my DText parser can handle
arbitrary placed [ and ] that aren't part
of a tag without crashing and burning to the ground.

bitwolfy said:
I meant POSTing to the API to turn DText into HTML, the same way the site itself does it

So, I've just checked and this would make everything alot easier because
libraries support parsing HTML to Widgets and I could parse all DText easily (probably).

But this does also increase API calls. I would like to use as little API calls as possible.

Parsing all DText with the site would cost me an API call
for each Wiki entry I display,
for each Post description
and for each comment.

Maybe I could melt comments together and split them again, I'm not sure.
I don't know if I want to increase the API calls by this amount.

Updated

binaryfloof said: But this does also increase API calls.

binaryfloof said: Maybe I could melt comments together and split them again

Yeah, that's definitely an issue to consider. Batching comments would absolutely be required, since sending a couple dozen (properly rate-limited) API calls will take a while.

binaryfloof said:
Does escaping not solve this problem?
I think with markdown becoming more popular in everyday use
it's okay to expect a user to escape characters.
I might be missing an aspect here though.

It's actually that markdown typically has a limited set of options without extensions, and then you have to find meaningful ways to express those other options. E6 has a LOT of syntax possibilities, colors, tables, sections, quotes, in addition to lists and other basic formatting rules. Some markdown supports some of these, but not all of them. So regardless of what is picked it still becomes domain specific to us, and a mess. It essentially becomes DText again, but with different syntax.

Using bbcode, there is a uniform markup syntax that is easy to parse on the client and server side, and bbcode has never been standardized so it's expected to be domain specific. It's also easier to build a converter for existing items and export them back as bbcode because it follows a naturally nested structure. Markdown often has significant whitespace and transformations are harder to do backwards.

Version 1.2.7

Did anyone order DText parsing? No? Must've been me.

Regards.

binaryfloof said:
The several API weirdnesses didn't really help either.
At one point I was wondering why my post #<id>
was swallowed, but it actually was a thumb #<id>,
because for some reason the JSON I got had thumb,
but the website had post.

There is an upper cap on the number of thumbnails that can appear in a single dtext parsing session, which I believe is 25. Beyond this point, thumbnails are converted into post #.

kiranoot said:
There is an upper cap on the number of thumbnails that can appear in a single dtext parsing session, which I believe is 25. Beyond this point, thumbnails are converted into post #.

I dont know if thats the case here. The post in question is post #2216230.
The description of the post displays another post with the "post #<id>" tag,
however, when calling the JSON API on this post, I get "thumb #<id>" in the exact same place.

I also have a new app version ready:

Version 1.2.8

You might have noticed that the new DText parser has some issues.
Well I've drawn a pentagram on the ground and spoken some weird gibberish
and maybe it works better now. Fingers crossed.

Regards.

Updated

binaryfloof said:
I dont know if thats the case here. The post in question is post #2216230.
The description of the post displays another post with the "post #<id>" tag,
however, when calling the JSON API on this post, I get "thumb #<id>" in the exact same place.

Oh, thumbnails are blacklisted in specific places to save space, such as in post descriptions. Internally this is just setting the maximum number of allowed thumbnails to 0 for a specific parse run. I believe that descriptions are the only place that happens right now.

binaryfloof said:
I dont know if thats the case here. The post in question is post #2216230.
The description of the post displays another post with the "post #<id>" tag,
however, when calling the JSON API on this post, I get "thumb #<id>" in the exact same place.

I also have a new app version ready:

Version 1.2.8

You might have noticed that the new DText parser has some issues.
Well I've drawn a pentagram on the ground and spoken some weird gibberish
and maybe it works better now. Fingers crossed.

Regards.

Thank you again for the updates, I managed to sign in (it was case sensitive, I feel dumb). However, I still can't download anything the error code is "OS Error: Permission denied, errno = 13" I already gave it storage permissions

scrumpycrump said:
Thank you again for the updates, I managed to sign in (it was case sensitive, I feel dumb). However, I still can't download anything the error code is "OS Error: Permission denied, errno = 13" I already gave it storage permissions

Uh oh. I thought that issue was caused by the emulator.
This works fine on my personal device. Looks like its still broken.
Thanks for your feedback, I will look into it!

Here is a new update for now:

Version 1.3.0

Regards.

Version 1.3.1

Small patch to improve to overall quality.

Regards.

Updated

Version 1.3.2

Hotpatch to fix downloads plus some other small changes.

Regards.

Version 1.3.3

In the last patch where I introduced the
updated_at date, I didnt realize this could be null.

So now I have to push this second hotpatch to fix that.

Regards.

I just now found this project after my own attempts to fork and update (for iOS, though) since the old app died. I'll try and contribute what's needed to keep things running smoothly on iOS as well. If you'd like me to upload unsigned IPAs as well (and maybe a 'secret' loader) I wouldn't mind.

Trying to figure out right now what is going on with flutter and iOS, the most recent updates causes 500MB IPA files.

kritanta said:
I just now found this project after my own attempts to fork and update (for iOS, though) since the old app died. I'll try and contribute what's needed to keep things running smoothly on iOS as well. If you'd like me to upload unsigned IPAs as well (and maybe a 'secret' loader) I wouldn't mind.

Trying to figure out right now what is going on with flutter and iOS, the most recent updates causes 500MB IPA files.

Hi,

Yeah I've seen your fork, sorry for my late reply.

I can neither test nor compile for iOS, so if you would be able to do that,
that'd be great! Your contributions are welcome.

and maybe a 'secret' loader

I'm not sure what you mean by that. I never owned an iOS device so those terms are new to me.

It would be pretty cool if the app could run on iOS again some day.

Regards.

binaryfloof said:

I'm not sure what you mean by that. I never owned an iOS device so those terms are new to me.

On iOS, there are some extreme low level things done to make it very hard to load 3rd party apps for non devs.

I mentioned a “secret loader” because we recently found a sandbox escape that allows what I’m just gonna call “magic hacks” to allow loading 3rd party apps in a different than usual way

It would be pretty cool if the app could run on iOS again some day.

Tomorrow I’ll hop back on here with a link to an .ipa and explicit instructions on how to install it, no magic freaky hacks required, just a lil time and patience :)

kritanta said:
On iOS, there are some extreme low level things done to make it very hard to load 3rd party apps for non devs.

I mentioned a “secret loader” because we recently found a sandbox escape that allows what I’m just gonna call “magic hacks” to allow loading 3rd party apps in a different than usual way

Tomorrow I’ll hop back on here with a link to an .ipa and explicit instructions on how to install it, no magic freaky hacks required, just a lil time and patience :)

Alright, that sounds good to me.

If you'd like, you can also make a pull request,
and I'll pull your changes.

Perhaps we could even add the install instructions to the readme,
and the IPA to the releases.

Regards.

kritanta said:
On iOS, there are some extreme low level things done to make it very hard to load 3rd party apps for non devs.

I mentioned a “secret loader” because we recently found a sandbox escape that allows what I’m just gonna call “magic hacks” to allow loading 3rd party apps in a different than usual way

I would be much more comfortable installing sandboxed apps instead of installing them with the "psychic paper" exploit you're referencing to, as there are obvious security implications in doing so. I have no experience with Flutter apps myself, and it might indeed need a sandbox escape to run, but please take a look into AltStore. It's a setup that can install fully sandboxed apps from .ipa files.

That said, I'm curious to learn more about the technical details of the sandboxless loader you're working on!

I just read through this entire thread, and it was equally fascinating and inspiring to see all the work, love, and effort you've put into this little app you have here! Muchly kudos to the flood! I tried my hand at coding, the finickiness of it all made me want to play keyboard-shuriken-toss! 😅 well done to you!

tenchi_fox said:
I just read through this entire thread, and it was equally fascinating and inspiring to see all the work, love, and effort you've put into this little app you have here! Muchly kudos to the flood! I tried my hand at coding, the finickiness of it all made me want to play keyboard-shuriken-toss! 😅 well done to you!

Thank you very much, this means alot!
I hope youre enjoying the app.

While I dont have much time right now,
here is still a small update to correct some issues.

Version 1.3.4

Small quality of life patch

Regards.

Updated

Version 1.3.5

Medium quality of life patch

Regards.

iOS Support

Releases might contain traces of iOS compatible files.

Regards.

I dont know if this this a recent thing, But i cant seem to see any pics or any of them in the comment section either.

oyashiro1 said:
I dont know if this this a recent thing, But i cant seem to see any pics or any of them in the comment section either.

Could you give me some more info?

  • What device are you on?
    Platform (Android, iOS), Device name (Example: Galaxy S8), OS version (Example: Android 10)?
  • What app version is installed? (seen in about)
  • Your blacklist in the app?
    (There is currently an immense overmatching problem with the local blacklist,
    which I will try to resolve in the next update)
  • Have you checked wether you can see images on the website itself?
    Sometimes the site itself doesnt show pictures for me either,
    seems to be some kind of server problem.
  • Are post cards visible, just without image,
    or are you stuck on an infinite loading screen, saying "loading posts"?
    Can you open posts, see tags, comments, parents/children and pools?
  • Are you logged in?

As to pictures in the comment section, those are not supported yet,
as I am still thinking of how to implement them.

Regards.

binaryfloof said:
Could you give me some more info?

  • What device are you on?
    Platform (Android, iOS), Device name (Example: Galaxy S8), OS version (Example: Android 10)?
  • What app version is installed? (seen in about)
  • Your blacklist in the app?
    (There is currently an immense overmatching problem with the local blacklist,
    which I will try to resolve in the next update)
  • Have you checked wether you can see images on the website itself?
    Sometimes the site itself doesnt show pictures for me either,
    seems to be some kind of server problem.
  • Are post cards visible, just without image,
    or are you stuck on an infinite loading screen, saying "loading posts"?
    Can you open posts, see tags, comments, parents/children and pools?
  • Are you logged in?

As to pictures in the comment section, those are not supported yet,
as I am still thinking of how to implement them.

Regards.

Yes im currently logged in and still cant see anything tried typing mlp and sssonic2 pics and cant see anything but i can see everything else but just not the pics.

Version 1.4.0

The colorful update

Regards.

Version 1.4.1

Hotfix for UI color

Regards.

Updated

Version 1.4.2

Hotfix for update notifications

Regards.

Hi, I've been using this app for a while now and I'm absolutely loving it! I do have a few suggestions for it:

-An option to turn off the favorite/upvote/downvote animations would be handy. I've accidentally double-tapped them when I'm not sure it's gone through more times than I can count.
-It would also be handy if the app shows if you've already up/downvoted a post before the current session (if that's possible). Since the app doesn't show if you've already up/downvoted a post before the current session, I think this would remove the redundancy in hitting the button when you don't need to.
-I think the option to show the post you've set as your avatar next to your username where the app's logo is could be a nice touch of personalization, as well as controls to set a post as your avatar on a post's page.

Again, this app is a wonder to use. Thank you for making it!

tigerboxers said:
Hi, I've been using this app for a while now and I'm absolutely loving it! I do have a few suggestions for it:

-An option to turn off the favorite/upvote/downvote animations would be handy. I've accidentally double-tapped them when I'm not sure it's gone through more times than I can count.
-It would also be handy if the app shows if you've already up/downvoted a post before the current session (if that's possible). Since the app doesn't show if you've already up/downvoted a post before the current session, I think this would remove the redundancy in hitting the button when you don't need to.
-I think the option to show the post you've set as your avatar next to your username where the app's logo is could be a nice touch of personalization, as well as controls to set a post as your avatar on a post's page.

Again, this app is a wonder to use. Thank you for making it!

Hi! I'm glad you like the app, I'm putting alot of effort into making it.

Funny you mention those things, I have thought of them myself but most of them are sadly not possible:
1. I can look into turning off the animations, but I'm using a library that provides the button
and animation so I can't promise anything, since I might not have access to it.
2. I cannot display wether you have upvoted or downvoted a post already without going to great lengths of API call wastage.
I have contacted Kira about this and we have come to the conclusion that I should not go that way,
but rather wait until the site is updated and can provide such a feature.
3. I would love to show the users avatar picture instead of the logo in the drawer,
but the API does not provide me with a link to that picture when calling a users profile.
I have also talked to Kira about this as well, it might become a thing in the future.
For now, this could be possible by me scraping the HTML, but I'd rather not.

Thank you for your feedback I really appreciate it. I will look into the animations when I got time.

Regards!

Hey hi. Is this an Android app or an iOS app? I’m assuming Android, since I’m fairly certain that iOS apps are only available through the app store unless you jailbreak your phone (which I haven’t done). I have an iPhone 6s and have been praying for an E621 app for a loooong time.

carnaxus said:
Hey hi. Is this an Android app or an iOS app? I’m assuming Android, since I’m fairly certain that iOS apps are only available through the app store unless you jailbreak your phone (which I haven’t done). I have an iPhone 6s and have been praying for an E621 app for a loooong time.

Hi,

This is a crossplatform app. It works on Android and iOS, thanks to the Flutter framework.

You do not need to jailbreak your iPhone to use it,
instead you can sideload the IPA with a computer and AltStore.

The IPA is found on the GitHub Releases
and are compiled by a friend of mine. You can also compile it yourself, if you fancy that.

Let me know if it all works out for you.

Regards!

I've recently noticed a bug when tapping on an artist tag on posts with multiple artists. All artist tags that precede the last one open a search with ", " added to the end of the tag when tapped. Because of the comma, no results are found. The last artist tag doesn't exhibit this behavior and the search works if the comma is manually removed.

tigerboxers said:
I've recently noticed a bug when tapping on an artist tag on posts with multiple artists. All artist tags that precede the last one open a search with ", " added to the end of the tag when tapped. Because of the comma, no results are found. The last artist tag doesn't exhibit this behavior and the search works if the comma is manually removed.

Got it, should be fixed now.

Version 1.4.3

Preparations for the PlayStore

Regards.

Wow I really appreciate having an app to browse e621 and 926. I dont mean to be a nag but I was wondering if you would also consider publishing this app on the f-droid app store if it isn't too much trouble.

Updated

surus said:
Wow I really apprentice having an app to browse e621 and 926. I dont mean to be a nag but I was wondering if you would also consider publishing this app on the f-droid app store if it isn't too much trouble.

I'll note it down for when I get to putting the app into stores.

In the meantime, I have an update ready:

Version 1.5.0

Post editing support.

Regards.

Updated

Version 1.5.1

Hotpatch for post editing

Regards.

Updated

Version 1.5.2

Quality of Life, the second.

Regards.

User Survey

Improving the app with feedback

Version 1.6.0

Comments, mostly.

Regards.

Version 1.6.1

Preload everything!

Regards.

Updated

  • 1