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
Code and data for learning to search in local branching

Code and data for learning to search in local branching

Defeng Liu 7 Dec 06, 2022
Simple python script for AD enumeration

AutoAD - Simple python script for AD enumeration This tool was created on my spare time to help fellow penetration testers in automating the basic enu

Mohammad Arman 28 Jun 21, 2022
→ 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
A cookiecutter to start a Python package with flawless practices and a magical workflow 🧙🏼‍♂️

PyPackage Cookiecutter This repository is a cookiecutter to quickly start a Python package. It contains a ton of very useful features 🐳 : Package man

Daniel Leal 16 Dec 13, 2021
This program can calculate the Aerial Distance between two cities.

Aerial_Distance_Calculator This program can calculate the Aerial Distance between two cities. This repository include both Jupyter notebook and Python

InvisiblePro 1 Apr 08, 2022
Demo of patching a python context manager

patch-demo-20211203 demo of patching a python context manager poetry install poetry run python -m my_great_app to run the code poetry run pytest to te

Brad Smith 1 Feb 09, 2022
Restaurant-finder - Restaurant finder With Python

restaurant-finder APIs /restaurants query-params: a. filter: column based on whi

Kumar saurav 1 Feb 22, 2022
Generate Openbox Menus from a easy to write configuration file.

openbox-menu-generator Generate Openbox Menus from a easy to write configuration file. Example Configuration: ('#' indicate comments but not implement

3 Jul 14, 2022
Student Management System Built With Python

Student-Management-System Group Members 19BCE183 - Patel Sarthak 19BCE195 - Patel Jinil 19BCE220 - Rana Yash Project Description In our project Studen

Sarthak Patel 6 Oct 20, 2022
This Program Automates The Procces Of Adding Camos On Guns And Saving Them On Modern Warfare Guns

This Program Automates The Procces Of Adding Camos On Guns And Saving Them On Modern Warfare Guns

Flex Tools 6 May 26, 2022
Basic infrastructure for writing scripts in Python

Base Script Python is an excellent language that makes writing scripts very straightforward. Over the course of writing many scripts, we realized that

Deep Compute, LLC 9 Jan 07, 2023
A script that will warn you, by opening a new browser tab, when there are new content in your favourite websites.

web check A script that will warn you, by opening a new browser tab, when there are new content in your favourite websites. What it does The script wi

Jaime Álvarez 52 Mar 15, 2022
A simple spyware in python.

Spyware-Python- Dependencies: Python 3.x OpenCV PyAutoGUI PyMongo (for mongodb connection) Flask (Web Server) Ngrok (helps us push our fla

Abubakar 3 Sep 07, 2022
Python Cheat Sheet

Introduction Pysheeet was created with intention of collecting python code snippets for reducing coding hours and making life easier and faster. Any c

CHANG-NING TSAI 7.5k Dec 30, 2022
Python Common things by Problem Fighter Library, (Exception, Debug Log, etc.)

In the name of God, the Most Gracious, the Most Merciful. PF-PY-Common Documentation Install and update using pip: pip install -U xxxx Please find the

Problem Fighter 3 Jan 15, 2022
Runtime fault injection platform by Daniele Rizzieri (2021)

GDBitflip [v1.04] Runtime fault injection platform by Daniele Rizzieri (2021) This platform executes N times a binary and during each execution it inj

Daniele Rizzieri 1 Dec 07, 2021
KiCad bus length matching script.

KiBus length matching script This script implements way to monitor multiple nets, combined into a bus that needs to be length matched

Piotr Esden-Tempski 22 Mar 17, 2022
Simple and easy to use python API for the COVID registration booking system of the math department @ unipd (torre archimede)

Simple and easy to use python API for the COVID registration booking system of the math department @ unipd (torre archimede). This API creates an interface with the official browser, with more useful

Guglielmo Camporese 4 Dec 24, 2021
A very terrible python-based programming language that uses folders instead of text files

PYFolders by Lewis L. Foster PYFolders is a very terrible python-based programming language that uses folders instead of regular text files. In this r

Lewis L. Foster 5 Jan 08, 2022
Polypheny Connector for Python

Polypheny Connector for Python This enables Python programs to access Polypheny databases, using an API that is compliant with the Python Database API

Polypheny 3 Jan 03, 2022