GithubHelp home page GithubHelp logo

fenimore / badreads Goto Github PK

View Code? Open in Web Editor NEW
50.0 6.0 5.0 38.05 MB

badreads replacement for goodreads (book tracking) 📚

License: GNU General Public License v3.0

Kotlin 91.17% Java 8.83%
book library

badreads's Introduction

Bookmark (formerly Badreads)

Get it on F-Droid Get it on Google Play

Badreads is a book tracking Android application for logging books you're reading, read, and want to read. Your library "shelves" (reading, read, and to read) are stored locally on your phone. Use the search or barcode reader to look up new book on OpenLibrary and add it to your library. You can import and export your library from or to Open Library and Goodreads.

Badreads is unstable. I recommend backing up with an export before installing updates or changes.

Screenshots

screenshot 1

screenshot 3

License

GPLv3 Copyright 2021 Fenimore Love

Todo:

  1. Fix settings action bar color
  2. Multiple Authors/DB Relation
  3. Include numbers in bar charts
  4. Make publishers fuzzy match duplicates in Summary of publishers
  5. Batch Scan
  6. Long press the chart to set goal
  7. Version 2: Bookshelf view
  8. Version 2: Login to OpenLibrary/sync shelves

Version 3:

  1. Cache images for offline access: https://stackoverflow.com/questions/23978828/how-do-i-use-disk-caching-in-picasso
  2. Change colors
  3. Rename to Bookmark
  4. De-duplicate results from search (ex. kornel esti)
  5. Save custom image URL?
  6. Manual entry should be a slick sliding up thing
  7. Notify user that they can add image on openlibrary.org

Gridlayout example:

        List<String> dataSource = new ArrayList<String>();
        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3, GridLayoutManager.HORIZONTAL, false);
        recyclerView.setAdapter(new TextRecyclerAdapter(dataSource));
        recyclerView.setLayoutManager(gridLayoutManager);

Known Bugs:

  1. When moving export and import to settings, it doesn't succeed in creating new files

Support Badreads

I hope you enjoy using Badreads for free, ad free, tracking free, and with free software and services. Please open an issue if you find a bug, think of a feature, or just want to say something! I apologize in advance if my response or implementation is not prompt! But I'd like to get through everything at some point.

If you'd like to support with money, maybe buy a tasty beverage for the developer, @fenimore, you can send it with PayPal or Venmo at @timenotclocks, thank you!

badreads's People

Contributors

easyvector avatar fenimore avatar stoppingbuck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

badreads's Issues

Option to leave day/month blank in Date Started/Read

Hi. First of all, thank you for this great app.

Very often we don’t remember the exact date we finished a book, but only the year, or the month and the year, but not the day. Right now, the app doesn’t seems to have a blank option for Month and/or Day in “Date Started” or “Date Read,” so it’s not possible to enter only the year, or only the year and the month, which would be very helpful. Would it be possible to implement that?

Thank you!

date read

Adding a new status

Hello,

There are currently 3 statuses:

  • Reading
  • Read
  • To read

Could you add a fourth one for the "reference" books?
I am not sure if "reference" would be the best designation though.
I am talking about those books we have but don't plan to properly read, more to use whenever needed:
School/university manuals, dictionaries, encyclopedias, etc.

Useless for when using this app for litterature purpose but it can be useful when using it for library management.

Thanks!

Add book from Open Library

After searching for a title in Open Library and successfully finding the book, I click on the search suggestion and am taken back to the home screen. I'm unable to add it.

use other sources too

a lot of the books I want to add cannot be read from openlibrary.org, arent there other sources that could be used in addition to pull data?

Add book genre field

It would be nice to have a "Genre" field, for specifying the book genre. It should be a multiple value, since for example we could have a book which is a "Fiction","Thriller" and "Mystery".
Then, it would be quite easy to implement a filter to show books of a specific genre (or also additional kinds of statistics etc..)

Visual bug when moving cursor in book search bar

Really cool project! Thank you for this!

Just a small bug I noticed: When I am searching for a new book to add, if I tap in the search bar to move the cursor and edit what I typed, the cursor gets really big and covers the text:

Screen Shot 2021-04-03 at 12 48 19 AM

Samsung Xcover Pro running Android 11 with One UI 3.0

Entering book manually if book not found with ISBN saved

Hello,
Thank you very much for this app.

When you scan a barcode, it finds the ISBN.
If the book is not known by Open Library, nothing happens.
It would be good to be suggested to add the book manually, keeping in mind this ISBN (so no need to re-type it).

Thanks!

Store book covers locally on the device

The app sometimes behaves like images are loaded from Internet, even after a book hast already been successfully added. Some books dont show the cover when my phone is offline, and some do update when the image is updated on openlibrary.org even when I did not trigger a reread or anything else.

Donations?

I was looking for a FOSS alternative for Goodreads for a long time! Thanks for your work!
Is there a way to donate to the project?

Overlapped texts and dropdown button on adding new books page

Describe the bug

Dear developer!
In the process of using, I found a bug in layout / display. As shown in the figure below, on the "add book" page, the dropdown button blocked the texts around it. This may be an adaptation problem. I suspect it is because display and font size are set to large (mainly due to display size).
Because of some problems with my eyesight, I often use the largest font and display.
103165857-dbaf8580-4857-11eb-9e22-120ae1901389

App version is 0.1.6, my mobile phone is Google Pixel 2, and the screen resolution setting is 1920* 1080. And my font size and display size are the largest ! ! ! Also, my Android system version is 10.0.
The above is a description of the problem. The overall experience of the software is good. You can see that the design is very attentive. Thank you very much for the efforts of the developers all the time. I hope to receive a reply. Thank you so much!!

Expected behavior

I hope the dropdown button is separated from the texts around it.

Steps to reproduce the behavior:

  1. use the largest font and display in the display setting
  2. click the add book button on the main page
  3. randomly search a book and add it
  4. this error could be seen

Screenshot

(The overlap is marked in red)

copy

Environment

  1. Version of badreads: 0.1.6
  2. Device : Google Pixel 2,
  3. OS version : Android 10.0

Statistics

Screenshot_20211106-225107.png

I would love to be able to see actual numbers, along with the graphs.

Crash while importing CSV file

Describe the bug:
App crashed while importing goodreads books in .csv file format.

Steps to produce:

  1. Click on top right cornor 3 dot icon
  2. Library export/import > Import from CSV
  3. Choose your..csv file
    App crashed

Crash logs:

FATAL EXCEPTION: main
Process: com.timenotclocks.bookcase, PID: 12400
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=20, result=-1, data=Intent { dat=content://com.android.providers.downloads.documents/document/720 flg=0x1 }} to activity {com.timenotclocks.bookcase/com.timenotclocks.bookcase.MainActivity}: com.github.doyaaaaaken.kotlincsv.util.CSVFieldNumDifferentException: Fields num seems to be 18 on each row, but on 1th csv row, fields num is 1.
	at android.app.ActivityThread.deliverResults(ActivityThread.java:4271)
	at android.app.ActivityThread.handleSendResult(ActivityThread.java:4315)
	at android.app.ActivityThread.-wrap19(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1647)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loop(Looper.java:164)
	at android.app.ActivityThread.main(ActivityThread.java:6518)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: com.github.doyaaaaaken.kotlincsv.util.CSVFieldNumDifferentException: Fields num seems to be 18 on each row, but on 1th csv row, fields num is 1.
	at com.github.doyaaaaaken.kotlincsv.client.CsvFileReader$readAllAsSequence$2.invoke(CsvFileReader.kt:52)
	at com.github.doyaaaaaken.kotlincsv.client.CsvFileReader$readAllAsSequence$2.invoke(CsvFileReader.kt:16)
	at kotlin.sequences.TransformingIndexedSequence$iterator$1.next(Sequences.kt:234)
	at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:170)
	at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:194)
	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
	at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:786)
	at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:816)
	at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:807)
	at com.github.doyaaaaaken.kotlincsv.client.CsvReader$readAllWithHeader$3.invoke(CsvReader.kt:78)
	at com.github.doyaaaaaken.kotlincsv.client.CsvReader$readAllWithHeader$3.invoke(CsvReader.kt:15)
	at com.github.doyaaaaaken.kotlincsv.client.CsvReader.open(CsvReader.kt:178)
	at com.github.doyaaaaaken.kotlincsv.client.CsvReader.readAllWithHeader(CsvReader.kt:78)
	at com.timenotclocks.bookcase.api.GoodReadImport.serialize(GoodReadImport.kt:16)
	at com.timenotclocks.bookcase.MainActivity.onActivityResult(MainActivity.kt:272)
	at android.app.Activity.dispatchActivityResult(Activity.java:7290)
	at android.app.ActivityThread.deliverResults(ActivityThread.java:4267)
	... 9 more

Device details:
App version: 0.1.9 (19) [F-Droid]
Android version: 8.1.0
Model: Lenovo Tab4 8 plus (TB-8704X)

Add support for BookWyrm

Basically it would be awesome if this could have any integration at all with BookWyrm (a decentralized, libre and privacy respecting project that works with ActivityPub). I know the repo's readme says the idea is to store everything locally, but maybe at some point higher in the development process you decide to go towards another path.

Bug: strange square

Issue description

Strange square during book search.

Steps to reproduce the issue

  1. search box Title, Author or ISBN + 🔍
  2. tap in search box

What's the expected result?

  • only I-cursor

What's the actual result?

  • Square

Additional details / screenshot

  • Android 10
  • App version: 0.1.6 (f-droid)
  • Screenshot:
    Screenshot

Books in Open Library without ISBN

Hi. It looks like the app can only find books editions in Open Library when they have an ISBN number, but many old books don't have an ISBN number. I tryed to add them manually, but then I can't find a way to add a cover. Here is an example:
https://openlibrary.org/books/OL5125201M/La_hoja_roja

It would be really great to be able to upload the cover image from local files in those cases. Or maybe to add the possibility to search not only by ISBN, but also by the OL code (in the example, OL5125201M).

Thank you for all your work and congratulations for the app.

Deleting book crashes the app

Version: 0.1.6

Every time I delete a book (in the To Read section at least) the app crashes. As far as I can tell the deletion actually finishes however.

1) Share (into search query) of Badreads; 2) optional "Setting", Enable "Badreads" as Context Menu item

Hi
First, THANK YOU. Badreads I use daily.

Second, searching in Badreads for a new book (or ISBN, author, etc.) involves numerous steps which coukd be reduced by incorporating a "share" feature.

Currently, when I discover a book or author I want to find in Badreads I have to find the Badreads app, open it, and enter the query to search . By Incorporating the ability to share selected text with Badread, resulting in said text becoming a search query, the amount of time and steps involved in searching for a new book could be reduced. In turn the 'search in Badreads' process is streamlined, and consequently the usage of Badreads more efficient and less time-consuming.

Third, an additional idea is to include an option in Badreads' settings to enable/disable: "add 'Badreads' as a context menu item", to {if Enabled} search from the context menu after selecting text (Author, ISBN, Book Title, etc.) directly into Badreads [select text > (context menu) Badreads], thus {if Disabled} avoiding the first of two steps in choosing Badreads after clicking 1)"Share..." 2) (scroll through the list of apps (in the 'Share screen') to find) Badreads [select text > (context menu) Share > Badreads].

Again, GREAT and VALUABLE work. Thank you for your service.(!)
Kindest and Best Regards~

Export to CSV does not support special symbols

I really like the concept of badreads but actually there ist one (for me) serious limitation which prevents using it.

When exporting the library, all special symbols are messed up. This can be tested very easily by adding a book entry with german umlauts (ÄÖÜ). I guess UTF-8 is not used, which in my mind should be the case today.

Vertical scan impossible

Hello,

Device: Xiaomi Mi 9T Pro
ROM: LineageOS 17

With any app, I have the option, when pivoting my phone, to accept or not the screen to turn horizontally.
With Badreads, this option is not showing. Therefore I cannot scan a vertical barcode.

Thanks

How to install the app?

How can I install the app to my mobile I cannot find the apk file anywhere nor in github or in fdroid?

Don't abandon this project

Hi! This post is for saying: please, don't abandon this beautiful piece of software! If the main developer can't work on it anymore then it would be nice if the "goes" to someone else, so that the project can continue to live!
Many thanks!

Bookmarking

a way of keeping your place in books would be nice, especially for collections of short stories or poetry that are often read intermittently. goodreads does it by page number or percentage, maybe also add section (could be a chapter, poem or story) as an option.

Allow loading covers locally

Because Open Library is blocked by GFW (Great Fire Wall), it is difficult for users from China mainland to add image from it. (The whole Internet Archive has been blocked.) Most such websites for loading information for books (including non-free ones) are blocked. Even visting this page requires the usage of VPN. (It is possible to access Open Library using VPN but the loading speed is extremely slow and sometimes there exists some risk for us to break the GFW frequently.) Besides, due to GFW, books writen in Chinese are hardly to found in the repositories like Open Library or Goodreads, and adding them manually is not convenient. The goal to have one page for every books have ever published is quite impossible to approach by this reason. The only resource Chinese readers can access normally is douban but it is neither free nor open, and books published outside China mainland is hardly found in douban since importing publications is strictly restricted... So the only accessible way for us to track books using this application without editing CSV files directly is to manually enter all information we want to add and load book covers from local storage...ಠ﹏ಠ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.