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
How to access and display MyEnergi data

MyEnergi-Python-Example How to access and display MyEnergi data Windows PC Install a version of Python typically 3.10 The Python code here needs addit

G6EJD 8 Nov 28, 2022
Sample microservices application demo

Development mode docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d or export COMPOSE_FILE='docker-compose.yml:docker-compose.dev.ym

Konstantinos Bairaktaris 1 Nov 14, 2021
Various hdas (Houdini Digital Assets)

aaTools My various assets for Houdini "ms_asset_loader" - Custom importer assets from Quixel Bridge "asset_placer" - Tool for placment sop geometry on

9 Dec 19, 2022
A modern Python build backend

trampolim A modern Python build backend. Features Task system, allowing to run arbitrary Python code during the build process (Planned) Easy to use CL

Filipe Laíns 39 Nov 08, 2022
This repository contains the code for the python introduction lab

This repository contains the code for the python introduction lab. The purpose is to have a fairly simple python assignment that introduces the basic features and tools of python

1 Jan 24, 2022
A student information management system in Python

Student-information-management-system 本项目是一个学生信息管理系统,这个项目是用Python语言实现的,也实现了图形化界面的显示,同时也实现了管理员端,学生端两个登陆入口,同时底层使用的是Redis做的数据持久化。 This project is a stude

liuyunfei 7 Nov 15, 2022
A Python version of Canvacord

A copy of canvacord made in python! Table of contents Installation Examples Creating Images Links Downloads Installation Run any of these commands in

10 Mar 28, 2022
Grade 8 Version of Space Invaders

Space-Invaders Grade 8 Version of Space Invaders Compatability This program is Python 3 Compatable, and not Python 2 Compatable because i haven't test

Space64 0 Feb 16, 2022
A simple watcher for the XTZ/kUSD pool on Quipuswap

Kolibri Quipuswap Watcher This repo holds the source code for the QuipuBot bot deployed to the #quipuswap-updates channel in the Kolibri Discord Setup

Hover Labs 1 Nov 18, 2021
Location of public benchmarking; primarily final results

CSL_public_benchmark This repo is intended to provide a periodically-updated, public view into genome sequencing benchmarks managed by HudsonAlpha's C

HudsonAlpha Institute for Biotechnology 15 Jun 13, 2022
Pokemon catch events project to demonstrate data pipeline on AWS

Pokemon Catches Data Pipeline This is a sample project to practice end-to-end data project; Terraform is used to deploy infrastructure; Kafka is the t

Vitor Carra 4 Sep 03, 2021
A wrapper around the python Tkinter library for customizable and modern ui-elements in Tkinter

CustomTkinter With CustomTkinter you can create modern looking user interfaces in python with tkinter. CustomTkinter is a tkinter extension which prov

4.9k Jan 02, 2023
→ Plantilla de registro para Python

🔧 Pasos Necesarios CMD 🖥️ SOCKETS pip install sockets 🎨 COLORAMA pip install colorama 💻 Código register-by-inputs from turtle import color # Impor

Panda.xyz 4 Mar 12, 2022
Checking-For-Fibonacci-Syquence-In-Python - Checking For Fibonacci Syquence In Python

Checking-For-Fibonacci-Syquence-In-Python The Fibonacci sequence is a set of num

John Michael Oliba 1 Feb 14, 2022
This Python library searches through a static directory and appends artist, title, track number, album title, duration, and genre to a .json object

This Python library searches through a static directory (needs to match your environment) and appends artist, title, track number, album title, duration, and genre to a .json object. This .json objec

Edan Ybarra 1 Jun 20, 2022
Automated Changelog/release note generation

Quickly generate changelogs and release notes by analysing your git history. A tool written in python, but works on any language.

Documatic 95 Jan 03, 2023
Synchrosqueezing, wavelet transforms, and time-frequency analysis in Python

Synchrosqueezing is a powerful reassignment method that focuses time-frequency representations, and allows extraction of instantaneous amplitudes and frequencies

John Muradeli 382 Jan 06, 2023
GibMacOS - Py2/py3 script that can download macOS components direct from Apple

Py2/py3 script that can download macOS components direct from Apple Can also now build Internet Recovery USB installers from Windows using dd and 7zip

CorpNewt 4.8k Jan 02, 2023
A python script providing an idea of how a MindSphere application, e.g., a dashboard, can be displayed around the clock without the need of manual re-authentication on enforced session expiration

A python script providing an idea of how a MindSphere application, e.g., a dashboard, can be displayed around the clock without the need of manual re-authentication on enforced session expiration

MindSphere 3 Jun 03, 2022
Easy way to build a SaaS application using Python and Dash

EasySaaS This project will be attempt to make a great starting point for your next big business as easy and efficent as possible. This project will cr

xianhu 3 Nov 17, 2022