GagBook

Rating: 
4.7
Your rating: None Average: 4.7 (20 votes)

GagBook is an unofficial client for the 9GAG.com website that allows you to easily browse the content with a simple, smooth and native user interface.

GagBook brings the fun to your device. It is light, fast and easy to use. It is so easy to kill time by viewing funny memes and videos from 9GAG.com. Just try it and you will love it.

This GagBook fork uses the undisclosed official 9GAG.com API as data source. Finally you are able to spend your time browsing the content again after GagBook was not working due to a website change back in December 2017.

Features

  • Simple, smooth and native Sailfish Silica UI
  • View posts in different sections, e.g. Hot, Trending, Fresh
  • Account login (with email only) and voting support
  • View comments of each post
  • Save image and video files

Currently not working/implemented:

  • The user login is not fully implemented yet and will expire every 90 days without warning (Beware: Currently NSFW/NFK content is shown nevertheless)
  • Delete/Add sections is currently disabled/not implemented
  • Comments: Embedded GIFs are only played once, this will be fixed later
  • Sometimes the download-bar stalls and does not finish, a workaround is to disable and re-enable your data connection. Please let me know if you notice a pattern or find a way to reproduce this.

Development:

I will maintain GagBook by fixing bugs and implementing new features.

  • Plans for the next update(s):
    - Finalise Comments implementation
    - Implement proper account login with corresponding features
    - Implement full Sections support
    - Rewrite Gags implementation
    - Localisation support
  • Bugs: Please report bugs, issues and your idea of improvement on GitHub or in the comments below.
  • Source Code: The source code is available on GitHub - https://github.com/Alex217/GagBook

Donations:

If you like my work and want to support it, you may want to buy me a beer or two. :)

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-gagbook-1.4.2-2.armv7hl.rpm113.25 KB30/05/2019 - 15:16
File harbour-gagbook-1.4.2-2.i486.rpm127.69 KB30/05/2019 - 15:16
File harbour-gagbook-1.4.2-1.aarch64.rpm123.09 KB02/06/2021 - 16:28
Changelog: 

1.4.2-1 2/6/2021

  • Provide AArch64 build

1.4.2-1 22/5/2019

  • Fix the loading of posts (The 'Reached end of the list'-message won't be shown erroneously anymore. Furthermore there won't be recurring posts anymore.)

1.4.1-1 27/1/2019

  • Fix the voting

1.4.0-1 25/1/2019

  • Implement full comments support
  • Update the sections
  • Change the comments icon
  • Switch to an appropriate icon for the open-link-button
  • Switch to a native video play icon
  • Center the buttons in the toolbar beneath of each gag
  • Improve the banner of long images to match the native SFOS look and feel
  • Remove QtWebKitWidgets dependency and switch to a QGuiApplication instance
  • Drop the deprecated Qt-Json submodule
  • Drop Symbian and MeeGo support
  • Drop Qt 4 support
  • Refactoring

1.3.3-1 5/4/2018

  • Fix loading top three comments (loads mobile website)
  • Save downloaded files to '/home/nemo/Downloads/GagBook'
  • Save the mp4-video instead of the image on a manual download
  • Increase maximal image height for better image quality
  • Fix download icons resetting its state
  • Cache long images
  • Rename the cache folder
  • Improve the info banner readability
  • Show corresponding error message if there are no further posts available (e.g. in 'Fresh' section)

1.3.2-1 19/3/2018

  • Fix the access to the 9GAG sections

1.3.1-1 9/3/2018

  • Enable the access to all 42 9GAG sections
  • Fix crashing on a bad network connection, on network errors and on an expired session
  • Add an automatic re-login on an expired session before fetching further posts
  • Add an easily extendable data model for the 9GAG sections
  • Reset deprecated config files and add all 42 9GAG sections on first app session

1.3.0-1 25/2/2018

  • Implement a library to access the undisclosed official 9GAG API
  • Switch to the newly implemented data source
  • Speed up the app and reduce data and resource consumption due to the new API source
  • Reduce the amount of memory allocations by extending the object lifetime
  • Update the AboutPage

Comments

nas's picture

Ahoy Alex,

I noticed that after the latest Sailfish update (4.5.0.19) the icon to download doesn't show, but if you press to the area where it was it still works. After it downloaded the "gallery" icon appeared as it used to be. When I run it from terminal I noticed the following message:

[W] unknown:0 - Image file path failed to resolve for "icon-m-download"
[W] unknown:55 - file:///usr/lib64/qt5/qml/Sailfish/Silica/IconButton.qml:55:5: QML Icon: Failed to get image from provider: image://theme/icon-m-download

I tried to check the code you provided in github so I could mention where I think the problem is, but couldn't find anything (I don't know cpp :(  ). I found that in the file:

sailfish/qml/GagDelegate.qml  line 364 it has to do with that icon:

  icon.source: "image://theme/icon-m-" + (model.savedFileUrl.toString() ? "image" : "download")

My knowledge / ideas end here. Do you know if I could fix it by doing something like:

 ln -s /usr/share/themes/sailfish-default/meegotouch/z1.75/icons/icon-m-downloads.png /usr/share/themes/sailfish-default/meegotouch/z1.75/icons/icon-m-download.png

which I tried and didn't work?

Thank you for your time, and thank you for maintaining this app!

gaelic's picture

After two days of testing with the x10ii: hangs randomly, cant be started again after closing. Are there any logs i can provide?

Alex's picture

Hey @gaelic,
well there are some (long-lasting) bugs even on the Armv7 build - sometimes the app hangs on some media files or randomly after some usage. This issues still have to be debugged and fixed, unfortunatelly I didn't find the root cause yet so any logs or steps for reproduction are welcome.
The issue that prevents the app from starting seems to be new though since I didn't encounter such an issue yet.
Please follow the following steps to collect some logs:
1. Enable developer mode
2. Open the terminal app and execute the following command harbour-gagbook >> ~/Downloads/gagbook.log 2>&1 &
3. Reproduce the issue (e.g. app hanging) and close the GagBook app or wait for the popup to kill it
4. Execute step 3 again to collect some logs about a failing restart (if the app started, then close it after it has loaded the page)
5. Post the content of the gagbook.log file that is located in your Downloads folder here in the comments or in a new GitHub issue :)

Marold's picture

In my situation, after starting app from terminal it works like it should but I cannot simply start it by clicking on icon from app drawer. I have two let say warnings when starting app. "libGLESv2_adreno.so not found" and " eglSubDriverAndroid.so not found" Hope it will help to find what happens on arch64 Xperia 10 ii. Thanks for your work !

gaelic's picture

Thx. Very nice

peperjohnny's picture

Hey Alex! Would it be possible for you to release an aarch64 package?

Alex's picture

Hey, sure I will upload an aarch64 build as soon as the non-EA SDK build targets are released.

cvp's picture

Is it possible to add a Video bar to fast forward or backward ?

Alex's picture

@cvp Well it would be possible. Do you have a good idea how to show/hide such video controls?

direc85's picture

Yay! Thanks!

Just a small correction: login works with user name, too. Well, I only tried my username and it worked.

Kelmi's picture

I missed feature/option to capture also title of 9gag post. I mean when I want download and save some picture or video, it only saves the picture and video but not title..

So for now I need to take screenshot.. Would be nice to have feature to pick also title of post.

Alex's picture

Hey @Kelmi,

just an update: Unfortunately this feature won't be supported yet because of the following issues:

First I planned to implement this by writing the title into the file's metadata (EXIF data) but there is no uniform Qt API to do this for images and videos (it's just possible for images atm). Then I implemented this by writing the title into the filename but this caused issues on SFOS to the extent that files with a long name couldn't be opened.

Anyway you may want to use some workarounds: The current filename contains the id of the post so you are able to open the original post in a browser. Another way would be to login to your Account in GagBook and upvote the posts. This posts will be shown in your Account. Later I also plan to implement the feature to show this liked posts inside GagBook.

Alex's picture

Hey @Kelmi,
thanks for your suggestion.
I will look into this for the next update I am currently working on. :)

gaelic's picture

Since today the parse errors are.here again :(

Alex's picture

Thanks for letting me know.

This issue is fixed with v. 1.3.2 now. :)

lutinotmalin's picture

Very good 9gag client, smooth and clear, love it ! Any plans about translations ? Would be great if that app could be translated via Transifex or similar ;-) Cheers !

Alex's picture

Yes translations are already planned but I need to implement some other things first. :)

Vieno's picture

Brilliant! Thanks for your effort.

llelectronics's picture

Wow wonderful work :)

Thanks for that.