Social reading and reviewing, decentralized with ActivityPub

Overview

BookWyrm

Social reading and reviewing, decentralized with ActivityPub

Contents

Joining BookWyrm

BookWyrm is still a young piece of software, and isn't at the level of stability and feature-richness that you'd find in a production-ready application. But it does what it says on the box! If you'd like to join an instance, you can check out the instances list.

You can request an invite by entering your email address at https://bookwyrm.social.

Contributing

See contributing for code, translation or monetary contributions.

About BookWyrm

What it is and isn't

BookWyrm is a platform for social reading! You can use it to track what you're reading, review books, and follow your friends. It isn't primarily meant for cataloguing or as a data-source for books, but it does do both of those things to some degree.

The role of federation

BookWyrm is built on ActivityPub. With ActivityPub, it inter-operates with different instances of BookWyrm, and other ActivityPub compliant services, like Mastodon. This means you can run an instance for your book club, and still follow your friend who posts on a server devoted to 20th century Russian speculative fiction. It also means that your friend on mastodon can read and comment on a book review that you post on your BookWyrm instance.

Federation makes it possible to have small, self-determining communities, in contrast to the monolithic service you find on GoodReads or Twitter. An instance can be focused on a particular interest, be just for a group of friends, or anything else that brings people together. Each community can choose which other instances they want to federate with, and moderate and run their community autonomously. Check out https://runyourown.social/ to get a sense of the philosophy and logistics behind small, high-trust social networks.

Features

Since the project is still in its early stages, the features are growing every day, and there is plenty of room for suggestions and ideas. Open an issue to get the conversation going!

  • Posting about books
    • Compose reviews, with or without ratings, which are aggregated in the book page
    • Compose other kinds of statuses about books, such as:
      • Comments on a book
      • Quotes or excerpts
    • Reply to statuses
    • View aggregate reviews of a book across connected BookWyrm instances
    • Differentiate local and federated reviews and rating in your activity feed
  • Track reading activity
    • Shelve books on default "to-read," "currently reading," and "read" shelves
    • Create custom shelves
    • Store started reading/finished reading dates, as well as progress updates along the way
    • Update followers about reading activity (optionally, and with granular privacy controls)
    • Create lists of books which can be open to submissions from anyone, curated, or only edited by the creator
  • Federation with ActivityPub
    • Broadcast and receive user statuses and activity
    • Share book data between instances to create a networked database of metadata
    • Identify shared books across instances and aggregate related content
    • Follow and interact with users across BookWyrm instances
    • Inter-operate with non-BookWyrm ActivityPub services (currently, Mastodon is supported)
  • Granular privacy controls
    • Private, followers-only, and public privacy levels for posting, shelves, and lists
    • Option for users to manually approve followers
    • Allow blocking and flagging for moderation

The Tech Stack

Web backend

Front end

  • Django templates
  • Bulma.io css framework
  • Vanilla JavaScript, in moderation

Deployment

Book data

The application is set up to share book and author data between instances, and get book data from arbitrary outside sources. Right now, the only connector is to OpenLibrary, but other connectors could be written.

Set up Bookwyrm

The documentation website has instruction on how to set up Bookwyrm in a developer environment or production.

Comments
  • Can't move server

    Can't move server

    Tried moving the docker server from a Manjaro based system to and Ubuntu:21.

    Replicated all the volumes to disk and tested, worked on the Manjaro system. Moved everything to the new host, loads fine but when I go to login it gives me "500: Internal Server Error".

    Thought it might be the secret key as it had a £ sign in it, so changed the locale from US to GB. Nada. Moved back to the Manjaro system changed the secret key and it prompted for my password successfully.

    Made sure the disk permissions were correct in the move also.

    Not sure now how to move it now, suggestions welcome.

    bug deployment 
    opened by TrevorMellon 39
  • Cannot add book

    Cannot add book

    When I try to add a book I get error message from the web page.

    Docker logs show the following error:

    [error] 30#30: *112520 directory index of "/app/static/" is forbidden

    Running version "0.3.4

    I noticed that in the docker-compose the volume is mapped as: static_volume:/app/static

    but there is no static_volume in my file structure.

    bug 
    opened by airdogvan 26
  • One Email Address Spam-registered in an instance I help co-admining

    One Email Address Spam-registered in an instance I help co-admining

    Is your feature request related to a problem? Please describe. I have noticed that one particular email address has registered many accounts on an instance I help adminstering. image I looked aroud a bit and didn't find any way to block spam based on email addresses.

    Describe the solution you'd like A way to block registration from certain email addresses.

    Describe alternatives you've considered We could make the instance 'invite-only', but that's sort of our last resort.

    opened by oragegu 23
  • UndefinedTable: relation

    UndefinedTable: relation "bookwyrm_userrelationship" does not exist error

    Describe the bug I went to go load up the development env today after a little while of not using it and came across this error when I ran the docker-compose run --rm web python manage.py migrate cmd to keep up with new migrations:

    docker-compose run --rm web python manage.py migrate
    Creating bookwyrm_web_run ... done
    Operations to perform:
      Apply all migrations: admin, auth, bookwyrm, contenttypes, sessions
    Running migrations:
      Applying bookwyrm.0006_auto_20200221_1702_squashed_0064_merge_20201101_1913...Traceback (most recent call last):
      File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 86, in _execute
        return self.cursor.execute(sql, params)
    psycopg2.errors.UndefinedTable: relation "bookwyrm_userrelationship" does not exist
    
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "/app/manage.py", line 18, in <module>
        execute_from_command_line(sys.argv)
      File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
        utility.execute()
      File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 395, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 328, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 369, in execute
        output = self.handle(*args, **options)
      File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 83, in wrapped
        res = handle_func(*args, **kwargs)
      File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/migrate.py", line 231, in handle
        post_migrate_state = executor.migrate(
      File "/usr/local/lib/python3.9/site-packages/django/db/migrations/executor.py", line 117, in migrate
        state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
      File "/usr/local/lib/python3.9/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
        state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
      File "/usr/local/lib/python3.9/site-packages/django/db/migrations/executor.py", line 245, in apply_migration
        state = migration.apply(state, schema_editor)
      File "/usr/local/lib/python3.9/site-packages/django/db/migrations/migration.py", line 124, in apply
        operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
      File "/usr/local/lib/python3.9/site-packages/django/db/migrations/operations/models.py", line 822, in database_forwards
        schema_editor.add_constraint(model, self.constraint)
      File "/usr/local/lib/python3.9/site-packages/django/db/backends/base/schema.py", line 362, in add_constraint
        self.execute(sql)
      File "/usr/local/lib/python3.9/site-packages/django/db/backends/base/schema.py", line 142, in execute
        cursor.execute(sql, params)
      File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 100, in execute
        return super().execute(sql, params)
      File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 68, in execute
        return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
      File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
        return executor(sql, params, many, context)
      File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 86, in _execute
        return self.cursor.execute(sql, params)
      File "/usr/local/lib/python3.9/site-packages/django/db/utils.py", line 90, in __exit__
        raise dj_exc_value.with_traceback(traceback) from exc_value
      File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 86, in _execute
        return self.cursor.execute(sql, params)
    django.db.utils.ProgrammingError: relation "bookwyrm_userrelationship" does not exist
    

    To Reproduce Run the docker-compose run --rm web python manage.py migrate command

    Expected behavior Migrations should run

    Desktop (please complete the following information):

    • OS: Mac OS
    • Latest git pull

    Additional context I saw a commit with the msg "migrations are fucked" and I'm guessing you've experienced part of this problem before. Happy to provide any other context or try anything out here!

    opened by ibrand 23
  • Re-thinking timelines

    Re-thinking timelines

    Right now, BookWyrm uses the same paradigm for timelines that Mastodon uses. I've never been very happy with this - mainly because I think the local and federated concepts can be confusing to users who aren't already big nerds (said with love) about federation or used to Mastodon. I also don't get a lot of utility from it - both on mastodon and bookwyrm, I pretty much only look at my home timeline.

    To get specific about what the timelines are, how they work, and my own feeling on them:

    Home timeline

    Your default timeline, which shows you posts and boosts from users you follow anywhere in the fediverse

    This works well for me because it shows me content from users who I specifically opted in to seeing. It is familiar from just about every form of social media, and I think it's clear to new users what to expect to see here.

    The main pain point that I see with this is that new users see absolutely nothing here, and it's hard to know how to get started and find out what is going on. The local and federated timeline show you activity and give you a place to start. In mainstream social media, this is often addressed through suggesting people to follow in ways that aren't good for user privacy (like going through your contacts), or in ways that lead to "influencers" (like suggesting high-follower-count users to everybody).

    Local

    Any post (but not replies), with privacy set to public, from non-blocked users

    I think there can a benefit here for small, tight-knit instances because it provided a way for new users to see activity specific to that community. Personally, this doesn't work for me in practice - I'm on a small tight-knit mastodon instance, but I just follow the majority of users and never use the local timeline.

    On a larger, general-purpose instance like bookwyrm.social, I see less benefit and less distinction between local and federated timelines.

    Federated:

    Any post (but not replies), with privacy set to public, from non-blocked users on any instance federated with your instance

    On Mastodon, I find this timeline actively unpleasant - the posts aren't relevant to me, and don't feel like they were written with me (ie, a total stranger) as the intended audience. I've had negative experience with interactions on Mastodon that feel overly familiar or just unwelcomely out-of-the-blue in a way that I haven't on Twitter, and I suspect that the federated timeline is a contributor. When I browse that timeline, the UI is encouraging me to interact with posts from people who are very socially distant from me and taken out of the context they were written, and I rarely find that kind of interaction positive.

    Alternatives

    One alternative is to only have the Home timeline. This is what most social networks (twitter, facebook, goodreads, etc) do. Solely looking at my own use case, this is a perfectly good solution, but I'd like to know more about how other people feel about various timelines and how they'd like to see posts.

    Another alternative is a "friends vs strangers" paradigm, in which there's the home timeline, and a timeline of any post that is not by someone you know, regardless of which instance they are on.

    It's also possible to define a handful of different timelines, and let instance admins decide which ones to use. This gives instances more flexibility, but also means it's less clear to a user how their posts will be presented (a user on an instance that only uses the home timeline might be unpleasantly surprised to find out their posts are shown to everyone in a federated timeline on another instance, for example).

    What does success look like

    I think a successful timeline UI would:

    1. show you the posts you expect to see because of who you follow,
    2. allow you to discover posts near your existing social network
    3. provide a way to get started when you don't know anyone

    I'd really appreciate hearing outside perspectives on this - what feels like it works and what doesn't, ideas or grand dreams about what this should look like, or anything else.

    enhancement UI discussion 
    opened by mouse-reeve 22
  • Keep track of progress through books over time

    Keep track of progress through books over time

    This works towards implementing #56, which is one of my personal must-haves for record-keeping purposes :)

    This is very much an early draft that's very open for feedback, I'm not attached to any details of the implementation here.

    What I've done so far:

    • Created a new ProgressUpdate model/table/migration to store progress updates, which are associated with a ReadThrough
    • Added a "current page" input to the readthrough input which populates the existing pages_read field and creates a ProgressUpdate record on save
    • Added basic UI to the book page to display reading progress, hidden by default and shown with a query param

    Base functionality:

    • [x] Test coverage (and fixes, if I broke anything, getting testing going now)
    • [x] Add ability to delete a progress update
    • [x] Allow specifying progress as a percentage, mainly for ebooks (the model supports this already, but the UI/logic is not there)
    • [ ] Figure out what to do if a book doesn't have a page count populated - should we allow users to update the book record, or store a per-user page count that overrides/fills in for any page count on the book level? What does that UI look like?

    Improvements:

    • [ ] Add option to add a comment along with the progress udpate
    • [ ] Optionally post progress updates on ActivityPub as a new type of status (there's some code working towards this that's not used yet)
    • [ ] The ActivityPub statuses will be pretty duplicative of the ProgressUpdate model. We could possibly have them be the same thing, that would just require having some, statuses (private maybe?) that never actually get posted to ActivityPub or possibly not even show up in your private feed, which may be more trouble than it's worth.

    Nice to have but not essential:

    • [x] Add a quick update on the feed sidebar
    • [ ] Make it look prettier
    • [ ] Add (optional) Javascript for showing the progress updates w/o reloading the page
    • [ ] Show a chart of progress over time
    • [ ] Get clever and convert when switching between pages/percent

    I think that's most of it, although I'll probably realize later I forgot something. Right now this is just on my local dev instance, but I'll probably put it up on my staging instance once I get it running again. Happy to hear any feedback on style/approach/etc!

    opened by cincodenada 21
  • Can't follow newly created users from Mastodon

    Can't follow newly created users from Mastodon

    Describe the bug I tried to follow a user on wyrms.de from various Mastodon instances. The profile is not restricted. It always showed that the account was followed but when refreshing the page, it shows "Cancel follow request". but the user doesn't get a notification that someone tried to follow them. There's no corresponding log in flower.

    I tried to reproduce that and found I can follow old users from Mastodon just fine but not new ones (there were no new users between August 2021 and this January). I can fetch their profiles to Mastodon but the Follow becomes a Follow Request that's never answered. Nothing in flower.

    To Reproduce Steps to reproduce the behavior: Try to follow @[email protected] from any Mastodon instance.

    Additional context wyrms.de is on bw 0.3.0

    bug activitypub 
    opened by tofuwabohu 20
  • Preview Card doesn't display non-latin characters properly

    Preview Card doesn't display non-latin characters properly

    Describe the bug Preview Card doesn't display non-latin characters properly

    To Reproduce Steps to reproduce the behavior:

    1. Follow with a mastodon account the bookwyrm account that is about to publish a review the name of the book non-latin
    2. Publish review
    3. See the preview card with not-properly-displayed-non-latin-chars

    Expected behavior Display preview cards with non-latin book names

    Screenshots image

    Instance Dans Mon Catalogue: book.dansmonorage.blue

    bug 
    opened by oragegu 20
  • Lists completely broken - 502 error

    Lists completely broken - 502 error

    Describe the bug

    Lists don't appear to work at all except for the admin user. If another user clicks on them nothing happens. Sends a CPU core up to 100% and eventually goes to a 502 after about a minute. This is for public lists that I created (as admin) if that may be relevant.

    In further test I tried to create a list as a normal (editor) user. It shows the dialogue to give the list a name etc, but then after clicking to create the list it does the same thing. Freezes. Puts a CPU core at 100% and 502s.

    I've put all my lists to private until it can be investigated. I have no other user public lists currently.

    bug 
    opened by marcusyoung 19
  • Design: Thinking of the density and hierarchy of feed elements

    Design: Thinking of the density and hierarchy of feed elements

    I was browsing profiles, to discover books and other like-minded readersn and that experience gave me a few remarks:

    ("should" is to be taken as "the author of this issue would like if/would find a use in")

    • Feed activities should be filtered by types. I may want to see only comments or critiques.
    • Feed activities should be displayed differently depending on the type.
      Some types ("started reading a book", "finished reading a book") don't need to take much space, while other types ("wrote a comment", "wrote a critique") should be more prevalent (compared to other types), and star ratings can be easily confused with other types due to the lack of text
    • Books without a description take up a whole lotta space for nothing

    Here's some rules I set:

    • We should understand the type of update at first sight
    • Book previews are most useful where some context is needed: in response to a critique or a comment
    • Comments and critiques should not be cut (unless they run really long)
    • All the actions should be grouped together

    Here's what I have in mind:

    Desktop HD

    Of course, it's just a very basic proposal, and can be amended. Looking at it, I'm thinking that a "Write a comment" link could be inserted at the end of the critique/comment text, so the "reply" flow is more visible.

    If time allows I'll open a PR to better show what I have in mind.

    opened by joachimesque 19
  • Need help in building a Bookwyrm website

    Need help in building a Bookwyrm website

    I followed the guide step-by-step at https://docs.joinbookwyrm.com/installing-in-production.html ,with two slight differences.

    1. I didn't set up external storage, and the relevant option in .env is false
    2. my web server is Apache, so I followed the official documentation for reverse-proxy instructions to configure I also avoided the port conflicts, etc. From the output after typing the command, everything seems to be working fine. But when I finally opened the set URL, it was 403. It seems that it is difficult for me to figure out what the problem is. But I would like to ask if Bookwyrm has any default documentation for websites (e.g. index.html, index.php, etc.) that I need to do additional settings to avoid 403?
    bug 
    opened by Guanchishan 18
  • Import failed

    Import failed

    I tried importing a list of books but all of the items failed. It's not clear to me why they failed, as the titles, authors, and ISBNs all resolved. Can you have a look to see what needs done to resolve the problem?

    opened by DougNix 1
  • [Feature request] Higlights

    [Feature request] Higlights

    Is your feature request related to a problem? Please describe. It's not an existing problem, but rather a missing feature to highlight specific book passages, paragraphs, or sections to comment on and discuss in particular.

    Describe the solution you'd like In bookwyrm there already is the ability to comment on an entire book freely, or to share a mere quote, without further comment, or to leave a review. All of these features are very good, but since bookwyrm is principally a social network at heart how about interacting with authors and readers through section highlights for books?

    This would allow the poster to post say a 500 character snippet from a book, and then require them to comment on that snippet specifically. Perhaps to suggest a correction, or provide wider context, more links for further research on the highlighted section. This would initiate a discussion, with replies, who are of course also able to highlight passages and must comment on them further.

    Additional context This idea occurred to me when I was recently reading a book and was confused by a section in it, wishing I could ask either the author, or other readers for a clarification of a specific passage of text.

    opened by marek-lach 2
  • Open Graph tag support for lists

    Open Graph tag support for lists

    Is your feature request related to a problem? Please describe.

    When I add a link to a list in e.g. Slack (probably Mastodon/Twitter too?) I get a generic "card" like this:

    Screen Shot 2023-01-05 at 12 15 42 PM

    Describe the solution you'd like

    If I'm linking to a list, it would be useful to have list-specific info:

    • name of the list
    • description
    • created/curated by
    • maybe number of books?
    opened by asmaloney 0
  • Change edition in Book List

    Change edition in Book List

    Is your feature request related to a problem? Please describe.

    I added a bunch of books to a list, not paying much attention to the editions.

    Once I started making my own list of books I realized that a lot of the editions were incorrect.

    So I updated the data (sometimes adding new editions), then updated my books to the editions I wanted.

    But there doesn't seem to be a way to change the edition of a book already in a list. So for each one I had to:

    • add the book to the list
    • change the sort order
    • delete the old edition for each one

    With a bunch of scrolling around in between (and who knows how much database activity).

    Describe the solution you'd like

    It would be great to be able to select an edition when editing a list. Maybe adding a link like there is on the main book pages. Something like:

    Screen Shot 2023-01-04 at 23 33 30 PM

    Instead of going to a new page, put the editions in a list in a dialog for selection. (This would be great for other cases as well - but maybe this is a separate issue.)

    opened by asmaloney 0
  • Show reviews in full length when federating with other platforms

    Show reviews in full length when federating with other platforms

    Is your feature request related to a problem? Please describe. When I open my bookwyrm profile on Mastodon, I notice the following inconsistencies:

    • Comments are shown in full length; the context (comment on {book title}) is shown in the end and is not localized
    • Review texts are cropped; the context is shown in the beginning (review of {book title}) and is localized.

    See screenshots.

    Describe the solution you'd like Comments and reviews should have a consistent behavior. The reviews are shown in full length (like the comments) without needing to open the website. Furthermore, the post format of a comment and review should look the same. Instead of showing (comment on {book title}) at the end of the post, it should be shown in the beginning:

    Comment on {book title}:
    {comment text}
    

    Finally, the posts should also have a consistent localization behavior. Some posts are shown in English ("comment on...", "...finished reading...") while others are localized (e.g., reviews).

    Describe alternatives you've considered Use the comment review format for all posts and crop the comments. I prefer not cropping the texts though since I think it shouldn't be necessary to open another website as it takes you out of the context. If the user wants to view the review on bookwyrm, they could just click on the Mastodon UI to view it on the origin instance.

    Additional context Review format: image Comment format: image image

    opened by eszter007 0
Releases(v0.5.3)
  • v0.5.3(Dec 11, 2022)

    What's Changed

    • Dark theme contrast by @viviicat in https://github.com/bookwyrm-social/bookwyrm/pull/2459
    • Adds database fields for legal page/impressum by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2450
    • Fixes bug that caused imports to be disabled unexpectedly by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2473
    • Fix serialization of JSON-LD subarrays by @indutny in https://github.com/bookwyrm-social/bookwyrm/pull/2452
    • Enable nginx caching and optimizations. by @osresearch in https://github.com/bookwyrm-social/bookwyrm/pull/2465
    • goodreads_key for books editable by @jaschaurbach in https://github.com/bookwyrm-social/bookwyrm/pull/2488
    • Add apple-touch-icon to global layout by @chdorner in https://github.com/bookwyrm-social/bookwyrm/pull/2490
    • Isfdb ID for books and authors by @jaschaurbach in https://github.com/bookwyrm-social/bookwyrm/pull/2482
    • Adds email config admin view by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2494
    • Add new user tab listing only reviews and comments by @chdorner in https://github.com/bookwyrm-social/bookwyrm/pull/2489
    • Manual email confirm by @jaschaurbach in https://github.com/bookwyrm-social/bookwyrm/pull/2492
    • Adds "owner" role by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2478

    New Contributors

    • @rickosborne made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2466
    • @indutny made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2452
    • @osresearch made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2465
    • @chdorner made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2490

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.5.2...v0.5.3

    Source code(tar.gz)
    Source code(zip)
  • v0.5.2(Nov 25, 2022)

    What's Changed

    • Allow admins to disable starting imports by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2406
    • Fix Quick Typo by @henryistaken in https://github.com/bookwyrm-social/bookwyrm/pull/2414
    • show otp_secret when setting up 2fa by @jaschaurbach in https://github.com/bookwyrm-social/bookwyrm/pull/2394
    • Don't use task for password reset emails by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2426
    • Show review counts in search results by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2448
    • Fixes error on importing from inventaire by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2447
    • Don't start imports with empty CSVs by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2449

    New Contributors

    • @henryistaken made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2414

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.5.1...v0.5.2

    Source code(tar.gz)
    Source code(zip)
  • v0.5.1(Nov 17, 2022)

    What's Changed

    • Let users and admins cancel imports by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2333
    • Allow users to temporarily deactivate their accounts by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2324
    • Remove TFA from user by @jaschaurbach in https://github.com/bookwyrm-social/bookwyrm/pull/2381
    • Fixes permissions on settings invite request page by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2395

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.4.6...v0.5.1

    Source code(tar.gz)
    Source code(zip)
  • v0.4.6(Nov 3, 2022)

    What's Changed

    • hide replies to posts user cannot see by @hughrun in https://github.com/bookwyrm-social/bookwyrm/pull/2277
    • Normalise ISBNs for searching by @hughrun in https://github.com/bookwyrm-social/bookwyrm/pull/2282
    • conditional display of notifs button by @mooseyboots in https://github.com/bookwyrm-social/bookwyrm/pull/2288
    • Fix star rating default and minimum by @hughrun in https://github.com/bookwyrm-social/bookwyrm/pull/2293
    • Adds celery status view by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2298
    • Make it so that finishing a book cannot happen in the future by @redshiftss in https://github.com/bookwyrm-social/bookwyrm/pull/2316
    • Normalize stored ISNI by @chambersh1129 in https://github.com/bookwyrm-social/bookwyrm/pull/2314
    • Enable optional 2FA by @hughrun in https://github.com/bookwyrm-social/bookwyrm/pull/2294
    • Close dropdown menu when opening one of its modal by @obrenckle in https://github.com/bookwyrm-social/bookwyrm/pull/2322
    • Send confirmation emails directly, rather than with celery by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2326
    • Imports admin by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2327

    New Contributors

    • @mooseyboots made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2288
    • @redshiftss made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2316
    • @chambersh1129 made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2314
    • @obrenckle made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2322

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.4.5...v0.4.6

    Source code(tar.gz)
    Source code(zip)
  • v0.4.5(Aug 6, 2022)

    What's Changed

    • Add guided tour / walkthrough by @hughrun in https://github.com/bookwyrm-social/bookwyrm/pull/2168
    • Adds Polish locale by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2251
    • Add notifications count on mobile header by @joachimesque in https://github.com/bookwyrm-social/bookwyrm/pull/2255
    • Fixes search pagination by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2254

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.4.4...v0.4.5

    Source code(tar.gz)
    Source code(zip)
  • v0.4.4(Jul 15, 2022)

    What's Changed

    A handful of security updates:

    • Use HTTP post for CSV export by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2216
    • Removes insecure redirects by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2222
    • Shelf edit perms by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2223
    • Remove redirecting to "next" by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2225
    • Check permissions when creating a status by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2228
    • Password validation by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2229

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.4.3...v0.4.4

    Source code(tar.gz)
    Source code(zip)
  • v0.4.3(Jul 10, 2022)

    What's Changed

    • Admin perms by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2197
    • Move deleted users to separate tab in admin panel by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2199
    • New and improved warnings on the admin dashboard by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2202
    • Fixes bug in notifications breaking follows by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2208
    • Show content warning in notification status previews by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2210
    • Fixes numbering on book lists by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2211
    • Use POST instead of GET for logout function by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2214

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/0.4.2...v0.4.3

    Source code(tar.gz)
    Source code(zip)
  • v0.4.2(Jul 7, 2022)

    What's Changed

    • Bump django from 3.2.13 to 3.2.14 by @dependabot in https://github.com/bookwyrm-social/bookwyrm/pull/2183
    • Update password reset copy so as not to reveal whether the email exists by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2190
    • Notifications refactor by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2082

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.4.1...v0.4.2

    Source code(tar.gz)
    Source code(zip)
  • v0.4.1(Jul 4, 2022)

    What's Changed

    • Search refactor by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2139
    • add page numbers to comment and quote statuses by @hughrun in https://github.com/bookwyrm-social/bookwyrm/pull/2148
    • Create SECURITY.md by @JamieSlome in https://github.com/bookwyrm-social/bookwyrm/pull/2159
    • Add warning to dashboard if email sender looks misconfigured by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2166
    • Html sanitizer by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2173

    New Contributors

    • @JamieSlome made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2159

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.4.0...v0.4.1

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(May 30, 2022)

    What's Changed

    • Add 'Stopped Reading' shelf by @tversteeg in https://github.com/bookwyrm-social/bookwyrm/pull/1934
    • Uses custom date select widget for publication dates by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2044
    • Export user book data as CSV by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/1556
    • Isbn check before search by @willhoh in https://github.com/bookwyrm-social/bookwyrm/pull/1942
    • Add names of books/lists/authors/etc as slugs, redirect to slugified version of the page by @viviicat in https://github.com/bookwyrm-social/bookwyrm/pull/2007
    • Calibre import by @Ryuno-Ki in https://github.com/bookwyrm-social/bookwyrm/pull/2093

    Language supprt

    Adds Finnish and Romanian locales

    New Contributors

    • @tversteeg made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/1934
    • @denmch made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2103
    • @maeserichar made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2111
    • @maxheadroom made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2104
    • @Ryuno-Ki made their first contribution in https://github.com/bookwyrm-social/bookwyrm/pull/2093

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.3.4...v0.4.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.4(Mar 17, 2022)

    What's Changed

    • Allow book subjects to be edited by @Tak in https://github.com/bookwyrm-social/bookwyrm/pull/2000
    • Improves user admin view by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2015
    • Array input field for forms by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2020
    • Schedules automod tasks by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/1974
    • Run miscellaneous scripts during update by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/2025
    • Custom question option and field for spammed bookwyrm instances by @oragegu in https://github.com/bookwyrm-social/bookwyrm/pull/1998
    • Fixes for dark theme by @viviicat in https://github.com/bookwyrm-social/bookwyrm/pull/2031
    • Create another edition for existing work by @mouse-reeve in https://github.com/bookwyrm-social/bookwyrm/pull/1973

    Full Changelog: https://github.com/bookwyrm-social/bookwyrm/compare/v0.3.3...v0.3.4

    Source code(tar.gz)
    Source code(zip)
Owner
BookWyrm
Social reading and reviewing, decentralized with ActivityPub
BookWyrm
Automatically load and dump your dataclasses 📂🙋

file dataclasses Installation By default, filedataclasses comes with support for JSON files only. To support other formats like YAML and TOML, filedat

Alon 1 Dec 30, 2021
Proyecto - Análisis de texto de eventos históricos

Acceder al código desde Google Colab para poder ver de manera adecuada todas las visualizaciones y poder interactuar con ellas. Link de acceso: https:

1 Jan 31, 2022
The functions we created are included in a script. The necessary parts for pre-processing were taken. Analysis complete.

Feature-Engineering The functions we created are included in a script. The necessary parts for pre-processing were taken. Analysis complete. Business

Ayşe Nur Türkaslan 4 Oct 17, 2021
🍕 A small app with capabilities ordering food and listing them with pub/sub pattern

food-ordering A small app with capabilities ordering food and listing them. Prerequisites Docker Run Tests docker-compose run --rm web ./manage.py tes

Muhammet Mücahit 1 Jan 14, 2022
A tool to help you to do the monthly reading requirements

Monthly Reading Requirement Auto ⚙️ A tool to help you do the monthly reading requirements Important ⚠️ Some words can't be translated Links: Synonym

Julian Jauk 2 Oct 31, 2021
To effectively detect the faulty wafers

wafer_fault_detection Aim of the project: In electronics, a wafer (also called a slice or substrate) is a thin slice of semiconductor, such as crystal

Arun Singh Babal 1 Nov 06, 2021
Albert launcher extension for rolling dice.

dice-roll-albert-ext Extension for rolling dice in Albert launcher Installation Locate the modules directory in the Python extension data directory. T

Jonah Lawrence 1 Nov 18, 2021
This app is to use algorithms to find the root of the equation

In this repository, I made an amazing app with tkinter python language and other libraries the idea of this app is to use algorithms to find the root of the equation I used three methods from numeric

Mohammad Al Jadallah 3 Sep 16, 2022
Performance monitoring and testing of OpenStack

Browbeat Browbeat is a performance tuning and analysis tool for OpenStack. Browbeat is free, Open Source software. Analyze and tune your Cloud for opt

cloud-bulldozer 83 Dec 14, 2022
Project of the MSEC_LDD . group

HackathonJuntionXHN Project of team MSEC_LQĐ What did we do? Building application to generate whitelist regex for Web application firewall How to setu

Nguyễn Mạnh Cường 0 Dec 19, 2021
Random pass word generator made with python. PyQt5 module is used to design GUI.

Differences in this GUI program : Default titlebar removed Custom Minimize,Maximize and Close Buttons Drag & move window from any point Program work l

Dimuth De Zoysa 1 Jan 26, 2022
A python library what works with numbers.

pynum A python library what works with numbers. Prime Prime class have everithing you want about prime numbers. check_prime The check_prime method is

Mohammad Mahdi Paydar Puya 1 Jan 07, 2022
A telegram bot which programed to countdown.

countdown-vi this is a telegram bot which programed to countdown. usage well, first you should specify a exact interval. there is 5 column, very first

Arya Shabane 3 Feb 15, 2022
Ballcone is a fast and lightweight server-side Web analytics solution.

Ballcone Ballcone is a fast and lightweight server-side Web analytics solution. It requires no JavaScript on your website. Screenshots Design Goals Si

Dmitry Ustalov 49 Dec 11, 2022
This is the core of the program which takes 5k SYMBOLS and looks back N years to pull in the daily OHLC data of those symbols and saves them to disc.

This is the core of the program which takes 5k SYMBOLS and looks back N years to pull in the daily OHLC data of those symbols and saves them to disc.

Daniel Caine 1 Jan 31, 2022
Scripts used in the RayStation medical radiation dosimetry treatment planning system

Med Phys Scripts These are scripts that I, the medical physics assistant at Cookeville Regional Medical Center, wrote for use in our radiation therapy

Kaley White 2 Oct 19, 2022
Git Hooks Tutorial.

Git Hooks Tutorial My public talk about this project at Sberloga: Git Hooks Is All You Need 1. Git Hooks 101 Init git repo: mkdir git_repo cd git_repo

Dani El-Ayyass 17 Oct 12, 2022
Strawberry Benchmark With Python

Strawberry benchmarks these benchmarks have been made to compare the performance of dataloaders and joined database queries. How to use You can run th

Doctor 4 Feb 23, 2022
Site de gestion de cave à vin utilisant une BDD manipulée avec SQLite3 via Python

cave-vin Site de gestion de cave à vin utilisant une bdd manipulée avec MySQL ACCEDER AU SITE : Pour accéder à votre cave vous aurez besoin de lancer

Elouann Lucas 0 Jul 05, 2022
Final project for ENGG 5402 Advanced Robotics in CUHK

Final project Final project Update Foundations Ubuntu virtual machine Ubuntu How to use Github to keep tracking the change of code version? Docker Set

Junjia Liu 8 Aug 01, 2022