Compare commits

..

463 commits

Author SHA1 Message Date
Mouse Reeve 14e73d18dd Merge branch 'main' into production 2022-05-31 10:41:58 -07:00
Mouse Reeve 02a315be00 Merge branch 'main' into production 2022-05-30 08:23:26 -07:00
Mouse Reeve 3a8aff938b Merge branch 'main' into production 2022-05-19 14:24:55 -07:00
Mouse Reeve e915335932 Merge branch 'main' into production 2022-05-16 14:42:47 -07:00
Mouse Reeve b1f3253aa7 Merge branch 'main' into production 2022-05-16 10:00:19 -07:00
Mouse Reeve 12a5eaba3e Merge branch 'main' into production 2022-05-14 08:48:07 -07:00
Mouse Reeve dc0dede105 Merge branch 'main' into production 2022-05-09 12:41:27 -07:00
Mouse Reeve 05cf3ce344 Merge branch 'main' into production 2022-04-29 15:42:39 -07:00
Mouse Reeve 3ad09308b5 Merge branch 'main' into production 2022-04-26 08:30:35 -07:00
Mouse Reeve c10c14b2c9 Merge branch 'main' into production 2022-04-26 07:50:39 -07:00
Mouse Reeve f64a909751 Merge branch 'main' into production 2022-04-08 14:05:32 -07:00
Mouse Reeve f27fe05008 Merge branch 'main' into production 2022-03-26 12:56:11 -07:00
Mouse Reeve 4308137390 Merge branch 'main' into production 2022-03-26 08:58:11 -07:00
Mouse Reeve 588d2da2c6 Merge branch 'main' into production 2022-03-24 09:46:32 -07:00
Mouse Reeve c1c0eed92c Merge branch 'main' into production 2022-03-19 07:25:18 -07:00
Mouse Reeve bb89766de0 Merge branch 'main' into production 2022-03-18 07:41:45 -07:00
Mouse Reeve e2197b3e7d Merge branch 'main' into production 2022-03-17 10:36:43 -07:00
Mouse Reeve 4a0e1bdd46 Merge branch 'main' into production 2022-03-17 10:07:27 -07:00
Mouse Reeve 67bb154008 Merge branch 'main' into production 2022-03-17 08:56:15 -07:00
Mouse Reeve 6f9488f7a8 Merge branch 'main' into production 2022-03-15 12:43:11 -07:00
Mouse Reeve 35e27a4443 Merge branch 'main' into production 2022-03-13 13:33:00 -07:00
Mouse Reeve 3ebdd432ec Merge branch 'main' into production 2022-03-13 12:09:47 -07:00
Mouse Reeve a54a8b7573 Merge branch 'main' into production 2022-03-11 16:06:02 -08:00
Mouse Reeve 91e8a9ac19
Merge pull request #1995 from bookwyrm-social/revert-broken-themes
Revert broken themes commit
2022-03-04 18:36:01 -08:00
Mouse Reeve 394f6fea87 Revert "Adds custom compile management command"
This reverts commit b0c0af9617.
2022-03-04 18:14:46 -08:00
Mouse Reeve 4baba480c5 Merge branch 'main' into production 2022-03-04 17:59:09 -08:00
Mouse Reeve 64b5a18d7b Merge branch 'main' into production 2022-03-01 14:53:11 -08:00
Mouse Reeve dfba63f977 Merge branch 'main' into production 2022-03-01 12:20:27 -08:00
Mouse Reeve 8de5a44181 Merge branch 'main' into production 2022-02-24 17:53:29 -08:00
Mouse Reeve 3e78164039 Include packaging dep 2022-02-18 18:19:28 -08:00
Mouse Reeve abfd094337 Merge branch 'main' into production 2022-02-18 18:17:43 -08:00
Mouse Reeve 0e8fffe001 Merge branch 'main' into production 2022-02-12 10:29:49 -08:00
Mouse Reeve 0f1757b278 Merge branch 'main' into production 2022-02-12 10:14:47 -08:00
Mouse Reeve f1381341b4 Merge branch 'main' into production 2022-02-09 12:41:23 -05:00
Mouse Reeve 6bf9fe7295 Merge branch 'main' into production 2022-02-04 20:23:35 -08:00
Mouse Reeve 657d7b04c1 Merge branch 'main' into production 2022-02-04 19:52:16 -08:00
Mouse Reeve 0a6c14dc8a Merge branch 'main' into production 2022-02-04 18:13:00 -08:00
Mouse Reeve 771435168b Merge branch 'main' into production 2022-02-04 15:45:20 -08:00
Mouse Reeve 36dbf64b12 Merge branch 'main' into production 2022-02-03 14:09:09 -08:00
Mouse Reeve 75726460d7 Merge branch 'main' into production 2022-02-03 11:14:19 -08:00
Mouse Reeve d04345ec08 Merge branch 'main' into production 2022-02-02 13:25:42 -08:00
Mouse Reeve bf573a0871 Merge branch 'main' into production 2022-02-02 12:41:05 -08:00
Mouse Reeve 43ca5f466c Merge branch 'main' into production 2022-02-02 11:06:10 -08:00
Mouse Reeve 47be375de3 Merge branch 'main' into production 2022-01-30 07:19:44 -08:00
Mouse Reeve cc1496cf8f Merge branch 'main' into production 2022-01-30 07:13:11 -08:00
Mouse Reeve dd16ccd093 Merge branch 'main' into production 2022-01-30 06:33:08 -08:00
Mouse Reeve 4a81786236 Merge branch 'main' into production 2022-01-20 17:20:29 -08:00
Mouse Reeve b46ec147da Merge branch 'main' into production 2022-01-20 16:46:45 -08:00
Mouse Reeve 589a743cfb Merge branch 'main' into production 2022-01-20 15:25:41 -08:00
Mouse Reeve 2dd39517c3 Merge branch 'main' into production 2022-01-18 13:46:53 -08:00
Mouse Reeve 4fad83e910 Merge branch 'main' into production 2022-01-18 06:58:13 -08:00
Mouse Reeve 56c6ee8879 Merge branch 'main' into production 2022-01-17 11:09:01 -08:00
Mouse Reeve 3d036386f9 Merge branch 'main' into production 2022-01-17 08:23:50 -08:00
Mouse Reeve 53754546c2 Merge branch 'main' into production 2022-01-13 11:10:41 -08:00
Mouse Reeve 6a7c38003d Removes duplicate update command 2022-01-13 09:25:43 -08:00
Mouse Reeve 584da682ee Merge branch 'main' into production 2022-01-13 09:24:05 -08:00
Mouse Reeve c102106dc2
Merge pull request #1803 from cincodenada/run-rm-update
Use run --rm in `update` command
2022-01-13 08:49:45 -08:00
Mouse Reeve 9fb7280366
Merge pull request #1751 from cincodenada/open-telemetry
Adds OpenTelemetry exporter for use with various monitoring tools
2022-01-12 17:28:47 -08:00
Mouse Reeve 26482232c9 Merge branch 'main' into production 2022-01-11 13:32:59 -08:00
Joel Bradshaw 1dc5467969 Drop --no-cache as well
Since several of our services share the same image, this should speed up
building a good bit, and --no-cache shouldn't be necessary - if we're
still having issues with things not updating, we should figure out how
to arrange the Dockerfile, but I think it should be fine as-is.
2022-01-10 23:22:12 -08:00
Joel Bradshaw 83964f4e2b Merge branch 'production' into open-telemetry 2022-01-10 23:20:05 -08:00
Joel Bradshaw 320ac617cb Add default values for OTEL settings 2022-01-10 23:17:22 -08:00
Joel Bradshaw 7ab8209046 Use runweb to update, and up -d instead of restart
Partial fix for #1785 - preivously we would run the migrate and collect
commands with exec, which would run them in the running (and thus old)
contianers, but with the new code. This caused issues when, for example,
new dependencies were introduced, which weren't built into the old
containers.

Instead, use run --rm to spin up temporary instances of the new
containers to do the commands.
2022-01-10 00:04:51 -08:00
Mouse Reeve cbfa99a95b Merge branch 'main' into production 2022-01-09 12:36:44 -08:00
Mouse Reeve 2fccb8ef83 Merge branch 'main' into production 2022-01-09 11:12:43 -08:00
Mouse Reeve 49bef9a7c5 Merge branch 'main' into production 2022-01-08 18:55:37 -08:00
Mouse Reeve 2b07e9c485 Merge branch 'main' into production 2022-01-08 16:43:07 -08:00
Mouse Reeve c32e5b78ac Fixes merge error in requirements 2022-01-07 10:28:01 -08:00
Mouse Reeve 637600763b Merge branch 'main' into production 2022-01-07 10:25:39 -08:00
Mouse Reeve 17d4b60275 Merge branch 'main' into production 2022-01-07 08:18:48 -08:00
Mouse Reeve 55aa26d2ba Merge branch 'main' into production 2022-01-06 18:56:49 -08:00
Mouse Reeve a806264497 Merge branch 'main' into production 2022-01-06 13:13:05 -08:00
Mouse Reeve d650585858 Merge branch 'main' into production 2022-01-06 12:23:07 -08:00
Mouse Reeve 4416ce5069 Merge branch 'main' into production 2022-01-05 16:11:19 -08:00
Joel Bradshaw f5f861ce25 Make it black 🎸 2022-01-01 14:51:01 -08:00
Joel Bradshaw 5b3ff0cf82 Instrument celery, move init into apps.py 2022-01-01 14:48:58 -08:00
Joel Bradshaw 40bec83833 Add versions to requirements.txt 2022-01-01 14:48:58 -08:00
Joel Bradshaw 3d7f73d73c Document OTLP in env, only load if env vars exist
Also move telemetry into its own file, all those imports seemed like
unnecessary clutter
2022-01-01 14:48:58 -08:00
Joel Bradshaw 7cb7063da5 Add more route names, and format
I think these show up in telemetry, and nicer names are nice
2022-01-01 14:48:46 -08:00
Mouse Reeve 93e1beda6e Merge branch 'main' into production 2022-01-01 07:02:40 -08:00
Joel Bradshaw 8b4f93dd4e Integrate open telemetry
This allows us to export to anyone that takes OTLP, which is most of the
major players, I think! Nifty!

Kinda like the S3 config but for tracing, you can slot in any provider
that supports it via environment variables

This uses the Django instrumentation, which gets us a bunch of nifty
stuff right out of the box.
2021-12-31 03:47:21 -08:00
Mouse Reeve 82513197fd Merge branch 'main' into production 2021-12-30 09:30:57 -08:00
Mouse Reeve 2c5265a117 Merge branch 'main' into production 2021-12-29 16:21:28 -08:00
Mouse Reeve 8b42d58caf Remove prettier in prod branch 2021-12-29 09:37:08 -08:00
Mouse Reeve e8c1ca68d1 Merge branch 'production' of github.com:bookwyrm-social/bookwyrm into production 2021-12-29 09:36:53 -08:00
Mouse Reeve 638352ba26 Merge branch 'main' into production 2021-12-29 09:35:08 -08:00
Mouse Reeve 5cc4f9d381
Merge pull request #1717 from cincodenada/no-more-fedireads
Remove last lingering traces of fedireads name
2021-12-29 09:33:13 -08:00
Joel Bradshaw 2e9574d53c Add database to filename, don't install recommends
Cron comes with just a metric ton of recommended dependencies including
mariadb-common which is just a bunch of unneccessary weight. Just
install what's necessary for cron.
2021-12-28 14:18:57 -08:00
Joel Bradshaw 879a410808 Attempt to use env variable for backup script
This should be available via docker, and we shouldn't have the database
name hardcoded anywhere
2021-12-28 13:45:55 -08:00
Joel Bradshaw d44a900e0c Fix typo while we're here 2021-12-28 13:35:27 -08:00
Joel Bradshaw cd9acef30a Remove last traces of fedireads 2021-12-28 13:35:27 -08:00
Mouse Reeve 1c48605418 Merge branch 'main' into production 2021-12-28 07:28:34 -08:00
Mouse Reeve 4ca0834b43 Merge branch 'main' into production 2021-12-27 14:56:45 -08:00
Mouse Reeve 2a5012470b Merge branch 'main' into production 2021-12-27 14:33:30 -08:00
Mouse Reeve 07c190d717 Merge branch 'main' into production 2021-12-27 13:41:45 -08:00
Mouse Reeve bdf617d005 Merge branch 'main' into production 2021-12-14 19:01:49 -08:00
Mouse Reeve b53d45a19a Merge branch 'main' into production 2021-12-07 15:37:22 -08:00
Mouse Reeve 4c73e53b9a Merge branch 'main' into production 2021-12-06 13:42:55 -08:00
Mouse Reeve c52689c4b8 Merge branch 'main' into production 2021-12-05 10:29:23 -08:00
Mouse Reeve 620a22bde0 Merge branch 'main' into production 2021-12-04 16:58:07 -08:00
Mouse Reeve 58b88ef71e Merge branch 'main' into production 2021-11-28 09:41:13 -08:00
Mouse Reeve 25a7ab7b84 Merge branch 'main' into production 2021-11-23 15:01:30 -08:00
Mouse Reeve eff6591727 Merge branch 'main' into production 2021-11-19 09:44:37 -08:00
Mouse Reeve db5ec248ef Merge branch 'main' into production 2021-11-17 10:44:19 -08:00
Mouse Reeve d62a4e7aa0 Merge branch 'main' into production 2021-11-16 09:43:53 -08:00
Mouse Reeve ab06180e41 Merge branch 'main' into production 2021-11-15 13:47:32 -08:00
Mouse Reeve 02ea4020ea Merge branch 'main' into production 2021-11-15 10:43:19 -08:00
Mouse Reeve 17294abc13 Merge branch 'main' into production 2021-10-25 11:32:55 -07:00
Mouse Reeve 327a616779 Merge branch 'main' into production 2021-10-25 10:59:46 -07:00
Mouse Reeve 9a1ca982c8 Merge branch 'main' into production 2021-10-15 14:56:41 -07:00
Mouse Reeve 382d98a2e0 Merge branch 'main' into production 2021-10-15 14:31:13 -07:00
Mouse Reeve 1bc09485ee Merge branch 'main' into production 2021-10-14 16:28:35 -07:00
Mouse Reeve b15744cc37 Merge branch 'main' into production 2021-10-14 14:32:14 -07:00
Mouse Reeve 62b62b5057 Merge branch 'main' into production 2021-10-11 10:35:16 -07:00
Mouse Reeve 7cb377da6f Merge branch 'main' into production 2021-10-11 10:22:22 -07:00
Mouse Reeve 9b1a9ec1d4 Merge branch 'main' into production 2021-10-06 18:24:24 -07:00
Mouse Reeve 8aa920e357 Merge branch 'main' into production 2021-10-04 12:00:23 -07:00
Mouse Reeve 34e45f3113 Merge branch 'main' into production 2021-10-03 13:38:13 -07:00
Mouse Reeve e9f60f93b2 Merge branch 'main' into production 2021-10-03 12:12:34 -07:00
Mouse Reeve 1b987542a4 Merge branch 'main' into production 2021-10-02 18:26:38 -07:00
Mouse Reeve 57396499ff Merge branch 'main' into production 2021-09-29 11:25:09 -07:00
Mouse Reeve 755a6569c6 Merge branch 'main' into production 2021-09-22 17:11:20 -07:00
Mouse Reeve 7744b9a117 Merge branch 'main' into production 2021-09-22 12:34:22 -07:00
Mouse Reeve 697924ebc6 Merge branch 'main' into production 2021-09-21 07:09:19 -07:00
Mouse Reeve cfc6528d0c Merge branch 'main' into production 2021-09-19 09:40:48 -07:00
Mouse Reeve 5d19d33a01 Merge branch 'main' into production 2021-09-18 16:41:03 -07:00
Mouse Reeve 620d3ab804 Merge branch 'main' into production 2021-09-18 06:41:30 -07:00
Mouse Reeve 2d7047b833 Merge branch 'main' into production 2021-09-12 11:58:59 -07:00
Mouse Reeve c03db63bb3 Merge branch 'main' into production 2021-09-12 10:53:16 -07:00
Mouse Reeve b5c0c0b52c Merge branch 'main' into production 2021-09-11 17:56:56 -07:00
Mouse Reeve 75ca011f92 Merge branch 'main' into production 2021-09-11 12:18:10 -07:00
Mouse Reeve 074a9113e6 Merge branch 'main' into production 2021-09-11 09:44:36 -07:00
Mouse Reeve b2bd655a00 Merge branch 'main' into production 2021-09-11 07:43:24 -07:00
Mouse Reeve 3fb2584c03 Merge branch 'main' into production 2021-09-10 16:03:56 -07:00
Mouse Reeve 78edfa142e Merge branch 'main' into production 2021-09-10 15:12:25 -07:00
Mouse Reeve 4515cec7d2 Merge branch 'main' into production 2021-09-10 12:27:09 -07:00
Mouse Reeve 4c5f5d90ba Merge branch 'main' into production 2021-09-09 17:38:24 -07:00
Mouse Reeve 5e88e893c7 Merge branch 'main' into production 2021-09-08 17:55:35 -07:00
Mouse Reeve 2022b3a035 Merge branch 'main' into production 2021-09-08 12:18:35 -07:00
Mouse Reeve 8f50f8758c Merge branch 'main' into production 2021-09-08 09:09:09 -07:00
Mouse Reeve 276bded337 Merge branch 'main' into production 2021-09-07 09:55:38 -07:00
Mouse Reeve 9aa1201cbe Merge branch 'main' into production 2021-09-07 06:50:43 -07:00
Mouse Reeve 7284a4efad Merge branch 'main' into production 2021-09-06 13:17:46 -07:00
Mouse Reeve ed6d35ef72 Merge branch 'main' into production 2021-09-05 16:47:02 -07:00
Mouse Reeve 8dc8ea2f59 Merge branch 'main' into production 2021-09-03 10:50:38 -07:00
Mouse Reeve fad1b8db94 Merge branch 'main' into production 2021-08-30 13:38:01 -07:00
Mouse Reeve 642ebec5ff Merge branch 'main' into production 2021-08-24 14:52:14 -07:00
Mouse Reeve b6b4e36e94 Merge branch 'main' into production 2021-08-23 16:27:06 -07:00
Mouse Reeve 48c78a9d0e Merge branch 'main' into production 2021-08-23 15:29:00 -07:00
Mouse Reeve 0f419d2b06 Merge branch 'main' into production 2021-08-21 12:10:06 -07:00
Mouse Reeve 1d6f30c2df Merge branch 'main' into production 2021-08-20 14:15:46 -07:00
Mouse Reeve b0751d0555 Merge branch 'main' into production 2021-08-19 17:49:25 -07:00
Mouse Reeve 376adc0a9a Merge branch 'main' into production 2021-08-17 15:09:38 -07:00
Mouse Reeve 6bad4abd63 Merge branch 'main' into production 2021-08-16 14:10:11 -07:00
Mouse Reeve a8dbecde57 Merge branch 'main' into production 2021-08-16 11:00:27 -07:00
Mouse Reeve 470fe576a1 Merge branch 'main' into production 2021-08-13 06:37:35 -07:00
Mouse Reeve 638bc17724 Merge branch 'main' into production 2021-08-12 07:19:13 -07:00
Mouse Reeve 8c3b170812 Merge branch 'main' into production 2021-08-10 19:56:33 -07:00
Mouse Reeve 47b5f8c4f8 Merge branch 'main' into production 2021-08-10 14:43:38 -07:00
Mouse Reeve fee03191e8 Merge branch 'main' into production 2021-08-08 16:24:53 -07:00
Mouse Reeve 847c4b49b4 Merge branch 'main' into production 2021-08-08 15:10:21 -07:00
Mouse Reeve 5ce86d7b52 Merge branch 'main' into production 2021-08-07 15:19:35 -07:00
Mouse Reeve e363d1af11 Merge branch 'main' into production 2021-08-07 15:18:15 -07:00
Mouse Reeve c105490178 Merge branch 'main' into production 2021-08-07 08:34:05 -07:00
Mouse Reeve 3d1f4e3452 Merge branch 'main' into production 2021-08-06 11:27:21 -07:00
Mouse Reeve fe0def3de8 Merge branch 'main' into production 2021-08-05 18:30:48 -07:00
Mouse Reeve cc9c6ce76c Merge branch 'main' into production 2021-08-05 16:15:19 -07:00
Mouse Reeve 8f73cd9d89 Merge branch 'main' into production 2021-08-04 13:59:46 -07:00
Mouse Reeve c7443c9749 Merge branch 'main' into production 2021-08-02 20:30:54 -07:00
Mouse Reeve 9bf79bf9b9 Merge branch 'main' into production 2021-08-02 07:32:22 -07:00
Mouse Reeve 870cf3b60c
Merge pull request #1229 from bookwyrm-social/postgres-version
Pin Postgres version number
2021-07-28 09:51:24 -06:00
Mouse Reeve 375385ea6c Pin Postgres version number
Fixes #1218 (maybe?)
2021-07-27 16:33:11 -07:00
Mouse Reeve c0fc0431e7 Fixes merge block 2021-07-17 18:23:18 -07:00
Mouse Reeve 036463c8d9 Merge branch 'main' into production 2021-07-17 18:21:03 -07:00
Mouse Reeve 29044517a1
Merge pull request #1205 from bookwyrm-social/build-cache
Fix installing image dependencies
2021-06-29 10:26:46 -07:00
Mouse Reeve b0a8d6c9fb Fix installing image dependencies 2021-06-29 06:45:10 -07:00
Mouse Reeve 8534e49f96 Merge branch 'main' into production 2021-06-27 08:05:08 -07:00
Mouse Reeve c4e66d44c9 Merge branch 'main' into production 2021-06-18 14:30:23 -07:00
Mouse Reeve fd0e4c6e13 Merge branch 'main' into production 2021-06-17 19:17:43 -07:00
Mouse Reeve 7e3627f787 Merge branch 'main' into production 2021-06-14 12:55:15 -07:00
Mouse Reeve c3f938d500 Merge branch 'main' into production 2021-06-05 12:53:03 -07:00
Mouse Reeve 90021ab0e4
Merge pull request #1161 from bookwyrm-social/fix-certbot
Reverts to functional certbot configuration
2021-06-05 10:53:40 -07:00
Mouse Reeve 65333b258b Removes certbot init .env config variable 2021-06-05 10:51:02 -07:00
Mouse Reeve 8086b9bca5 Reverts to functional certbot configuration 2021-06-05 10:46:41 -07:00
Mouse Reeve 730b6fabc4 Merge branch 'main' into production 2021-05-24 07:21:43 -07:00
Mouse Reeve 802d28b4a7 Merge branch 'main' into production 2021-05-23 08:36:26 -07:00
Mouse Reeve 5f9e80ac1d Merge branch 'main' into production 2021-05-22 07:04:50 -07:00
Mouse Reeve 832a9494b1 Merge branch 'main' into production 2021-05-21 07:37:17 -07:00
Mouse Reeve 5ba6d8321f Merge branch 'main' into production 2021-05-20 18:48:57 -07:00
Mouse Reeve 8bb815d5b3 Merge branch 'main' into production 2021-05-20 18:21:58 -07:00
Mouse Reeve 1e71cf980c Merge branch 'main' into production 2021-05-18 14:40:54 -07:00
Mouse Reeve 30a67a0221
Merge pull request #1089 from bcj/bcj/non-standard-ports
Allow BookWyrm Services on Non-Standard Ports
2021-05-18 11:28:16 -07:00
bcj 9302aa6ce4 Add POSTGRES_PORT to .env.dev 2021-05-18 13:21:19 -05:00
bcj 238862a4cf Have redis_* grab port information from .env 2021-05-18 00:54:15 -05:00
bcj bad39aef55 Remove the redis_activity ports listing
It is misleading, it isn't binding to that port
2021-05-17 00:07:59 -05:00
bcj 83078cd424 Combine duplicate redis_* volumes in compose file.
I _think_ yaml handles duplicates by overwriting so the conf file was not being added
2021-05-17 00:05:11 -05:00
bcj 892d338adc Read flower port from .env 2021-05-17 00:03:51 -05:00
bcj e8124806b1 Don't hardcode postres port in bookwyrm.settings
Have bookwyrm.settings check for an alternative postgres port.
2021-05-17 00:03:11 -05:00
Mouse Reeve f508b4eb33 Merge branch 'main' into production 2021-05-10 16:25:25 -07:00
Mouse Reeve 0ff7c84a14 Merge branch 'main' into production 2021-05-05 08:39:21 -07:00
Mouse Reeve 4fc230ec8b Merge branch 'main' into production 2021-05-04 09:16:20 -07:00
Mouse Reeve 5ed4dfdb63 Removes aria-hidden from covers 2021-05-02 07:12:50 -07:00
Mouse Reeve b3e369cdba Merge branch 'main' into production 2021-05-01 07:32:30 -07:00
Mouse Reeve 4cc2eccaa4 Merge branch 'main' into production 2021-04-30 15:59:24 -07:00
Mouse Reeve 7aff486a59 Merge branch 'main' into production 2021-04-30 14:05:20 -07:00
Mouse Reeve d80623d88d Merge branch 'main' into production 2021-04-30 13:09:44 -07:00
Mouse Reeve 8761357905 Merge branch 'main' into production 2021-04-30 06:54:05 -07:00
Mouse Reeve 3d2a56090c Merge branch 'main' into production 2021-04-26 14:07:57 -07:00
Mouse Reeve d7a662a39a Merge branch 'main' into production 2021-04-25 11:37:17 -07:00
Mouse Reeve b30fab0597 Merge branch 'main' into production 2021-04-25 11:33:04 -07:00
Mouse Reeve 72f3aff024 Merge branch 'main' into production 2021-04-22 10:43:48 -07:00
Mouse Reeve 92d58411b9 Merge branch 'main' into production 2021-04-22 09:04:13 -07:00
Mouse Reeve 834bc08f34 Merge branch 'main' into production 2021-04-22 07:54:50 -07:00
Mouse Reeve 09ae418881 Merge branch 'main' into production 2021-04-21 14:30:26 -07:00
Mouse Reeve b54979d39c Merge branch 'dropdown-style' of https://github.com/joachimesque/bookwyrm into production 2021-04-21 12:49:35 -07:00
Mouse Reeve 85f1c38ba6 Merge branch 'main' into production 2021-04-18 07:11:50 -07:00
Mouse Reeve 238e88c9dc Merge branch 'main' into production 2021-04-17 18:06:17 -07:00
Mouse Reeve 8a1bfc5ffc Merge branch 'main' into production 2021-04-17 15:29:52 -07:00
Mouse Reeve 1a939ed913 Merge branch 'main' into production 2021-04-17 11:57:19 -07:00
Mouse Reeve 9d26c0e824 Merge branch 'main' into production 2021-04-17 10:57:55 -07:00
Mouse Reeve 107d56c494 Merge branch 'main' into production 2021-04-16 14:31:36 -07:00
Mouse Reeve 9ad369203f Merge branch 'main' into production 2021-04-15 16:41:50 -07:00
Mouse Reeve 37c5c4979f Merge branch 'main' into production 2021-04-15 11:35:30 -07:00
Mouse Reeve 5f783e4fd1 Merge branch 'main' into production 2021-04-13 18:39:45 -07:00
Mouse Reeve d54286b571 Merge branch 'main' into production 2021-04-13 13:12:44 -07:00
Mouse Reeve 64e721fb0b Merge branch 'main' into production 2021-04-08 19:37:09 -07:00
Mouse Reeve 4ee738ae52 Merge branch 'main' into production 2021-04-08 09:22:24 -07:00
Mouse Reeve 3795d682aa Merge branch 'main' into production 2021-04-07 11:19:12 -07:00
Mouse Reeve c33eacaf3d Merge branch 'main' into production 2021-04-07 11:17:16 -07:00
Mouse Reeve e35befb6a2 Merge branch 'main' into production 2021-04-05 11:11:06 -07:00
Mouse Reeve 411dd1b14d Adds password to production stream erase command 2021-04-05 08:50:50 -07:00
Mouse Reeve 8a0db114d8 Fixes stream length 2021-04-04 21:01:20 -07:00
Mouse Reeve a3d5d352a7 Merge branch 'main' into production 2021-04-04 21:00:26 -07:00
Mouse Reeve a8052c2dd0 Merge branch 'main' into production 2021-04-04 16:44:46 -07:00
Mouse Reeve c50edc9d3f Merge branch 'main' into production 2021-04-02 10:09:33 -07:00
Mouse Reeve d55dafd9be Merge branch 'main' into production 2021-04-02 07:42:37 -07:00
Mouse Reeve a5aab26986 Merge branch 'main' into production 2021-04-02 07:22:33 -07:00
Mouse Reeve 406c94354f Merge branch 'main' into production 2021-04-01 18:07:54 -07:00
Mouse Reeve afa831d140 Merge branch 'main' into production 2021-04-01 14:36:32 -07:00
Mouse Reeve 01f598a951 Merge branch 'main' into production 2021-04-01 14:32:21 -07:00
Mouse Reeve 32cd7ec32d Merge branch 'main' into production 2021-04-01 13:24:32 -07:00
Mouse Reeve 5e6b9e44c9 Merge branch 'main' into production 2021-04-01 12:31:09 -07:00
Mouse Reeve fd91a79558 Merge branch 'main' into production 2021-03-31 15:19:40 -07:00
Mouse Reeve 877c90b087 Merge branch 'main' into production 2021-03-31 11:28:52 -07:00
Mouse Reeve af92e3e9a4 Merge branch 'main' into production 2021-03-30 11:01:32 -07:00
Mouse Reeve d77eb5381d Merge branch 'main' into production 2021-03-29 18:57:48 -07:00
Mouse Reeve 9189ae2f2d Merge branch 'main' into production 2021-03-29 15:24:05 -07:00
Mouse Reeve 79fc286ef8 Merge branch 'main' into production 2021-03-29 13:41:16 -07:00
Mouse Reeve 211bf318c4 Merge branch 'main' into production 2021-03-29 13:21:56 -07:00
Mouse Reeve 7439adb8e6 Merge branch 'main' into production 2021-03-29 12:00:50 -07:00
Mouse Reeve 17b289e6e2 Merge branch 'main' into production 2021-03-28 19:04:23 -07:00
Mouse Reeve 145ea053cb Merge branch 'main' into production 2021-03-28 18:08:01 -07:00
Mouse Reeve 7730c9f9a7 Merge branch 'main' into production 2021-03-28 14:49:58 -07:00
Mouse Reeve bc1a782541 Merge branch 'main' into production 2021-03-28 11:02:38 -07:00
Mouse Reeve 0abd4e7fc8 Merge branch 'main' into production 2021-03-27 13:17:19 -07:00
Mouse Reeve fae72977b6 Merge branch 'main' into production 2021-03-26 10:51:50 -07:00
Mouse Reeve 18557af41a Merge branch 'main' into production 2021-03-25 20:09:19 -07:00
Mouse Reeve e01581c28d Merge branch 'main' into production 2021-03-25 16:56:50 -07:00
Mouse Reeve 78467190a6
Merge pull request #797 from mouse-reeve/auth-prod-redis-management
Authentication for redis in prod management command
2021-03-25 11:36:48 -07:00
Mouse Reeve b8695ae3b7 Authentication for redis in prod management command 2021-03-25 11:34:49 -07:00
Mouse Reeve 6f37a43d33 Merge branch 'main' into production 2021-03-25 11:14:37 -07:00
Mouse Reeve 34fb1d2526 Revert "Revert "Prod redis activitystream""
This reverts commit 127881f56a.
2021-03-25 11:00:37 -07:00
Mouse Reeve 3cac69cd2c Updates tests 2021-03-25 06:44:50 -07:00
Mouse Reeve f546dfb005 Adds privacy fields to boost activities 2021-03-25 06:43:52 -07:00
Mouse Reeve c3a750f5da Adds published date field to boost activity 2021-03-25 06:43:52 -07:00
Mouse Reeve 4b44ce691e Return activities for existing objs in resolve_remote_id 2021-03-25 06:43:52 -07:00
Mouse Reeve 9dbd1c674c Hotfix for serializing review names 2021-03-24 11:23:26 -07:00
Mouse Reeve 80893dd5fd Python formatting 2021-03-24 11:12:53 -07:00
Mouse Reeve 4ca76ec58d Updates tests to catch decimal/float/int errors in status serialization 2021-03-24 10:50:54 -07:00
Mouse Reeve e3350e58d0 Fixes formatting rating value in template 2021-03-24 10:49:39 -07:00
Mouse Reeve 8b9528ae95 Fixes decimaal formatting 2021-03-24 10:49:36 -07:00
Mouse Reeve a26bf2859b Python formatting 2021-03-24 10:48:32 -07:00
Mouse Reeve 94ef9cdd3e
Merge pull request #789 from mouse-reeve/revert-787-prod-redis-activitystream
Revert "Prod redis activitystream"
2021-03-24 08:13:13 -07:00
Mouse Reeve 127881f56a
Revert "Prod redis activitystream" 2021-03-24 08:12:03 -07:00
Mouse Reeve 8e4db60f46
Merge pull request #787 from mouse-reeve/prod-redis-activitystream
Prod redis activitystream
2021-03-24 07:40:27 -07:00
Mouse Reeve 8277c9e42e python formatting 2021-03-23 20:15:03 -07:00
Mouse Reeve af72488cd9 Production config for new redis image 2021-03-23 20:05:45 -07:00
Mouse Reeve f97efc2f86 Merge branch 'main' into production 2021-03-23 18:29:39 -07:00
Mouse Reeve d72dc842bd Merge branch 'main' into production 2021-03-22 13:05:23 -07:00
Mouse Reeve e37bb809e0
Merge pull request #778 from mouse-reeve/update-instructions
Instructions for updating an instance
2021-03-21 14:31:13 -07:00
Mouse Reeve eca1a87294 Remove development requirements for prod installs 2021-03-21 14:23:36 -07:00
Mouse Reeve 97697ce5d5 Adds build step to update command 2021-03-21 14:23:26 -07:00
Mouse Reeve c9f7ab6389 Adds documentation on how to update an instance 2021-03-21 14:23:05 -07:00
Mouse Reeve bb8cac021b Merge branch 'main' into production 2021-03-21 12:54:00 -07:00
Mouse Reeve 94d18f6c24 Merge branch 'main' into production 2021-03-20 20:47:53 -07:00
Mouse Reeve 5f1694a7b0 Merge branch 'main' into production 2021-03-19 20:35:29 -07:00
Mouse Reeve 08cf9b5b40 Merge branch 'main' into production 2021-03-19 16:07:57 -07:00
Mouse Reeve 8586f0fe75 Merge branch 'main' into production 2021-03-19 11:01:32 -07:00
Mouse Reeve a868e6c6fd Merge branch 'main' into production 2021-03-18 09:24:55 -07:00
Mouse Reeve fd4b2adb8b Merge branch 'main' into production 2021-03-16 14:21:02 -07:00
Mouse Reeve 52905a3668 Merge branch 'main' into production 2021-03-15 17:04:21 -07:00
Mouse Reeve d202bd1d1d Merge branch 'main' into production 2021-03-15 16:02:53 -07:00
Mouse Reeve 42ba3753d6
Merge pull request #719 from mouse-reeve/certbot-install
Certbot install
2021-03-15 14:25:35 -07:00
Mouse Reeve 52cf9c67b9 Merge branch 'main' into production 2021-03-15 10:29:29 -07:00
Mouse Reeve e8b89eee73 Merge branch 'main' into production 2021-03-13 18:25:15 -08:00
Mouse Reeve a04511ccf7 Merge branch 'main' into production 2021-03-13 16:15:42 -08:00
Mouse Reeve fd3c6d1d21 Merge branch 'main' into production 2021-03-13 15:48:13 -08:00
Mouse Reeve 6a14529893 Merge branch 'main' into production 2021-03-13 14:06:08 -08:00
Mouse Reeve 36088554e8
Merge branch 'production' into certbot-install 2021-03-13 11:02:27 -08:00
Mouse Reeve 59cc5c112f
Merge pull request #720 from bcj/bcj/reverse-proxy
Add instructions for handling port conflicts
2021-03-13 09:57:13 -08:00
bcj b0f78e6d0b Add instructions for handling port conflicts
Add information on how to handle port conflicts when building Bookwyrm, and specifically instructions for handling conflicts caused by another webserver
2021-03-12 22:21:24 -06:00
Mouse Reeve 28160137d0 Comments out https part of nginx config to certbot can run 2021-03-12 14:34:00 -08:00
Mouse Reeve 4bf61e0ef0 Updates production install instructions 2021-03-12 14:15:53 -08:00
Mouse Reeve f6366e1c4a Merge branch 'main' into production 2021-03-11 10:29:34 -08:00
Mouse Reeve 593d5d309a
Merge pull request #714 from bcj/bcj/automatic-backups
Turn on Automatic backups for the DB
2021-03-09 10:28:51 -08:00
bcj 84b525f83e Add a script for pruning old backup files
Adds a pruning script which is installed but not set to run by default.
Also adds for that script that can be run in a container that replicates the db container's conditions
2021-03-08 23:16:34 -06:00
bcj 015d45ef99 Start cron on db service start
init.d isn't run when docker containers are run so we need to modify the entrypoint.
This commit makes the ugly choice of injecting the command in automatically in order to avoid the need to manually maintain the images entrypoint.
2021-03-08 23:09:54 -06:00
Mouse Reeve 6c7fcb0dd1 Merge branch 'main' into production 2021-03-08 10:02:46 -08:00
Mouse Reeve 6f6ca40ce7 Merge branch 'main' into production 2021-03-07 13:21:31 -08:00
Mouse Reeve c770b369d2 Merge branch 'main' into production 2021-03-07 09:00:20 -08:00
Mouse Reeve 88879207b9 Don't install gettext in production 2021-03-03 15:18:06 -08:00
Mouse Reeve 8ac2315cc6 Merge branch 'main' into production 2021-03-03 15:17:47 -08:00
Mouse Reeve e5283f9576 Merge branch 'main' into production 2021-03-02 20:31:34 -08:00
Mouse Reeve 6ecda991d9 Merge branch 'main' into production 2021-03-02 13:52:19 -08:00
Mouse Reeve cabb486cb8 Merge branch 'main' into production 2021-03-02 13:43:50 -08:00
Mouse Reeve a1428a6030 Merge branch 'main' into production 2021-03-01 11:44:13 -08:00
Mouse Reeve 489ac29761 Merge branch 'main' into production 2021-02-27 12:12:24 -08:00
Mouse Reeve df4def6cef Merge branch 'main' into production 2021-02-24 13:32:44 -08:00
Mouse Reeve e36ddb3f9b Merge branch 'main' into production 2021-02-24 07:16:46 -08:00
Mouse Reeve 396cb30c3a Merge branch 'main' into production 2021-02-23 20:21:47 -08:00
Mouse Reeve 98f35929b4 Merge branch 'main' into production 2021-02-22 09:50:40 -08:00
Mouse Reeve 888987f19d Merge branch 'main' into production 2021-02-22 08:40:24 -08:00
Mouse Reeve ac80df7ee0 Merge branch 'main' into production 2021-02-20 11:25:03 -08:00
Mouse Reeve 70bdac3706 Merge branch 'main' into production 2021-02-12 16:23:27 -08:00
Mouse Reeve 355b2fad35 Merge branch 'main' into production 2021-02-12 10:11:16 -08:00
Mouse Reeve f107e3d499 db password that more clearly indicates to change it 2021-02-10 17:25:23 -08:00
Mouse Reeve 5d7bd6a92b Merge branch 'main' into production 2021-02-10 17:24:31 -08:00
Mouse Reeve a2c7bffec9 Merge branch 'main' into production 2021-02-04 12:25:35 -08:00
Mouse Reeve d41c1b7213 Merge branch 'main' into production 2021-02-03 18:09:35 -08:00
Mouse Reeve f9da72d957 Merge branch 'main' into production 2021-02-03 17:11:32 -08:00
Mouse Reeve 6105a6921b Merge branch 'main' into production 2021-02-03 16:50:00 -08:00
Mouse Reeve a0b0edbc3e Merge branch 'main' into production 2021-02-03 16:45:44 -08:00
Mouse Reeve a3966aa807 Merge branch 'main' into production 2021-02-03 11:01:20 -08:00
Mouse Reeve a3768b52a6 Merge branch 'main' into production 2021-02-03 11:00:44 -08:00
Mouse Reeve 7e7f80d31e Merge branch 'main' into production 2021-01-30 17:53:23 -08:00
Mouse Reeve 9c5444ad7a Merge branch 'main' into production 2021-01-30 12:31:34 -08:00
Mouse Reeve 657dff7e95 Merge branch 'main' into production 2021-01-30 11:53:00 -08:00
Mouse Reeve bfdfb846da Merge branch 'main' into production 2021-01-30 09:20:19 -08:00
Mouse Reeve 00c8fab365 Merge branch 'main' into production 2021-01-27 07:38:58 -08:00
Mouse Reeve e4001aba0b Merge branch 'main' into production 2021-01-21 16:57:26 -08:00
Mouse Reeve 6545141bcf Merge branch 'main' into production 2021-01-19 09:53:54 -08:00
Mouse Reeve 7ef29bb99e Merge branch 'main' into production 2021-01-19 07:50:18 -08:00
Mouse Reeve d9d5bc4e31 Merge branch 'main' into production 2021-01-19 07:19:37 -08:00
Mouse Reeve 7eae4cdebb Merge branch 'main' into production 2021-01-18 18:56:37 -08:00
Mouse Reeve 1eb979f05d Merge branch 'main' into production 2021-01-18 16:55:28 -08:00
Mouse Reeve 28a7156f36 Merge branch 'main' into production 2021-01-18 13:52:42 -08:00
Mouse Reeve 802d12421b Merge branch 'main' into production 2021-01-18 12:55:03 -08:00
Mouse Reeve 41d9fe9d9d Merge branch 'main' into production 2021-01-18 12:01:33 -08:00
Mouse Reeve 78d358a916 Merge branch 'main' into production 2021-01-18 11:52:09 -08:00
Mouse Reeve 6d4335e05b Merge branch 'main' into production 2021-01-18 11:46:51 -08:00
Mouse Reeve 5e0cb746d4 Merge branch 'main' into production 2021-01-18 10:26:58 -08:00
Mouse Reeve c7d6273b3b Merge branch 'main' into production 2021-01-12 07:30:49 -08:00
Mouse Reeve 5abba57bfe Merge branch 'main' into production 2021-01-11 18:15:42 -08:00
Mouse Reeve 12dbd47207 Merge branch 'main' into production 2021-01-11 15:29:50 -08:00
Mouse Reeve 8156f1905d Merge branch 'main' into production 2021-01-07 09:37:08 -08:00
Mouse Reeve 14e0102694 Merge branch 'main' into production 2021-01-07 09:33:43 -08:00
Mouse Reeve aafc9654c1 Merge branch 'main' into production 2021-01-06 16:06:06 -08:00
Mouse Reeve 97f050c68e Merge branch 'main' into production 2021-01-06 14:14:43 -08:00
Mouse Reeve 5c24bb6243
Merge pull request #487 from mouse-reeve/gunicorn
Use gunicorn as production runner
2021-01-06 10:37:27 -08:00
Mouse Reeve 08cf668233 Use gunicorn as production runner 2021-01-05 19:28:13 -08:00
Mouse Reeve 0a75c33de4
Merge pull request #486 from mouse-reeve/flower-auth
uses basic auth for flower
2021-01-05 12:54:42 -08:00
Mouse Reeve a29a5dbde9 uses basic auth for flower 2021-01-05 12:52:10 -08:00
Mouse Reeve 636de3ae54 Merge branch 'main' into production 2021-01-05 11:48:15 -08:00
Mouse Reeve 0f49436475 Merge branch 'main' into production 2021-01-04 21:48:40 -08:00
Mouse Reeve 79dca312fb Merge branch 'main' into production 2021-01-03 20:08:22 -08:00
Mouse Reeve c69fdf7bb6 Merge branch 'main' into production 2021-01-03 15:47:17 -08:00
Mouse Reeve 2719332e82 Merge branch 'main' into production 2021-01-03 14:51:16 -08:00
Mouse Reeve 5b397c42f6 Merge branch 'main' into production 2021-01-03 10:14:01 -08:00
Mouse Reeve 2635d109ed Merge branch 'main' into production 2021-01-03 08:18:57 -08:00
Mouse Reeve 34ccf60868
Merge pull request #464 from mouse-reeve/certbot-renew
Fixes acme challenge path for certbot renewal
2021-01-02 16:29:26 -08:00
Mouse Reeve d3192fb1bb Fixes acme challenge path for certbot renewal 2021-01-02 12:14:51 -08:00
Mouse Reeve 042cfe2dfc Merge branch 'main' into production 2021-01-01 07:33:03 -08:00
Mouse Reeve 42d50d15f8 Merge branch 'main' into production 2020-12-31 14:37:24 -08:00
Mouse Reeve 2d21a31c13 Merge branch 'main' into production 2020-12-27 14:45:53 -08:00
Mouse Reeve 77db2e183d Merge branch 'main' into production 2020-12-21 13:21:59 -08:00
Mouse Reeve 255261dc3d Merge branch 'main' into production 2020-12-20 13:15:27 -08:00
Mouse Reeve 44f764a34a Merge branch 'main' into production 2020-12-20 11:42:28 -08:00
Mouse Reeve b910be99c3 Merge branch 'main' into production 2020-12-19 20:33:36 -08:00
Mouse Reeve f7769db99b Merge branch 'main' into production 2020-12-17 22:16:32 -08:00
Mouse Reeve b36cf5a7b8 Merge branch 'main' into production 2020-12-17 13:56:45 -08:00
Mouse Reeve c5b48f521a Merge branch 'main' into production 2020-12-17 13:26:42 -08:00
Mouse Reeve 0cd9f81431 Merge branch 'main' into production 2020-12-17 11:33:52 -08:00
Mouse Reeve ad6b2315ab Merge branch 'main' into production 2020-12-16 20:28:47 -08:00
Mouse Reeve 4c8583bfdb Merge branch 'main' into production 2020-12-16 15:59:59 -08:00
Mouse Reeve 175eab01f7 Merge branch 'main' into production 2020-12-16 15:02:23 -08:00
Mouse Reeve d5cc1d2f02 Merge branch 'main' into production 2020-12-11 17:43:40 -08:00
Mouse Reeve 4171829626 Merge branch 'main' into production 2020-12-02 15:28:01 -08:00
Mouse Reeve f3576d59d7 Merge branch 'main' into production 2020-11-24 13:46:22 -08:00
Mouse Reeve e5b850299c Merge branch 'main' into production 2020-11-22 09:38:06 -08:00
Mouse Reeve d417f1e09d Merge branch 'main' into production 2020-11-18 12:33:16 -08:00
Mouse Reeve cb124e9ba4 Merge branch 'main' into production 2020-11-17 14:28:48 -08:00
Mouse Reeve 567ea40f52 Merge branch 'main' into production 2020-11-13 12:18:30 -08:00
Mouse Reeve 8f595b6a35 Merge branch 'main' into production 2020-11-13 11:48:55 -08:00
Mouse Reeve e9ed457012 Merge branch 'main' into production 2020-11-12 14:40:49 -08:00
Mouse Reeve 5cfdc75c5f Remove more info box when it's not used 2020-11-11 11:24:46 -08:00
Mouse Reeve 0eacee02ac Merge branch 'main' into production 2020-11-11 11:10:15 -08:00
Mouse Reeve dac3c9353d Merge branch 'main' into production 2020-11-09 16:58:59 -08:00
Mouse Reeve da24241b78 Merge branch 'main' into production 2020-11-09 13:14:35 -08:00
Mouse Reeve 2d96c8a35a Merge branch 'main' into production 2020-11-08 20:17:52 -08:00
Mouse Reeve 9ac94543b9 Merge branch 'main' of github.com:mouse-reeve/bookwyrm into main 2020-11-08 20:15:57 -08:00
Mouse Reeve 00752232ff Merge branch 'jim/cli-tooling' of https://github.com/jimfingal/bookwyrm into main 2020-11-08 20:03:27 -08:00
Mouse Reeve 9db851f2d4 Merge branch 'main' into production 2020-11-08 16:47:52 -08:00
Mouse Reeve 4424acc5c2 Merge branch 'main' into production 2020-11-08 16:27:54 -08:00
Mouse Reeve eb1e4fd24c Don't show re-shelve buttons on other people's shelves
yikes
2020-11-07 20:47:17 -08:00
Mouse Reeve abd96717da Merge branch 'main' into production 2020-11-07 20:14:07 -08:00
Mouse Reeve 29e5c67f83 Merge branch 'main' into production 2020-11-07 19:15:27 -08:00
Mouse Reeve 0574e36602 Merge branch 'main' into production 2020-11-07 19:02:05 -08:00
Mouse Reeve b20de604d3 Merge branch 'main' into production 2020-11-07 19:01:25 -08:00
Mouse Reeve de95b60b0b
Merge pull request #300 from mouse-reeve/main
fixing federation of images bugs, finally
2020-11-07 11:01:07 -08:00
Mouse Reeve bc62ed231f Merge branch 'main' into production 2020-11-06 20:51:41 -08:00
Mouse Reeve c80d63d184 Merge branch 'main' into production 2020-11-06 20:40:48 -08:00
Mouse Reeve 46d9a444fd Merge branch 'main' into production 2020-11-06 15:51:31 -08:00
Mouse Reeve 6dd83d490f Merge branch 'main' into production 2020-11-06 14:53:44 -08:00
Mouse Reeve 5782961e58 Merge branch 'main' into production 2020-11-06 09:09:17 -08:00
Mouse Reeve 573bdfd56b Merge branch 'main' into production 2020-11-05 13:51:37 -08:00
Mouse Reeve 8dc350e8a1 prod-only configuration 2020-11-05 11:47:40 -08:00
Mouse Reeve 44b299b28f Merge branch 'main' into production 2020-11-05 11:45:28 -08:00
Mouse Reeve 4dc53c56d5 Merge branch 'main' into production 2020-11-05 11:44:59 -08:00
Mouse Reeve 5a051d669f Merge branch 'main' into production 2020-11-04 16:32:20 -08:00
Mouse Reeve ecca49f70a Merge branch 'main' into production 2020-11-04 14:19:27 -08:00
Mouse Reeve 004a3e5e56 Merge branch 'main' into production 2020-11-04 14:13:59 -08:00
Mouse Reeve 1a61c6eb07 Merge branch 'main' into production 2020-11-04 14:01:57 -08:00
Mouse Reeve ea672c74e2 Merge branch 'main' into production 2020-11-04 13:33:23 -08:00
Mouse Reeve 2823eca70d Merge branch 'main' into production 2020-11-04 13:13:22 -08:00
Mouse Reeve 88de4ff046 Merge branch 'main' into production 2020-11-04 12:12:58 -08:00
Mouse Reeve c577c91912 Merge branch 'main' into production 2020-11-04 11:31:01 -08:00
Mouse Reeve dd8f91a044 Merge branch 'main' into production 2020-11-02 15:40:15 -08:00
Mouse Reeve de66d77f4b Merge branch 'main' into production 2020-11-02 14:13:48 -08:00
Mouse Reeve f6026f5ed8 Merge branch 'main' into production 2020-11-02 11:55:06 -08:00
Mouse Reeve 17ea59e655 Merge branch 'main' into production 2020-11-02 09:24:26 -08:00
Mouse Reeve 6b667aa575 Merge branch 'main' into production 2020-11-02 09:07:21 -08:00
Mouse Reeve 5e2667c297 Remove option to resetdb from production helpers 2020-11-01 12:16:03 -08:00
Mouse Reeve 7db77c690e Merge branch 'main' into production 2020-11-01 12:09:59 -08:00
Mouse Reeve c7b2d7a4b9 Merge branch 'main' into production 2020-11-01 11:58:14 -08:00
Mouse Reeve bfef6f2d8a Merge branch 'main' into production 2020-11-01 11:14:01 -08:00
Mouse Reeve 875b473711 Merge branch 'main' into production 2020-11-01 11:12:02 -08:00
Mouse Reeve 2b75fd1f14 Merge branch 'main' into production 2020-10-31 13:08:29 -07:00
Mouse Reeve d6a166d9db Merge branch 'main' into production 2020-10-31 11:21:26 -07:00
Mouse Reeve 8d21cfa707 Merge branch 'main' into production 2020-10-31 11:05:53 -07:00
Mouse Reeve 7da705f87e Merge branch 'main' into production 2020-10-30 15:23:26 -07:00
Mouse Reeve 7af3afe24b Merge branch 'main' into production 2020-10-30 13:11:37 -07:00
Mouse Reeve 3cf2c4d1b0 Merge branch 'main' into production 2020-10-30 12:59:53 -07:00
Mouse Reeve 6d6a16daf3 Merge branch 'main' into production 2020-10-30 12:07:44 -07:00
Mouse Reeve 0a34cf8821 Merge branch 'main' into production 2020-10-30 11:56:05 -07:00
Mouse Reeve d19405f379 fixes backup script name 2020-10-29 23:10:40 -07:00
Mouse Reeve 59d0164911 Fixes celery access to redis 2020-10-28 17:42:01 -07:00
Mouse Reeve f23e10f8f7 Merge branch 'main' into production 2020-10-28 17:17:16 -07:00
Mouse Reeve 19f9b75c6b Merge branch 'main' into production 2020-10-28 16:54:09 -07:00
Mouse Reeve 9c68b6d430
Merge pull request #244 from mouse-reeve/cron
Adds database backup crontab
2020-10-28 16:33:49 -07:00
Mouse Reeve d3987756eb Removes hanging cron command 2020-10-28 16:10:50 -07:00
Mouse Reeve 687ff5a6d7 Gets database cron into the right image 2020-10-28 15:56:25 -07:00
Mouse Reeve 8b061d63a8 Changes perms on db backup script 2020-10-28 13:56:23 -07:00
Mouse Reeve 6826386ea3 Adds database backup crontab 2020-10-28 13:55:08 -07:00
Mouse Reeve b02a70b484 Merge branch 'main' into production 2020-10-28 13:17:44 -07:00
Mouse Reeve c5bcde0ee4 replicate password line 2020-10-28 12:07:56 -07:00
Mouse Reeve be1a26d32b Fixes redis conf location in image 2020-10-28 11:51:25 -07:00
Mouse Reeve 54b924a4e2 Secure redis.conf 2020-10-28 11:37:28 -07:00
Mouse Reeve 439feac110 Use redis password in production 2020-10-27 12:30:34 -07:00
Mouse Reeve 7dd1deb438 Merge branch 'main' into production 2020-10-27 12:18:46 -07:00
Mouse Reeve a9a40e4d69 Merge branch 'main' into production 2020-10-16 17:11:46 -07:00
Mouse Reeve 5446a5b238 Merge branch 'main' into production 2020-10-16 17:09:43 -07:00
Mouse Reeve 4b32948fd3 oops keep the .env stuff 2020-10-16 13:22:09 -07:00
Mouse Reeve 4b993fb5d6 env and config for production 2020-10-16 12:55:32 -07:00
55 changed files with 1220 additions and 708 deletions

View file

@ -1,43 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: 'bug'
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Instance**
On which BookWyrm instance did you encounter this problem.
**Additional context**
Add any other context about the problem here.
---
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

View file

@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View file

@ -21,7 +21,8 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pylint
- name: Analysing the code with pylint
run: |
pylint bookwyrm/
pylint bookwyrm/ --ignore=migrations --disable=E1101,E1135,E1136,R0903,R0901,R0902,W0707,W0511,W0406,R0401,R0801

View file

@ -1,6 +0,0 @@
[MAIN]
ignore=migrations
load-plugins=pylint.extensions.no_self_use
[MESSAGES CONTROL]
disable=E1101,E1135,E1136,R0903,R0901,R0902,W0707,W0511,W0406,R0401,R0801,C3001

View file

@ -6,7 +6,5 @@ RUN mkdir /app /app/static /app/images
WORKDIR /app
RUN apt-get update && apt-get install -y gettext libgettextpo-dev tidy && apt-get clean
COPY requirements.txt /app/
RUN pip install -r requirements.txt --no-cache-dir

View file

@ -153,17 +153,12 @@ class Connector(AbstractConnector):
return f"{self.covers_url}/b/id/{image_name}"
def parse_search_data(self, data, min_confidence):
for idx, search_result in enumerate(data.get("docs")):
for search_result in data.get("docs"):
# build the remote id from the openlibrary key
key = self.books_url + search_result["key"]
author = search_result.get("author_name") or ["Unknown"]
cover_blob = search_result.get("cover_i")
cover = self.get_cover_url([cover_blob], size="M") if cover_blob else None
# OL doesn't provide confidence, but it does sort by an internal ranking, so
# this confidence value is relative to the list position
confidence = 1 / (idx + 1)
yield SearchResult(
title=search_result.get("title"),
key=key,
@ -171,7 +166,6 @@ class Connector(AbstractConnector):
connector=self,
year=search_result.get("first_publish_year"),
cover=cover,
confidence=confidence,
)
def parse_isbn_search_data(self, data):

View file

@ -56,17 +56,12 @@ class Command(BaseCommand):
self.stdout.write(" OK 🖼")
# Books
book_ids = (
models.Book.objects.select_subclasses()
.filter()
.values_list("id", flat=True)
)
books = models.Book.objects.select_subclasses().filter()
self.stdout.write(
" → Book preview images ({}): ".format(len(book_ids)), ending=""
" → Book preview images ({}): ".format(len(books)), ending=""
)
for book_id in book_ids:
preview_images.generate_edition_preview_image_task.delay(book_id)
for book in books:
preview_images.generate_edition_preview_image_task.delay(book.id)
self.stdout.write(".", ending="")
self.stdout.write(" OK 🖼")

View file

@ -303,17 +303,10 @@ class Comment(BookStatus):
@property
def pure_content(self):
"""indicate the book in question for mastodon (or w/e) users"""
if self.progress_mode == "PG" and self.progress and (self.progress > 0):
return_value = (
f'{self.content}<p>(comment on <a href="{self.book.remote_id}">'
f'"{self.book.title}"</a>, page {self.progress})</p>'
)
else:
return_value = (
f'{self.content}<p>(comment on <a href="{self.book.remote_id}">'
f'"{self.book.title}"</a>)</p>'
)
return return_value
return (
f'{self.content}<p>(comment on <a href="{self.book.remote_id}">'
f'"{self.book.title}"</a>)</p>'
)
activity_serializer = activitypub.Comment
@ -339,17 +332,10 @@ class Quotation(BookStatus):
"""indicate the book in question for mastodon (or w/e) users"""
quote = re.sub(r"^<p>", '<p>"', self.quote)
quote = re.sub(r"</p>$", '"</p>', quote)
if self.position_mode == "PG" and self.position and (self.position > 0):
return_value = (
f'{quote} <p>-- <a href="{self.book.remote_id}">'
f'"{self.book.title}"</a>, page {self.position}</p>{self.content}'
)
else:
return_value = (
f'{quote} <p>-- <a href="{self.book.remote_id}">'
f'"{self.book.title}"</a></p>{self.content}'
)
return return_value
return (
f'{quote} <p>-- <a href="{self.book.remote_id}">'
f'"{self.book.title}"</a></p>{self.content}'
)
activity_serializer = activitypub.Quotation

View file

@ -191,6 +191,10 @@ STATICFILES_FINDERS = [
SASS_PROCESSOR_INCLUDE_FILE_PATTERN = r"^.+\.[s]{0,1}(?:a|c)ss$"
SASS_PROCESSOR_ENABLED = True
SASS_PROCESSOR_INCLUDE_DIRS = [
os.path.join(BASE_DIR, ".css-config-sample"),
]
# minify css is production but not dev
if not DEBUG:
SASS_OUTPUT_STYLE = "compressed"

View file

@ -50,7 +50,7 @@
</ul>
</nav>
<div class="column is-clipped">
<div class="column">
{% block about_content %}{% endblock %}
</div>
</div>

View file

@ -1,7 +1,7 @@
{% load layout %}
{% load sass_tags %}
{% load i18n %}
{% load static %}
{% load sass_tags %}
<!DOCTYPE html>
<html lang="{% get_lang %}">

View file

@ -112,9 +112,6 @@
{% with full=status.content|safe no_trim=status.content_warning itemprop="reviewBody" %}
{% include 'snippets/trimmed_text.html' %}
{% endwith %}
{% if status.progress %}
<div class="is-small is-italic has-text-right mr-3">{% trans "page" %} {{ status.progress }}</div>
{% endif %}
{% endif %}
{% if status.attachments.exists %}

View file

@ -211,7 +211,7 @@ class Openlibrary(TestCase):
status=200,
)
with patch(
"bookwyrm.connectors.openlibrary.Connector.get_authors_from_data"
"bookwyrm.connectors.openlibrary.Connector." "get_authors_from_data"
) as mock:
mock.return_value = []
result = self.connector.create_edition_from_data(work, self.edition_data)

View file

@ -195,7 +195,7 @@ class ImportJob(TestCase):
) as search:
search.return_value = result
with patch(
"bookwyrm.connectors.openlibrary.Connector.get_authors_from_data"
"bookwyrm.connectors.openlibrary.Connector." "get_authors_from_data"
):
book = item.get_book_from_identifier()

View file

@ -281,7 +281,7 @@ http://www.fish.com/"""
result = views.status.to_markdown(text)
self.assertEqual(
result,
'<p><em>hi</em> and <a href="http://fish.com">fish.com</a> is rad</p>',
'<p><em>hi</em> and <a href="http://fish.com">fish.com</a> ' "is rad</p>",
)
def test_to_markdown_detect_url(self, *_):
@ -297,7 +297,7 @@ http://www.fish.com/"""
"""this is mostly handled in other places, but nonetheless"""
text = "[hi](http://fish.com) is <marquee>rad</marquee>"
result = views.status.to_markdown(text)
self.assertEqual(result, '<p><a href="http://fish.com">hi</a> is rad</p>')
self.assertEqual(result, '<p><a href="http://fish.com">hi</a> ' "is rad</p>")
def test_delete_status(self, mock, *_):
"""marks a status as deleted"""

68
bw-dev
View file

@ -12,11 +12,8 @@ trap showerr EXIT
source .env
trap - EXIT
function clean {
docker-compose stop
docker-compose rm -f
}
# show commands as they're executed
set -x
function runweb {
docker-compose run --rm web "$@"
}
@ -64,27 +61,9 @@ case "$CMD" in
up)
docker-compose up --build "$@"
;;
service_ports_web)
docker-compose run --rm --service-ports web
;;
initdb)
initdb "@"
;;
resetdb)
clean
# Start just the DB so no one else is using it
docker-compose up --build -d db
rundb dropdb -U ${POSTGRES_USER} ${POSTGRES_DB}
rundb createdb -U ${POSTGRES_USER} ${POSTGRES_DB}
# Now start up web so we can run the migrations
docker-compose up --build -d web
migrate
initdb
clean
;;
makemigrations)
runweb python manage.py makemigrations "$@"
;;
migrate)
migrate "$@"
;;
@ -100,37 +79,12 @@ case "$CMD" in
restart_celery)
docker-compose restart celery_worker
;;
pytest)
runweb pytest --no-cov-on-fail "$@"
;;
collectstatic)
runweb python manage.py collectstatic --no-input
;;
makemessages)
runweb django-admin makemessages --no-wrap --ignore=venv -l en_US $@
;;
compilemessages)
runweb django-admin compilemessages --ignore venv $@
;;
update_locales)
git fetch origin l10n_main:l10n_main
git checkout l10n_main locale/de_DE
git checkout l10n_main locale/es_ES
git checkout l10n_main locale/fi_FI
git checkout l10n_main locale/fr_FR
git checkout l10n_main locale/gl_ES
git checkout l10n_main locale/it_IT
git checkout l10n_main locale/lt_LT
git checkout l10n_main locale/no_NO
git checkout l10n_main locale/pt_PT
git checkout l10n_main locale/pt_BR
git checkout l10n_main locale/ro_RO
git checkout l10n_main locale/sv_SE
git checkout l10n_main locale/zh_Hans
git checkout l10n_main locale/zh_Hant
runweb django-admin makemessages --no-wrap --ignore=venv -l en_US $@
runweb django-admin compilemessages --ignore venv
;;
build)
docker-compose build
;;
@ -140,10 +94,6 @@ case "$CMD" in
black)
docker-compose run --rm dev-tools black celerywyrm bookwyrm
;;
pylint)
# pylint depends on having the app dependencies in place, so we run it in the web container
runweb pylint bookwyrm/
;;
prettier)
docker-compose run --rm dev-tools npx prettier --write bookwyrm/static/js/*.js
;;
@ -153,7 +103,6 @@ case "$CMD" in
--config dev-tools/.stylelintrc.js
;;
formatters)
runweb pylint bookwyrm/
docker-compose run --rm dev-tools black celerywyrm bookwyrm
docker-compose run --rm dev-tools npx prettier --write bookwyrm/static/js/*.js
docker-compose run --rm dev-tools npx stylelint \
@ -236,28 +185,17 @@ case "$CMD" in
echo "Unrecognised command. Try:"
echo " setup"
echo " up [container]"
echo " service_ports_web"
echo " initdb"
echo " resetdb"
echo " makemigrations [migration]"
echo " migrate [migration]"
echo " bash"
echo " shell"
echo " dbshell"
echo " restart_celery"
echo " pytest [path]"
echo " collectstatic"
echo " makemessages"
echo " compilemessages [locale]"
echo " update_locales"
echo " compilemessages"
echo " build"
echo " clean"
echo " black"
echo " prettier"
echo " stylelint"
echo " formatters"
echo " compilescss"
echo " collectstatic_watch"
echo " populate_streams [--stream=<stream name>]"
echo " populate_lists_streams"
echo " populate_suggestions"

View file

@ -5,26 +5,40 @@ services:
image: nginx:latest
restart: unless-stopped
ports:
- 1333:80
- 80:80
- 443:443
depends_on:
- web
networks:
- main
volumes:
- ./nginx:/etc/nginx/conf.d
- ./certbot/conf:/etc/nginx/ssl
- ./certbot/data:/var/www/certbot
- static_volume:/app/static
- media_volume:/app/images
certbot:
image: certbot/certbot:latest
command: certonly --webroot --webroot-path=/var/www/certbot --email ${EMAIL} --agree-tos --no-eff-email -d ${DOMAIN} -d www.${DOMAIN}
#command: renew --webroot --webroot-path /var/www/certbot
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/logs:/var/log/letsencrypt
- ./certbot/data:/var/www/certbot
db:
image: postgres
build: postgres-docker
env_file: .env
entrypoint: /bookwyrm-entrypoint.sh
command: cron postgres
volumes:
- pgdata:/var/lib/postgresql/data
- backups:/backups
networks:
- main
web:
build: .
env_file: .env
command: python manage.py runserver 0.0.0.0:8000
command: gunicorn bookwyrm.wsgi:application --bind 0.0.0.0:8000
volumes:
- .:/app
- static_volume:/app/static
@ -105,6 +119,7 @@ services:
- .:/app
volumes:
pgdata:
backups:
static_volume:
media_volume:
redis_broker_data:

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-30 13:02\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: German\n"
"Language: de\n"
@ -121,25 +121,25 @@ msgstr "Gefahr"
msgid "Automatically generated report"
msgstr "Automatisch generierter Report"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Ausstehend"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Selbstlöschung"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Moderator*in suspendieren"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Moderator*in löschen"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Domainsperrung"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Speichern"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Das Laden von Daten wird eine Verbindung zu <strong>%(source_name)s</strong> aufbauen und überprüfen, ob Autor*in-Informationen vorliegen, die hier noch nicht bekannt sind. Bestehende Informationen werden nicht überschrieben."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "„%(book_title)s“ bearbeiten"
msgid "Add Book"
msgstr "Buch hinzufügen"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Buchinfo bestätigen"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "Ist „%(name)s“ einer dieser Autor*innen?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Autor*in von "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Weitere Informationen auf isni.org finden"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Neue*r Autor*in"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Als neue*r Autor*in erstellen: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "Ist das eine Ausgabe eines vorhandenen Werkes?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Dies ist ein neues Werk."
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Zurück"
@ -1970,33 +1970,33 @@ msgstr "Bücher importieren"
msgid "Data source:"
msgstr "Datenquelle:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Du kannst deine Goodreads-Daten von der <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import&nbsp;/&nbsp;Export-Seite</a> deines Goodreads-Kontos downloaden."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Datei:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Besprechungen einschließen"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Datenschutzeinstellung für importierte Besprechungen:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importieren"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Zuletzt importiert"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Keine aktuellen Importe"
@ -5114,7 +5114,7 @@ msgstr "Datei überschreitet die maximale Größe von 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Keine gültige CSV-Datei"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-31 23:50+0000\n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2021-02-28 17:19-0800\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: English <LL@li.org>\n"
@ -47,10 +47,6 @@ msgstr ""
msgid "Reading finish date cannot be before start date."
msgstr ""
#: bookwyrm/forms/forms.py:59
msgid "Reading stopped date cannot be before start date."
msgstr ""
#: bookwyrm/forms/landing.py:32
msgid "User with this username already exists"
msgstr ""
@ -75,8 +71,8 @@ msgstr ""
msgid "Book Title"
msgstr ""
#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156
#: bookwyrm/templates/shelf/shelf.html:188
#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155
#: bookwyrm/templates/shelf/shelf.html:187
#: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating"
msgstr ""
@ -1080,7 +1076,7 @@ msgid "Add Another Author"
msgstr ""
#: bookwyrm/templates/book/edit/edit_book_form.html:220
#: bookwyrm/templates/shelf/shelf.html:147
#: bookwyrm/templates/shelf/shelf.html:146
msgid "Cover"
msgstr ""
@ -1714,13 +1710,13 @@ msgstr ""
#: bookwyrm/templates/get_started/book_preview.html:10
#: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33
#: bookwyrm/templatetags/shelf_tags.py:48
#: bookwyrm/templatetags/shelf_tags.py:46
msgid "To Read"
msgstr ""
#: bookwyrm/templates/get_started/book_preview.html:11
#: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34
#: bookwyrm/templatetags/shelf_tags.py:50
#: bookwyrm/templatetags/shelf_tags.py:48
msgid "Currently Reading"
msgstr ""
@ -1729,15 +1725,10 @@ msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:47
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12
#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52
#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50
msgid "Read"
msgstr ""
#: bookwyrm/templates/get_started/book_preview.html:13
#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36
msgid "Stopped Reading"
msgstr ""
#: bookwyrm/templates/get_started/books.html:6
msgid "What are you reading?"
msgstr ""
@ -2065,8 +2056,8 @@ msgid "Row"
msgstr ""
#: bookwyrm/templates/import/import_status.html:103
#: bookwyrm/templates/shelf/shelf.html:148
#: bookwyrm/templates/shelf/shelf.html:170
#: bookwyrm/templates/shelf/shelf.html:147
#: bookwyrm/templates/shelf/shelf.html:169
msgid "Title"
msgstr ""
@ -2079,8 +2070,8 @@ msgid "Openlibrary key"
msgstr ""
#: bookwyrm/templates/import/import_status.html:114
#: bookwyrm/templates/shelf/shelf.html:149
#: bookwyrm/templates/shelf/shelf.html:173
#: bookwyrm/templates/shelf/shelf.html:148
#: bookwyrm/templates/shelf/shelf.html:172
msgid "Author"
msgstr ""
@ -2998,11 +2989,6 @@ msgstr ""
msgid "Start \"%(book_title)s\""
msgstr ""
#: bookwyrm/templates/reading_progress/stop.html:5
#, python-format
msgid "Stop Reading \"%(book_title)s\""
msgstr ""
#: bookwyrm/templates/reading_progress/want.html:5
#, python-format
msgid "Want to Read \"%(book_title)s\""
@ -3027,7 +3013,6 @@ msgstr ""
#: bookwyrm/templates/readthrough/readthrough_modal.html:38
#: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24
#: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21
#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24
msgid "Started reading"
msgstr ""
@ -3036,7 +3021,7 @@ msgstr ""
msgid "Progress"
msgstr ""
#: bookwyrm/templates/readthrough/readthrough_form.html:25
#: bookwyrm/templates/readthrough/readthrough_form.html:24
#: bookwyrm/templates/readthrough/readthrough_modal.html:63
#: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32
msgid "Finished reading"
@ -3050,27 +3035,23 @@ msgstr ""
msgid "finished"
msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:16
msgid "stopped"
msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:27
#: bookwyrm/templates/readthrough/readthrough_list.html:25
msgid "Show all updates"
msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:43
#: bookwyrm/templates/readthrough/readthrough_list.html:41
msgid "Delete this progress update"
msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:55
#: bookwyrm/templates/readthrough/readthrough_list.html:53
msgid "started"
msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:62
#: bookwyrm/templates/readthrough/readthrough_list.html:60
msgid "Edit read dates"
msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:70
#: bookwyrm/templates/readthrough/readthrough_list.html:68
msgid "Delete these read dates"
msgstr ""
@ -4378,51 +4359,46 @@ msgid "User profile"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:39
#: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53
#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53
msgid "All books"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:97
#: bookwyrm/templates/shelf/shelf.html:96
#, python-format
msgid "%(formatted_count)s book"
msgid_plural "%(formatted_count)s books"
msgstr[0] ""
msgstr[1] ""
#: bookwyrm/templates/shelf/shelf.html:104
#: bookwyrm/templates/shelf/shelf.html:103
#, python-format
msgid "(showing %(start)s-%(end)s)"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:116
#: bookwyrm/templates/shelf/shelf.html:115
msgid "Edit shelf"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:124
#: bookwyrm/templates/shelf/shelf.html:123
msgid "Delete shelf"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:152
#: bookwyrm/templates/shelf/shelf.html:178
#: bookwyrm/templates/shelf/shelf.html:151
#: bookwyrm/templates/shelf/shelf.html:177
msgid "Shelved"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:153
#: bookwyrm/templates/shelf/shelf.html:181
#: bookwyrm/templates/shelf/shelf.html:152
#: bookwyrm/templates/shelf/shelf.html:180
msgid "Started"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:154
#: bookwyrm/templates/shelf/shelf.html:184
#: bookwyrm/templates/shelf/shelf.html:153
#: bookwyrm/templates/shelf/shelf.html:183
msgid "Finished"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:154
#: bookwyrm/templates/shelf/shelf.html:184
msgid "Until"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:210
#: bookwyrm/templates/shelf/shelf.html:209
msgid "This shelf is empty."
msgstr ""
@ -4752,7 +4728,7 @@ msgid "(Optional)"
msgstr ""
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54
msgid "Update progress"
msgstr ""
@ -4761,17 +4737,6 @@ msgstr ""
msgid "Start \"<em>%(book_title)s</em>\""
msgstr ""
#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6
#, python-format
msgid "Stop Reading \"<em>%(book_title)s</em>\""
msgstr ""
#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32
#: bookwyrm/templates/snippets/shelf_selector.html:54
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21
msgid "Stopped reading"
msgstr ""
#: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6
#, python-format
msgid "Want to Read \"<em>%(book_title)s</em>\""
@ -4819,23 +4784,23 @@ msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:39
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24
msgid "Start reading"
msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:61
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55
#: bookwyrm/templates/snippets/shelf_selector.html:54
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38
msgid "Want to read"
msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:82
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73
#: bookwyrm/templates/snippets/shelf_selector.html:75
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66
#, python-format
msgid "Remove from %(name)s"
msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:95
#: bookwyrm/templates/snippets/shelf_selector.html:88
msgid "Remove from"
msgstr ""
@ -4843,12 +4808,7 @@ msgstr ""
msgid "More shelves"
msgstr ""
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48
msgid "Stop reading"
msgstr ""
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31
msgid "Finish reading"
msgstr ""
@ -4943,16 +4903,6 @@ msgstr ""
msgid "reviewed <a href=\"%(book_path)s\">%(book)s</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10
#, python-format
msgid "stopped reading <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17
#, python-format
msgid "stopped reading <a href=\"%(book_path)s\">%(book)s</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/headers/to_read.html:10
#, python-format
msgid "wants to read <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>"
@ -5093,29 +5043,29 @@ msgstr ""
msgid "Edit profile"
msgstr ""
#: bookwyrm/templates/user/user.html:38
#: bookwyrm/templates/user/user.html:37
#, python-format
msgid "View all %(size)s"
msgstr ""
#: bookwyrm/templates/user/user.html:52
#: bookwyrm/templates/user/user.html:51
msgid "View all books"
msgstr ""
#: bookwyrm/templates/user/user.html:59
#: bookwyrm/templates/user/user.html:58
#, python-format
msgid "%(current_year)s Reading Goal"
msgstr ""
#: bookwyrm/templates/user/user.html:66
#: bookwyrm/templates/user/user.html:65
msgid "User Activity"
msgstr ""
#: bookwyrm/templates/user/user.html:70
#: bookwyrm/templates/user/user.html:69
msgid "RSS feed"
msgstr ""
#: bookwyrm/templates/user/user.html:81
#: bookwyrm/templates/user/user.html:80
msgid "No activities yet!"
msgstr ""

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-30 10:04\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Spanish\n"
"Language: es\n"
@ -121,25 +121,25 @@ msgstr "Cuidado"
msgid "Automatically generated report"
msgstr "Informe generado automáticamente"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Pendiente"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Auto-eliminación"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Suspensión de moderador"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Eliminación de moderador"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Bloqueo de dominio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Guardar"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "La carga de datos se conectará a <strong>%(source_name)s</strong> y comprobará si hay metadatos sobre este autor que no están presentes aquí. Los metadatos existentes no serán sobrescritos."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Editar \"%(book_title)s\""
msgid "Add Book"
msgstr "Agregar libro"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Confirmar información de libro"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "¿Es \"%(name)s\" uno de estos autores?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Autor/a de "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Más información en isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Este es un autor nuevo"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Creando un autor nuevo: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "¿Es esta una edición de una obra ya existente?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Esta es una obra nueva"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Volver"
@ -1970,33 +1970,33 @@ msgstr "Importar libros"
msgid "Data source:"
msgstr "Fuente de datos:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Puedes descargar tus datos de Goodreads desde la <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">página de importación/exportación</a> de tu cuenta de Goodreads."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Archivo de datos:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Incluir reseñas"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Configuración de privacidad para las reseñas importadas:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importar"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Importaciones recientes"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "No hay ninguna importación reciente"
@ -5114,7 +5114,7 @@ msgstr "Archivo excede el tamaño máximo: 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "No un archivo csv válido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-05-07 14:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Finnish\n"
"Language: fi\n"
@ -121,25 +121,25 @@ msgstr "Vaara"
msgid "Automatically generated report"
msgstr "Automaattisesti luotu raportti"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Odottaa"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Itse poistettu"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Moderaattorin estämä"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Moderaattorin poistama"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Verkkotunnuksen esto"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Tallenna"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Tietoja ladattaessa muodostetaan yhteys lähteeseen <strong>%(source_name)s</strong> ja sieltä haetaan metatietoja, joita ei vielä ole täällä. Olemassa olevia metatietoja ei korvata uusilla."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Muokkaa teosta ”%(book_title)s”"
msgid "Add Book"
msgstr "Lisää kirja"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Vahvista kirjan tiedot"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "Onko ”%(name)s” joku seuraavista tekijöistä?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Tekijänä teoksessa "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Lisätietoja osoitteessa isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Uusi tekijä"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Luodaan uusi tekijä: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "Onko tämä aiemmin lisätyn teoksen laitos?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Uusi teos"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Takaisin"
@ -1970,33 +1970,33 @@ msgstr "Tuo kirjoja"
msgid "Data source:"
msgstr "Tietolähde:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Goodreads-tiedot voi ladata Goodreads-käyttäjätilin <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export-sivun</a> kautta."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Datatiedosto:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Myös arviot"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Tuotavien arvioiden yksityisyysvalinta:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Tuo"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Viimeksi tuotu"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Ei viimeaikaisia tuonteja"
@ -5114,7 +5114,7 @@ msgstr "Tiedosto on enimmäiskokoa 10 Mt suurempi"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Epäkelpo csv-tiedosto"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-09 08:36\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: French\n"
"Language: fr\n"
@ -121,25 +121,25 @@ msgstr "Danger"
msgid "Automatically generated report"
msgstr "Rapport généré automatiquement"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "En attente"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Auto-suppression"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Suspension du modérateur"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Suppression du modérateur"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Blocage de domaine"
@ -734,7 +734,7 @@ msgstr "ISNI :"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Enregistrer"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Le chargement des données se connectera à <strong>%(source_name)s</strong> et vérifiera les métadonnées de cet auteur ou autrice qui ne sont pas présentes ici. Les métadonnées existantes ne seront pas écrasées."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Modifier « %(book_title)s»"
msgid "Add Book"
msgstr "Ajouter un livre"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Confirmer les informations de ce livre"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "Est-ce que \"%(name)s\" fait partie de ces auteurs ou autrices ?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Auteur ou autrice de "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Trouver plus dinformations sur isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Il sagit dun nouvel auteur ou dune nouvelle autrice."
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Création dun nouvel auteur/autrice: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "Estce lédition dun ouvrage existant?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Il sagit dun nouvel ouvrage."
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Retour"
@ -1970,33 +1970,33 @@ msgstr "Importer des livres"
msgid "Data source:"
msgstr "Source de données:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Vous pouvez télécharger vos données Goodreads depuis la page <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export</a> de votre compte Goodreads."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Fichier de données:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Importer les critiques"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Confidentialité des critiques importées:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importer"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Importations récentes"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Aucune importation récente"
@ -5114,7 +5114,7 @@ msgstr "Ce fichier dépasse la taille limite: 10Mo"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s (%(subtitle)s)"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Fichier CSV non valide"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-09 14:02\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Galician\n"
"Language: gl\n"
@ -121,25 +121,25 @@ msgstr "Perigo"
msgid "Automatically generated report"
msgstr "Denuncia creada automáticamente"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Pendente"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Auto eliminación"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Suspendido pola moderación"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Eliminado pola moderación"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Bloqueo de dominio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Gardar"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Ao cargar os datos vas conectar con <strong>%(source_name)s</strong> e comprobar se existen metadatos desta persoa autora que non están aquí presentes. Non se sobrescribirán os datos existentes."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Editar \"%(book_title)s\""
msgid "Add Book"
msgstr "Engadir libro"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Confirma info do libro"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "É \"%(name)s\" un destas autoras?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Autora de "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Atopa máis información en isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Esta é unha nova autora"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Creando nova autora: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "É esta a edición dun traballo existente?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Este é un novo traballo"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Atrás"
@ -1970,33 +1970,33 @@ msgstr "Importar libros"
msgid "Data source:"
msgstr "Fonte de datos:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Podes descargar os teus datos de Goodreads desde a <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">páxina de Exportación/Importación</a> da túa conta Goodreads."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Ficheiro de datos:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Incluír recensións"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Axuste de privacidade para recensións importadas:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importar"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Importacións recentes"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Sen importacións recentes"
@ -5114,7 +5114,7 @@ msgstr "O ficheiro supera o tamaño máximo: 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Non é un ficheiro csv válido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-20 22:49\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Italian\n"
"Language: it\n"
@ -121,25 +121,25 @@ msgstr "Attenzione"
msgid "Automatically generated report"
msgstr "Rapporto generato automaticamente"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "In attesa"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Eliminazione automatica"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Sospensione del moderatore"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Cancellazione del moderatore"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Blocco del dominio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Salva"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Il caricamento dei dati si collegherà a <strong>%(source_name)s</strong> e verificherà eventuali metadati relativi a questo autore che non sono presenti qui. I metadati esistenti non vengono sovrascritti."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Modifica \"%(book_title)s\""
msgid "Add Book"
msgstr "Aggiungi libro"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Conferma informazioni sul libro"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "È \"%(name)s\" uno di questi autori?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Autore di "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Trova maggiori informazioni su isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Questo è un nuovo autore"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Creazione di un nuovo autore: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "È un'edizione di un'opera esistente?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Si tratta di un nuovo lavoro"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Indietro"
@ -1970,33 +1970,33 @@ msgstr "Importa libri"
msgid "Data source:"
msgstr "Sorgenti dati:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Puoi scaricare i tuoi dati Goodreads dalla pagina <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">\"Importa/Esporta\"</a> del tuo account Goodreads."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Dati file:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Includi recensioni"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Impostazione della privacy per le recensioni importate:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importa"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Importazioni recenti"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Nessuna importazione recente"
@ -5114,7 +5114,7 @@ msgstr "Il file supera la dimensione massima: 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Non è un file di csv valido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-10 07:54\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Lithuanian\n"
"Language: lt\n"
@ -121,25 +121,25 @@ msgstr "Pavojus"
msgid "Automatically generated report"
msgstr "Automatiškai sugeneruota ataskaita"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Laukiama"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Išsitrina savaime"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Moderatorius nutraukė"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Moderatorius ištrynė"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Blokuoti pagal domeną"
@ -742,7 +742,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -765,8 +765,8 @@ msgstr "Išsaugoti"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -788,7 +788,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Duomenų įkėlimas prisijungs prie <strong>%(source_name)s</strong> ir patikrins ar nėra naujos informacijos. Esantys metaduomenys nebus perrašomi."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -961,42 +961,42 @@ msgstr "Redaguoti „%(book_title)s“"
msgid "Add Book"
msgstr "Pridėti knygą"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Patvirtinti knygos informaciją"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "Ar \"%(name)s\" yra vienas iš šių autorių?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Autorius "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Daugiau informacijos isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Tai naujas autorius"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Kuriamas naujas autorius: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "Ar tai egzistuojančio darbo leidimas?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Tai naujas darbas"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Atgal"
@ -1990,33 +1990,33 @@ msgstr "Importuoti knygas"
msgid "Data source:"
msgstr "Duomenų šaltinis:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Galite atsisiųsti savo „Goodreads“ duomenis iš <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Importavimo ir eksportavimo puslapio</a>, esančio jūsų „Goodreads“ paskyroje."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Duomenų failas:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Įtraukti atsiliepimus"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Privatumo nustatymai svarbiems atsiliepimams:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importuoti"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Pastaruoju metu importuota"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Pastaruoju metu neimportuota"
@ -5164,7 +5164,7 @@ msgstr "Failas viršijo maksimalų dydį: 10 MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Netinkamas csv failas"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-08 21:50\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Norwegian\n"
"Language: no\n"
@ -121,25 +121,25 @@ msgstr ""
msgid "Automatically generated report"
msgstr ""
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Avventer"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Selvsletting"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Moderatør suspensjon"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Moderatør sletting"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Domeneblokkering"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Lagre"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Laster inn data kobler til <strong>%(source_name)s</strong> og finner metadata om denne forfatteren som enda ikke finnes her. Eksisterende metadata vil ikke bli overskrevet."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Rediger \"%(book_title)s"
msgid "Add Book"
msgstr "Legg til bok"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Bekreft bokinformasjon"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "Er \"%(name)s\" en av disse forfatterne?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Forfatter av "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Finn mer informasjon på isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Dette er en ny forfatter"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Oppretter en ny forfatter: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "Er dette en utgave av et eksisterende verk?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Dette er et nytt verk"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Tilbake"
@ -1970,33 +1970,33 @@ msgstr "Importer bøker"
msgid "Data source:"
msgstr "Datakilde:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Du kan laste ned Goodread-dataene dine fra <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export sida</a> på Goodread-kontoen din."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Datafil:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Inkluder anmeldelser"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Personverninnstilling for importerte anmeldelser:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importér"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Nylig importer"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Ingen nylige importer"
@ -5112,7 +5112,7 @@ msgstr "Filen overskrider maksimal størrelse: 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Ikke en gyldig csv-fil"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-08 23:12\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt\n"
@ -121,25 +121,25 @@ msgstr "Perigo"
msgid "Automatically generated report"
msgstr "Relatório gerado automaticamente"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Pendente"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Autoexclusão"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Suspensão de moderador"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Exclusão de moderador"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Bloqueio de domínio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Salvar"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Para carregar informações nos conectaremos a <strong>%(source_name)s</strong> e buscaremos metadados que ainda não temos sobre este/a autor/a. Metadados já existentes não serão substituídos."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Editar \"%(book_title)s\""
msgid "Add Book"
msgstr "Adicionar livro"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Confirmar informações do livro"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "\"%(name)s\" é uma das pessoas citadas abaixo?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Autor/a de "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Conheça mais em isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "É um/a novo/a autor/a"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Criando um/a novo/a autor/a: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "É uma edição de uma obra já registrada?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "É uma nova obra"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Voltar"
@ -1970,33 +1970,33 @@ msgstr "Importar livros"
msgid "Data source:"
msgstr "Fonte dos dados:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Você pode baixar seus dados do Goodreads na <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">página de Importar/Exportar</a> da sua conta."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Arquivo de dados:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Incluir resenhas"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Configurações de privacidade para resenhas importadas:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importar"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Importações recentes"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Nenhuma importação recente"
@ -5114,7 +5114,7 @@ msgstr "Arquivo excede o tamanho máximo: 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Não é um arquivo csv válido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-05-06 23:27\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Portuguese\n"
"Language: pt\n"
@ -121,25 +121,25 @@ msgstr "Perigo"
msgid "Automatically generated report"
msgstr "Relatório gerado automaticamente"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Pendente"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Auto-exclusão"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Suspensão do moderador"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Exclusão do moderador"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Bloqueio de domínio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Salvar"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Carregar os dados irá conectar a <strong>%(source_name)s</strong> e verificar se há metadados sobre este autor que não estão aqui presentes. Os metadados existentes não serão substituídos."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Editar \"%(book_title)s\""
msgid "Add Book"
msgstr "Adicionar um Livro"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Confirmar informações do livro"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "\"%(name)s\" é um destes autores?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Autor de "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Podes encontrar mais informações em isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Este é um novo autor"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Criar um novo autor: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "Esta é uma edição de um trabalho existente?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Este é um novo trabalho"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Voltar"
@ -1970,33 +1970,33 @@ msgstr "Importar livros"
msgid "Data source:"
msgstr "Origem dos dados:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Podes fazer download dos teus dados do Goodreads na <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Importar/Exportar página</a> da tua conta do Goodreads."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Ficheiro de dados:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Incluir criticas"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Configuração de privacidade para criticas importadas:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importar"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Importações recentes"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Nenhuma importação recente"
@ -5114,7 +5114,7 @@ msgstr "Ficheiro excede o tamanho máximo: 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Não é um ficheiro csv válido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-05-16 21:13\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Romanian\n"
"Language: ro\n"
@ -121,25 +121,25 @@ msgstr "Pericol"
msgid "Automatically generated report"
msgstr "Raport generat automat"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "În așteptare"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Ștergere automată"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Suspendat de moderator"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Șters de moderator"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Blocat de domeniu"
@ -738,7 +738,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -761,8 +761,8 @@ msgstr "Salvați"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -784,7 +784,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Încărcatul de date se va conecta la <strong>%(source_name)s</strong> și verifica orice metadate despre autor care nu sunt prezente aici. Metadatele existente nu vor fi suprascrise."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -955,42 +955,42 @@ msgstr "Editați „%(book_title)s”"
msgid "Add Book"
msgstr "Adăugați carte"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Confirmați informațiile cărții"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "Este „%(name)s” unul dintre acești autori?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Autor al "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Aflați mai multe la isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Acesta este un autor nou"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Creați un autor nou: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "Este această o ediție a unei opere existente?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Aceasta este o operă nouă"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Înapoi"
@ -1980,33 +1980,33 @@ msgstr "Importați cărți"
msgid "Data source:"
msgstr "Sursa de date:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Puteți descărca datele dvs. GoodReads de pe <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">pagina Import/Export</a> a contului dvs. GoodReads."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Fișierul de date:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Includeți recenzii"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Setare de confidențialitate pentru recenziile importate:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importați"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Importuri recente"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Niciun import recent"
@ -5139,7 +5139,7 @@ msgstr "Fișierul depășește dimensiuneaz maximă: 10Mo"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Nu este un fișier csv valid"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-08 21:50\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Swedish\n"
"Language: sv\n"
@ -121,25 +121,25 @@ msgstr "Observera"
msgid "Automatically generated report"
msgstr "Automatiskt genererad rapport"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "Pågående"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "Självborttagning"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "Moderator-avstängning"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "Borttagning av moderator"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "Domänblockering"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Spara"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Att ladda in data kommer att ansluta till <strong>%(source_name)s</strong> och kontrollera eventuella metadata om den här författaren som inte finns här. Befintliga metadata kommer inte att skrivas över."
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Redigera \"%(book_title)s\""
msgid "Add Book"
msgstr "Lägg till bok"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "Bekräfta bokens info"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "Är \"%(name)s\" en utav dessa författare?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "Författare av "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "Hitta mer information på isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "Det här är en ny författare"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "Skapar en ny författare: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "Är det här en version av ett redan befintligt verk?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "Det här är ett nytt verk"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "Bakåt"
@ -1970,33 +1970,33 @@ msgstr "Importera böcker"
msgid "Data source:"
msgstr "Datakälla:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Du kan ladda ner Goodreads-data från <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export-sidan</a> på ditt Goodreads-konto."
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "Datafil:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "Inkludera recensioner"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "Integritetsinställning för importerade recensioner:"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "Importera"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "Senaste importer"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "Ingen importering nyligen"
@ -5114,7 +5114,7 @@ msgstr "Filen överskrider maximal storlek: 10 MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "Inte en giltig csv-fil"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-29 14:20\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Chinese Simplified\n"
"Language: zh\n"
@ -121,25 +121,25 @@ msgstr "危险"
msgid "Automatically generated report"
msgstr "自动生成的举报"
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr "待处理"
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr "自我删除"
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr "仲裁员停用"
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr "仲裁员删除"
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr "域名屏蔽"
@ -730,7 +730,7 @@ msgstr "ISNI"
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -753,8 +753,8 @@ msgstr "保存"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -776,7 +776,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "加载数据会连接到 <strong>%(source_name)s</strong> 并检查这里还没有记录的与作者相关的元数据。现存的元数据不会被覆盖。"
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -943,42 +943,42 @@ msgstr "编辑《%(book_title)s》"
msgid "Add Book"
msgstr "添加书目"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "确认书目信息"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr "“%(name)s” 是这些作者之一吗?"
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr "所著书有 "
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr "在 isni.org 查找更多信息"
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "这是一位新的作者"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "正在创建新的作者: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "这是已存在的作品的一个版本吗?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "这是一个新的作品。"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "返回"
@ -1960,33 +1960,33 @@ msgstr "导入书目"
msgid "Data source:"
msgstr "数据来源:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "您可以从 <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> 下载或导出您的 Goodread 数据。"
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "数据文件:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "纳入书评"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "导入书评的隐私设定"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "导入"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "最近的导入"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "无最近的导入"
@ -5089,7 +5089,7 @@ msgstr "文件超过了最大大小: 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s%(subtitle)s"
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "不是有效的 csv 文件"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-24 01:06\n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n"
"PO-Revision-Date: 2022-04-08 21:50\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Chinese Traditional\n"
"Language: zh\n"
@ -121,25 +121,25 @@ msgstr ""
msgid "Automatically generated report"
msgstr ""
#: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending"
msgstr ""
#: bookwyrm/models/base_model.py:19
#: bookwyrm/models/base_model.py:18
msgid "Self deletion"
msgstr ""
#: bookwyrm/models/base_model.py:20
#: bookwyrm/models/base_model.py:19
msgid "Moderator suspension"
msgstr ""
#: bookwyrm/models/base_model.py:21
#: bookwyrm/models/base_model.py:20
msgid "Moderator deletion"
msgstr ""
#: bookwyrm/models/base_model.py:22
#: bookwyrm/models/base_model.py:21
msgid "Domain block"
msgstr ""
@ -730,7 +730,7 @@ msgstr ""
#: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/edit/edit_book.html:127
#: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32
@ -753,8 +753,8 @@ msgstr "儲存"
#: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/edit/edit_book.html:129
#: bookwyrm/templates/book/edit/edit_book.html:132
#: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23
@ -776,7 +776,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr ""
#: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/edit/edit_book.html:114
#: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42
@ -943,42 +943,42 @@ msgstr "編輯 \"%(book_title)s\""
msgid "Add Book"
msgstr "新增書目"
#: bookwyrm/templates/book/edit/edit_book.html:62
#: bookwyrm/templates/book/edit/edit_book.html:54
msgid "Confirm Book Info"
msgstr "確認書目資料"
#: bookwyrm/templates/book/edit/edit_book.html:70
#: bookwyrm/templates/book/edit/edit_book.html:62
#, python-format
msgid "Is \"%(name)s\" one of these authors?"
msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:73
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Author of "
msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:83
#: bookwyrm/templates/book/edit/edit_book.html:75
msgid "Find more information at isni.org"
msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:93
#: bookwyrm/templates/book/edit/edit_book.html:85
msgid "This is a new author"
msgstr "這是一位新的作者"
#: bookwyrm/templates/book/edit/edit_book.html:100
#: bookwyrm/templates/book/edit/edit_book.html:92
#, python-format
msgid "Creating a new author: %(name)s"
msgstr "正在建立新的作者: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:107
#: bookwyrm/templates/book/edit/edit_book.html:99
msgid "Is this an edition of an existing work?"
msgstr "這是已存在的作品的另一個版本嗎?"
#: bookwyrm/templates/book/edit/edit_book.html:115
#: bookwyrm/templates/book/edit/edit_book.html:107
msgid "This is a new work"
msgstr "這是一個新的作品。"
#: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/book/edit/edit_book.html:116
#: bookwyrm/templates/feed/status.html:21
msgid "Back"
msgstr "返回"
@ -1960,33 +1960,33 @@ msgstr "匯入書目"
msgid "Data source:"
msgstr "資料來源:"
#: bookwyrm/templates/import/import.html:42
#: bookwyrm/templates/import/import.html:39
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr ""
#: bookwyrm/templates/import/import.html:47
#: bookwyrm/templates/import/import.html:44
msgid "Data file:"
msgstr "資料檔案:"
#: bookwyrm/templates/import/import.html:55
#: bookwyrm/templates/import/import.html:52
msgid "Include reviews"
msgstr "納入書評"
#: bookwyrm/templates/import/import.html:60
#: bookwyrm/templates/import/import.html:57
msgid "Privacy setting for imported reviews:"
msgstr "匯入書評的隱私設定"
#: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/import/import.html:63
#: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import"
msgstr "匯入"
#: bookwyrm/templates/import/import.html:71
#: bookwyrm/templates/import/import.html:68
msgid "Recent Imports"
msgstr "最近的匯入"
#: bookwyrm/templates/import/import.html:73
#: bookwyrm/templates/import/import.html:70
msgid "No recent imports"
msgstr "無最近的匯入"
@ -5087,7 +5087,7 @@ msgstr "檔案超過了最大大小: 10MB"
msgid "%(title)s: %(subtitle)s"
msgstr ""
#: bookwyrm/views/imports/import_data.py:70
#: bookwyrm/views/imports/import_data.py:67
msgid "Not a valid csv file"
msgstr "不是有效的 csv 檔案"

View file

@ -5,20 +5,70 @@ upstream web {
}
server {
listen [::]:80;
listen 80;
location / {
proxy_pass http://web;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
server_name your-domain.com www.your-domain.com;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/certbot;
}
location /images/ {
alias /app/images/;
}
location /static/ {
alias /app/static/;
}
# redirect http to https
# return 301 https://your-domain.com$request_uri;
# }
#
# server {
# listen [::]:443 ssl http2;
# listen 443 ssl http2;
#
# server_name your-domain.com;
#
# # SSL code
# ssl_certificate /etc/nginx/ssl/live/your-domain.com/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/live/your-domain.com/privkey.pem;
#
# location ~ /.well-known/acme-challenge {
# allow all;
# root /var/www/certbot;
# }
#
# location / {
# proxy_pass http://web;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Host $host;
# proxy_redirect off;
# }
#
# location /images/ {
# alias /app/images/;
# }
#
# location /static/ {
# alias /app/static/;
# }
}
# Reverse-Proxy server
# server {
# listen [::]:8001;
# listen 8001;
# server_name your-domain.com www.your-domain.com;
# location / {
# proxy_pass http://web;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Host $host;
# proxy_redirect off;
# }
# location /images/ {
# alias /app/images/;
# }
# location /static/ {
# alias /app/static/;
# }
# }

View file

@ -0,0 +1,20 @@
FROM postgres:13.0
# crontab
RUN mkdir /backups
COPY ./backup.sh /backups
COPY ./weed.sh /backups
COPY ./cronfile /etc/cron.d/cronfile
RUN apt-get update && apt-get -y --no-install-recommends install cron
RUN chmod 0644 /etc/cron.d/cronfile
RUN crontab /etc/cron.d/cronfile
RUN touch /var/log/cron.log
# The postgres image's entrypoint expects the docker command to only contain flags to
# pass postgres. It runs the entrypoint twice, the second times as the postgres user.
# We need to start the cron service the first time it runs, when it's still being run
# as the root user. We're going to add a check that looks at the first argument and
# if it's 'cron', starts the service and then removes that argument.
RUN awk '$0 ~ /^\t_main "\$@"$/ { print "\tif [[ $1 == cron ]]; then\n\t\tservice cron start\n\t\tshift\n\tfi" }{ print }' docker-entrypoint.sh > bookwyrm-entrypoint.sh
RUN chown postgres /bookwyrm-entrypoint.sh
RUN chmod u=rwx,go=r /bookwyrm-entrypoint.sh

7
postgres-docker/backup.sh Executable file
View file

@ -0,0 +1,7 @@
#!/bin/bash
if [ -z "$POSTGRES_DB" ]; then
echo "Database not specified, defaulting to bookwyrm"
fi
BACKUP_DB=${POSTGRES_DB:-bookwyrm}
filename=backup_${BACKUP_DB}_$(date +%F)
pg_dump -U $BACKUP_DB > /backups/$filename.sql

5
postgres-docker/cronfile Normal file
View file

@ -0,0 +1,5 @@
0 0 * * * /backups/backup.sh
# If uncommented, this script will weed the backups directory. It will keep the 14
# most-recent backups, then one backup/week for the next four backups, then one
# backup/month after that.
# 0 1 * * * /backups/weed.sh -d 14 -w 4 -m -1 /backups

View file

@ -0,0 +1,8 @@
FROM postgres:latest
RUN apt update && apt install -y shellcheck
COPY ./tests/testing-entrypoint.sh /testing-entrypoint.sh
RUN chmod u+rx,go=r /testing-entrypoint.sh
COPY ./weed.sh /weed.sh
RUN chmod u+rx,go=r /weed.sh

View file

@ -0,0 +1,9 @@
version: "3"
services:
weeding:
build:
# We need to build from the parent directory so we can access weed.sh
context: ..
dockerfile: ./tests/Dockerfile
entrypoint: /testing-entrypoint.sh

View file

@ -0,0 +1,426 @@
#!/usr/bin/env bash
# These tests are written to run in their own container, using the same image as the
# actual postgres service. To run: `docker-compose up --build`
set -euo pipefail
source /weed.sh
ERROR_COUNT=0
FAILURE_COUNT=0
# compare two sorted files
function compare_files {
local expected="$1"
local actual="$2"
declare -a missing
local missing_index=0
declare -a extra
local extra_index=0
old_ifs="$IFS"
IFS=$'\n'
for line in $(diff --suppress-common-lines "$expected" "$actual"); do
if [[ $line =~ ^\< ]]; then
missing[missing_index]=${line:1}
missing_index=$((missing_index + 1))
elif [[ $line =~ ^\> ]]; then
extra[extra_index]=${line:1}
extra_index=$((extra_index + 1))
fi
done
IFS="$old_ifs"
if [[ $((missing_index + extra_index)) -gt 0 ]]; then
echo 'fail'
if [[ missing_index -gt 0 ]]; then
echo -e "\\t$missing_index missing files:"
for index in $(seq 0 $((missing_index - 1))); do
echo -e "\\t\\t${missing[index]}"
done
fi
if [[ extra_index -gt 0 ]]; then
echo -e "\\t$extra_index extra files:"
for index in $(seq 0 $((extra_index - 1))); do
echo -e "\\t\\t${extra[index]}"
done
fi
FAILURE_COUNT=$((FAILURE_COUNT + 1))
return 1
fi
}
# This is a wrapper function that handles creating a directory with test files in it,
# running weed_directory (as the function, as a dry run, then finally actually-deleting
# files), marking the test as failed/errored as necessary, then cleaning up after
# itself. the first three arguments passed are the thresholds to pass into
# weed_directory. The remaining arguments are names of files to create for the test.
# Bash isn't great at passing arrays so instead of separately passing in a list of
# expected results, flag the files you expect to be deleted by prepending "DELETE:"
# to the path.
function perform_test {
echo "${FUNCNAME[1]}" | sed 's/^test_\(.*\)$/\1/' | tr '_\n' ' :'
echo -en '\t'
local daily_threshold="$1"
shift
local weekly_threshold="$1"
shift
local monthly_threshold="$1"
shift
# We might as well name the files we're using for running tests in as inflamatory a
# way as possible to increase the chances that bad filtering by weed_directory
# results in tests failing.
local expected="/testing/expected/backup__2020-02-02.sql"
local actual="/testing/backup__2020-02-02.sql.actual"
local remaining="/testing/remainbackup__2020-02-02.sql"
local temp="/testing/backup__2020-TE-MP.sql"
# create test files
mkdir -p /testing/expected
if [[ -e "$expected" ]]; then
rm "$expected"
fi
touch "$expected"
echo -e "$expected\\n$actual\\n$remaining\\n$temp" > "$remaining"
while [[ "$#" -gt 0 ]]; do
if [[ "$1" =~ ^DELETE: ]]; then
path="/testing/${1:7}"
echo "$path" >> "$expected"
else
path="/testing/$1"
echo "$path" >> "$remaining"
fi
directory=$(dirname "$path")
mkdir -p "$directory"
touch "$path"
shift
done
# We don't make any promise about the order files will be listed in by
# weed_directory (it is currently reverse-chronological). We should sort the output
# and the expected file instead of forcing tests to list files in that order (or
# causing tests to fail if weed_directory's order changes)
sort "$expected" > "$temp"
mv "$temp" "$expected"
sort "$remaining" > "$temp"
mv "$temp" "$remaining"
# Part one: call the function directly
set +e
(
weed_directory \
"/testing" \
"$daily_threshold" \
"$weekly_threshold" \
"$monthly_threshold" \
2> "$temp" \
| sort > "$actual"
)
local result="$?"
set -e
if [[ "$result" -ne 0 ]]; then
echo 'error'
ERROR_COUNT=$((ERROR_COUNT + 1))
if [[ -s "$temp" ]]; then
echo 'stderr:'
cat "$temp"
fi
else
set +e
compare_files "$expected" "$actual"
result="$?"
set -e
if [[ "$result" -eq 0 ]]; then
# Part two: as a script with the dry-run flag (-l)
set +e
(
"/weed.sh" \
"-d" "$daily_threshold" \
"-w" "$weekly_threshold" \
"-m" "$monthly_threshold" \
"-l" \
"/testing" \
2> "$temp" \
| sort > "$actual"
)
local result="$?"
set -e
if [[ "$result" -ne 0 ]]; then
echo 'error'
ERROR_COUNT=$((ERROR_COUNT + 1))
if [[ -s "$temp" ]]; then
echo 'stderr:'
cat "$temp"
fi
else
set +e
compare_files "$expected" "$actual"
result="$?"
set -e
if [[ "$result" -eq 0 ]]; then
# Part three: let's try actually deleting files
set +e
(
"/weed.sh" \
"-d" "$daily_threshold" \
"-w" "$weekly_threshold" \
"-m" "$monthly_threshold" \
"/testing" \
2> "$temp"
)
local result="$?"
set -e
if [[ "$result" -ne 0 ]]; then
echo 'error'
ERROR_COUNT=$((ERROR_COUNT + 1))
if [[ -s "$temp" ]]; then
echo 'stderr:'
cat "$temp"
fi
else
find /testing -type f | sort > "$actual"
set +e
compare_files "$remaining" "$actual"
result="$?"
set -e
if [[ "$result" -eq 0 ]]; then
echo 'pass'
elif [[ -s "$temp" ]]; then
echo 'stderr:'
cat "$temp"
fi
fi
elif [[ -s "$temp" ]]; then
echo 'stderr:'
cat "$temp"
fi
fi
elif [[ -s "$temp" ]]; then
echo 'stderr:'
cat "$temp"
fi
fi
rm -rf /testing
}
# actual tests
function test_shellcheck {
echo -en 'running shellcheck on scripts:\t'
shellcheck /weed.sh
# Test the tests too! Writing bash is hard
shellcheck -x /testing-entrypoint.sh
echo 'pass'
}
function test_empty_directory {
perform_test 1 2 3
}
function test_single_file {
perform_test 1 2 3 "backup__2021-02-02.sql"
}
function test_keep_everything {
perform_test -1 0 0 "backup__2021-02-02.sql" "backup__2021-02-01.sql" "backup__2021-01-31.sql"
}
function test_keep_one {
perform_test 1 0 0 "backup__2021-02-02.sql" "DELETE:backup__2021-02-01.sql" "DELETE:backup__2021-01-31.sql"
}
function test_weekly {
# weed.sh follows ISO 8601 and uses %W for day of week, so Monday is the first day
# of the week.
# backup__2021-03-08.sql: Monday (keep)
# backup__2021-03-07.sql: Sunday (keep)
# backup__2021-02-28.sql: Sunday (keep)
# backup__2021-02-22.sql: Monday (delete)
# backup__2021-02-20.sql: Saturday (keep)
# backup__2021-02-16.sql: Tuesday (delete)
# backup__2021-02-15.sql: Monday (delete)
# backup__2021-02-14.sql: Sunday (keep)
# backup__2020-02-14.sql: Sunday (same week of year) (keep)
perform_test 0 -1 0 \
"backup__2021-03-08.sql" \
"backup__2021-03-07.sql" \
"backup__2021-02-28.sql" \
"DELETE:backup__2021-02-22.sql" \
"backup__2021-02-20.sql" \
"DELETE:backup__2021-02-16.sql" \
"DELETE:backup__2021-02-15.sql" \
"backup__2021-02-14.sql" \
"backup__2020-02-14.sql"
}
function test_monthly {
perform_test 1 0 -1 \
"backup__2021-03-08.sql" \
"DELETE:backup__2021-03-07.sql" \
"backup__2021-02-28.sql" \
"DELETE:backup__2021-02-22.sql" \
"DELETE:backup__2021-02-20.sql" \
"DELETE:backup__2021-02-16.sql" \
"DELETE:backup__2021-02-15.sql" \
"DELETE:backup__2021-02-14.sql" \
"backup__2021-01-14.sql" \
"backup__2020-01-13.sql"
}
function test_annual {
perform_test 0 0 0 \
"backup__2021-03-08.sql" \
"DELETE:backup__2021-03-07.sql" \
"DELETE:backup__2021-02-28.sql" \
"DELETE:backup__2021-02-22.sql" \
"DELETE:backup__2021-02-20.sql" \
"DELETE:backup__2021-02-16.sql" \
"DELETE:backup__2021-02-15.sql" \
"DELETE:backup__2021-02-14.sql" \
"DELETE:backup__2021-01-14.sql" \
"backup__2020-01-13.sql" \
"backup__2019-12-31.sql" \
"DELETE:backup__2019-01-13.sql"
}
# Will not pass while maxdepth is set to 1.
function skip_test_sort_order {
perform_test 0 0 1 \
"a/backup__2021-03-08.sql" \
"DELETE:b/backup__2021-03-07.sql" \
"DELETE:a/backup__2021-02-28.sql" \
"DELETE:b/backup__2021-02-22.sql" \
"DELETE:a/backup__2021-02-20.sql" \
"DELETE:b/backup__2021-02-16.sql" \
"DELETE:a/backup__2021-02-15.sql" \
"DELETE:b/backup__2021-02-14.sql" \
"DELETE:a/backup__2021-01-14.sql" \
"b/backup__2020-01-13.sql" \
"a/backup__2019-12-31.sql" \
"DELETE:b/backup__2019-01-13.sql"
}
function test_ignore_subdirectories {
perform_test 0 0 0 "a/backup__2021-03-08.sql" "backup__2021-03-07.sql"
}
function test_standard {
perform_test 14 4 1 \
"backup__2021-03-08.sql" \
"backup__2021-03-07.sql" \
"backup__2021-03-06.sql" \
"backup__2021-03-05.sql" \
"backup__2021-03-04.sql" \
"backup__2021-03-03.sql" \
"backup__2021-03-02.sql" \
"backup__2021-03-01.sql" \
"backup__2021-02-28.sql" \
"backup__2021-02-27.sql" \
"backup__2021-02-26.sql" \
"backup__2021-02-25.sql" \
"backup__2021-02-24.sql" \
"backup__2021-02-23.sql" \
"DELETE:backup__2021-02-22.sql" \
"backup__2021-02-21.sql" \
"DELETE:backup__2021-02-20.sql" \
"DELETE:backup__2021-02-19.sql" \
"DELETE:backup__2021-02-18.sql" \
"DELETE:backup__2021-02-17.sql" \
"DELETE:backup__2021-02-16.sql" \
"DELETE:backup__2021-02-15.sql" \
"backup__2021-02-14.sql" \
"DELETE:backup__2021-02-13.sql" \
"DELETE:backup__2021-02-12.sql" \
"DELETE:backup__2021-02-11.sql" \
"DELETE:backup__2021-02-10.sql" \
"DELETE:backup__2021-02-09.sql" \
"DELETE:backup__2021-02-08.sql" \
"backup__2021-02-07.sql" \
"DELETE:backup__2021-02-06.sql" \
"DELETE:backup__2021-02-05.sql" \
"DELETE:backup__2021-02-04.sql" \
"DELETE:backup__2021-02-03.sql" \
"DELETE:backup__2021-02-02.sql" \
"DELETE:backup__2021-02-01.sql" \
"backup__2021-01-31.sql" \
"DELETE:backup__2021-01-30.sql" \
"DELETE:backup__2021-01-29.sql" \
"DELETE:backup__2021-01-28.sql" \
"DELETE:backup__2021-01-27.sql" \
"DELETE:backup__2021-01-26.sql" \
"DELETE:backup__2021-01-25.sql" \
"DELETE:backup__2021-01-24.sql" \
"DELETE:backup__2021-01-23.sql" \
"DELETE:backup__2021-01-22.sql" \
"DELETE:backup__2021-01-21.sql" \
"DELETE:backup__2021-01-20.sql" \
"DELETE:backup__2021-01-19.sql" \
"DELETE:backup__2021-01-18.sql" \
"DELETE:backup__2021-01-17.sql" \
"DELETE:backup__2021-01-16.sql" \
"DELETE:backup__2021-01-15.sql" \
"DELETE:backup__2021-01-14.sql" \
"DELETE:backup__2021-01-13.sql" \
"DELETE:backup__2021-01-12.sql" \
"DELETE:backup__2021-01-11.sql" \
"DELETE:backup__2021-01-10.sql" \
"DELETE:backup__2021-01-09.sql" \
"DELETE:backup__2021-01-08.sql" \
"DELETE:backup__2021-01-07.sql" \
"DELETE:backup__2021-01-06.sql" \
"DELETE:backup__2021-01-05.sql" \
"DELETE:backup__2021-01-04.sql" \
"DELETE:backup__2021-01-03.sql" \
"DELETE:backup__2021-01-02.sql" \
"DELETE:backup__2021-01-01.sql" \
"backup__2020-12-31.sql"
}
function tests {
# Run all functions named test_... in this file in definition order
count=0
while read -r test; do
eval "$test"
count=$((count + 1))
done < <(awk '$1 == "function" && $2 ~ "^test_" {print $2}' "${BASH_SOURCE[0]}")
echo "------------------"
echo "$((count - ERROR_COUNT - FAILURE_COUNT))/$count tests passed"
if [[ $((FAILURE_COUNT + ERROR_COUNT)) -gt 0 ]]; then
if [[ "$ERROR_COUNT" -gt 0 ]]; then
echo "$ERROR_COUNT tests errored"
fi
if [[ "$FAILURE_COUNT" -gt 0 ]]; then
echo "$FAILURE_COUNT tests failed"
fi
echo 'failure'
else
echo 'success'
fi
}
if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then
trap 'echo -e "\\terror (in ${FUNCNAME[1]} ${BASH_SOURCE[1]}:${BASH_LINENO[1]})\naborting"' EXIT
tests
trap - EXIT
if [[ $((FAILURE_COUNT + ERROR_COUNT)) -gt 0 ]]; then
exit 1
fi
fi

185
postgres-docker/weed.sh Executable file
View file

@ -0,0 +1,185 @@
#!/usr/bin/env bash
# Weed old backups. See HELP for details.
# Tests for this script can be found in:
# bookwyrm/postgres-docker/tests/testing-entrypoint.sh
set -euo pipefail
DAILY_THRESHOLD=14
WEEKLY_THRESHOLD=4
MONTHLY_THRESHOLD=-1
HELP="\
NAME
weed -- remove old backups from the backups directory
SYNOPSIS
weed.sh [-d threshold] [-w threshold] [-m threshold] [-l] backup_directory
DESCRIPTION
Reduce the number of backups by only keeping a certain number of daily backups before \
reducing the frequency to weekly, monthly, and then finaly annually.
For each threshold, setting it to 0 will skip that frequency (e.g., setting weekly to \
0 will mean backups go directly from daily to monthly), and setting it to -1 will \
never reduce backups to a lower frequency (e.g., setting weekly to -1 will mean \
backups never are reduced to monthly backups).
-d threshold: Store this many daily backups before switching to weekly \
(default $DAILY_THRESHOLD)
-w threshold: Store this many weekly backups before switching to monthly \
(default $WEEKLY_THRESHOLD)
-m threshold: Store this many monthly backups before switching to annual \
(default $MONTHLY_THRESHOLD)
-l: Dry run. List the files that would be deleted.
"
# fail <message>
# Write a message to stderr then exit
function fail {
echo -e "weed: $1" >&2
exit 1
}
# parse_threshold <hopefully-a-number>
# Thresholds should be a non-negative number (or -1 for no threshold)
function parse_threshold {
if [[ ! $1 =~ ^-?[0-9]+$ || $1 -lt -1 ]]; then
fail "Invalid threshold: $1"
fi
echo "$1"
}
# weed_directory <directory> <daily_threshold> <weekly_threshold> <monthly_threshold>
# List files to be deleted
function weed_directory {
local directory=$1
local daily_threshold=$2
local weekly_threshold=$3
local monthly_threshold=$4
local count=0
local thresholds=("$daily_threshold" "$weekly_threshold" "$monthly_threshold" -1)
local date_formats=("%Y %m %d" "%Y %W" "%Y %m" "%Y")
local index=0
local last_date=""
local last_format=""
local date=""
# We would like to loop through all the backup files in the backup directory in
# reverse-chronological order. Bookwyrm backup files are named such that
# chronological and lexical order match. So we should be safe to find all backup
# files and reverse sort them. We should be terrified of deleting a backup an
# instance maintainer wants to keep, so we will be extra cautious. We're ignoring
# any subdirectories in case someone moves an important backup into a meaningfully
# named folder. We are also prepending the date to the path before sorting so that
# the ordering would be correct even if we were allowed to find backup files in
# subdirectories where chronological and lexical order don't match.
for date_file in $(
find "$directory" \
-maxdepth 1 \
-name 'backup__[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\.sql' \
| sed 's/\(^.*backup__\([0-9-]*\)\.sql$\)/\2\1/' \
| sort --reverse
); do
date="${date_file:0:10}"
file="${date_file:10}"
date="${date_file:0:10}"
file="${date_file:10}"
# We can't fall off the end because we set annual backups to unlimited. It seems
# unlikely that instance maintainers would have enough concern about the space
# one backup/year takes to warrant supporting a cutoff.
while [[ ${thresholds[index]} -ne -1 && $count -ge ${thresholds[index]} ]]; do
index=$((index + 1))
last_format=""
count=0
done
if [[ -z "$last_date" ]]; then
count=$((count + 1))
last_date=$date
last_format=""
else
if [[ -z "$last_format" ]]; then
last_format=$(date --date="$last_date" +"${date_formats[index]}")
fi
format=$(date --date="$date" +"${date_formats[index]}")
if [[ "$format" == "$last_format" ]]; then
echo "$file"
else
count=$((count + 1))
last_date="$date"
last_format="$format"
fi
fi
done
}
function main(){
local daily_threshold=$DAILY_THRESHOLD
local weekly_threshold=$WEEKLY_THRESHOLD
local monthly_threshold=$MONTHLY_THRESHOLD
local dry_run=""
while getopts "hd:w:m:l" OPTION; do
case "$OPTION" in
h)
echo "$HELP";
exit
;;
d)
daily_threshold=$(parse_threshold "$OPTARG")
;;
w)
weekly_threshold=$(parse_threshold "$OPTARG")
;;
m)
monthly_threshold=$(parse_threshold "$OPTARG")
;;
l)
dry_run="true"
;;
:)
fail "Missing argument for '$OPTARG'. To see help run: weed.sh -h"
;;
?)
fail "Unknown option '$OPTION'. To see help run: weed.sh -h"
esac
done
shift "$((OPTIND - 1))"
if [[ $# -ne 1 ]]; then
fail "expected a single argument, directory"
fi
local count=0
for file in $(weed_directory "$1" "$daily_threshold" "$weekly_threshold" "$monthly_threshold"); do
count=$((count + 1))
if [[ -n "$dry_run" ]]; then
echo "$file"
else
echo "deleting $file" >&2
rm "$file"
fi
done
if [[ -n "$dry_run" ]]; then
optional_words="would be "
else
optional_words=""
fi
echo -e "$count files ${optional_words}deleted" >&2
}
if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then
main "$@"
fi

View file

@ -9,8 +9,10 @@ django-model-utils==4.0.0
django-sass-processor==1.0.1
environs==9.3.4
flower==1.0.0
gunicorn==20.0.4
libsass==0.21.0
Markdown==3.3.3
packaging==21.3
Pillow>=9.0.0
psycopg2==2.8.4
pycryptodome==3.9.4
@ -27,12 +29,3 @@ opentelemetry-sdk==1.8.0
opentelemetry-exporter-otlp-proto-grpc==1.8.0
opentelemetry-instrumentation-django==0.27b0
opentelemetry-instrumentation-celery==0.27b0
# Dev
pytest-django==4.1.0
pytest==6.1.2
pytest-cov==2.10.1
pytest-env==0.6.2
pytest-xdist==2.3.0
pytidylib==0.3.2
pylint==2.14.0