From d53ed3fdb2563f902984c6ca3823619b241e6969 Mon Sep 17 00:00:00 2001 From: Martin Fenner Date: Sat, 7 Oct 2023 23:18:37 +0200 Subject: [PATCH] adding tests for content negotiation --- poetry.lock | 291 +++++- pyproject.toml | 2 + rogue_scholar_api/__init__.py | 7 +- rogue_scholar_api/utils.py | 1 + .../test-routes/test_blogs_route.yaml | 214 +++++ .../test-routes/test_post_as_bibtex.yaml | 240 +++++ .../test-routes/test_post_as_citation.yaml | 238 +++++ .../test_post_as_citation_with_locale.yaml | 238 +++++ .../test_post_as_citation_with_style.yaml | 238 +++++ .../test_posts_not_indexed_route.yaml | 70 ++ .../test_posts_unregistered_route.yaml | 231 +++++ ...posts_with_query_and_pagination_route.yaml | 883 ++++++++++++++++++ tests/test-routes.py | 128 ++- 13 files changed, 2776 insertions(+), 5 deletions(-) create mode 100644 tests/cassettes/test-routes/test_blogs_route.yaml create mode 100644 tests/cassettes/test-routes/test_post_as_bibtex.yaml create mode 100644 tests/cassettes/test-routes/test_post_as_citation.yaml create mode 100644 tests/cassettes/test-routes/test_post_as_citation_with_locale.yaml create mode 100644 tests/cassettes/test-routes/test_post_as_citation_with_style.yaml create mode 100644 tests/cassettes/test-routes/test_posts_not_indexed_route.yaml create mode 100644 tests/cassettes/test-routes/test_posts_unregistered_route.yaml create mode 100644 tests/cassettes/test-routes/test_posts_with_query_and_pagination_route.yaml diff --git a/poetry.lock b/poetry.lock index 51f3ea3..e652b14 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1466,6 +1466,89 @@ files = [ {file = "mkdocs_material_extensions-1.2.tar.gz", hash = "sha256:27e2d1ed2d031426a6e10d5ea06989d67e90bb02acd588bc5673106b5ee5eedf"}, ] +[[package]] +name = "multidict" +version = "6.0.4" +description = "multidict implementation" +optional = false +python-versions = ">=3.7" +files = [ + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, + {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, + {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, + {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, + {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, + {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, + {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, + {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, + {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, + {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, + {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, + {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, + {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, +] + [[package]] name = "mypy-extensions" version = "1.0.0" @@ -2058,6 +2141,25 @@ pytest = ">=4.6" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +[[package]] +name = "pytest-recording" +version = "0.13.0" +description = "A pytest plugin that allows you recording of network interactions via VCR.py" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest_recording-0.13.0-py3-none-any.whl", hash = "sha256:679b0ae6eb3337b981f6a4d590a30c28c43855bfac5b9ad87070ad6d08b05dbc"}, + {file = "pytest_recording-0.13.0.tar.gz", hash = "sha256:b24b707af843341457d9d340328f361eceb0efe980e388341941b4fada3745ca"}, +] + +[package.dependencies] +pytest = ">=3.5.0" +vcrpy = ">=2.0.1" + +[package.extras] +dev = ["pytest-recording[tests]"] +tests = ["pytest-httpbin", "pytest-mock", "requests", "werkzeug (==2.3.6)"] + [[package]] name = "python-dateutil" version = "2.8.2" @@ -3300,6 +3402,22 @@ secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17. socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "vcrpy" +version = "5.1.0" +description = "Automatically mock your HTTP interactions to simplify and speed up testing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "vcrpy-5.1.0-py2.py3-none-any.whl", hash = "sha256:605e7b7a63dcd940db1df3ab2697ca7faf0e835c0852882142bafb19649d599e"}, + {file = "vcrpy-5.1.0.tar.gz", hash = "sha256:bbf1532f2618a04f11bce2a99af3a9647a32c880957293ff91e0a5f187b6b3d2"}, +] + +[package.dependencies] +PyYAML = "*" +wrapt = "*" +yarl = "*" + [[package]] name = "virtualenv" version = "20.24.5" @@ -3476,6 +3594,90 @@ MarkupSafe = ">=2.1.1" [package.extras] watchdog = ["watchdog (>=2.3)"] +[[package]] +name = "wrapt" +version = "1.15.0" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, + {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, + {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, + {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, + {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, + {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, + {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, + {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, + {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, + {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, + {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, + {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, + {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, + {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, + {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, + {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, + {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, + {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, + {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, +] + [[package]] name = "wsproto" version = "1.2.0" @@ -3501,7 +3703,94 @@ files = [ {file = "xmltodict-0.12.0.tar.gz", hash = "sha256:50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21"}, ] +[[package]] +name = "yarl" +version = "1.9.2" +description = "Yet another URL library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c2ad583743d16ddbdf6bb14b5cd76bf43b0d0006e918809d5d4ddf7bde8dd82"}, + {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82aa6264b36c50acfb2424ad5ca537a2060ab6de158a5bd2a72a032cc75b9eb8"}, + {file = "yarl-1.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c0c77533b5ed4bcc38e943178ccae29b9bcf48ffd1063f5821192f23a1bd27b9"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee4afac41415d52d53a9833ebae7e32b344be72835bbb589018c9e938045a560"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bf345c3a4f5ba7f766430f97f9cc1320786f19584acc7086491f45524a551ac"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a96c19c52ff442a808c105901d0bdfd2e28575b3d5f82e2f5fd67e20dc5f4ea"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:891c0e3ec5ec881541f6c5113d8df0315ce5440e244a716b95f2525b7b9f3608"}, + {file = "yarl-1.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3a53ba34a636a256d767c086ceb111358876e1fb6b50dfc4d3f4951d40133d5"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:566185e8ebc0898b11f8026447eacd02e46226716229cea8db37496c8cdd26e0"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2b0738fb871812722a0ac2154be1f049c6223b9f6f22eec352996b69775b36d4"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:32f1d071b3f362c80f1a7d322bfd7b2d11e33d2adf395cc1dd4df36c9c243095"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e9fdc7ac0d42bc3ea78818557fab03af6181e076a2944f43c38684b4b6bed8e3"}, + {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56ff08ab5df8429901ebdc5d15941b59f6253393cb5da07b4170beefcf1b2528"}, + {file = "yarl-1.9.2-cp310-cp310-win32.whl", hash = "sha256:8ea48e0a2f931064469bdabca50c2f578b565fc446f302a79ba6cc0ee7f384d3"}, + {file = "yarl-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:50f33040f3836e912ed16d212f6cc1efb3231a8a60526a407aeb66c1c1956dde"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:646d663eb2232d7909e6601f1a9107e66f9791f290a1b3dc7057818fe44fc2b6"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aff634b15beff8902d1f918012fc2a42e0dbae6f469fce134c8a0dc51ca423bb"}, + {file = "yarl-1.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a83503934c6273806aed765035716216cc9ab4e0364f7f066227e1aaea90b8d0"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b25322201585c69abc7b0e89e72790469f7dad90d26754717f3310bfe30331c2"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22a94666751778629f1ec4280b08eb11815783c63f52092a5953faf73be24191"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ec53a0ea2a80c5cd1ab397925f94bff59222aa3cf9c6da938ce05c9ec20428d"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:159d81f22d7a43e6eabc36d7194cb53f2f15f498dbbfa8edc8a3239350f59fe7"}, + {file = "yarl-1.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:832b7e711027c114d79dffb92576acd1bd2decc467dec60e1cac96912602d0e6"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:95d2ecefbcf4e744ea952d073c6922e72ee650ffc79028eb1e320e732898d7e8"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d4e2c6d555e77b37288eaf45b8f60f0737c9efa3452c6c44626a5455aeb250b9"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:783185c75c12a017cc345015ea359cc801c3b29a2966c2655cd12b233bf5a2be"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:b8cc1863402472f16c600e3e93d542b7e7542a540f95c30afd472e8e549fc3f7"}, + {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:822b30a0f22e588b32d3120f6d41e4ed021806418b4c9f0bc3048b8c8cb3f92a"}, + {file = "yarl-1.9.2-cp311-cp311-win32.whl", hash = "sha256:a60347f234c2212a9f0361955007fcf4033a75bf600a33c88a0a8e91af77c0e8"}, + {file = "yarl-1.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:be6b3fdec5c62f2a67cb3f8c6dbf56bbf3f61c0f046f84645cd1ca73532ea051"}, + {file = "yarl-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38a3928ae37558bc1b559f67410df446d1fbfa87318b124bf5032c31e3447b74"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac9bb4c5ce3975aeac288cfcb5061ce60e0d14d92209e780c93954076c7c4367"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3da8a678ca8b96c8606bbb8bfacd99a12ad5dd288bc6f7979baddd62f71c63ef"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13414591ff516e04fcdee8dc051c13fd3db13b673c7a4cb1350e6b2ad9639ad3"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf74d08542c3a9ea97bb8f343d4fcbd4d8f91bba5ec9d5d7f792dbe727f88938"}, + {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e7221580dc1db478464cfeef9b03b95c5852cc22894e418562997df0d074ccc"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:494053246b119b041960ddcd20fd76224149cfea8ed8777b687358727911dd33"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:52a25809fcbecfc63ac9ba0c0fb586f90837f5425edfd1ec9f3372b119585e45"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:e65610c5792870d45d7b68c677681376fcf9cc1c289f23e8e8b39c1485384185"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:1b1bba902cba32cdec51fca038fd53f8beee88b77efc373968d1ed021024cc04"}, + {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:662e6016409828ee910f5d9602a2729a8a57d74b163c89a837de3fea050c7582"}, + {file = "yarl-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:f364d3480bffd3aa566e886587eaca7c8c04d74f6e8933f3f2c996b7f09bee1b"}, + {file = "yarl-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6a5883464143ab3ae9ba68daae8e7c5c95b969462bbe42e2464d60e7e2698368"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5610f80cf43b6202e2c33ba3ec2ee0a2884f8f423c8f4f62906731d876ef4fac"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9a4e67ad7b646cd6f0938c7ebfd60e481b7410f574c560e455e938d2da8e0f4"}, + {file = "yarl-1.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:83fcc480d7549ccebe9415d96d9263e2d4226798c37ebd18c930fce43dfb9574"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fcd436ea16fee7d4207c045b1e340020e58a2597301cfbcfdbe5abd2356c2fb"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84e0b1599334b1e1478db01b756e55937d4614f8654311eb26012091be109d59"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3458a24e4ea3fd8930e934c129b676c27452e4ebda80fbe47b56d8c6c7a63a9e"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:838162460b3a08987546e881a2bfa573960bb559dfa739e7800ceeec92e64417"}, + {file = "yarl-1.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4e2d08f07a3d7d3e12549052eb5ad3eab1c349c53ac51c209a0e5991bbada78"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:de119f56f3c5f0e2fb4dee508531a32b069a5f2c6e827b272d1e0ff5ac040333"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:149ddea5abf329752ea5051b61bd6c1d979e13fbf122d3a1f9f0c8be6cb6f63c"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:674ca19cbee4a82c9f54e0d1eee28116e63bc6fd1e96c43031d11cbab8b2afd5"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:9b3152f2f5677b997ae6c804b73da05a39daa6a9e85a512e0e6823d81cdad7cc"}, + {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5415d5a4b080dc9612b1b63cba008db84e908b95848369aa1da3686ae27b6d2b"}, + {file = "yarl-1.9.2-cp38-cp38-win32.whl", hash = "sha256:f7a3d8146575e08c29ed1cd287068e6d02f1c7bdff8970db96683b9591b86ee7"}, + {file = "yarl-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:63c48f6cef34e6319a74c727376e95626f84ea091f92c0250a98e53e62c77c72"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75df5ef94c3fdc393c6b19d80e6ef1ecc9ae2f4263c09cacb178d871c02a5ba9"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c027a6e96ef77d401d8d5a5c8d6bc478e8042f1e448272e8d9752cb0aff8b5c8"}, + {file = "yarl-1.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3b078dbe227f79be488ffcfc7a9edb3409d018e0952cf13f15fd6512847f3f7"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59723a029760079b7d991a401386390c4be5bfec1e7dd83e25a6a0881859e716"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b03917871bf859a81ccb180c9a2e6c1e04d2f6a51d953e6a5cdd70c93d4e5a2a"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1012fa63eb6c032f3ce5d2171c267992ae0c00b9e164efe4d73db818465fac3"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74dcbfe780e62f4b5a062714576f16c2f3493a0394e555ab141bf0d746bb955"}, + {file = "yarl-1.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c56986609b057b4839968ba901944af91b8e92f1725d1a2d77cbac6972b9ed1"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c315df3293cd521033533d242d15eab26583360b58f7ee5d9565f15fee1bef4"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b7232f8dfbd225d57340e441d8caf8652a6acd06b389ea2d3222b8bc89cbfca6"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:53338749febd28935d55b41bf0bcc79d634881195a39f6b2f767870b72514caf"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:066c163aec9d3d073dc9ffe5dd3ad05069bcb03fcaab8d221290ba99f9f69ee3"}, + {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8288d7cd28f8119b07dd49b7230d6b4562f9b61ee9a4ab02221060d21136be80"}, + {file = "yarl-1.9.2-cp39-cp39-win32.whl", hash = "sha256:b124e2a6d223b65ba8768d5706d103280914d61f5cae3afbc50fc3dfcc016623"}, + {file = "yarl-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:61016e7d582bc46a5378ffdd02cd0314fb8ba52f40f9cf4d9a5e7dbef88dee18"}, + {file = "yarl-1.9.2.tar.gz", hash = "sha256:04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "23faea210a6f6ec2259446bc633c06c9602de5b416a4ef2bcb6912e2dfc460cc" +content-hash = "10e79554212d6b7e64736d8d07f816f645a69e5c6d1883dab58b0f916f1cec11" diff --git a/pyproject.toml b/pyproject.toml index 8991184..6c238ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ typesense = "^0.17.0" pydash = "^6.0" commonmeta-py = "^0.8.4" pytest-asyncio = "^0.21.1" +chardet = "^5.2.0" [tool.poetry.group.dev.dependencies] @@ -28,6 +29,7 @@ pytest-cov = "^4.1.0" ruff = "^0.0.292" black = "^23.9.1" pytest-asyncio = "^0.21.1" +pytest-recording = "^0.13.0" [build-system] requires = ["poetry-core"] diff --git a/rogue_scholar_api/__init__.py b/rogue_scholar_api/__init__.py index 5efa98d..eca3b7a 100644 --- a/rogue_scholar_api/__init__.py +++ b/rogue_scholar_api/__init__.py @@ -2,8 +2,9 @@ from uuid import UUID from dotenv import load_dotenv from supabase import create_client, Client as SupabaseClient -from quart import Quart, request, jsonify +from quart import Quart, request, jsonify, render_template import typesense as ts +import chardet from rogue_scholar_api.utils import get_doi_metadata_from_ra @@ -145,6 +146,10 @@ async def post(slug, suffix=None): } content_type = content_types.get(format_) metadata = get_doi_metadata_from_ra(doi, headers={"Accept": content_type}) + try: + print(metadata) + except Exception: + pass if not metadata: return {"error": "Metadata not found."}, 404 diff --git a/rogue_scholar_api/utils.py b/rogue_scholar_api/utils.py index 8facc09..d3b03cf 100644 --- a/rogue_scholar_api/utils.py +++ b/rogue_scholar_api/utils.py @@ -4,6 +4,7 @@ def get_doi_metadata_from_ra(doi: str, headers) -> str: """use DOI content negotiation to get metadata in various formats""" response = requests.get(doi, headers=headers) + response.encoding = 'UTF-8' if response.status_code >= 400: return "Metadata not found" return response.text.strip() diff --git a/tests/cassettes/test-routes/test_blogs_route.yaml b/tests/cassettes/test-routes/test_blogs_route.yaml new file mode 100644 index 0000000..9569054 --- /dev/null +++ b/tests/cassettes/test-routes/test_blogs_route.yaml @@ -0,0 +1,214 @@ +interactions: +- request: + body: '{}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + accept-profile: + - public + connection: + - keep-alive + content-length: + - '2' + content-profile: + - public + content-type: + - application/json + host: + - db.rogue-scholar.org + range: + - 0-99 + range-unit: + - items + user-agent: + - python-httpx/0.24.1 + x-client-info: + - supabase-py/1.2.0 + method: GET + uri: https://db.rogue-scholar.org/rest/v1/blogs?select=slug%2C%20title%2C%20description%2C%20language%2C%20favicon%2C%20feed_url%2C%20feed_format%2C%20home_page_url%2C%20generator%2C%20category&status=in.%28approved%2Cactive%2Carchived%29&order=title + response: + content: "[{\"slug\":\"rossmounce\",\"title\":\"A blog by Ross Mounce\",\"description\":null,\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://rossmounce.co.uk/wp-json/wp/v2/posts\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://rossmounce.co.uk\",\"generator\":\"WordPress\",\"category\":\"naturalSciences\"}, + \n {\"slug\":\"andrewheiss\",\"title\":\"Andrew Heiss's blog\",\"description\":\"Andrew + Heiss's blog\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://www.andrewheiss.com/atom.xml\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://www.andrewheiss.com\",\"generator\":\"Quarto + 1.4.376\",\"category\":\"politicalScience\"}, \n {\"slug\":\"behind_the_science\",\"title\":\"Behind + the Science\",\"description\":\"Ein Blog aus dem Admin-Bereich der Wissenschaft\",\"language\":\"de\",\"favicon\":null,\"feed_url\":\"https://ulirockenbauch.blog/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://ulirockenbauch.blog\",\"generator\":\"WordPress.com\",\"category\":\"socialSciences\"}, + \n {\"slug\":\"brembs\",\"title\":\"bjoern.brembs.blog\",\"description\":\"The + blog of neurobiologist Bj\xF6rn Brembs\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://bjoern.brembs.net/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://bjoern.brembs.net\",\"generator\":\"WordPress\",\"category\":\"biologicalSciences\"}, + \n {\"slug\":\"b_l_a_k_e\",\"title\":\"Blog - Blake Lee-Whiting\",\"description\":null,\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://www.b-l-a-k-e.com/blog?format=rss\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://www.b-l-a-k-e.com/blog\",\"generator\":\"Site-server + v6.0.0-16bc64473c099979067de26b280cbeba1a5fe523-1 (http://www.squarespace.com)\",\"category\":\"politicalScience\"}, + \n {\"slug\":\"researchsoft\",\"title\":\"Blog on Research Software Alliance\",\"description\":null,\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://www.researchsoft.org/feed.xml\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://www.researchsoft.org/blog\",\"generator\":\"Hugo + 0.76.5\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"dustinstoltz\",\"title\":\"Blogs + on Dustin S. Stoltz\",\"description\":\"Recent content in Blogs on Dustin S. + Stoltz\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://www.dustinstoltz.com/blog/index.xml\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://www.dustinstoltz.com/blog\",\"generator\":\"Hugo + -- gohugo.io\",\"category\":\"sociology\"}, \n {\"slug\":\"chjh\",\"title\":\"Chris + Hartgerink\",\"description\":\"Chris Hartgerink\",\"language\":\"en\",\"favicon\":\"https://www.chjh.nl/favicon.png\",\"feed_url\":\"https://www.chjh.nl/rss/\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://www.chjh.nl\",\"generator\":\"Ghost + 5.67\",\"category\":\"socialSciences\"}, \n {\"slug\":\"chroknowlogy\",\"title\":\"Chroknowlogy\",\"description\":\"Thinking + about the ethical care of information, knowledge, culture, and what we do for + societies over a very long time.\",\"language\":\"en\",\"favicon\":\"https://chroknowlogy.ca/wp-content/uploads/2021/08/cropped-favicon-32x32.png\",\"feed_url\":\"https://chroknowlogy.ca/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://chroknowlogy.ca\",\"generator\":\"WordPress + 6.3.1\",\"category\":\"humanities\"}, \n {\"slug\":\"csl\",\"title\":\"Citation + Style Language\",\"description\":\"CitationStyles.org, home of the Citation + Style Language (CSL), a popular open XML-based language to describe the formatting + of citations and bibliographies.\",\"language\":\"en\",\"favicon\":\"https://citationstyles.org/assets/img/csl-logo-small-inverse-150.png\",\"feed_url\":\"https://citationstyles.org/feed.xml\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://citationstyles.org\",\"generator\":\"Jekyll + 3.9.3\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"cwagen\",\"title\":\"Corin + Wagen\",\"description\":\"My personal blog, focusing on issues of chemistry + and metascience, unified by trying to answer the question \\\"how can we make + science better\\\"?\",\"language\":\"en\",\"favicon\":\"https://substackcdn.com/image/fetch/w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa5b250-f13b-47f4-8b9b-92169bd25a28_512x512.png\",\"feed_url\":\"https://cwagen.substack.com/feed\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://cwagen.substack.com\",\"generator\":\"Substack\",\"category\":\"chemicalSciences\"}, + \n {\"slug\":\"markrubin\",\"title\":\"Critical Metascience\",\"description\":\"Critical + perspectives in metascience and the philosophy of science relating to open science, + science reform, and the replication crisis.\",\"language\":\"en\",\"favicon\":\"https://substackcdn.com/image/fetch/w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00187507-ddc5-4baa-9dae-79f9487d8bce_325x325.png\",\"feed_url\":\"https://markrubin.substack.com/feed\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://markrubin.substack.com\",\"generator\":\"Substack\",\"category\":\"socialSciences\"}, + \n {\"slug\":\"danielskatz\",\"title\":\"Daniel S. Katz's blog\",\"description\":null,\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://danielskatzblog.wordpress.com/feed/atom\\n\\n\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://danielskatzblog.wordpress.com\",\"generator\":\"WordPress.com\",\"category\":\"computerAndInformationSciences\"}, + \n {\"slug\":\"donnywinston\",\"title\":\"Donny Winston\",\"description\":\"Made + as simple as possible, but not simpler.\",\"language\":\"en\",\"favicon\":\"https://files.polyneme.xyz/polyneme-logo-sq-AdH548JPkxW0qf3M5NVTVLt5qdVKFN28AKKvS35A2ndmDMQ0baH90H5APJvIITO2UkFht8rLzZGQTxob8DCqG3KqnsEOczShPKoT.png\",\"feed_url\":\"https://donnywinston.com/2023-07-26-all-feed.xml\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://donnywinston.com\",\"generator\":\"Hugo + 0.110.0\",\"category\":\"naturalSciences\"}, \n {\"slug\":\"norbisley\",\"title\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"description\":null,\"language\":\"es\",\"favicon\":\"https://db.rogue-scholar.org/storage/v1/object/public/images/Screenshot%202023-08-28%20063918.png\",\"feed_url\":\"https://norbisley.wordpress.com/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://norbisley.wordpress.com\",\"generator\":\"WordPress.com\",\"category\":\"mediaAndCommunications\"}, + \n {\"slug\":\"elephantinthelab\",\"title\":\"Elephant in the Lab\",\"description\":\"Bold + ideas and critical thoughts on science.\",\"language\":\"en\",\"favicon\":\"https://elephantinthelab.org/wp-content/uploads/2017/05/cropped-ElephantInTheLab-Icon-12-1-32x32.png\",\"feed_url\":\"https://elephantinthelab.org/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://elephantinthelab.org\",\"generator\":\"WordPress + 6.0.5\",\"category\":\"socialSciences\"}, \n {\"slug\":\"fairdata\",\"title\":\"FAIR + Data Digest\",\"description\":\"Notes on my work with (cultural heritage) FAIR + data. Topics cover Programming, Open Science, Digital Humanities, Knowledge + Graphs, Linked Data, Metadata, data catalogs, Wikidata, RDF, SPARQL and the + Semantic Web as well as personal interests.\",\"language\":\"en\",\"favicon\":\"https://substackcdn.com/image/fetch/w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Ffairdata.substack.com%2Fimg%2Fsubstack.png\",\"feed_url\":\"https://fairdata.substack.com/feed\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://fairdata.substack.com\",\"generator\":\"Substack\",\"category\":\"computerAndInformationSciences\"}, + \n {\"slug\":\"epub_fis\",\"title\":\"FIS & EPub\",\"description\":\"Gemeinsamer + Blog der DINI AG Forschungsinformationssystem und Elektronisches Publizieren\",\"language\":\"de\",\"favicon\":\"https://blog.dini.de/EPub_FIS/wp-content/uploads/2018/03/cropped-DINI-AG-FIS-3-1-150x150.png\",\"feed_url\":\"https://blog.dini.de/EPub_FIS/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://blog.dini.de/EPub_FIS\",\"generator\":\"WordPress + 6.2.2\",\"category\":\"socialSciences\"}, \n {\"slug\":\"flavoursofopen\",\"title\":\"Flavours + of Open\",\"description\":null,\"language\":\"en\",\"favicon\":\"https://flavoursofopen.science/wp-content/uploads/2022/05/cropped-open-padlock-32x32.png\",\"feed_url\":\"https://flavoursofopen.science/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://flavoursofopen.science\",\"generator\":\"WordPress + 6.3.1\",\"category\":\"humanities\"}, \n {\"slug\":\"freaktakes\",\"title\":\"FreakTakes\",\"description\":\"Historical + analyses for those building a new generation of research orgs\",\"language\":\"en\",\"favicon\":\"https://substackcdn.com/image/fetch/w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96e4b611-885c-4c06-a190-0605cd088b4f_368x368.png\",\"feed_url\":\"https://www.freaktakes.com/feed\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://www.freaktakes.com\",\"generator\":\"Substack\",\"category\":\"philosophyEthicsAndReligion\"}, + \n {\"slug\":\"front_matter\",\"title\":\"Front Matter\",\"description\":\"The + Front Matter Blog covers the intersection of science and technology since 2007.\",\"language\":\"en\",\"favicon\":\"https://blog.front-matter.io/favicon.png\",\"feed_url\":\"https://blog.front-matter.io/atom-complete/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://blog.front-matter.io\",\"generator\":\"Ghost + 5.52\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"gigablog\",\"title\":\"GigaBlog\",\"description\":\"Data + driven blogging from the GigaScience editors\",\"language\":\"en\",\"favicon\":\"https://db.rogue-scholar.org/storage/v1/object/public/images/GigaBlog%20Icon.png\",\"feed_url\":\"http://gigasciencejournal.com/blog/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"http://gigasciencejournal.com/blog\",\"generator\":\"WordPress + 6.2.2\",\"category\":\"biologicalSciences\"}, \n {\"slug\":\"rzepa\",\"title\":\"Henry + Rzepa's Blog\",\"description\":\"Chemistry with a twist\",\"language\":\"en\",\"favicon\":\"https://www.ch.ic.ac.uk/rzepa/blog/wp-content/uploads/2023/08/cropped-blog-rzepa-32x32.jpg\",\"feed_url\":\"https://www.ch.imperial.ac.uk/rzepa/blog/?feed=atom\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://www.ch.imperial.ac.uk/rzepa/blog\",\"generator\":\"WordPress + 6.3.1\",\"category\":\"chemicalSciences\"}, \n {\"slug\":\"ideas\",\"title\":\"I.D.E.A.S.\",\"description\":\"Innovation + and Design Experiments in Academic Surgery (I.D.E.A.S.)\",\"language\":\"en\",\"favicon\":\"https://www.ideasurg.pub/favicon.png\",\"feed_url\":\"https://www.ideasurg.pub/rss/\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://www.ideasurg.pub\",\"generator\":\"Ghost + 5.67\",\"category\":\"clinicalMedicine\"}, \n {\"slug\":\"iphylo\",\"title\":\"iPhylo\",\"description\":\"Rants, + raves (and occasionally considered opinions) on phyloinformatics, taxonomy, + and biodiversity informatics. For more ranty and less considered opinions, + see my Twitter feed.
ISSN + 2051-8188. Written content on this site is licensed under a Creative + Commons Attribution 4.0 International license.\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://iphylo.blogspot.com/feeds/posts/default\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://iphylo.blogspot.com\",\"generator\":\"Blogger + 7.00\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"irights\",\"title\":\"iRights.info\",\"description\":\"Urheberrecht + und kreatives Schaffen in der digitalen Welt\",\"language\":\"de\",\"favicon\":null,\"feed_url\":\"https://irights.info/feed/atom\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://irights.info\",\"generator\":\"WordPress\",\"category\":\"law\"}, + \n {\"slug\":\"irishplants\",\"title\":\"Irish Plants\",\"description\":\"Jake's + blog\",\"language\":\"en\",\"favicon\":\"https://irishplants.org/blog/wp-content/uploads/2022/08/favicon32.png\",\"feed_url\":\"http://irishplants.org/blog/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://irishplants.org/blog\",\"generator\":\"WordPress + 6.3.1\",\"category\":\"biologicalSciences\"}, \n {\"slug\":\"jabberwocky_ecology\",\"title\":\"Jabberwocky + Ecology\",\"description\":\"Ethan White and Morgan Ernest's blog for discussing + issues and ideas related to ecology and academia.\",\"language\":\"en\",\"favicon\":\"https://secure.gravatar.com/blavatar/805953466a80fcabef50a73dfb96d52b?s=96&d=https%3A%2F%2Fs0.wp.com%2Fi%2Fbuttonw-com.png\",\"feed_url\":\"https://jabberwocky.weecology.org/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://jabberwocky.weecology.org\",\"generator\":\"WordPress.com\",\"category\":\"biologicalSciences\"}, + \n {\"slug\":\"joss\",\"title\":\"Journal of Open Source Software Blog\",\"description\":\"Blog + for the Journal of Open Source Software \u2022 https://joss.theoj.org\",\"language\":\"en\",\"favicon\":\"https://user-images.githubusercontent.com/4483/49343677-fcd32700-f63b-11e8-8883-8c07463ee2a9.png\",\"feed_url\":\"https://blog.joss.theoj.org/feed.xml\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://blog.joss.theoj.org\",\"generator\":\"Jekyll + 3.9.2\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"x_dev\",\"title\":\"JSC + Accelerating Devices Lab\",\"description\":\"Various notes from the Accelerating + Devices Lab (X-Dev) of J\xFClich Supercomputing Centre\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://x-dev.pages.jsc.fz-juelich.de/feed.xml\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://x-dev.pages.jsc.fz-juelich.de\",\"generator\":\"Jekyll + 4.2.2\",\"category\":\"eletricalEngineering\"}, \n {\"slug\":\"lab_sub\",\"title\":\"lab.sub + - Articles\",\"description\":\"Better sit thus, and observe thy strange things\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://lab.sub.uni-goettingen.de/atom.xml\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://lab.sub.uni-goettingen.de\",\"generator\":\"Jekyll\",\"category\":\"computerAndInformationSciences\"}, + \n {\"slug\":\"leidenmadtrics\",\"title\":\"Leiden Madtrics\",\"description\":\"Leiden + Madtrics\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://www.leidenmadtrics.nl/feed/\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://www.leidenmadtrics.nl\",\"generator\":null,\"category\":\"socialSciences\"}, + \n {\"slug\":\"libscie\",\"title\":\"Liberate Science\",\"description\":\"Research + as a commons\",\"language\":\"en\",\"favicon\":\"https://libscie.org/favicon.png\",\"feed_url\":\"https://libscie.org/rss/\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://libscie.org\",\"generator\":\"Ghost + 5.49\",\"category\":\"socialSciences\"}, \n {\"slug\":\"eve\",\"title\":\"Martin + Paul Eve\",\"description\":null,\"language\":\"en\",\"favicon\":\"https://eve.gd/favicon.png\",\"feed_url\":\"https://eve.gd/feed_all.xml\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://eve.gd\",\"generator\":\"Jekyll\",\"category\":\"languagesAndLiterature\"}, + \n {\"slug\":\"oa_works\",\"title\":\"OA.Works Blog\",\"description\":\"OA.Works + Blog\",\"language\":\"en\",\"favicon\":\"https://blog.oa.works/favicon.png\",\"feed_url\":\"https://blog.oa.works/rss/\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://blog.oa.works\",\"generator\":\"Ghost + 5.67\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"oaberlin\",\"title\":\"Open + Access Blog Berlin\",\"description\":null,\"language\":\"de\",\"favicon\":\"https://blogs.fu-berlin.de/open-access-berlin/files/2021/09/cropped-banner-1-32x32.jpg\",\"feed_url\":\"https://blogs.fu-berlin.de/open-access-berlin/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://blogs.fu-berlin.de/open-access-berlin\",\"generator\":\"WordPress + 6.0\",\"category\":\"otherHumanities\"}, \n {\"slug\":\"opencitations\",\"title\":\"OpenCitations + Blog\",\"description\":\"The blog of the OpenCitations Infrastructure\",\"language\":\"en\",\"favicon\":\"https://opencitations.hypotheses.org/files/2022/08/cropped-OpenCitations-logo-512x512-1-32x32.jpg\",\"feed_url\":\"https://opencitations.hypotheses.org/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://opencitations.hypotheses.org\",\"generator\":\"WordPress + 6.2\",\"category\":\"socialSciences\"}, \n {\"slug\":\"kalz\",\"title\":\"Prof. + Dr. Marco Kalz\",\"description\":\"Posts\",\"language\":\"en\",\"favicon\":\"https://kalz.cc/media/icon_hu05a4ac2b0390de3ce22dc055dc4e56d4_40775_512x512_fill_lanczos_center_3.png\",\"feed_url\":\"https://kalz.cc/post/index.xml\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://kalz.cc\",\"generator\":\"Hugo\",\"category\":\"educationalSciences\"}, + \n {\"slug\":\"thor\",\"title\":\"Project THOR\",\"description\":\"Technical + and Human infrastructure for Open Research.\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://project-thor.eu/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://project-thor.eu\",\"generator\":\"WordPress.com\",\"category\":\"computerAndInformationSciences\"}, + \n {\"slug\":\"qdr\",\"title\":\"QDR Blog\",\"description\":null,\"language\":\"en\",\"favicon\":\"https://db.rogue-scholar.org/storage/v1/object/public/images/QDR-logo-acronym-solo-new.png\",\"feed_url\":\"https://qdr.syr.edu/qdr-blog/rss.xml\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://qdr.syr.edu/qdr-blog\",\"generator\":\"Drupal\",\"category\":\"socialSciences\"}, + \n {\"slug\":\"quantixed\",\"title\":\"quantixed\",\"description\":\"x == (s + || z). You say it kwontized\",\"language\":\"en\",\"favicon\":\"https://i0.wp.com/quantixed.org/wp-content/uploads/2017/12/cropped-qlogo512x512-01.png?fit=32%2C32&ssl=1\",\"feed_url\":\"https://quantixed.org/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://quantixed.org\",\"generator\":\"WordPress + 6.3.1\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"sfmatheson\",\"title\":\"Quintessence + of Dust\",\"description\":\"Quintessence of Dust explores science, society, + and human nature, focusing on genetics, development, evolution, neuroscience, + systems biology, and topics related to scientific literacy. I occasionally discuss + intelligent design, creationism, science denial, and other political/social + influences on scientific literacy. Additional topics: philosophy, baseball, + scientific culture, and Shakespeare. My main theme is scientific explanation.\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"http://sfmatheson.blogspot.com/feeds/posts/default\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"http://sfmatheson.blogspot.com\",\"generator\":\"Blogger + 7.00\",\"category\":\"socialSciences\"}, \n {\"slug\":\"coref\",\"title\":\"re3data + COREF Project Blog\",\"description\":\"COREF Blog\",\"language\":\"en\",\"favicon\":\"https://coref.project.re3data.org/user/themes/quark/images/favicon.png\",\"feed_url\":\"https://coref.project.re3data.org/blog.json\",\"feed_format\":\"application/feed+json\",\"home_page_url\":\"https://coref.project.re3data.org\",\"generator\":null,\"category\":\"computerAndInformationSciences\"}, + \n {\"slug\":\"ropensci_es\",\"title\":\"rOpenSci - herramientas abiertas para + una ciencia abierta\",\"description\":\"Open Tools and R Packages for Open Science\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://ropensci.org/es/blog/index.json\",\"feed_format\":\"application/feed+json\",\"home_page_url\":\"https://ropensci.org/es/blog\",\"generator\":\"Hugo + -- gohugo.io\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"ropensci_fr\",\"title\":\"rOpenSci + - open tools for open science\",\"description\":\"Open Tools and R Packages + for Open Science\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://ropensci.org/fr/blog/index.json\",\"feed_format\":\"application/feed+json\",\"home_page_url\":\"https://ropensci.org/fr/blog\",\"generator\":\"Hugo + -- gohugo.io\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"ropensci\",\"title\":\"rOpenSci + - open tools for open science\",\"description\":\"Open Tools and R Packages + for Open Science\",\"language\":\"en\",\"favicon\":\"https://ropensci.org/apple-touch-icon.png\",\"feed_url\":\"https://ropensci.org/blog/index.json\",\"feed_format\":\"application/feed+json\",\"home_page_url\":\"https://ropensci.org/blog\",\"generator\":\"Hugo + -- gohugo.io\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"samuelmoore\",\"title\":\"Samuel + Moore\",\"description\":\"publishing, technology, commons\",\"language\":\"en\",\"favicon\":\"https://www.samuelmoore.org/wp-content/uploads/2019/02/cropped-cropped-cropped-roAorange-icon-2-32x32.png\",\"feed_url\":\"https://www.samuelmoore.org/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://www.samuelmoore.org\",\"generator\":\"WordPress + 6.3.1\",\"category\":\"socialSciences\"}, \n {\"slug\":\"svpow\",\"title\":\"Sauropod + Vertebra Picture of the Week\",\"description\":\"SV-POW! ... All sauropod + vertebrae, except when we're talking about Open Access\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://svpow.com/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://svpow.com\",\"generator\":\"WordPress.com\",\"category\":\"earthAndRelatedEnvironmentalSciences\"}, + \n {\"slug\":\"scholcommlab\",\"title\":\"Scholarly Communications Lab | ScholCommLab\",\"description\":null,\"language\":\"en\",\"favicon\":\"https://www.scholcommlab.ca/wp-content/uploads/2018/03/SCL_logo-150x150.png\",\"feed_url\":\"https://www.scholcommlab.ca/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://www.scholcommlab.ca\",\"generator\":\"WordPress + 6.3.1\",\"category\":\"socialSciences\"}, \n {\"slug\":\"stasis\",\"title\":\"Stasis\",\"description\":\"Avenues + to Ancient Civil War\",\"language\":\"en\",\"favicon\":\"https://stasis.hypotheses.org/files/2023/09/cropped-messerstich.png\",\"feed_url\":\"https://stasis.hypotheses.org/feed/atom\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://stasis.hypotheses.org\",\"generator\":\"WordPress + 6.2\",\"category\":\"historyAndArchaeology\"}, \n {\"slug\":\"clearskiesadam\",\"title\":\"Stories + by Adam Day on Medium\",\"description\":\"Stories by Adam Day on Medium\",\"language\":\"en\",\"favicon\":\"https://cdn-images-1.medium.com/fit/c/150/150/1*DJGPkBv9iJDmlE836eaoig.jpeg\",\"feed_url\":\"https://medium.com/@clearskiesadam/feed\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://medium.com/@clearskiesadam?source=rss-ed0928b1b891------2\",\"generator\":\"Medium\",\"category\":\"computerAndInformationSciences\"}, + \n {\"slug\":\"kj_garza\",\"title\":\"Stories by Kristian Garza on Medium\",\"description\":\"Stories + by Kristian Garza on Medium\",\"language\":\"en\",\"favicon\":\"https://cdn-images-1.medium.com/fit/c/150/150/1*YYYziA4uaZJ4hiX8HnkGvw.jpeg\",\"feed_url\":\"https://medium.com/@kj.garza/feed\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://medium.com/@kj.garza?source=rss-efa8470fe270------2\",\"generator\":\"Medium\",\"category\":\"computerAndInformationSciences\"}, + \n {\"slug\":\"rubinpsyc\",\"title\":\"Stories by Mark Rubin on Medium\",\"description\":\"Stories + by Mark Rubin on Medium\",\"language\":\"en\",\"favicon\":\"https://cdn-images-1.medium.com/fit/c/150/150/0*uCUPpslzlmB4BHIe.jpg\",\"feed_url\":\"https://medium.com/@rubinpsyc/feed\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://medium.com/@rubinpsyc?source=rss-c222612e11a4------2\",\"generator\":\"Medium\",\"category\":\"socialSciences\"}, + \n {\"slug\":\"sven_lieber\",\"title\":\"Sven Lieber\",\"description\":\"Sven + Lieber\",\"language\":\"en\",\"favicon\":\"https://sven-lieber.org/media/icon_hufdd866d90d76849587aac6fbf27da1ac_464_512x512_fill_lanczos_center_3.png\",\"feed_url\":\"https://sven-lieber.org/en/index.xml\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://sven-lieber.org/en\",\"generator\":\"Hugo\",\"category\":\"computerAndInformationSciences\"}, + \n {\"slug\":\"syldavia_gazette\",\"title\":\"Syldavia Gazette\",\"description\":\"The + Syldavia Gazette is a weekly newsletter that highlights interesting science + stories from around the web.\",\"language\":\"en\",\"favicon\":\"https://syldavia-gazette.org/favicon.png\",\"feed_url\":\"https://syldavia-gazette.org/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://syldavia-gazette.org\",\"generator\":\"Ghost + 5.40\",\"category\":\"humanities\"}, \n {\"slug\":\"syntaxus_baccata\",\"title\":\"Syntaxus + baccata\",\"description\":\"Thoughts about bibliographic metadata, programming, + statistics, taxonomy, and biology.\",\"language\":\"en\",\"favicon\":\"https://blogger.googleusercontent.com/img/a/AVvXsEjHdUshBRlHAgurlZYYubJ9yfTRkteSS8hwgor7bpsdHNByrUXglmpVcCS2McVehJLgWZPyr61hB2Nq8iXql2-0qLFfZZHWdMn8wuKGz5UO1vZXWQkRKn_4EelUV6NneQW6fN1wlggv7skzUBri-T7bJZnlzXkKj6FjF8p0wLDR8DXwO7oN8QSwcN9-=s64\",\"feed_url\":\"https://larsgw.blogspot.com/feeds/posts/default\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://larsgw.blogspot.com\",\"generator\":\"Blogger + 7.00\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"tarleb\",\"title\":\"tarleb\",\"description\":\"tarleb's + blog\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://tarleb.com/index.xml\",\"feed_format\":\"application/rss+xml\",\"home_page_url\":\"https://tarleb.com/index.html\",\"generator\":\"Quarto + 1.2.475\",\"category\":\"computerAndInformationSciences\"}, \n {\"slug\":\"grieve_smith\",\"title\":\"Technology + and language\",\"description\":\"by Angus Grieve-Smith\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://grieve-smith.com/blog/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://grieve-smith.com/blog\",\"generator\":\"WordPress + 6.3.1\",\"category\":\"languagesAndLiterature\"}, \n {\"slug\":\"upstream\",\"title\":\"Upstream\",\"description\":\"The + community blog for all things Open Research.\",\"language\":\"en\",\"favicon\":\"https://upstream.force11.org/favicon.png\",\"feed_url\":\"https://upstream.force11.org/atom-complete/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://upstream.force11.org\",\"generator\":\"Ghost + 5.25\",\"category\":\"humanities\"}, \n {\"slug\":\"wisspub\",\"title\":\"wisspub.net\",\"description\":\"Gemeinschaftsblog + zu wissenschaftlicher Kommunikation im Netz.\",\"language\":\"de\",\"favicon\":null,\"feed_url\":\"https://wisspub.net/feed/atom/\",\"feed_format\":\"application/atom+xml\",\"home_page_url\":\"https://wisspub.net\",\"generator\":\"WordPress.com\",\"category\":\"socialSciences\"}]" + headers: + Access-Control-Allow-Origin: + - '*' + CF-Cache-Status: + - DYNAMIC + CF-Ray: + - 81281605dfd3cadd-DUS + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Location: + - /blogs?order=title&select=slug%2C%20title%2C%20description%2C%20language%2C%20favicon%2C%20feed_url%2C%20feed_format%2C%20home_page_url%2C%20generator%2C%20category&status=in.%28approved%2Cactive%2Carchived%29 + Content-Profile: + - public + Content-Range: + - 0-59/* + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 07 Oct 2023 18:07:50 GMT + Server: + - cloudflare + Strict-Transport-Security: + - max-age=2592000; includeSubDomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + Via: + - kong/2.8.1 + X-Kong-Proxy-Latency: + - '0' + X-Kong-Upstream-Latency: + - '5' + alt-svc: + - h3=":443"; ma=86400 + sb-gateway-version: + - '1' + http_version: HTTP/1.1 + status_code: 200 +version: 1 diff --git a/tests/cassettes/test-routes/test_post_as_bibtex.yaml b/tests/cassettes/test-routes/test_post_as_bibtex.yaml new file mode 100644 index 0000000..8c08402 --- /dev/null +++ b/tests/cassettes/test-routes/test_post_as_bibtex.yaml @@ -0,0 +1,240 @@ +interactions: +- request: + body: '{}' + headers: + accept: + - application/vnd.pgrst.object+json + accept-encoding: + - gzip, deflate + accept-profile: + - public + connection: + - keep-alive + content-length: + - '2' + content-profile: + - public + content-type: + - application/json + host: + - db.rogue-scholar.org + user-agent: + - python-httpx/0.24.1 + x-client-info: + - supabase-py/1.2.0 + method: GET + uri: https://db.rogue-scholar.org/rest/v1/posts?select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20content_html%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28%2A%29&doi=eq.https%3A//doi.org/10.59350/sfzv4-xdb68 + response: + content: "{\"id\":\"77b2102f-fec5-425a-90a3-4a97c768bdc4\",\"doi\":\"https://doi.org/10.59350/sfzv4-xdb68\",\"url\":\"https://norbisley.wordpress.com/2023/10/06/que-libros-cientificos-publicamos\",\"archive_url\":null,\"title\":\"\xBFQu\xE9 + libros cient\xEDficos publicamos?\",\"summary\":\"Con frecuencia a la editorial + llegan textos que terminan siendo muy diferentes a la idea de libro que el autor + tra\xEDa inicialmente. Esto se debe en parte, a que es insuficiente el abordaje + de las clasificaciones de textos cient\xEDficos que se divulga institucionalmente.\",\"content_html\":\"\\n

\\n\\n\\n\\n

Con frecuencia a la editorial llegan textos que + terminan siendo muy diferentes a la idea de libro que el autor tra\xEDa inicialmente. + Esto se debe en parte, a que es insuficiente el abordaje de las clasificaciones + de textos cient\xEDficos que se divulga institucionalmente. Aqu\xED comento + brevemente algunos tipos de libros que publicamos en Ediciones + Universidad de Camag\xFCey.

\\n\\n\\n\\n\\n\\n\\n\\n

Todos + los libros de este sello editorial son digitales y est\xE1n disponibles, en + acceso abierto.

\\n\\n\\n\\n

\\n\\n\\n\\n

\\n\\n\\n\\n

Bibliograf\xEDas:

\\n\\n\\n\\n

Moyano, + Estela. \u201CUna clasificaci\xF3n de g\xE9neros cient\xEDficos.\u201D XIX Congreso + aesla. Vol. 1. No. 9. 2001.

\\n\\n\\n\\n

M\xE9ndez, Misael. \u201CCategor\xEDas + de trabajo en edici\xF3n de textos: breve experiencia con publicaciones cubanas + y extranjeras.\u201D Islas 135 (2003): 27-48.

\\n\\n\\n\\n

M\xE9ndez, Misael. + Ser manual pero no parecerlo. Editorial Samuel Feijoo, Las Villas, 2020.

\\n\",\"published_at\":1696588740,\"updated_at\":1696589176,\"indexed_at\":1696593190,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-9373-4622\", \"name\": \"Norbisley Fern\xE1ndez\"}],\"image\":\"https://norbisley.files.wordpress.com/2023/10/rrm1esyb-3.png\",\"tags\":[\"Presentacion + De La Informacion Cientifica\",\"Sin Categoria\"],\"language\":\"es\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"blog_slug\":\"norbisley\",\"blog\":{\"id\":\"6aswq28\",\"title\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"description\":null,\"language\":\"es\",\"favicon\":\"https://db.rogue-scholar.org/storage/v1/object/public/images/Screenshot%202023-08-28%20063918.png\",\"feed_url\":\"https://norbisley.wordpress.com/feed/atom/\",\"home_page_url\":\"https://norbisley.wordpress.com\",\"user_id\":\"126368cd-e941-4e6f-8316-f5fe574e595b\",\"created_at\":\"2023-08-22\",\"feed_format\":\"application/atom+xml\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"generator\":\"WordPress.com\",\"category\":\"mediaAndCommunications\",\"prefix\":\"10.59350\",\"modified_at\":\"2023-10-06T10:46:16+00:00\",\"version\":\"https://jsonfeed.org/version/1.1\",\"current_feed_url\":null,\"status\":\"active\",\"issn\":null,\"backlog\":0,\"authors\":null,\"plan\":\"Starter\",\"slug\":\"norbisley\",\"use_mastodon\":false,\"api\":true,\"funding\":null,\"archive_prefix\":null,\"use_api\":true,\"relative_url\":null,\"canonical_url\":null,\"filter\":null}}" + headers: + Access-Control-Allow-Origin: + - '*' + CF-Cache-Status: + - DYNAMIC + CF-Ray: + - 812915949f8c162c-DUS + Connection: + - keep-alive + Content-Location: + - /posts?doi=eq.https%3A%2F%2Fdoi.org%2F10.59350%2Fsfzv4-xdb68&select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20content_html%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28%2A%29 + Content-Profile: + - public + Content-Range: + - 0-0/* + Content-Type: + - application/vnd.pgrst.object+json; charset=utf-8 + Date: + - Sat, 07 Oct 2023 21:02:18 GMT + Server: + - cloudflare + Strict-Transport-Security: + - max-age=2592000; includeSubDomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + Via: + - kong/2.8.1 + X-Kong-Proxy-Latency: + - '1' + X-Kong-Upstream-Latency: + - '5' + alt-svc: + - h3=":443"; ma=86400 + sb-gateway-version: + - '1' + http_version: HTTP/1.1 + status_code: 200 +- request: + body: null + headers: + Accept: + - application/x-bibtex + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://doi.org/10.59350/sfzv4-xdb68 + response: + body: + string: 'Handle Redirect + + https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 81291595fd5366ca-AMS + Connection: + - keep-alive + Content-Length: + - '217' + Content-Type: + - text/html;charset=utf-8 + Date: + - Sat, 07 Oct 2023 21:02:18 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=csm4%2BFJyDC6Iqc9QnDiXFzKc8%2BrRdKB%2B0JyD3VDfNOzynREEOA6pTuaOHQ%2BdMhLA02qLJC0DZvsylmNQuhW0IVnZayZRjZJhQ3DPNhCBaEQvIXb9nb5L7JDlGVc55HNuRdXSkyE%3D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + alt-svc: + - h3=":443"; ma=86400 + expires: + - Sat, 07 Oct 2023 21:36:07 GMT + location: + - https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform + permissions-policy: + - interest-cohort=(),browsing-topics=() + vary: + - Accept + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - application/x-bibtex + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform + response: + body: + string: "@article{Fern_ndez_2023,\n\tdoi = {10.59350/sfzv4-xdb68},\n\turl = + {https://doi.org/10.59350%2Fsfzv4-xdb68},\n\tyear = 2023,\n\tmonth = {oct},\n\tpublisher + = {Front Matter},\n\tauthor = {Norbisley Fern{\\'{a}}ndez},\n\ttitle = {{\\textquestiondown}Qu{\\'{e}} + libros cient{\\'{\\i}}ficos publicamos?}\n}" + headers: + access-control-allow-headers: + - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language, + Accept-Ranges, Cache-Control + access-control-allow-origin: + - '*' + access-control-expose-headers: + - Link + connection: + - close + content-type: + - application/x-bibtex + date: + - Sat, 07 Oct 2023 21:02:19 GMT + link: + - "; rel=\"canonical\", ; + version=\"vor\"; type=\"text/html\"; rel=\"item\", ; + version=\"vor\"; rel=\"license\", ; + version=\"tdm\"; rel=\"license\", ; + title=\"Norbisley Fern\xE1ndez\"; rel=\"author\"" + permissions-policy: + - interest-cohort=() + server: + - Jetty(9.4.40.v20210413) + transfer-encoding: + - chunked + vary: + - Accept + x-api-pool: + - public + x-rate-limit-interval: + - 1s + x-rate-limit-limit: + - '50' + x-ratelimit-interval: + - 1s + x-ratelimit-limit: + - '50' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test-routes/test_post_as_citation.yaml b/tests/cassettes/test-routes/test_post_as_citation.yaml new file mode 100644 index 0000000..5c804c0 --- /dev/null +++ b/tests/cassettes/test-routes/test_post_as_citation.yaml @@ -0,0 +1,238 @@ +interactions: +- request: + body: '{}' + headers: + accept: + - application/vnd.pgrst.object+json + accept-encoding: + - gzip, deflate + accept-profile: + - public + connection: + - keep-alive + content-length: + - '2' + content-profile: + - public + content-type: + - application/json + host: + - db.rogue-scholar.org + user-agent: + - python-httpx/0.24.1 + x-client-info: + - supabase-py/1.2.0 + method: GET + uri: https://db.rogue-scholar.org/rest/v1/posts?select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20content_html%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28%2A%29&doi=eq.https%3A//doi.org/10.59350/sfzv4-xdb68 + response: + content: "{\"id\":\"77b2102f-fec5-425a-90a3-4a97c768bdc4\",\"doi\":\"https://doi.org/10.59350/sfzv4-xdb68\",\"url\":\"https://norbisley.wordpress.com/2023/10/06/que-libros-cientificos-publicamos\",\"archive_url\":null,\"title\":\"\xBFQu\xE9 + libros cient\xEDficos publicamos?\",\"summary\":\"Con frecuencia a la editorial + llegan textos que terminan siendo muy diferentes a la idea de libro que el autor + tra\xEDa inicialmente. Esto se debe en parte, a que es insuficiente el abordaje + de las clasificaciones de textos cient\xEDficos que se divulga institucionalmente.\",\"content_html\":\"\\n

\\n\\n\\n\\n

Con frecuencia a la editorial llegan textos que + terminan siendo muy diferentes a la idea de libro que el autor tra\xEDa inicialmente. + Esto se debe en parte, a que es insuficiente el abordaje de las clasificaciones + de textos cient\xEDficos que se divulga institucionalmente. Aqu\xED comento + brevemente algunos tipos de libros que publicamos en Ediciones + Universidad de Camag\xFCey.

\\n\\n\\n\\n
    \\n
  • Libros de + texto: se utilizan para mejorar la comprensi\xF3n de una asignatura. + Enriquecen los procesos de aprendizaje mediante la explicaci\xF3n te\xF3rica + de los principales conceptos, su aplicaci\xF3n explicada en ejemplos concretos + y la presentaci\xF3n de ejercicios que responden a las habilidades o competencias + de un programa.
  • \\n\\n\\n\\n
  • Gu\xEDas de estudio o de ejercicios: + proporcionan informaci\xF3n detallada sobre un tema espec\xEDfico mediante la + resoluci\xF3n de problemas. Pueden incluir consejos, estrategias, tutoriales. + Culminan con la lista de soluciones de manera tal que pueda facilitar el autoaprendizaje.
  • \\n\\n\\n\\n
  • Ciclos + de conferencias: se publica el programa con su justificaci\xF3n y todas + las conferencias que debe desarrollar un docente de la asignatura.
  • \\n\\n\\n\\n
  • Libros + de consulta o de referencia: no son de lectura continuada, sino que + el lector los consulta cuando quiere conocer un dato determinado. Debe contar + con entradas organizadas alfab\xE9tica o cronol\xF3gicamente de acuerdo al tema + y puede ser o no ilustrado (enciclopedias, diccionarios, vocabularios, gu\xEDas + telef\xF3nicas, cat\xE1logos, directorios, etc.).
  • \\n\\n\\n\\n
  • Libros + de ensayo: presentan una posici\xF3n argumentativa sobre un tema, resultado + de una investigaci\xF3n exhaustiva en la que el autor defiende un punto de vista.
  • \\n\\n\\n\\n
  • Manual: + proporciona instrucciones detalladas sobre c\xF3mo utilizar un producto + o realizar un proceso. Los manuales suelen incluir diagramas, gr\xE1ficos y + otros elementos visuales para hacer que la informaci\xF3n sea m\xE1s f\xE1cil + de comprender. Son libros instructivos.
  • \\n\\n\\n\\n
  • Compilaciones: + este texto re\xFAne los principales textos (o partes de textos) y aportes existentes + sobre un tema. Puede reunir diferentes g\xE9neros con una estructura tem\xE1tica + l\xF3gica seg\xFAn el objetivo que persiga el compilador.
  • \\n\\n\\n\\n
  • Compendio: + presenta una materia en extenso, abracando todas las aristas posibles. Recopila + informaci\xF3n de manera descriptiva.
  • \\n\\n\\n\\n
  • Monograf\xEDa: + analiza una materia en profundidad, dejando partes \u2014debidamente + limitadas en la descripci\xF3n del objeto de estudio\u2014 sin ser estudiadas.
  • \\n\\n\\n\\n
  • Tratados: + se caracteriza por la exposici\xF3n objetiva, integral y ordenada de conocimientos + sobre un t\xF3pico espec\xEDfico. Se relata o escribe tal como un discurso, + usando el texto expositivo y en tercera persona; se subdivide en numerosos apartados + que ayudan a organizarlo de forma correlativa y l\xF3gica. El tratado debe incluir + gran cantidad de datos precisos.
  • \\n\\n\\n\\n
  • Memorias: Presenta + conclusiones y trabajos presentados a un evento.
  • \\n
\\n\\n\\n\\n

Todos + los libros de este sello editorial son digitales y est\xE1n disponibles, en + acceso abierto.

\\n\\n\\n\\n

\\n\\n\\n\\n

\\n\\n\\n\\n

Bibliograf\xEDas:

\\n\\n\\n\\n

Moyano, + Estela. \u201CUna clasificaci\xF3n de g\xE9neros cient\xEDficos.\u201D XIX Congreso + aesla. Vol. 1. No. 9. 2001.

\\n\\n\\n\\n

M\xE9ndez, Misael. \u201CCategor\xEDas + de trabajo en edici\xF3n de textos: breve experiencia con publicaciones cubanas + y extranjeras.\u201D Islas 135 (2003): 27-48.

\\n\\n\\n\\n

M\xE9ndez, Misael. + Ser manual pero no parecerlo. Editorial Samuel Feijoo, Las Villas, 2020.

\\n\",\"published_at\":1696588740,\"updated_at\":1696589176,\"indexed_at\":1696593190,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-9373-4622\", \"name\": \"Norbisley Fern\xE1ndez\"}],\"image\":\"https://norbisley.files.wordpress.com/2023/10/rrm1esyb-3.png\",\"tags\":[\"Presentacion + De La Informacion Cientifica\",\"Sin Categoria\"],\"language\":\"es\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"blog_slug\":\"norbisley\",\"blog\":{\"id\":\"6aswq28\",\"title\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"description\":null,\"language\":\"es\",\"favicon\":\"https://db.rogue-scholar.org/storage/v1/object/public/images/Screenshot%202023-08-28%20063918.png\",\"feed_url\":\"https://norbisley.wordpress.com/feed/atom/\",\"home_page_url\":\"https://norbisley.wordpress.com\",\"user_id\":\"126368cd-e941-4e6f-8316-f5fe574e595b\",\"created_at\":\"2023-08-22\",\"feed_format\":\"application/atom+xml\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"generator\":\"WordPress.com\",\"category\":\"mediaAndCommunications\",\"prefix\":\"10.59350\",\"modified_at\":\"2023-10-06T10:46:16+00:00\",\"version\":\"https://jsonfeed.org/version/1.1\",\"current_feed_url\":null,\"status\":\"active\",\"issn\":null,\"backlog\":0,\"authors\":null,\"plan\":\"Starter\",\"slug\":\"norbisley\",\"use_mastodon\":false,\"api\":true,\"funding\":null,\"archive_prefix\":null,\"use_api\":true,\"relative_url\":null,\"canonical_url\":null,\"filter\":null}}" + headers: + Access-Control-Allow-Origin: + - '*' + CF-Cache-Status: + - DYNAMIC + CF-Ray: + - 81284eab1f4a7162-DUS + Connection: + - keep-alive + Content-Location: + - /posts?doi=eq.https%3A%2F%2Fdoi.org%2F10.59350%2Fsfzv4-xdb68&select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20content_html%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28%2A%29 + Content-Profile: + - public + Content-Range: + - 0-0/* + Content-Type: + - application/vnd.pgrst.object+json; charset=utf-8 + Date: + - Sat, 07 Oct 2023 18:46:30 GMT + Server: + - cloudflare + Strict-Transport-Security: + - max-age=2592000; includeSubDomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + Via: + - kong/2.8.1 + X-Kong-Proxy-Latency: + - '0' + X-Kong-Upstream-Latency: + - '5' + alt-svc: + - h3=":443"; ma=86400 + sb-gateway-version: + - '1' + http_version: HTTP/1.1 + status_code: 200 +- request: + body: null + headers: + Accept: + - text/x-bibliography; style=apa; locale=en-US + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://doi.org/10.59350/sfzv4-xdb68 + response: + body: + string: 'Handle Redirect + + https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 81284eac5a4f0ea8-AMS + Connection: + - keep-alive + Content-Length: + - '217' + Content-Type: + - text/html;charset=utf-8 + Date: + - Sat, 07 Oct 2023 18:46:31 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=56jA5IZugboctV3ChCL2IjfGfbAyNAs7KaQ59GlKfEO%2F5cj9ezybNj0hdL1jQKfmUCv0wbtt8L%2ByfZ%2BBVdDZ%2BL5jvwTv123F4dOgrkEbIJ%2FU52WMIl00NDHPQB5Topp1TwwbVdM%3D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + alt-svc: + - h3=":443"; ma=86400 + expires: + - Sat, 07 Oct 2023 19:30:32 GMT + location: + - https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform + permissions-policy: + - interest-cohort=(),browsing-topics=() + vary: + - Accept + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - text/x-bibliography; style=apa; locale=en-US + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform + response: + body: + string: "Fern\xE1ndez, N. (2023). \xBFQu\xE9 libros cient\xEDficos publicamos? + https://doi.org/10.59350/sfzv4-xdb68\n" + headers: + access-control-allow-headers: + - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language, + Accept-Ranges, Cache-Control + access-control-allow-origin: + - '*' + access-control-expose-headers: + - Link + connection: + - close + content-type: + - text/x-bibliography + date: + - Sat, 07 Oct 2023 18:46:34 GMT + link: + - "; rel=\"canonical\", ; + version=\"vor\"; type=\"text/html\"; rel=\"item\", ; + version=\"vor\"; rel=\"license\", ; + version=\"tdm\"; rel=\"license\", ; + title=\"Norbisley Fern\xE1ndez\"; rel=\"author\"" + permissions-policy: + - interest-cohort=() + server: + - Jetty(9.4.40.v20210413) + transfer-encoding: + - chunked + vary: + - Accept + x-api-pool: + - public + x-rate-limit-interval: + - 1s + x-rate-limit-limit: + - '50' + x-ratelimit-interval: + - 1s + x-ratelimit-limit: + - '50' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test-routes/test_post_as_citation_with_locale.yaml b/tests/cassettes/test-routes/test_post_as_citation_with_locale.yaml new file mode 100644 index 0000000..4cb4a8f --- /dev/null +++ b/tests/cassettes/test-routes/test_post_as_citation_with_locale.yaml @@ -0,0 +1,238 @@ +interactions: +- request: + body: '{}' + headers: + accept: + - application/vnd.pgrst.object+json + accept-encoding: + - gzip, deflate + accept-profile: + - public + connection: + - keep-alive + content-length: + - '2' + content-profile: + - public + content-type: + - application/json + host: + - db.rogue-scholar.org + user-agent: + - python-httpx/0.24.1 + x-client-info: + - supabase-py/1.2.0 + method: GET + uri: https://db.rogue-scholar.org/rest/v1/posts?select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20content_html%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28%2A%29&doi=eq.https%3A//doi.org/10.59350/sfzv4-xdb68 + response: + content: "{\"id\":\"77b2102f-fec5-425a-90a3-4a97c768bdc4\",\"doi\":\"https://doi.org/10.59350/sfzv4-xdb68\",\"url\":\"https://norbisley.wordpress.com/2023/10/06/que-libros-cientificos-publicamos\",\"archive_url\":null,\"title\":\"\xBFQu\xE9 + libros cient\xEDficos publicamos?\",\"summary\":\"Con frecuencia a la editorial + llegan textos que terminan siendo muy diferentes a la idea de libro que el autor + tra\xEDa inicialmente. Esto se debe en parte, a que es insuficiente el abordaje + de las clasificaciones de textos cient\xEDficos que se divulga institucionalmente.\",\"content_html\":\"\\n

\\n\\n\\n\\n

Con frecuencia a la editorial llegan textos que + terminan siendo muy diferentes a la idea de libro que el autor tra\xEDa inicialmente. + Esto se debe en parte, a que es insuficiente el abordaje de las clasificaciones + de textos cient\xEDficos que se divulga institucionalmente. Aqu\xED comento + brevemente algunos tipos de libros que publicamos en Ediciones + Universidad de Camag\xFCey.

\\n\\n\\n\\n
    \\n
  • Libros de + texto: se utilizan para mejorar la comprensi\xF3n de una asignatura. + Enriquecen los procesos de aprendizaje mediante la explicaci\xF3n te\xF3rica + de los principales conceptos, su aplicaci\xF3n explicada en ejemplos concretos + y la presentaci\xF3n de ejercicios que responden a las habilidades o competencias + de un programa.
  • \\n\\n\\n\\n
  • Gu\xEDas de estudio o de ejercicios: + proporcionan informaci\xF3n detallada sobre un tema espec\xEDfico mediante la + resoluci\xF3n de problemas. Pueden incluir consejos, estrategias, tutoriales. + Culminan con la lista de soluciones de manera tal que pueda facilitar el autoaprendizaje.
  • \\n\\n\\n\\n
  • Ciclos + de conferencias: se publica el programa con su justificaci\xF3n y todas + las conferencias que debe desarrollar un docente de la asignatura.
  • \\n\\n\\n\\n
  • Libros + de consulta o de referencia: no son de lectura continuada, sino que + el lector los consulta cuando quiere conocer un dato determinado. Debe contar + con entradas organizadas alfab\xE9tica o cronol\xF3gicamente de acuerdo al tema + y puede ser o no ilustrado (enciclopedias, diccionarios, vocabularios, gu\xEDas + telef\xF3nicas, cat\xE1logos, directorios, etc.).
  • \\n\\n\\n\\n
  • Libros + de ensayo: presentan una posici\xF3n argumentativa sobre un tema, resultado + de una investigaci\xF3n exhaustiva en la que el autor defiende un punto de vista.
  • \\n\\n\\n\\n
  • Manual: + proporciona instrucciones detalladas sobre c\xF3mo utilizar un producto + o realizar un proceso. Los manuales suelen incluir diagramas, gr\xE1ficos y + otros elementos visuales para hacer que la informaci\xF3n sea m\xE1s f\xE1cil + de comprender. Son libros instructivos.
  • \\n\\n\\n\\n
  • Compilaciones: + este texto re\xFAne los principales textos (o partes de textos) y aportes existentes + sobre un tema. Puede reunir diferentes g\xE9neros con una estructura tem\xE1tica + l\xF3gica seg\xFAn el objetivo que persiga el compilador.
  • \\n\\n\\n\\n
  • Compendio: + presenta una materia en extenso, abracando todas las aristas posibles. Recopila + informaci\xF3n de manera descriptiva.
  • \\n\\n\\n\\n
  • Monograf\xEDa: + analiza una materia en profundidad, dejando partes \u2014debidamente + limitadas en la descripci\xF3n del objeto de estudio\u2014 sin ser estudiadas.
  • \\n\\n\\n\\n
  • Tratados: + se caracteriza por la exposici\xF3n objetiva, integral y ordenada de conocimientos + sobre un t\xF3pico espec\xEDfico. Se relata o escribe tal como un discurso, + usando el texto expositivo y en tercera persona; se subdivide en numerosos apartados + que ayudan a organizarlo de forma correlativa y l\xF3gica. El tratado debe incluir + gran cantidad de datos precisos.
  • \\n\\n\\n\\n
  • Memorias: Presenta + conclusiones y trabajos presentados a un evento.
  • \\n
\\n\\n\\n\\n

Todos + los libros de este sello editorial son digitales y est\xE1n disponibles, en + acceso abierto.

\\n\\n\\n\\n

\\n\\n\\n\\n

\\n\\n\\n\\n

Bibliograf\xEDas:

\\n\\n\\n\\n

Moyano, + Estela. \u201CUna clasificaci\xF3n de g\xE9neros cient\xEDficos.\u201D XIX Congreso + aesla. Vol. 1. No. 9. 2001.

\\n\\n\\n\\n

M\xE9ndez, Misael. \u201CCategor\xEDas + de trabajo en edici\xF3n de textos: breve experiencia con publicaciones cubanas + y extranjeras.\u201D Islas 135 (2003): 27-48.

\\n\\n\\n\\n

M\xE9ndez, Misael. + Ser manual pero no parecerlo. Editorial Samuel Feijoo, Las Villas, 2020.

\\n\",\"published_at\":1696588740,\"updated_at\":1696589176,\"indexed_at\":1696593190,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-9373-4622\", \"name\": \"Norbisley Fern\xE1ndez\"}],\"image\":\"https://norbisley.files.wordpress.com/2023/10/rrm1esyb-3.png\",\"tags\":[\"Presentacion + De La Informacion Cientifica\",\"Sin Categoria\"],\"language\":\"es\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"blog_slug\":\"norbisley\",\"blog\":{\"id\":\"6aswq28\",\"title\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"description\":null,\"language\":\"es\",\"favicon\":\"https://db.rogue-scholar.org/storage/v1/object/public/images/Screenshot%202023-08-28%20063918.png\",\"feed_url\":\"https://norbisley.wordpress.com/feed/atom/\",\"home_page_url\":\"https://norbisley.wordpress.com\",\"user_id\":\"126368cd-e941-4e6f-8316-f5fe574e595b\",\"created_at\":\"2023-08-22\",\"feed_format\":\"application/atom+xml\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"generator\":\"WordPress.com\",\"category\":\"mediaAndCommunications\",\"prefix\":\"10.59350\",\"modified_at\":\"2023-10-06T10:46:16+00:00\",\"version\":\"https://jsonfeed.org/version/1.1\",\"current_feed_url\":null,\"status\":\"active\",\"issn\":null,\"backlog\":0,\"authors\":null,\"plan\":\"Starter\",\"slug\":\"norbisley\",\"use_mastodon\":false,\"api\":true,\"funding\":null,\"archive_prefix\":null,\"use_api\":true,\"relative_url\":null,\"canonical_url\":null,\"filter\":null}}" + headers: + Access-Control-Allow-Origin: + - '*' + CF-Cache-Status: + - DYNAMIC + CF-Ray: + - 81292b5cac231633-DUS + Connection: + - keep-alive + Content-Location: + - /posts?doi=eq.https%3A%2F%2Fdoi.org%2F10.59350%2Fsfzv4-xdb68&select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20content_html%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28%2A%29 + Content-Profile: + - public + Content-Range: + - 0-0/* + Content-Type: + - application/vnd.pgrst.object+json; charset=utf-8 + Date: + - Sat, 07 Oct 2023 21:17:10 GMT + Server: + - cloudflare + Strict-Transport-Security: + - max-age=2592000; includeSubDomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + Via: + - kong/2.8.1 + X-Kong-Proxy-Latency: + - '0' + X-Kong-Upstream-Latency: + - '4' + alt-svc: + - h3=":443"; ma=86400 + sb-gateway-version: + - '1' + http_version: HTTP/1.1 + status_code: 200 +- request: + body: null + headers: + Accept: + - text/x-bibliography; style=vancouver; locale=es + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://doi.org/10.59350/sfzv4-xdb68 + response: + body: + string: 'Handle Redirect + + https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 81292b5dee7a0e89-AMS + Connection: + - keep-alive + Content-Length: + - '217' + Content-Type: + - text/html;charset=utf-8 + Date: + - Sat, 07 Oct 2023 21:17:10 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=it69KwBqA68TklDNJ6huvNR7IPKVEBCcZ5e3E1%2FR5Oo8I7Gu9pqqm6xRUatiCpMTPrqxv279LyR7p5li1zeyr2kIEDyl4n%2Fbv%2F%2B2HnS4S2wfvV8NNGKkNofIFGjjrpKYVYA8B38%3D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + alt-svc: + - h3=":443"; ma=86400 + expires: + - Sat, 07 Oct 2023 21:36:07 GMT + location: + - https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform + permissions-policy: + - interest-cohort=(),browsing-topics=() + vary: + - Accept + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - text/x-bibliography; style=vancouver; locale=es + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform + response: + body: + string: "1. Fern\xE1ndez N. \xBFQu\xE9 libros cient\xEDficos publicamos? 6 de + octubre de 2023; Disponible en: http://dx.doi.org/10.59350/sfzv4-xdb68\n" + headers: + access-control-allow-headers: + - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language, + Accept-Ranges, Cache-Control + access-control-allow-origin: + - '*' + access-control-expose-headers: + - Link + connection: + - close + content-type: + - text/x-bibliography + date: + - Sat, 07 Oct 2023 21:17:11 GMT + link: + - "; rel=\"canonical\", ; + version=\"vor\"; type=\"text/html\"; rel=\"item\", ; + version=\"vor\"; rel=\"license\", ; + version=\"tdm\"; rel=\"license\", ; + title=\"Norbisley Fern\xE1ndez\"; rel=\"author\"" + permissions-policy: + - interest-cohort=() + server: + - Jetty(9.4.40.v20210413) + transfer-encoding: + - chunked + vary: + - Accept + x-api-pool: + - public + x-rate-limit-interval: + - 1s + x-rate-limit-limit: + - '50' + x-ratelimit-interval: + - 1s + x-ratelimit-limit: + - '50' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test-routes/test_post_as_citation_with_style.yaml b/tests/cassettes/test-routes/test_post_as_citation_with_style.yaml new file mode 100644 index 0000000..5652c8e --- /dev/null +++ b/tests/cassettes/test-routes/test_post_as_citation_with_style.yaml @@ -0,0 +1,238 @@ +interactions: +- request: + body: '{}' + headers: + accept: + - application/vnd.pgrst.object+json + accept-encoding: + - gzip, deflate + accept-profile: + - public + connection: + - keep-alive + content-length: + - '2' + content-profile: + - public + content-type: + - application/json + host: + - db.rogue-scholar.org + user-agent: + - python-httpx/0.24.1 + x-client-info: + - supabase-py/1.2.0 + method: GET + uri: https://db.rogue-scholar.org/rest/v1/posts?select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20content_html%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28%2A%29&doi=eq.https%3A//doi.org/10.59350/sfzv4-xdb68 + response: + content: "{\"id\":\"77b2102f-fec5-425a-90a3-4a97c768bdc4\",\"doi\":\"https://doi.org/10.59350/sfzv4-xdb68\",\"url\":\"https://norbisley.wordpress.com/2023/10/06/que-libros-cientificos-publicamos\",\"archive_url\":null,\"title\":\"\xBFQu\xE9 + libros cient\xEDficos publicamos?\",\"summary\":\"Con frecuencia a la editorial + llegan textos que terminan siendo muy diferentes a la idea de libro que el autor + tra\xEDa inicialmente. Esto se debe en parte, a que es insuficiente el abordaje + de las clasificaciones de textos cient\xEDficos que se divulga institucionalmente.\",\"content_html\":\"\\n

\\n\\n\\n\\n

Con frecuencia a la editorial llegan textos que + terminan siendo muy diferentes a la idea de libro que el autor tra\xEDa inicialmente. + Esto se debe en parte, a que es insuficiente el abordaje de las clasificaciones + de textos cient\xEDficos que se divulga institucionalmente. Aqu\xED comento + brevemente algunos tipos de libros que publicamos en Ediciones + Universidad de Camag\xFCey.

\\n\\n\\n\\n
    \\n
  • Libros de + texto: se utilizan para mejorar la comprensi\xF3n de una asignatura. + Enriquecen los procesos de aprendizaje mediante la explicaci\xF3n te\xF3rica + de los principales conceptos, su aplicaci\xF3n explicada en ejemplos concretos + y la presentaci\xF3n de ejercicios que responden a las habilidades o competencias + de un programa.
  • \\n\\n\\n\\n
  • Gu\xEDas de estudio o de ejercicios: + proporcionan informaci\xF3n detallada sobre un tema espec\xEDfico mediante la + resoluci\xF3n de problemas. Pueden incluir consejos, estrategias, tutoriales. + Culminan con la lista de soluciones de manera tal que pueda facilitar el autoaprendizaje.
  • \\n\\n\\n\\n
  • Ciclos + de conferencias: se publica el programa con su justificaci\xF3n y todas + las conferencias que debe desarrollar un docente de la asignatura.
  • \\n\\n\\n\\n
  • Libros + de consulta o de referencia: no son de lectura continuada, sino que + el lector los consulta cuando quiere conocer un dato determinado. Debe contar + con entradas organizadas alfab\xE9tica o cronol\xF3gicamente de acuerdo al tema + y puede ser o no ilustrado (enciclopedias, diccionarios, vocabularios, gu\xEDas + telef\xF3nicas, cat\xE1logos, directorios, etc.).
  • \\n\\n\\n\\n
  • Libros + de ensayo: presentan una posici\xF3n argumentativa sobre un tema, resultado + de una investigaci\xF3n exhaustiva en la que el autor defiende un punto de vista.
  • \\n\\n\\n\\n
  • Manual: + proporciona instrucciones detalladas sobre c\xF3mo utilizar un producto + o realizar un proceso. Los manuales suelen incluir diagramas, gr\xE1ficos y + otros elementos visuales para hacer que la informaci\xF3n sea m\xE1s f\xE1cil + de comprender. Son libros instructivos.
  • \\n\\n\\n\\n
  • Compilaciones: + este texto re\xFAne los principales textos (o partes de textos) y aportes existentes + sobre un tema. Puede reunir diferentes g\xE9neros con una estructura tem\xE1tica + l\xF3gica seg\xFAn el objetivo que persiga el compilador.
  • \\n\\n\\n\\n
  • Compendio: + presenta una materia en extenso, abracando todas las aristas posibles. Recopila + informaci\xF3n de manera descriptiva.
  • \\n\\n\\n\\n
  • Monograf\xEDa: + analiza una materia en profundidad, dejando partes \u2014debidamente + limitadas en la descripci\xF3n del objeto de estudio\u2014 sin ser estudiadas.
  • \\n\\n\\n\\n
  • Tratados: + se caracteriza por la exposici\xF3n objetiva, integral y ordenada de conocimientos + sobre un t\xF3pico espec\xEDfico. Se relata o escribe tal como un discurso, + usando el texto expositivo y en tercera persona; se subdivide en numerosos apartados + que ayudan a organizarlo de forma correlativa y l\xF3gica. El tratado debe incluir + gran cantidad de datos precisos.
  • \\n\\n\\n\\n
  • Memorias: Presenta + conclusiones y trabajos presentados a un evento.
  • \\n
\\n\\n\\n\\n

Todos + los libros de este sello editorial son digitales y est\xE1n disponibles, en + acceso abierto.

\\n\\n\\n\\n

\\n\\n\\n\\n

\\n\\n\\n\\n

Bibliograf\xEDas:

\\n\\n\\n\\n

Moyano, + Estela. \u201CUna clasificaci\xF3n de g\xE9neros cient\xEDficos.\u201D XIX Congreso + aesla. Vol. 1. No. 9. 2001.

\\n\\n\\n\\n

M\xE9ndez, Misael. \u201CCategor\xEDas + de trabajo en edici\xF3n de textos: breve experiencia con publicaciones cubanas + y extranjeras.\u201D Islas 135 (2003): 27-48.

\\n\\n\\n\\n

M\xE9ndez, Misael. + Ser manual pero no parecerlo. Editorial Samuel Feijoo, Las Villas, 2020.

\\n\",\"published_at\":1696588740,\"updated_at\":1696589176,\"indexed_at\":1696593190,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-9373-4622\", \"name\": \"Norbisley Fern\xE1ndez\"}],\"image\":\"https://norbisley.files.wordpress.com/2023/10/rrm1esyb-3.png\",\"tags\":[\"Presentacion + De La Informacion Cientifica\",\"Sin Categoria\"],\"language\":\"es\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"blog_slug\":\"norbisley\",\"blog\":{\"id\":\"6aswq28\",\"title\":\"Edici\xF3n + y comunicaci\xF3n de la Ciencia\",\"description\":null,\"language\":\"es\",\"favicon\":\"https://db.rogue-scholar.org/storage/v1/object/public/images/Screenshot%202023-08-28%20063918.png\",\"feed_url\":\"https://norbisley.wordpress.com/feed/atom/\",\"home_page_url\":\"https://norbisley.wordpress.com\",\"user_id\":\"126368cd-e941-4e6f-8316-f5fe574e595b\",\"created_at\":\"2023-08-22\",\"feed_format\":\"application/atom+xml\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"generator\":\"WordPress.com\",\"category\":\"mediaAndCommunications\",\"prefix\":\"10.59350\",\"modified_at\":\"2023-10-06T10:46:16+00:00\",\"version\":\"https://jsonfeed.org/version/1.1\",\"current_feed_url\":null,\"status\":\"active\",\"issn\":null,\"backlog\":0,\"authors\":null,\"plan\":\"Starter\",\"slug\":\"norbisley\",\"use_mastodon\":false,\"api\":true,\"funding\":null,\"archive_prefix\":null,\"use_api\":true,\"relative_url\":null,\"canonical_url\":null,\"filter\":null}}" + headers: + Access-Control-Allow-Origin: + - '*' + CF-Cache-Status: + - DYNAMIC + CF-Ray: + - 812898a48dc4215d-DUS + Connection: + - keep-alive + Content-Location: + - /posts?doi=eq.https%3A%2F%2Fdoi.org%2F10.59350%2Fsfzv4-xdb68&select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20content_html%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28%2A%29 + Content-Profile: + - public + Content-Range: + - 0-0/* + Content-Type: + - application/vnd.pgrst.object+json; charset=utf-8 + Date: + - Sat, 07 Oct 2023 19:37:00 GMT + Server: + - cloudflare + Strict-Transport-Security: + - max-age=2592000; includeSubDomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + Via: + - kong/2.8.1 + X-Kong-Proxy-Latency: + - '0' + X-Kong-Upstream-Latency: + - '5' + alt-svc: + - h3=":443"; ma=86400 + sb-gateway-version: + - '1' + http_version: HTTP/1.1 + status_code: 200 +- request: + body: null + headers: + Accept: + - text/x-bibliography; style=vancouver; locale=en-US + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://doi.org/10.59350/sfzv4-xdb68 + response: + body: + string: 'Handle Redirect + + https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 812898a5dd37b978-AMS + Connection: + - keep-alive + Content-Length: + - '217' + Content-Type: + - text/html;charset=utf-8 + Date: + - Sat, 07 Oct 2023 19:37:01 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=jQkPfnw797L3%2FwMmyRsv4Fh%2BWI8TE2Oz47XgevgcGCcnzPuZQyRjLXrDrPP2kcu6Sjxxj5XrjyRERNKvPjQ7aRxfZ9IrE%2FdCIAMgsWg%2F2q9cjKTTOTLITLVl4PXdhuq12dAvz3c%3D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + alt-svc: + - h3=":443"; ma=86400 + expires: + - Sat, 07 Oct 2023 20:30:32 GMT + location: + - https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform + permissions-policy: + - interest-cohort=(),browsing-topics=() + vary: + - Accept + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - text/x-bibliography; style=vancouver; locale=en-US + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://api.crossref.org/v1/works/10.59350%2Fsfzv4-xdb68/transform + response: + body: + string: "1. Fern\xE1ndez N. \xBFQu\xE9 libros cient\xEDficos publicamos? 2023 + Oct 6; Available from: http://dx.doi.org/10.59350/sfzv4-xdb68\n" + headers: + access-control-allow-headers: + - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language, + Accept-Ranges, Cache-Control + access-control-allow-origin: + - '*' + access-control-expose-headers: + - Link + connection: + - close + content-type: + - text/x-bibliography + date: + - Sat, 07 Oct 2023 19:37:01 GMT + link: + - "; rel=\"canonical\", ; + version=\"vor\"; type=\"text/html\"; rel=\"item\", ; + version=\"vor\"; rel=\"license\", ; + version=\"tdm\"; rel=\"license\", ; + title=\"Norbisley Fern\xE1ndez\"; rel=\"author\"" + permissions-policy: + - interest-cohort=() + server: + - Jetty(9.4.40.v20210413) + transfer-encoding: + - chunked + vary: + - Accept + x-api-pool: + - public + x-rate-limit-interval: + - 1s + x-rate-limit-limit: + - '50' + x-ratelimit-interval: + - 1s + x-ratelimit-limit: + - '50' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test-routes/test_posts_not_indexed_route.yaml b/tests/cassettes/test-routes/test_posts_not_indexed_route.yaml new file mode 100644 index 0000000..cd329da --- /dev/null +++ b/tests/cassettes/test-routes/test_posts_not_indexed_route.yaml @@ -0,0 +1,70 @@ +interactions: +- request: + body: '{}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + accept-profile: + - public + connection: + - keep-alive + content-length: + - '2' + content-profile: + - public + content-type: + - application/json + host: + - db.rogue-scholar.org + user-agent: + - python-httpx/0.24.1 + x-client-info: + - supabase-py/1.2.0 + method: GET + uri: https://db.rogue-scholar.org/rest/v1/posts?select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20indexed%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28slug%2C%20title%2C%20description%2C%20feed_url%2C%20home_page_url%2C%20language%2C%20category%2C%20status%2C%20generator%2C%20license%2C%20modified_at%29&blogs.prefix=not.is.null&indexed=is.null&doi=not.is.null&order=published_at.desc&limit=15 + response: + content: '[]' + headers: + Access-Control-Allow-Origin: + - '*' + CF-Cache-Status: + - DYNAMIC + CF-Ray: + - 8128160a4db2cadd-DUS + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Location: + - /posts?blogs.prefix=not.is.null&doi=not.is.null&indexed=is.null&limit=15&order=published_at.desc&select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20indexed%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28slug%2C%20title%2C%20description%2C%20feed_url%2C%20home_page_url%2C%20language%2C%20category%2C%20status%2C%20generator%2C%20license%2C%20modified_at%29 + Content-Profile: + - public + Content-Range: + - '*/*' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 07 Oct 2023 18:07:51 GMT + Server: + - cloudflare + Strict-Transport-Security: + - max-age=2592000; includeSubDomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + Via: + - kong/2.8.1 + X-Kong-Proxy-Latency: + - '1' + X-Kong-Upstream-Latency: + - '13' + alt-svc: + - h3=":443"; ma=86400 + sb-gateway-version: + - '1' + http_version: HTTP/1.1 + status_code: 200 +version: 1 diff --git a/tests/cassettes/test-routes/test_posts_unregistered_route.yaml b/tests/cassettes/test-routes/test_posts_unregistered_route.yaml new file mode 100644 index 0000000..de083d0 --- /dev/null +++ b/tests/cassettes/test-routes/test_posts_unregistered_route.yaml @@ -0,0 +1,231 @@ +interactions: +- request: + body: '{}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + accept-profile: + - public + connection: + - keep-alive + content-length: + - '2' + content-profile: + - public + content-type: + - application/json + host: + - db.rogue-scholar.org + user-agent: + - python-httpx/0.24.1 + x-client-info: + - supabase-py/1.2.0 + method: GET + uri: https://db.rogue-scholar.org/rest/v1/posts?select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20indexed%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28slug%2C%20title%2C%20description%2C%20feed_url%2C%20home_page_url%2C%20language%2C%20category%2C%20status%2C%20generator%2C%20license%2C%20modified_at%29&blogs.prefix=not.is.null&doi=is.null&order=published_at.desc&limit=15 + response: + content: "[{\"id\":\"7ed56e9b-8e01-4a69-8583-75302b61715d\",\"doi\":null,\"url\":\"https://irights.info/2015/01/29/transmediale-2015-leben-arbeiten-und-spielen-in-den-zeiten-des-full-take/24806\",\"archive_url\":null,\"title\":\"Transmediale-Festival + untersucht den \u201EFull Take\u201C unserer Daten\",\"summary\":\"Geheimdienste, + Firmen, Staaten, Individuen \u2013 alle sammeln sie Daten. \u201EQuantified + Self\u201C, \u201Ealgorithmic society\u201C und \u201Efull take\u201C sind Begriffe, + mit denen das Medienfestival Transmediale die Entwicklung beschreibt. Es untersucht, + wie K\xFCnstler, Theoretiker und Aktivisten damit umgehen. Zum 28. Mal findet + es derzeit in Berlin statt.\",\"published_at\":1422535019,\"updated_at\":1422539760,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"name\": + null}],\"image\":null,\"tags\":[\"Fotos Grafiken\",\"Gesellschaft Kunst\",\"Netzkulturen\",\"Transmediale\"],\"language\":\"de\",\"reference\":[],\"relationships\":[],\"blog_name\":\"iRights.info\",\"blog_slug\":\"irights\",\"blog\":{\"slug\":\"irights\",\"title\":\"iRights.info\",\"description\":\"Urheberrecht + und kreatives Schaffen in der digitalen Welt\",\"feed_url\":\"https://irights.info/feed/atom\",\"home_page_url\":\"https://irights.info\",\"language\":\"de\",\"category\":\"law\",\"status\":\"active\",\"generator\":\"WordPress\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2023-09-25T10:21:48+00:00\"}}, + \n {\"id\":\"a371d301-fe0f-4bfc-90b1-4d8aa7d08b51\",\"doi\":null,\"url\":\"https://rossmounce.co.uk/2015/01/27/open-research-london-launch-event\",\"archive_url\":null,\"title\":\"Open + Research London launch event\",\"summary\":\"Last week, on Monday 19th January, + I co-organised the first ever Open Research London event at Imperial College + London, with the help of local organisers;\_Jon Tennant & Torsten Reimer.\",\"published_at\":1422359360,\"updated_at\":1422364982,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"\", \"name\": \"Ross Mounce\"}],\"image\":\"http://rossmounce.co.uk/wp-content/uploads/2015/01/OpenResearch-300x300.png\",\"tags\":[\"Open + Access\",\"Open Science\"],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"A + blog by Ross Mounce\",\"blog_slug\":\"rossmounce\",\"blog\":{\"slug\":\"rossmounce\",\"title\":\"A + blog by Ross Mounce\",\"description\":null,\"feed_url\":\"https://rossmounce.co.uk/wp-json/wp/v2/posts\",\"home_page_url\":\"https://rossmounce.co.uk\",\"language\":\"en\",\"category\":\"naturalSciences\",\"status\":\"active\",\"generator\":\"WordPress\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2021-11-19T15:57:46+00:00\"}}, + \n {\"id\":\"d8de5e7e-a51f-4680-9a03-db84ae2404eb\",\"doi\":null,\"url\":\"https://svpow.com/2015/01/23/sideshow-apatosaurus-sans-background\",\"archive_url\":null,\"title\":\"Sideshow + Apatosaurus sans background\",\"summary\":\"I made these for my own use + in talks, and then thought, why be selfish? Like everything else on this blog, + these images are now released to the world under the CC-BY license. Have fun + with them. You can read my review of the Sideshow Apatosaurus here; the TL;DR + is that it\u2019s awesome.\",\"published_at\":1421996871,\"updated_at\":1421996871,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"http://10minuteastronomy.wordpress.com/\", \"name\": \"Matt Wedel\"}],\"image\":\"https://svpow.files.wordpress.com/2015/01/apatosaurus-maquette-whole-lateral-cropped-angle-2.png\",\"tags\":[\"Apatosaurus\",\"Diplodocids\",\"Gratuitously + Awesome Images\"],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Sauropod + Vertebra Picture of the Week\",\"blog_slug\":\"svpow\",\"blog\":{\"slug\":\"svpow\",\"title\":\"Sauropod + Vertebra Picture of the Week\",\"description\":\"SV-POW! ... All sauropod + vertebrae, except when we're talking about Open Access\",\"feed_url\":\"https://svpow.com/feed/atom/\",\"home_page_url\":\"https://svpow.com\",\"language\":\"en\",\"category\":\"earthAndRelatedEnvironmentalSciences\",\"status\":\"active\",\"generator\":\"WordPress.com\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2023-09-22T14:44:45+00:00\"}}, + \n {\"id\":\"e7df0a42-201f-4ac6-965d-ee4f1573078d\",\"doi\":null,\"url\":\"https://www.ch.imperial.ac.uk/rzepa/blog?p=13252\",\"archive_url\":null,\"title\":\"Fine-tuning + a (hydrogen) bond into symmetry.\",\"summary\":\"Sometimes you come across a + bond in chemistry that just shouts at you. This happened to me in 1989[1] with + the molecule shown below. Here is its story and, 26 years later, how I responded. + \ To start at the beginning, there was a problem with the measured\_1H + NMR spectrum; specifically (Y=H, Z=O) there are supposedly 16 protons, but only + 15 could be located. What had happened to the 16th?\",\"published_at\":1421996137,\"updated_at\":1694877563,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-8635-8390\", \"name\": \"Henry Rzepa\"}],\"image\":\"http://www.ch.ic.ac.uk/rzepa/blog/wp-content/uploads/2015/01/JAZCOC.svg\",\"tags\":[],\"language\":\"en\",\"reference\":[{\"doi\": + \"http://doi.org/10.1039/C39890001722\", \"key\": \"ref1\"}, {\"doi\": \"http://doi.org/10.14469/ch/189475\", + \"key\": \"ref2\"}, {\"doi\": \"http://doi.org/10.14469/ch/189477\", \"key\": + \"ref3\"}, {\"doi\": \"http://doi.org/10.14469/ch/189478\", \"key\": \"ref4\"}, + {\"doi\": \"http://doi.org/10.14469/ch/189480\", \"key\": \"ref5\"}, {\"doi\": + \"http://doi.org/10.14469/ch/189476\", \"key\": \"ref6\"}, {\"doi\": \"http://doi.org/10.14469/ch/189492\", + \"key\": \"ref7\"}, {\"doi\": \"http://doi.org/10.14469/ch/189479\", \"key\": + \"ref8\"}, {\"doi\": \"http://doi.org/10.14469/ch/189481\", \"key\": \"ref9\"}, + {\"doi\": \"http://doi.org/10.14469/ch/193726\", \"key\": \"ref10\"}, {\"doi\": + \"http://doi.org/10.14469/ch/189489\", \"key\": \"ref11\"}, {\"doi\": \"http://doi.org/10.14469/ch/193727\", + \"key\": \"ref12\"}, {\"doi\": \"http://doi.org/10.14469/ch/189488\", \"key\": + \"ref13\"}],\"relationships\":[{\"url\": \"https://doi.org/10.15200/winn.142433.30598\", + \"type\": \"IsIdenticalTo\"}],\"blog_name\":\"Henry Rzepa's Blog\",\"blog_slug\":\"rzepa\",\"blog\":{\"slug\":\"rzepa\",\"title\":\"Henry + Rzepa's Blog\",\"description\":\"Chemistry with a twist\",\"feed_url\":\"https://www.ch.imperial.ac.uk/rzepa/blog/?feed=atom\",\"home_page_url\":\"https://www.ch.imperial.ac.uk/rzepa/blog\",\"language\":\"en\",\"category\":\"chemicalSciences\",\"status\":\"active\",\"generator\":\"WordPress + 6.3.1\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2023-09-25T16:46:13+00:00\"}}, + \n {\"id\":\"f805dd46-feae-4083-98ec-793f8771b2f7\",\"doi\":null,\"url\":\"https://eve.gd/2015/01/22/the-hefce-report-on-open-access-monographs-some-reflections\",\"archive_url\":null,\"title\":\"The + HEFCE report on Open Access Monographs: some reflections\",\"summary\":\"The + environment surrounding open access to monographs was significantly advanced + today by the release of a report commissioned by the UK's Higher Education Funding + Council for England (HEFCE), a quango (quasi-autonomous non-governmental organisation) + that translates the government's higher education budget allocation into usable + funds.\",\"published_at\":1421942158,\"updated_at\":1421942158,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-5589-8511\", \"name\": \"Martin Paul Eve\"}],\"image\":null,\"tags\":[],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Martin + Paul Eve\",\"blog_slug\":\"eve\",\"blog\":{\"slug\":\"eve\",\"title\":\"Martin + Paul Eve\",\"description\":null,\"feed_url\":\"https://eve.gd/feed_all.xml\",\"home_page_url\":\"https://eve.gd\",\"language\":\"en\",\"category\":\"languagesAndLiterature\",\"status\":\"active\",\"generator\":\"Jekyll\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"1970-01-01T00:00:00+00:00\"}}, + \n {\"id\":\"7e67dbe0-ea8c-4cc7-8473-ee6c7caaff53\",\"doi\":null,\"url\":\"https://eve.gd/2015/01/20/a-web-of-rights-roundtable-and-conversation-at-the-british-library-feb-19th-2015-bldigital\",\"archive_url\":null,\"title\":\"\\\"A + Web of Rights\\\": Roundtable and Conversation at the British Library (Feb 19th, + 2015) #bldigital\",\"summary\":\"This event will debate how and in what ways + the web has complicated, enhanced, and changed the rights of citizens for better + or for worse. The ongoing fallout from the Snowden revelations has both sharpened + awareness of how our rights are changing and highlighted a culture of indifference + towards once cherished rights and freedoms.\",\"published_at\":1421769358,\"updated_at\":1421769358,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-5589-8511\", \"name\": \"Martin Paul Eve\"}],\"image\":null,\"tags\":[],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Martin + Paul Eve\",\"blog_slug\":\"eve\",\"blog\":{\"slug\":\"eve\",\"title\":\"Martin + Paul Eve\",\"description\":null,\"feed_url\":\"https://eve.gd/feed_all.xml\",\"home_page_url\":\"https://eve.gd\",\"language\":\"en\",\"category\":\"languagesAndLiterature\",\"status\":\"active\",\"generator\":\"Jekyll\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"1970-01-01T00:00:00+00:00\"}}, + \n {\"id\":\"3009b101-aaac-4d93-a4ce-03fab1aeacc4\",\"doi\":null,\"url\":\"https://eve.gd/2015/01/20/being-called-to-account-tax-considerations-for-uk-based-collectively-funded-open-access-publishers\",\"archive_url\":null,\"title\":\"Being + called to account: tax considerations for UK-based collectively-funded open + access publishers\",\"summary\":\"That's a pretty specific title, I suspect, + but as I am learning with the Open Library of Humanities, we're in uncharted + territory, a place where the specifics matter.\",\"published_at\":1421769358,\"updated_at\":1421769358,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-5589-8511\", \"name\": \"Martin Paul Eve\"}],\"image\":null,\"tags\":[],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Martin + Paul Eve\",\"blog_slug\":\"eve\",\"blog\":{\"slug\":\"eve\",\"title\":\"Martin + Paul Eve\",\"description\":null,\"feed_url\":\"https://eve.gd/feed_all.xml\",\"home_page_url\":\"https://eve.gd\",\"language\":\"en\",\"category\":\"languagesAndLiterature\",\"status\":\"active\",\"generator\":\"Jekyll\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"1970-01-01T00:00:00+00:00\"}}, + \n {\"id\":\"6da66f4a-0ec0-441e-ba70-dfb44cc741bf\",\"doi\":null,\"url\":\"https://eve.gd/2015/01/19/foucauldian-methodologies-for-considering-emerging-archives\",\"archive_url\":null,\"title\":\"Foucauldian + methodologies for considering emerging archives?\",\"summary\":\"Some notes + and early (very abstract) draft thoughts on whether Foucauldian genealogies, + as redefined by Colin Koopman, can help us to address the problems of the archive + in contemporary fiction studies. In Pynchon and Philosophy, I needed + to give a succinct outline of the usual approach towards Foucault's broad body + of history/philosophy.\",\"published_at\":1421682958,\"updated_at\":1421682958,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-5589-8511\", \"name\": \"Martin Paul Eve\"}],\"image\":null,\"tags\":[],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Martin + Paul Eve\",\"blog_slug\":\"eve\",\"blog\":{\"slug\":\"eve\",\"title\":\"Martin + Paul Eve\",\"description\":null,\"feed_url\":\"https://eve.gd/feed_all.xml\",\"home_page_url\":\"https://eve.gd\",\"language\":\"en\",\"category\":\"languagesAndLiterature\",\"status\":\"active\",\"generator\":\"Jekyll\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"1970-01-01T00:00:00+00:00\"}}, + \n {\"id\":\"89790fa4-a1d7-4818-a959-455a39983f95\",\"doi\":null,\"url\":\"https://eve.gd/2015/01/18/stephen-curry-stephen_curry-reviews-open-access-and-the-humanities\",\"archive_url\":null,\"title\":\"Stephen + Curry (@Stephen_Curry) reviews Open Access and the Humanities\",\"summary\":\"At + the end of 2013 and 2014 I wrote blog posts on Occam\u2019s Corner (over at + the Guardian) to list and briefly review the books I read in each of those years. + I am trying to develop this practice into a good habit because it spurs me to + read; and I hope it might also serve to flag up titles of interest to others.\",\"published_at\":1421596558,\"updated_at\":1421596558,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-5589-8511\", \"name\": \"Martin Paul Eve\"}],\"image\":null,\"tags\":[],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Martin + Paul Eve\",\"blog_slug\":\"eve\",\"blog\":{\"slug\":\"eve\",\"title\":\"Martin + Paul Eve\",\"description\":null,\"feed_url\":\"https://eve.gd/feed_all.xml\",\"home_page_url\":\"https://eve.gd\",\"language\":\"en\",\"category\":\"languagesAndLiterature\",\"status\":\"active\",\"generator\":\"Jekyll\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"1970-01-01T00:00:00+00:00\"}}, + \n {\"id\":\"08601d2a-24cc-495d-bac8-a35b01d0a903\",\"doi\":null,\"url\":\"https://svpow.com/2015/01/16/what-have-you-done-with-aquilops\",\"archive_url\":null,\"title\":\"What + have you done with Aquilops!?\",\"summary\":\"Awesome things, that\u2019s + what. In a previous post I asked people to make cool things with Aquilops. And + you have. In spades. Here\u2019s a compilation of the best things so far. First, + a blast from the past.\",\"published_at\":1421379637,\"updated_at\":1421380014,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"http://10minuteastronomy.wordpress.com/\", \"name\": \"Matt Wedel\"}],\"image\":\"https://svpow.files.wordpress.com/2015/01/aquilops-sketch-by-mike-keesey.jpg\",\"tags\":[\"Aquilops\",\"Art\",\"Brian + Engh\",\"DIY\",\"DIY Dinosaurs\"],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Sauropod + Vertebra Picture of the Week\",\"blog_slug\":\"svpow\",\"blog\":{\"slug\":\"svpow\",\"title\":\"Sauropod + Vertebra Picture of the Week\",\"description\":\"SV-POW! ... All sauropod + vertebrae, except when we're talking about Open Access\",\"feed_url\":\"https://svpow.com/feed/atom/\",\"home_page_url\":\"https://svpow.com\",\"language\":\"en\",\"category\":\"earthAndRelatedEnvironmentalSciences\",\"status\":\"active\",\"generator\":\"WordPress.com\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2023-09-22T14:44:45+00:00\"}}, + \n {\"id\":\"98a5d69e-7276-4615-a7f9-38c60b8e35e0\",\"doi\":null,\"url\":\"https://eve.gd/2015/01/15/metrics-in-the-humanities\",\"archive_url\":null,\"title\":\"Metrics + in the Arts and Humanities\",\"summary\":\"Tomorrow I will be speaking at the + HEFCE Metrics and the assessment of research quality and impact in the Arts + and Humanities workshop, commissioned by the independent review panel. Here + are some notes on what I am planning to say. These are just brief notes for + a ten-minute talk. They're not particularly nuanced but I thought they were + worth sharing.\",\"published_at\":1421337358,\"updated_at\":1421337358,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-5589-8511\", \"name\": \"Martin Paul Eve\"}],\"image\":null,\"tags\":[],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Martin + Paul Eve\",\"blog_slug\":\"eve\",\"blog\":{\"slug\":\"eve\",\"title\":\"Martin + Paul Eve\",\"description\":null,\"feed_url\":\"https://eve.gd/feed_all.xml\",\"home_page_url\":\"https://eve.gd\",\"language\":\"en\",\"category\":\"languagesAndLiterature\",\"status\":\"active\",\"generator\":\"Jekyll\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"1970-01-01T00:00:00+00:00\"}}, + \n {\"id\":\"c930c02a-b9cf-4179-900c-54979c7719f7\",\"doi\":null,\"url\":\"https://www.ch.imperial.ac.uk/rzepa/blog?p=13248\",\"archive_url\":null,\"title\":\"A + convincing example of the need for data repositories. FAIR Data.\",\"summary\":\"Derek + Lowe in his In the Pipeline blog is famed for spotting unusual claims in the + literature and subjecting them to analysis. This one is entitled\_Odd Structures, + Subjected to Powerful Computations. He looks at this image below, and finds + the structures represented there might be a mistake, based on his considerable + experience of these kinds of molecules. I expect he had a gut feeling within + seconds of seeing the diagram.\",\"published_at\":1421327119,\"updated_at\":1694882899,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"https://orcid.org/0000-0002-8635-8390\", \"name\": \"Henry Rzepa\"}],\"image\":\"http://pipeline.corante.com/Exacycle%20plot.jpg\",\"tags\":[],\"language\":\"en\",\"reference\":[{\"doi\": + \"http://doi.org/10.1038/nchem.1821\", \"key\": \"ref1\"}],\"relationships\":[{\"url\": + \"https://doi.org/10.15200/winn.142313.30279\", \"type\": \"IsIdenticalTo\"}],\"blog_name\":\"Henry + Rzepa's Blog\",\"blog_slug\":\"rzepa\",\"blog\":{\"slug\":\"rzepa\",\"title\":\"Henry + Rzepa's Blog\",\"description\":\"Chemistry with a twist\",\"feed_url\":\"https://www.ch.imperial.ac.uk/rzepa/blog/?feed=atom\",\"home_page_url\":\"https://www.ch.imperial.ac.uk/rzepa/blog\",\"language\":\"en\",\"category\":\"chemicalSciences\",\"status\":\"active\",\"generator\":\"WordPress + 6.3.1\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2023-09-25T16:46:13+00:00\"}}, + \n {\"id\":\"002caee6-8e83-43ce-98a0-f5a47d1e4206\",\"doi\":null,\"url\":\"https://rossmounce.co.uk/2015/01/12/author-manuscripts-versus-the-publisher-version-of-record\",\"archive_url\":null,\"title\":\"Author + manuscripts versus the publisher version of record\",\"summary\":\"[Update: + I\u2019ve submitted this idea as a FORCE11\_\xA31K Challenge research proposal + 2015-01-13. I may be unemployed from April 2015 onwards (unsolicited job offers + welcome!), so I certainly might find myself with plenty of time on my hands + to properly get this done\u2026!] Inspired by something I heard Stephen + Curry say recently, and with a little bit of help from Jo McIntyre I\u2019ve + started a project to compare EuropePMC author manuscripts with th\",\"published_at\":1421074942,\"updated_at\":1421144403,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"\", \"name\": \"Ross Mounce\"}],\"image\":\"\",\"tags\":[\"Content Mining\",\"Open + Access\",\"Open Science\"],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"A + blog by Ross Mounce\",\"blog_slug\":\"rossmounce\",\"blog\":{\"slug\":\"rossmounce\",\"title\":\"A + blog by Ross Mounce\",\"description\":null,\"feed_url\":\"https://rossmounce.co.uk/wp-json/wp/v2/posts\",\"home_page_url\":\"https://rossmounce.co.uk\",\"language\":\"en\",\"category\":\"naturalSciences\",\"status\":\"active\",\"generator\":\"WordPress\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2021-11-19T15:57:46+00:00\"}}, + \n {\"id\":\"0db7a8ed-ebfe-4e8f-97b8-67191a2fdf44\",\"doi\":null,\"url\":\"https://rossmounce.co.uk/2015/01/11/elsevier-wants-our-feedback-heres-mine\",\"archive_url\":null,\"title\":\"Elsevier + wants our feedback. Here’s mine\",\"summary\":\"So, apparently Elsevier + are launching a new open access mega-journal some time this year, joining the + bandwagon of similar efforts from almost every other major publisher. A lovely + acknowledgement of the roaring success of PLOS ONE, who did it first a long + time ago. They\u2019re only ~8 years behind, but they\u2019re learning. I for + one am pleased they are asking the research community what they want from this + new journal.\",\"published_at\":1421014103,\"updated_at\":1424209412,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"\", \"name\": \"Ross Mounce\"}],\"image\":\"http://rossmounce.co.uk/wp-content/uploads/2014/12/B4v_G9iCIAAvfTr-300x298.png\",\"tags\":[\"Generation + Open\",\"Open Access\",\"Open Science\"],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"A + blog by Ross Mounce\",\"blog_slug\":\"rossmounce\",\"blog\":{\"slug\":\"rossmounce\",\"title\":\"A + blog by Ross Mounce\",\"description\":null,\"feed_url\":\"https://rossmounce.co.uk/wp-json/wp/v2/posts\",\"home_page_url\":\"https://rossmounce.co.uk\",\"language\":\"en\",\"category\":\"naturalSciences\",\"status\":\"active\",\"generator\":\"WordPress\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2021-11-19T15:57:46+00:00\"}}, + \n {\"id\":\"34943af4-b0a3-4708-b480-db3c7bbc8c0a\",\"doi\":null,\"url\":\"https://svpow.com/2015/01/09/our-thoughts-on-elseviers-newly-announced-as-yet-untitled-plos-one-clone\",\"archive_url\":null,\"title\":\"Our + thoughts on Elsevier\u2019s newly announced, as-yet-untitled, PLOS ONE clone\",\"summary\":\"*yawn*\",\"published_at\":1420801334,\"updated_at\":1420801334,\"indexed_at\":0,\"indexed\":true,\"authors\":[{\"url\": + \"http://www.miketaylor.org.uk/dino/pubs/\", \"name\": \"Mike Taylor\"}],\"image\":null,\"tags\":[\"Open + Access\"],\"language\":\"en\",\"reference\":[],\"relationships\":[],\"blog_name\":\"Sauropod + Vertebra Picture of the Week\",\"blog_slug\":\"svpow\",\"blog\":{\"slug\":\"svpow\",\"title\":\"Sauropod + Vertebra Picture of the Week\",\"description\":\"SV-POW! ... All sauropod + vertebrae, except when we're talking about Open Access\",\"feed_url\":\"https://svpow.com/feed/atom/\",\"home_page_url\":\"https://svpow.com\",\"language\":\"en\",\"category\":\"earthAndRelatedEnvironmentalSciences\",\"status\":\"active\",\"generator\":\"WordPress.com\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"modified_at\":\"2023-09-22T14:44:45+00:00\"}}]" + headers: + Access-Control-Allow-Origin: + - '*' + CF-Cache-Status: + - DYNAMIC + CF-Ray: + - 8128160b1e99cadd-DUS + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Location: + - /posts?blogs.prefix=not.is.null&doi=is.null&limit=15&order=published_at.desc&select=id%2C%20doi%2C%20url%2C%20archive_url%2C%20title%2C%20summary%2C%20published_at%2C%20updated_at%2C%20indexed_at%2C%20indexed%2C%20authors%2C%20image%2C%20tags%2C%20language%2C%20reference%2C%20relationships%2C%20blog_name%2C%20blog_slug%2C%20blog%3A%20blogs%21inner%28slug%2C%20title%2C%20description%2C%20feed_url%2C%20home_page_url%2C%20language%2C%20category%2C%20status%2C%20generator%2C%20license%2C%20modified_at%29 + Content-Profile: + - public + Content-Range: + - 0-14/* + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 07 Oct 2023 18:07:51 GMT + Server: + - cloudflare + Strict-Transport-Security: + - max-age=2592000; includeSubDomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + Via: + - kong/2.8.1 + X-Kong-Proxy-Latency: + - '0' + X-Kong-Upstream-Latency: + - '21' + alt-svc: + - h3=":443"; ma=86400 + sb-gateway-version: + - '1' + http_version: HTTP/1.1 + status_code: 200 +version: 1 diff --git a/tests/cassettes/test-routes/test_posts_with_query_and_pagination_route.yaml b/tests/cassettes/test-routes/test_posts_with_query_and_pagination_route.yaml new file mode 100644 index 0000000..4a72e1c --- /dev/null +++ b/tests/cassettes/test-routes/test_posts_with_query_and_pagination_route.yaml @@ -0,0 +1,883 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://fmxr36stzdcbiw7hp-1.a1.typesense.net/collections/posts/documents/search?q=retraction-watch&query_by=tags%2Ctitle%2Cdoi%2Cauthors.name%2Cauthors.url%2Csummary%2Ccontent_html%2Creference&sort_by=_text_match%3Adesc&per_page=10&page=2 + response: + body: + string: "{\"facet_counts\":[],\"found\":18,\"hits\":[{\"document\":{\"authors\":[{\"name\":\"Bj\xF6rn + Brembs\",\"url\":null}],\"blog_id\":\"8q8xh52\",\"blog_name\":\"bjoern.brembs.blog\",\"blog_slug\":\"brembs\",\"content_html\":\"

In + the last + \u201CScience Weekly\u201D podcast from the Guardian, the topic was retractions.\_ + At about 20:29 into the episode, Hannah + Devlin asked, whether the reason \u2018top\u2019 journals retract more + articles may be because of increased scrutiny there.

\\n

The underlying + assumption is very reasonable, as many more eyes see each paper in such journals + and the motivation to shoot down such high-profile papers might also be higher. + However, the question has actually been addressed in the scientific literature + and the data don\u2019t seem to support this assumption. For one, this figure shows that there are a lot of retractions + from lower ranking journals, but the journals who retract a lot are few and + far between. In fact, there are many more retractions in low-ranking journals + than in high-ranking ones. Of the high-ranking journals, a much larger proportion + also retracts many papers. However, this analysis only shows that there are + many more retractions in lower journals than in higher journals on an absolute + level. Hence, these data are not conclusive, but suggestive that scrutiny + is not really all that much higher for the \u2018top\u2019 journals than anywhere + else.

\\n

Another reason why scrutiny might be assumed to be higher in + \u2018top\u2019 journals is that readership is higher, leading to more potential + for error detection. However, the same reasoning can be applied to citations, + and not only retractions. Moreover, citing a \u2018top\u2019 paper is not + only easier than forcing a retraction, it also benefits your own research + by elevating the perceived importance of your field. Thus, if readership had + any such influence, one would expect journal rank to correlate better with + citations than with retractions. The opposite is the case: The coefficient + of determination for citations with journal rank currently lies around 0.2, + while that coefficient comes to lie at just under 0.8 for retractions and + journal rank (Fig. 3 and Fig. 1D, respectively, here). + So while there may be a small effect of scrutiny/motivation, the evidence + seems to suggest that it is a relatively minor effect, if there is one at + all.

\\n

Conversely, there is quite solid evidence that the methodology + in \u2018top\u2019 journals is not any better than in other journals, when + analyzing non-retracted articles. In fact, there are studies showing that + the methodology is actually worse in \u2018top\u2019 journals, while + we have not found a single study suggesting the methodology gets better with + journal rank. Our article + reviews these studies. Importantly, these studies all concern non-retracted + papers, i.e., the other 99.95% of the literature.

\\n

In conclusion, + the evidence suggests scrutiny is likely a negligible factor in the correlation + of journal rank and retractions, while increased incidence of fraud and lower + methodological standards can be shown.

\\n

I know Ivan + Oransky, who was a guest on the show, is aware of these data, so it may + have been a bit unfortunate that Phillip Campbell (editor-in-chief at Nature + Magazine) got to answer this question before Ivan had a chance to lay these + data out. In fact, Nature is also aware of these data and has twice refused + publishing them. The first time when we submitted our manuscript, with the + statement, that Nature had already published articles that stated that Nature + publishes the worst science. The second time was when Cori Lok interviewed + Jon Tennant and he told her about the data, but Cori failed + to include this part of the interview. There is thus a record of Nature, + very understandably, avoiding to admit their failure to select for solid science. + Phillip Campbell\u2019s answer to the question in the podcast may have been + at least the third time.

\\n

While Phillip Campbell did admit they don\u2019t + do enough fraud-detection (it is too rare), the issue of reliability in science + goes far beyond fraud, so successfully derailing the question towards this + direction served his company quite well. Clearly, he\u2019s a clever guy and + did not come unprepared.

\\n

Finally, one may ask: why do the \u2018top\u2019 + journals publish unreliable science?

\\n

Probably the most important + factor is that they attract \u201Ctoo good to be true\u201D results, but only + apply \u201Cpeer-review light\u201D: rejection rates drop dramatically from + 92% to a mere 60% once your manuscript makes it past the editors, that\u2019s + a 5-fold increase in your publication chances (Noah Gray and Henry Gee, pers. + comm.). Why is that so? First, the reviewers know the editor wants to publish + this paper. Second, they have an automatic conflict of interest, as a Nature + paper in their field increases the visibility of their field, they may even + be cited in the paper \u2013 or plan to cite it in their upcoming grant application.

\\n

On + average, this entire model is just a recipe for disaster and more policing + won\u2019t fix it. By using it, we have been setting us up for the exponential + rise in retractions to be seen in Fig. + 1a of our paper.

\\n

So, in the probably not too unlikely case that + the topic of unreliable science should come up again, anyone can now cite + the actual, peer-reviewed data we have at hand, such that editors-in-chief + may have a harder time derailing the discussion and obfuscating the issues + in the future.

\\n

tl;dr: The data suggest a combination + of three factors leading to more retractions in \u2018top\u2019 journals: + 1. Worse methodological quality; 2. Higher incidence of fraud 3. Peer-review + light. One would intuitively expect increased readership/scrutiny to play + some role, but there is currently no evidence for it and some circumstantial + evidence against it.

\\n\",\"content_text\":\"content_html\",\"doi\":\"https://doi.org/10.59350/jgggm-t5x67\",\"id\":\"722eccad-af31-4650-93ef-105c5df6da92\",\"language\":\"en\",\"published_at\":1434631090,\"reference\":[],\"relationships\":[],\"summary\":\"In + the last \u201CScience Weekly\u201D podcast from the Guardian, the topic was + retractions.\_ At about 20:29 into the episode, Hannah Devlin asked, whether + the reason \u2018top\u2019 journals retract more articles may be because of + increased scrutiny there. The underlying assumption is very reasonable, as + many more eyes see each paper in such journals and the motivation to shoot + down such high-profile papers might also be higher.\",\"tags\":[\"Science + Politics\",\"Fraud\",\"Impact Factor\",\"Journal Rank\",\"Methodology\"],\"title\":\"Are + more retractions due to more scrutiny?\",\"updated_at\":1443089629,\"url\":\"https://bjoern.brembs.net/2015/06/are-more-retractions-due-to-more-scrutiny\"},\"highlight\":{\"content_html\":{\"matched_tokens\":[\"retraction\",\"watch\"],\"snippet\":\"retractionwatch.com/meet-the-retraction-watch-staff/about/\\\">Ivan + Oransky<\"}},\"highlights\":[{\"field\":\"content_html\",\"matched_tokens\":[\"retraction\",\"watch\"],\"snippet\":\"retractionwatch.com/meet-the-retraction-watch-staff/about/\\\">Ivan + Oransky<\"}],\"text_match\":1157451471441100873,\"text_match_info\":{\"best_field_score\":\"2211897868288\",\"best_field_weight\":9,\"fields_matched\":1,\"score\":\"1157451471441100873\",\"tokens_matched\":2}},{\"document\":{\"authors\":[{\"name\":\"Martin + Fenner\",\"url\":\"https://orcid.org/0000-0003-1419-2405\"}],\"blog_id\":\"f0m0e38\",\"blog_name\":\"Front + Matter\",\"blog_slug\":\"front_matter\",\"content_html\":\"

The first post + on this blog was published on August 3, 2007 (Open + access may become mandatory for NIH-funded research). This is post number + 465, and in the past 15 years the blog has seen changes in technology and + hosting location \u2013 but I wrote all posts (with the exception of a few + guest posts). The overall theme remained unchanged: technology used in scholarly + communication.

Instead of a detailed analysis of recurring themes, + or how scholarly communication has changed in the last 15 years, I want to + pick one topic that continues to worry me, and has been the subject of multiple + posts on this blog and elsewhere: the over-reliance on PDF as publishing format + for scholarly articles.

This week I read two interesting articles related + to climate change. One of them (Over + half of known human pathogenic diseases can be aggravated by climate change) + did an impressive systematic review of the literature on the impacts of ten + climatic hazards sensitive to greenhouse gas emissions on each known human + pathogenic disease (in short: very scary). The second paper (Estimating + the environmental impacts of 57,000 food products) tried to estimate the + environmental impact of more than 50K food products in the United Kingdom + and Ireland (no big surprises, but again stressing that meat, fish, and cheese + have a significant environmental impact).

Both articles are available + online as full-text, but they come in PDF format. Fine for printing and then + reading them (which I did), but in 2022 I expect to read papers on a tablet + (which I use for almost all my reading) where the PDF letter or A4 size doesn't + quite fit on the 10-inch screen. There are other problems with PDF (e.g. access + to metadata such as references and using PDF as submission format, e.g. with + preprints). These problems are not new and there are workarounds, but in the + 15 years of writing this blog \u2013 despite a lot of progress \u2013 scholarly + communication continues to have an uneasy relationship with technology and + is often stuck in the past. In contrast to many (but of course not all) other + sectors.

This means there are many reasons to continue writing this + blog. And since 2012, when I gave up my job as a medical doctor in a university + hospital, I am working full-time on scholarly infrastructure, after recovering + from the health issues I described in the last post (I + spent the last five months in the hospital) with a focus on research data + management.

Incidentally, August 3 saw another anniversary as Retraction + Watch, the wonderful service tracking paper retractions turned 12 (years + old). Congratulations Ivan and team!

\",\"content_text\":\"content_html\",\"doi\":\"https://doi.org/10.53731/bs60jms-sqaehsk\",\"id\":\"d2098d02-4a1f-4d66-9369-492489e1778b\",\"image\":\"https://images.unsplash.com/photo-1555607124-8531c7c702d0?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQzfHxiaXJ0aGRheXxlbnwwfHx8fDE2NjAyMjQwOTA&ixlib=rb-1.2.1&q=80&w=2000\",\"language\":\"en\",\"published_at\":1660227188,\"reference\":[],\"relationships\":[],\"summary\":\"The + first post on this blog was published on August 3, 2007 (Open access may become + mandatory for NIH-funded research). This is post number 465, and in the past + 15 years the blog has seen changes in technology and hosting location \u2013 + but I wrote all posts (with the exception of a few guest posts). The overall + theme remained unchanged: technology used in scholarly communication.\",\"tags\":[\"Feature\"],\"title\":\"This + blog turned 15 (years old) this month\",\"updated_at\":1660486165,\"url\":\"https://blog.front-matter.io/posts/this-blog-turned-15-this-month\"},\"highlight\":{\"content_html\":{\"matched_tokens\":[\"Retraction\",\"Watch\"],\"snippet\":\"saw + another anniversary as Retraction Watch, the wonderful + service tracking\"}},\"highlights\":[{\"field\":\"content_html\",\"matched_tokens\":[\"Retraction\",\"Watch\"],\"snippet\":\"saw + another anniversary as Retraction Watch, the wonderful + service tracking\"}],\"text_match\":1157451471441100873,\"text_match_info\":{\"best_field_score\":\"2211897868288\",\"best_field_weight\":9,\"fields_matched\":1,\"score\":\"1157451471441100873\",\"tokens_matched\":2}},{\"document\":{\"authors\":[{\"name\":\"Adam + Day\",\"url\":null}],\"blog_id\":\"ez7c883\",\"blog_name\":\"Stories by Adam + Day on Medium\",\"blog_slug\":\"clearskiesadam\",\"content_html\":\"

TL;DR: + Join me at ConTech Live to hear about a recent project with Open + Credo to see if we could detect unusual co-authorships in a dataset created + by Anna Abalkina. Sign + up\_here!

Papermilling has a few definitions which you see here + and there. Sometimes it\u2019s \u201Corganised manipulation of the peer-review + process\u201D or it might be \u201Cmanufacturing of fraudulent research papers\u201D + and so\_on.

I described the general roles involved in papermilling in + a + previous blog\_post.

But there\u2019s actually a lot of nuance in how different papermills + operate. Consider what happens when we have multiple agents, forgers and authors + operating in a\_network.

I\u2019m going to describe here 3 quite different + things which get called \u2018paper mills\u2019. Perhaps there are more than + 3 main classes of papermill? Add a comment if you can think of another\_one!

1. + Fabrication from\_scratch

Any organisation which fabricates research + papers from scratch for sale. People have been fabricating research for as + long as research has been a thing, but it\u2019s the organised part + that makes this new. This happens at a vastly greater scale than it used to + and the problem continues to\_grow.

There are definitely templates and + re-used images and text in these papers, but I think \u2018from scratch\u2019 + is a fair distinction between this and the other\_types.

All those fake + western blots? That\u2019s this. Those cancer genetics papers from obscure + hospital research departments? That\u2019s this too. Take a look at cases + highlighted by Jennifer Byrne, Elisabeth Bik, Cheshire, Smut Clyde and others + for examples.

My Papermill + Alarm API, mentioned in previous + blog posts, is mostly trained to highlight this kind of papermilling.

2. + Fabrication by plagiarism

Fabrication from scratch requires skill. + What if our forger doesn\u2019t know how to write a fake paper from scratch? + This is a sad\_forger:

I\u2019ve made him look sad by rotating his mouth 180\xB0. Image + manipulation is not my\_fort\xE9.

So what can he do? + How can he turn that frown upside-down?

The idea is simple. If he can\u2019t write a fake paper, he + can just copy a real one! Or he can get creative and copy several bits + of papers and paste the bits into a new manuscript. If he\u2019s worried about + getting caught by anti-plagiarism software, he can always drop the text into + a paraphrasing tool. This is where we get \u201CTortured Phrases\u201D (see the great work of Guillaume + Cabanac et al on this subject).

The difference between organised + plagiarism and papermilling-from-scratch is simply that, here, the forger + starts with 1 or more existing papers and converts them into a \u2018new\u2019\_one.

3. + Authorship brokering

This is where authorship slots on papers, fabricated + or not, are sold. This is actually just the \u2018agent\u2019 part of any + papermilling operation, but sometimes we see it as a standalone service.

A + famous case of a brokerage advertising authorships for sale was brought to + light by Retraction Watch some years ago. Anna Abalkina, a researcher + at Freie Universit\xE4t Berlin investigated + this matter by tracking down the papers advertised on that site. It\u2019s + a very interesting case and well-worth reading\_about.

It\u2019s fortunate + that the papers for sale on that site were advertised so openly. Consider + now that anyone can sell authorship on any paper privately. How can we detect + that? I\u2019ve learned recently that it might be possible to spot these brokered + authorships.

Join me at ConTech\_Live!

Earlier this year, SAGE + Publishing worked with Open Credo, + a software development consultancy here in London, on a project to see if + we could detect unusual co-authorships using the dataset created by Anna Abalkina + in her work. If you\u2019d like to know more, I suggest signing up for our forthcoming ConTech + presentation!

\",\"content_text\":\"content_html\",\"doi\":\"https://doi.org/10.59350/dakrb-j7a75\",\"id\":\"8ec5510e-0bab-40ef-8978-9011f579aeca\",\"image\":\"https://cdn-images-1.medium.com/max/937/1*OSsajzQlkOFyf_LkQ6lBfw.png\",\"language\":\"en\",\"published_at\":1667236116,\"reference\":[],\"relationships\":[],\"summary\":\"TL;DR: + Join me at ConTech Live to hear about a recent project with Open Credo to + see if we could detect unusual co-authorships in a dataset created by Anna + Abalkina. Sign up\_here! Papermilling has a few definitions which you see + here and there.\",\"tags\":[\"Peer Review Journals\",\"Academic Publishing\",\"Research + Integrity\"],\"title\":\"(The?) 3 kinds of papermills\",\"updated_at\":1667236116,\"url\":\"https://clearskiesadam.medium.com/3-kinds-of-papermills-14993c37ebfa\"},\"highlight\":{\"content_html\":{\"matched_tokens\":[\"Retraction\",\"Watch\"],\"snippet\":\"brought + to light by Retraction Watch some years ago\"}},\"highlights\":[{\"field\":\"content_html\",\"matched_tokens\":[\"Retraction\",\"Watch\"],\"snippet\":\"brought + to light by Retraction Watch some years ago\"}],\"text_match\":1157451471441100873,\"text_match_info\":{\"best_field_score\":\"2211897868288\",\"best_field_weight\":9,\"fields_matched\":1,\"score\":\"1157451471441100873\",\"tokens_matched\":2}},{\"document\":{\"authors\":[{\"name\":\"Martin + Fenner\",\"url\":\"https://orcid.org/0000-0003-1419-2405\"}],\"blog_id\":\"f4wdg32\",\"blog_name\":\"Syldavia + Gazette\",\"blog_slug\":\"syldavia_gazette\",\"content_html\":\"

Guinea + worm disease reaches all-time low: only 13* human cases reported in 2022

Only + 13 human cases of Guinea worm disease were reported worldwide in 2022. This + Neglected Tropical Disease is on the WHO 2030 roadmap to become only the second + human disease in history to be eradicated, after smallpox.

ChatGPT + is fun, but not an author

The Editor-In-Chief of the Science + journals explains their updated Editorial Policy specifying that text generated + by ChatGPT (or any other AI tools) cannot be used in publications, nor can + figures produced by such tools.

Meet + the first Neanderthal family

A study published in October last + year retrieved the DNA from 17 Neanderthal remains, for the first time using + genetics to study the social organization of a Neanderthal community.

University + to investigate adjunct professor after allegations of plagiarism \u2013 and + legal threats

The University of Z\xFCrich in Switzerland has announced + that it had started an investigation into allegations that a researcher used + images and other material from a blog without attribution in a published book.

Welcome to the tidyverse

The + tidyverse is a language for solving data science challenges with R code. It + is also a collection of R packages with a shared high-level design philosophy. + This article gives a short introduction to these highly popular software packages.


References

  1. Guinea Worm Disease Reaches All-Time Low: Only + 13* Human Cases Reported in 2022. The Carter Center. Accessed March 28, 2023. + https://www.cartercenter.org/news/pr/2023/2022-guinea-worm-worldwide-cases-announcement.html
  2. Thorp + HH. ChatGPT is fun, but not an author. Science. 2023;379(6630):313-313. + doi:10.1126/science.adg7879
  3. Meet + the first Neanderthal family. The Leakey Foundation. Accessed March 28, 2023. + https://leakeyfoundation.org/meet-the-first-neanderthal-family/
  4. Kincaid + AE. University to investigate adjunct professor after allegations of plagiarism + \u2013 and legal threats. Retraction Watch. Published December 30, 2022. Accessed + March 28, 2023. https://retractionwatch.com/2022/12/30/university-to-investigate-adjunct-professor-after-allegations-of-plagiarism-and-legal-threats/
  5. Wickham + H, Averick M, Bryan J, et al. Welcome to the Tidyverse. Journal of Open + Source Software. 2019;4(43):1686. doi:10.21105/joss.01686
\",\"content_text\":\"content_html\",\"doi\":\"https://doi.org/10.53731/ffbx660-083tnag\",\"id\":\"0022b9ef-525a-4a79-81ad-13411697f58a\",\"image\":\"https://digitalpress.fra1.cdn.digitaloceanspaces.com/gtpg506/2023/04/gw-release-2023.jpg\",\"language\":\"en\",\"published_at\":1675263360,\"reference\":[{\"key\":\"ref1\",\"url\":\"https://cartercenter.org/news/pr/2023/2022-guinea-worm-worldwide-cases-announcement.html\"},{\"doi\":\"https://doi.org/10.1126/science.adg7879\",\"key\":\"ref2\"},{\"key\":\"ref3\",\"url\":\"https://leakeyfoundation.org/meet-the-first-neanderthal-family\"},{\"key\":\"ref4\",\"url\":\"https://retractionwatch.com/2022/12/30/university-to-investigate-adjunct-professor-after-allegations-of-plagiarism-and-legal-threats\"},{\"doi\":\"https://doi.org/10.21105/joss.01686\",\"key\":\"ref5\"}],\"relationships\":[],\"summary\":\"Guinea + worm disease reaches all-time low: only 13* human cases reported in 2022 Only + 13 human cases of Guinea worm disease were reported worldwide in 2022. This + Neglected Tropical Disease is on the WHO 2030 roadmap to become only the second + human disease in history to be eradicated, after smallpox.\",\"tags\":[\"Weekly\"],\"title\":\"Guinea + Worms, ChatGPT, Neanderthals, Plagiarism, Tidyverse\",\"updated_at\":1681415899,\"url\":\"https://syldavia-gazette.org/guinea-worms-chatgpt-neanderthals\"},\"highlight\":{\"content_html\":{\"matched_tokens\":[\"Retraction\",\"Watch\"],\"snippet\":\"plagiarism + \u2013 and legal threats. Retraction Watch. Published + December 30, 2022\"}},\"highlights\":[{\"field\":\"content_html\",\"matched_tokens\":[\"Retraction\",\"Watch\"],\"snippet\":\"plagiarism + \u2013 and legal threats. Retraction Watch. Published + December 30, 2022\"}],\"text_match\":1157451471441100873,\"text_match_info\":{\"best_field_score\":\"2211897868288\",\"best_field_weight\":9,\"fields_matched\":1,\"score\":\"1157451471441100873\",\"tokens_matched\":2}},{\"document\":{\"authors\":[{\"name\":\"Mike + Taylor\",\"url\":\"http://www.miketaylor.org.uk/dino/pubs/\"}],\"blog_id\":\"dkvra02\",\"blog_name\":\"Sauropod + Vertebra Picture of the Week\",\"blog_slug\":\"svpow\",\"content_html\":\"

Back + in March, Nature published \u201CHummingbird-sized dinosaur from + the Cretaceous period of Myanmar\u201D by Xing et al. (2020), which described + and named a tiny putative bird that was preserved in amber from Myanmar (formerly + Burma). It\u2019s a pretty spectacular find.

\\n

Xing + et al. (2020: figure 1). a, Photograph of the amber + piece with skull ventrolaterally exposed. b, c, + Scan (b) and drawing (c), left lateral view. + d, e, Scan (d) and drawing + (e), rostral view. f, g, + Scan (f) and drawing (g), occipital view. + h, i, Scan (h) and drawing + (i), dorsal view. de, dentary; fr, frontal; hy, hyoid bone + (or bones); jg, jugal; la, lacrimal; mx, maxilla; pa, parietal; pm, premaxilla; + po, postorbital; qd, quadrate; sc, scleral ossicle; so, supraoccipital; sq, + squamosal; th, teeth. Scale bars, 5 mm; longer scale bar below b + applies to b\u2212i.

\\n

Today, + though, that paper is + retracted.

\\n

That\u2019s a very rare occurrence for a palaeontology + paper. And it raises a lot of questions. The retraction notice reads, in full:

\\n

We, + the authors, are retracting this Article to prevent inaccurate information + from remaining in the literature. Although the description of Oculudentavis + khaungraae remains accurate, a new unpublished specimen casts doubts + upon our hypothesis regarding the phylogenetic position of HPG-15-3.

\\n

But + we constantly see papers whose phylogenetic hypotheses are overturned by new + specimens. We usually deal with this by writing a new paper. Why, in this + case, is there a retraction? Something smells wrong here.

\\n

And the + plot thickens in Retraction + Watch\u2019s account: corresponding author Jingmai O\u2019Connor told + them:

\\n

I don\u2019t agree with the retraction but there + is no point in fighting it, so we all signed it.

\\n

I cannot say why + Nature chose to retract, I cannot hypothesize on their inner machinations. + [\u2026] It is also not that unusual for paleontologists to misidentify things + and for new information to correct previous hypotheses. However, Nature + chose not to publish the Matter\u2019s Arising and instead retracts our paper + \u2013 they must have their reasons.

\\n

This doesn\u2019t + add up. The retraction notice explictly states that the authors retracted + the original paper \u2014 yet the corresponding author says that the journal + did it, more or less against the authors\u2019 will.

\\n

I don\u2019t + know what\u2019s going on here. I agree with O\u2019Connor that \u201CIt\u2019s + unfortunate because this way science can\u2019t simply correct itself (as + it is supposed to do)\u201D. If, as Li et al. (2000) argue, Oculudentavis + is actually a squamate (lizard), well, fine: they can publish their conclusion, + and the community will arrive at a consensus as to which identification is + correct. That\u2019s how it works, right? So why the retraction?

\\n

And + there\u2019s more: what does this mean for zoological nomenclature? Is the + name Oculudentavis khaungraae still nomenclaturally valid? Opinions + on this seem to vary (see the + Dinosaur Mailing List thread beginning with Ben Creisler\u2019s announcement + of the retraction.)

\\n

I lean to the interpretation that, since + the International + Code on Zoological Nomenclature does not mention retractions, it implicitly + takes the position that a paper once published is published forever. On that + basis, the name Oculudentavis remains valid and attached to the holoype + specimen \u2014 even if that name, with its -avis suffix, proves + to have been poorly chosen in pertaining to a non-bird. (After all, there + is plenty of precedent for misleading names staying in place: the whale Basilosaurus + is not a saurian, and the clade of \u201Cfalse crocodiles\u201D Pseudosuchia + includes the true crocodiles.)

\\n

This doesn\u2019t seem to be what + Springer Nature wants: in a Facebook exchange forwarded to me by a friend + who I will leave anonymous unless he or she chooses to out him or herself, + Henry Gee comments \u201CThe retraction means the paper is erased from the + record, and this includes the name\u201D.

\\n

\\n

I + think this is simply incorrect. But I am no expert: I await comments from + those more versed in the intricacies of the ICZN.

\\n

At any rate, I + can\u2019t help but suspect that something is going on here that\u2019s not + being clearly stated. Could it be to do with the fact that Myanmar amber is + itself controversial, due to the human rights record of the Myanmar regime? + Is it even possible that one or more or the authors of the original Oculudentavis + colluded in describing it as a bird when they knew it was something else? + I don\u2019t know (and to be 100% clear, I am not accusing anyone + of anything). But I do know that Nature\u2018s vague and possibly + misleading retraction notice is not helping, and is not in the spirit of transparency + that we aim to cultivate in the sciences.

\\n

I\u2019m pretty sure we + don\u2019t yet know the full story.

\\n

References

\\n\\n

\_

\\n\",\"content_text\":\"content_html\",\"doi\":\"https://doi.org/10.59350/hk3jx-6sv77\",\"id\":\"c556963d-9f80-4798-922b-f77180d3c33b\",\"image\":\"https://svpow.files.wordpress.com/2020/07/41586_2020_2068_fig1_html.jpeg\",\"language\":\"en\",\"published_at\":1595461726,\"reference\":[{\"key\":\"ref1\",\"url\":\"https://biorxiv.org/content/10.1101/2020.03.16.993949v1?versioned=true\"},{\"key\":\"ref2\",\"url\":\"https://nature.com/articles/s41586-020-2068-4\"}],\"relationships\":[],\"summary\":\"Back + in March, Nature published \u201CHummingbird-sized dinosaur from the Cretaceous + period of Myanmar\u201D by Xing et al. (2020), which described and named a + tiny putative bird that was preserved in amber from Myanmar (formerly Burma). + It\u2019s a pretty spectacular find. Today, though, that paper is retracted. + That\u2019s a very rare occurrence for a palaeontology paper.\",\"tags\":[\"New + Papers\",\"Nomenclature\",\"Paleontologists Behaving Badly\",\"Stinkin Lizards\",\"Stinkin + Theropods\"],\"title\":\"What\u2019s going on with Oculudentavis?\",\"updated_at\":1595754036,\"url\":\"https://svpow.com/2020/07/22/whats-going-on-with-oculudentavis\"},\"highlight\":{\"content_html\":{\"matched_tokens\":[\"Retraction\",\"Watch\"],\"snippet\":\"dinosaur-is-being-retracted/\\\">Retraction + Watch\u2019s account: corresponding author\"}},\"highlights\":[{\"field\":\"content_html\",\"matched_tokens\":[\"Retraction\",\"Watch\"],\"snippet\":\"dinosaur-is-being-retracted/\\\">Retraction + Watch\u2019s account: corresponding author\"}],\"text_match\":1157451437081362505,\"text_match_info\":{\"best_field_score\":\"2211881091072\",\"best_field_weight\":9,\"fields_matched\":1,\"score\":\"1157451437081362505\",\"tokens_matched\":2}},{\"document\":{\"authors\":[{\"name\":\"Scott + Edmunds\",\"url\":\"http://orcid.org/0000-0001-6444-1436\"}],\"blog_id\":\"3ffcd46\",\"blog_name\":\"GigaBlog\",\"blog_slug\":\"gigablog\",\"content_html\":\"

\\\"CoronavirusWith much of the GigaScience team spanning the Hong + Kong-Shenzhen border and now confined to remote working, the current 2019-novel + coronavirus outbreak has been particularly disruptive and close to home. As + with previous WHO\_\u201Cpublic-health + emergency of international concern\u201D such as Ebola and Zika, data + has provided a potent tool in fighting both the outbreak, and the conspiracy + theories that have filled the information gaps caused by poor communication + and lack of trust in local governments. Compared to previous outbreaks, we + are potentially better equipped to more rapidly fill in these information + gaps. With real-time visualization of cases and results using tools like healthmaps, JHU + Global Case dashboard, forkable method + sharing via protocols.io, and Nextstrain, + forums like virological. And the + rise of preprints for sharing of results, bioRxiv & medRxiv having 48 + Coronavirus submissions at time of posting (and causing some controversy + with unreliable submissions, but seeing them debunked and retracted + much faster than + traditional peer reviewed publications).

\\n

\\\"CoronavirusTrying to digest some of these data streams and following previous + blogs on + the Ebola and Zika + epidemics, we present another data oriented guest post from Michael Dean who + has pooled together these various data streams to present a non-specialist + view of the Coronavirus crisis. Michael is a researcher in the areas of human + genetics and cancer. He has worked on the understanding of the role of host + genetics in the response to HIV as well as cervical cancer and HPV. [Note: + the material presented here is from Michael\u2019s own perspective on the + public Coronavirus data and does not represent the viewpoint of his employer].

\\n
\\\"Coronavirus

Table 1. Reported cases and deaths from 2019-nCoV. Source JHU + CSSE

\\n

At the start of the Year of the Mouse, the world is experiencing + an outbreak of a new Coronavirus, for now, called 2019-nCoV. As of February + 4th (source + JHU CSSE dashboard), there are 20,679 confirmed cases and 427 + fatalities. Nearly 99% of the cases have been reported in China mostly in + Hubei Province; and all except two reported fatalities have occurred in Mainland + China. All the initial cases came from the city of Wuhan, the capital of Hubei, + in Central China, but the origin of the virus is unknown. The case fatality + rate (fatalities/total cases, CFR), based on reported data has been declining + from nearly 3% to 2% as more data has become available, but is less than 2% + in China, outside of Hubei. This is considerably lower than SARS (9.6%)1 + and MERS (9-36%)2

\\n

The first full-length reference genome + for the virus was deposited in GENBANK + as NC_045512 by scientists at Fudan University, Shanghai, China, and referred + to as the Wuhan seafood market pneumonia virus, as many of the initial cases + were linked to a market of seafood and animals in the city of Wuhan. Multiple + additional complete genomes have been deposited in GENBANK by the researchers + within China and internationally including the US Centers for Disease Control + (CDC). Additional isolates (62 in total at the time of posting) have been + deposited in GISAID, a public repository + of influenza virus sequences . Variation and evolution of the virus are being + followed by an open-sourced project tracking pathogen evolution, Nextstrain. + To date, the virus has shown few variable sites and low diversity.

\\n
\\\"Coronavirus

Fig 1. Map and diversity of 2019-nCoV. The map of the viral + genome is shown with sites of identified variation and the known open reading + frames (ORF) and viral proteins; spike (S), nucleocapsid phosphoprotein (N), + and membrane glycoprotein (M). Source: Nextstrain.

\\n

The 2019-nCoV + is most closely related to a beta-coronavirus isolated in bats in Yunnan3,4 + \_(MG772933), + and all the current isolates found in China or other countries are very closely + related (Figure 2). The sequence data suggests that there was a single zoonotic + event of viral transmission into the human population. Phylogenetic analysis + places 2019-nCoV in the sarbecovirus subgenus that includes the SARS virus.3 + \_Three prereprints in bioRxiv describe data indicating that the virus uses + the angiotensin-converting enzyme II (ACE2) protein as its cellular receptor5-7, + as does SARS.8 \_This result is significant as the Middle East + respiratory syndrome (MERS) virus, MERS-CoV, uses dipeptyl peptidase 4 (DPP4; + also known as CD26) as its receptor.9 To date, there is no variation + in the portion of the virus that binds to ACE26.

\\n
\\\"Coronavirus

Fig 2. Phylogenetic tree of 2019-nCoV. A tree of sequenced isolates + is shown along with the country or city where they were isolated, and the + date. Source: Nextstrain.

\\n

Peer-reviewed publications documented + the clinical features of 41 infected cases, 6 of whom died, and their demographic + and clinical features.10 An estimate of 7 days from onset of symptoms + to hospital admission was presented. The second description of 99 cases has + also been published11 along with reports documenting human-human + transmission.3,4 \_A third study of 425 cases provided an estimate + of the mean incubation time of 5.2 days and a basic reproductive number of + 2.2 (95% CI, 1.4 to 3.9).11 At the time of writing, current estimates + of the case fatality rate (CFR) for 2019-nCoV are between 2 and 3 (Table + 1). However, in regions of China outside of Hubei only 11 out of + 6125 have died (0.18%). The first case report of a 35-year old male in the + US described mild to moderate symptoms, and a virus with one one amino acid + difference in one protein from the reference.12 There has been + considerable cooperation among international health organizations, with the + CDC publishing the details of a real-time + PCR diagnostic test, and the World Health Organization has a site for + up-to-date + clinical treatment guidelines.

\\n

In conclusion there is still rapid + growth of 2019-nCoV infections in Hubei Province, with a slowly declining + fatality rate, but much fewer deaths outside of this region. Genetic and biological + data is being rapidly produced and disseminated allowing for the rapid development + of diagnostic tests and development of vaccines and other therapeutics.

\\n

We + at GigaScience applaud this rapid and open sharing of the Coronavirus + data. We already have stringent open and transparent data, review and publication + policies in place, and would encourage submission of Data Notes and Technical + Notes (methodological and software papers) to enable due credit to producers + of data and tools. As with our dissemination of the data from the deadly + German 2011 E. coli outbreak, curation and dissemination will + be rapid, and we will also offer waivers of our article and data processing + charges for Coronavirus studies to encourage this. Please contact us if you + have presubmission inquiries or questions. While public events in our base + of Hong Kong have all been called off, there are local + \u201Cvirtual\u201D efforts to crowdsource and hack data from the outbreak, + and some of the GigaScience team will be participating in a live + streaming data science workshop on Sunday 9th February (follow the youtube + link to watch).

\\n

Further Reading
\\n
1. + de Wit . et al., SARS and MERS: recent insights into emerging coronaviruses. + Nat Rev Microbiol 14, 523-34 (2016).
\\n2. Willman M et al., + A Comparative Analysis of Factors Influencing Two Outbreaks of Middle Eastern + Respiratory Syndrome (MERS) in Saudi Arabia and South Korea. Viruses + 11(2019).
\\n3. + Zhu N. et al., A Novel Coronavirus from Patients with Pneumonia in + China, 2019. N Engl J Med (2020).
\\n4. + Chan JF. et al. A familial cluster of pneumonia associated with the + 2019 novel coronavirus indicating person-to-person transmission: a study of + a family cluster. Lancet (2020).
\\n5. + Zhou P et al., Discovery of a novel coronavirus associated with the + recent pneumonia outbreak in humans and its potential bat origin. bioRxiv + (2020).
\\n6. + Hoffmann M et al., The novel coronavirus 2019 (2019-nCoV) uses the + SARS-1 coronavirus receptor 2 ACE2 and the cellular protease TMPRSS2 for entry + into target cells. bioRxiv (2020).
\\n7. + Letko M et al., Functional assessment of cell entry and receptor + usage for lineage B \u03B2-coronaviruses, including 2019-nCoV. bioRxiv + (2020).
\\n8. + Li W et al., Angiotensin-converting enzyme 2 is a functional receptor + for the SARS coronavirus. Nature 426, 450-4 (2003).

\\n

The + post Guest + Blog: Data in the time of Coronavirus appeared first on GigaBlog.

\\n\",\"content_text\":\"content_html\",\"doi\":\"https://doi.org/10.59350/qh3na-ehy20\",\"id\":\"d7e0d105-72ec-4b77-aeb1-f5555555f75b\",\"image\":\"http://gigasciencejournal.com/blog/wp-content/uploads/2020/02/Coronavirus-300x221.jpeg\",\"language\":\"en\",\"published_at\":1580830966,\"reference\":[],\"relationships\":[],\"summary\":\"With + much of the GigaScience team spanning the Hong Kong-Shenzhen border and now + confined to remote working, the current 2019-novel coronavirus outbreak has + been particularly disruptive and close to home.\",\"tags\":[\"Medicine\",\"Coronavirus\",\"Ebola\",\"Guest + Post\",\"Infectious Disease\"],\"title\":\"Guest Blog: Data in the time of + Coronavirus\",\"updated_at\":1581311457,\"url\":\"http://gigasciencejournal.com/blog/guest-blog-coronavirus-data\"},\"highlight\":{\"content_html\":{\"matched_tokens\":[\"retraction\"],\"snippet\":\"com/2020/02/03/retraction-faulty-coronavirus-paper-good\"}},\"highlights\":[{\"field\":\"content_html\",\"matched_tokens\":[\"retraction\"],\"snippet\":\"com/2020/02/03/retraction-faulty-coronavirus-paper-good\"}],\"text_match\":1155199671761633353,\"text_match_info\":{\"best_field_score\":\"1112386306048\",\"best_field_weight\":9,\"fields_matched\":1,\"score\":\"1155199671761633353\",\"tokens_matched\":2}},{\"document\":{\"authors\":[{\"name\":\"Mike + Taylor\",\"url\":\"http://www.miketaylor.org.uk/dino/pubs/\"}],\"blog_id\":\"dkvra02\",\"blog_name\":\"Sauropod + Vertebra Picture of the Week\",\"blog_slug\":\"svpow\",\"content_html\":\"

This + Monday and Tuesday, I was at the R2R + (Researcher to Reader) conference at BMA House in London. It\u2019s the + first time I\u2019ve been to this, and I was there at the invitation of my + old sparring partner Rick Anderson, + who was organizing this + year\u2019s debate, on the proposition \u201CThe venue of its publication + tells us nothing useful about the quality of a paper\u201D.

\\n

I was + one half of the team arguing in favour of the proposition, along with Toby + Green, currently managing director at Coherent Digital and prevously head + of publishing at the OECD for twenty years. Our opponents were Pippa + Smart, publishing consultant and editor of Learned Publishing; + and Niall Boyce, editor of The Lancet Psychiatry.

\\n

I\u2019m + going to blog three of the four statements that were made. (The fourth, that + of Niall Boyce, is not available, as he spoke from handwritten notes.) I\u2019ll + finish this series with a fourth post summarising how the debate went, and + discussing what I now think about the proposition.

\\n

But now, here + is the opening statement for the proposition, co-written by Toby and me, and + delivered by him.

\\n

The + backs of the heads of the four R2R debaters as we watch the initial polling + on the proposition. From left to right: me, Toby, Pippa, Niall.

\\n
\\n

\_

\\n

What is the most significant piece of published research + in recent history? One strong candidate is a paper called \u201CIleal-lymphoid-nodular + hyperplasia, non-specific colitis, and pervasive developmental disorder in + children\u201D published in 1998. It was written by Andrew Wakefield et al., + and postulated a link between the MMR vaccine and autism. This article became + the launching point for the anti-vax movement, which has resulted in (among + other things) 142,000 deaths from measles in 2019 alone. It has also contributed + to the general decline of trust in expertise and the rise of fake news.

\\n

This + article is now recognised as \u201Cnot just poor science, [but] outright fraud\u201D + (BMJ). It was eventually retracted \u2014 but it did take its venue of publication + 12 years to do so. Where did it appear? In The Lancet, one of the + world\u2019s most established and prestigious medical journals, its prestige + quantified by a stellar Impact Factor of 59.1.

\\n

How could such a terrible + paper be published by such a respected journal? Because the venue of its publication + tells us nothing useful about the quality of a paper.

\\n

Retractions + from prestigious venues are not restricted to rogues like Wakefield. Last + month, Nobel Prize winner Frances Arnold said she was \u201Cbummed\u201D to + have to retract her 2019 paper on enzymatic synthesis of beta-lactams because + the results were not reproducible. \u201CCareful examination of the first + author\u2019s lab notebook then revealed missing contemporaneous entries and + raw data for key experiments.\u201D she explained. I.e. \u201Coops, we prepared + the paper sloppily, sooorry!\u201D

\\n

Prof. Arnold is the first woman + to be elected to all three National Academies in the USA and has been lauded + by institutions as diverse as the White House, BBC and the Vatican. She even + appeared as herself in the TV series, Big Bang Theory. She received widespread + praise for being so open about having to retract this work \u2014 yet what + does it say of the paper\u2019s venue of publication, Science? Plainly + the quality of this paper was not in the least assured by its venue of publication. + Or to put it another way, the venue of its publication tells us nothing useful + about the quality of a paper.

\\n

If we\u2019re going to talk about high- + and low-prestige venues, we\u2019ll need a ranking system of some sort. The + obvious ranking system is the Impact Factor \u2014 which, as Clarivate says + \u201Ccan be used to provide a gross approximation of the prestige of journals\u201D. + Love it or hate it, the IF has become ubiquitous, and we will reluctantly + use it here as a proxy for journal prestige.

\\n

So, then: what does + \u201Cquality\u201D really mean for a research paper? And how does it relate + to journal prestige?

\\n

One answer would be that a paper\u2019s quality + is to do with its methodological soundness: adherence to best practices that + make its findings reliable and reproducible. One important aspect of this + is statistical power: are enough observations made, and are the correlations + significant enough and strong enough for the results to carry weight? We would + hope that all reputable journals would consider this crucially important. + Yet Brembs et al. (2013) found no association between statistical power and + journal impact factor. So it seems the venue of its publication tells us nothing + useful about the quality of a paper.

\\n

Or perhaps we can define \u201Cquality\u201D + operationally, something like how frequently a paper is cited \u2014 more + being good, less being less good, right?. Astonishingly, given that Impact + Factor is derived from citation counts, Lozano et al. (2012) showed that citation + count of an individual paper is correlated only very weakly with the Impact + Factor of the journal it\u2019s published in \u2014 and that correlation has + been growing yet weaker since 1990, as the rise of the WWW has made discovery + of papers easier irrespective of their venue. In other words, the venue of + its publication tells us nothing useful about the quality of a paper.

\\n

We + might at this point ask ourselves whether there is any measurable + aspect of individual papers that correlates strongly with the Impact Factor + of the journal they appear in. There is: Fang et al. (2012) showed that Impact + Factor has a highly significant correlation with the number of retractions + for fraud or suspected fraud. Wakefield\u2019s paper has been cited 3336 times + \u2014 did the Lancet know what it was doing by delaying this paper\u2019s + retraction for so long?[1] So maybe the venue of its publication + does tell us something about the quality of a paper!

\\n

Imagine if we + asked 1000 random scholars to rank journals on an \u201Cdegree of excellence\u201D + scale. Science and The Lancet would, I\u2019m sure you\u2019ll + agree \u2014 like Liverpool\u2019s football team or that one from the \u201Cgreat + state of Kansas\u201D recently celebrated by Trump \u2014 be placed in the + journal Premier League. Yet the evidence shows \u2014 both from anecdote and + hard data \u2014 that papers published in these venues are at least as vulnerable + to error, poor experimental design and even outright fraud as those in less + exalted venues.

\\n

But let\u2019s look beyond journals \u2014 perhaps + we\u2019ll find a link between quality and venue elsewhere.

\\n

I\u2019d + like to tell you two stories about another venue of publication, this time, + the World Bank.

\\n

In 2016, the Bill & Melinda Gates Foundation + pledged $5BN to fight AIDS in Africa. Why? Well, it was all down to someone + at the World Bank having the bright idea to take a copy of their latest report + on AIDS in Africa to Seattle and pitch the findings and recommendations directly + to Mr Gates. I often tell this story as an example of impact. I think we can + agree that the quality of this report must have been pretty high. After all, + it unlocked $5BN for a good cause. But, of course, you\u2019re thinking \u2014 + D\u2019oh! It\u2019s a World Bank report, it must be high-quality. Really?

\\n

Consider + also this story: in 2014, headlines like this lit up around the world: \u201CLiterally + a Third of World Bank Policy Reports Have Never, Ever Been Read Online, By + Anyone\u201D (Slate) and \u201CWorld Bank learns most PDFs it produces + go unread\u201D (Sydney Morning Herald). These headlines were triggered + by a working paper, written by two economists from the World Bank and published + on its website. The punchline? They were wrong, the paper was very wrong. + Like Prof. Arnold\u2019s paper they were \u201Cmissing contemporaneous entries + and raw data\u201D, in this case data from the World Bank\u2019s official + repository. They\u2019d pulled the data from an old repository. If they had + also used data from the Bank\u2019s new repository they\u2019d have found + that every Bank report, however niche, had been downloaded many times. How + do I know? Because I called the one guy who would know the truth, the Bank\u2019s + Publisher, Carlos Rossel, and once he\u2019d calmed down, he told me.

\\n

So, + we have two reports from the same venue: one plainly exhibiting a degree of + excellence, the other painfully embarrassing (and, by the way, it still hasn\u2019t + been retracted).

\\n

Now, I bet you\u2019re thinking, the latter is a + working paper, therefore it hasn\u2019t been peer-reviewed and so it doesn\u2019t + count. Well, the Aids in Africa report wasn\u2019t \u201Cpeer reviewed\u201D + either \u2014 in the sense we all understand \u2014 but that didn\u2019t stop + Gates reaching for his Foundation\u2019s wallet. What about all the preprints + being posted on BiorXiv and elsewhere about the Coronavirus: do they \u201Cnot + count\u201D? This reminds me of a lovely headline when Cern\u2019s paper on + the discovery of the Higgs Boson finally made it into a journal some months + after the results had been revealed at a packed seminar, and weeks after the + paper had been posted on arXiv: \u201CHiggs boson discovery passes peer review, + becomes actual science\u201D. Quite apart from the irony expressed by the + headline writer, here\u2019s a puzzler for you. Was the quality of this paper + assured by finally being published in a journal (with an impact factor one-tenth + of Science\u2019s), or when it was posted in arXiv, or when it was + presented at a seminar? Which venue assured the quality of this work?

\\n

Of + course, none of them did because the venue of its publication tells us nothing + about the quality of the paper. The quality is inherent in the paper itself, + not in the venue where it is made public.

\\n

Wakefield paper\u2019s + lack of quality was also inherent in the paper itself and that it was published + in The Lancet (and is still available on more than seventy websites) + did not mean it was high quality. Or to put it another way, the venue of its + publication tells us nothing useful about the quality of a paper.

\\n

So + what are different venues good for? Today\u2019s scholarly publishing system + is still essentially the same as the one that Oldenburg et al started in the + 17th Century. This system evolved in an environment when publishing costs + were significant and grew with increased dissemination (increased demand meant + higher print and delivery costs). This meant that editors had to make choices + to keep costs under control \u2014 to select what to publish and what to reject. + The selection criteria varied: some used geography to segment the market (The + Chinese Journal of X, The European Journal of Y); some set up + societies (Operational Research Society Journal) and others segmented + the market by discipline (The International Journal of Neurology). + These were genuinely useful distinctions to make, helping guide authors, readers + and librarians to solutions for their authoring, reading and archiving needs.

\\n

Most + journals pretend to use quality as a criterion to select within their niche + \u2014 but isn\u2019t it funny that there isn\u2019t a Quality Journal + of Chemistry or a Higher-Quality Journal of Physics? The real + reasons for selection and rejection are of course to do with building brands + and meeting business targets in terms of the number of pages published. If + quality was the overarching criteria, why, like the wine harvest, don\u2019t + journals fluctuate in output each year? Down when there\u2019s a poor-season + and up when the sun shines?

\\n

If quality was the principle reason for + acceptance and rejection, why is it absent from the list of most common reasons + for rejection? According to Editage one of the most common reasons is because + the paper didn\u2019t fit the aims and scope of the journal. Not because the + paper is of poor quality. The current publishing process isn\u2019t a system + for weeding out weak papers from prestige journals, leaving them with only + the best. It\u2019s a system for sorting stuff into \u201Chouses\u201D which + is as opaque, unaccountable and random as the Sorting Hat which confronted + Harry Potter at Hogwarts. This paper to the Journal of Hufflepuff; + that one to the Journal of Slytherin!

\\n

So the venue of its + publication can tell us useful things about a paper: its geographical origin, + its field of study, the society that endorses it. The one thing it can\u2019t + tell us is anything useful about the quality of a paper.

\\n

Note

\\n

[1] + We regret this phrasing. We asked \u201Cdid the Lancet know what it was doing\u201D + in the usual colloquial sense of implying a lack of competence (\u201Che doesn\u2019t + know what he\u2019s doing\u201D); but as Niall Boyce rightly pointed out, + it can be read as snidely implying that The Lancet knew exactly + what it was doing, and deliberately delayed the retraction in order to accumulate + more citations. For avoidance of doubt, that is not what we meant; we apologise + for not having written more clearly.

\\n

References

\\n

We were + of course not able to give references during the debate. But since our statement + included several citations, we can remedy that deficiency here.

\\n\\n\",\"content_text\":\"content_html\",\"doi\":\"https://doi.org/10.59350/c8fz7-kyc20\",\"id\":\"66182581-1ee5-4d81-9aeb-087eaf5aeec8\",\"image\":\"https://svpow.files.wordpress.com/2020/02/r2r-debate.jpg\",\"language\":\"en\",\"published_at\":1582843201,\"reference\":[{\"key\":\"ref1\",\"url\":\"https://frontiersin.org/articles/10.3389/fnhum.2013.00291/full\"},{\"key\":\"ref2\",\"url\":\"https://science.sciencemag.org/content/364/6440/575?amp=&ijkey=f10fdfb89239f0f5a88dec146188a2b98ebee782\"},{\"key\":\"ref3\",\"url\":\"https://pnas.org/content/109/42/17028.long\"},{\"key\":\"ref4\",\"url\":\"https://onlinelibrary.wiley.com/doi/abs/10.1002/asi.22731\"},{\"key\":\"ref5\",\"url\":\"https://thelancet.com/journals/lancet/article/piis0140-6736(97)11096-0/fulltext\"}],\"relationships\":[],\"summary\":\"This + Monday and Tuesday, I was at the R2R (Researcher to Reader) conference at + BMA House in London.\",\"tags\":[\"Conferences\",\"R 2 R\"],\"title\":\"The + R2R debate, part 1: opening statement in support\",\"updated_at\":1582843202,\"url\":\"https://svpow.com/2020/02/27/the-r2r-debate-part-1-opening-statement-in-support\"},\"highlight\":{\"content_html\":{\"matched_tokens\":[\"watch\"],\"snippet\":\"R2R + debaters as we watch the initial polling on\"}},\"highlights\":[{\"field\":\"content_html\",\"matched_tokens\":[\"watch\"],\"snippet\":\"R2R + debaters as we watch the initial polling on\"}],\"text_match\":1155199671761633353,\"text_match_info\":{\"best_field_score\":\"1112386306048\",\"best_field_weight\":9,\"fields_matched\":1,\"score\":\"1155199671761633353\",\"tokens_matched\":2}},{\"document\":{\"authors\":[{\"name\":\"Scott + Edmunds\",\"url\":\"http://orcid.org/0000-0001-6444-1436\"}],\"blog_id\":\"3ffcd46\",\"blog_name\":\"GigaBlog\",\"blog_slug\":\"gigablog\",\"content_html\":\"

Push + the button! GigaScience moves toward more interactive articles
\\n
\\nResearch articles are being published with increasingly + large and complicated supporting datasets, together with the software code + used in analyses of the data. However, there is a growing number of studies reporting the inability to reproduce + previously published findings which may, at least in part, be responsible + for the increasing rate of retractions that Bjorn Brembs has calculated will overtake the number + of papers published some time in the mid-2040s. Furthermore, there is an awareness + of the \u201Creproducibility gap\u201D within the scientific community, with + Francis Collins of the NIH just publishing a statement expressing concern about + this issue. Whilst this has provoked some to deny this is a serious issue (ironically in journals + with the highest + retraction rates), GigaScience has joined initiatives such as + Sage Bionetworks + Synapse and Science + Exchange reproducibility + initiative in attempting to do something about this through building platforms + and procedures to assist and reward authors who are keen on their work being + reproducible and actually used. The Galaxy community is one that shares similar goals, + with a computational platform which allows users to share workflows, histories + and wrapped tools in an easy-to-use and open source interface that even people + without coding experience can use. On top of our GigaDB repository to host large scale datasets, + we have also set up our own Galaxy server called GigaGalaxy to similarly present and host the computational + outputs and methods of studies published in GigaScience.

\\n

Attending + the Galaxy + Community Conference in Oslo last summer (see the write-up here), we and the conference committee announced + a call for papers for a special thematic focused series + on studies utilizing large-scale datasets and workflows. The initial results + of this are now available, with the first two papers just out and available + from the new + series page. Whilst the series considers best practice papers, discussion, + as well as novel uses of Galaxy, these first papers are examples of Galaxy + toolkits, with a genome diversity tool collection presented from + the Webb Miller lab at Pennsylvania State, and a set of analytical and visualisation tools for Complete + Genomics sequencing data from the Stubbs lab at Erasmus Medical College. + What differentiates this series from other traditional journals are doing + is the focus on reproducibility, and the use of permanent DOIs and our own + Galaxy server that can archive and present wrapped tools and workflows and + histories from the papers.

\\n

DOIs for workflows
\\nFollowing on from our experiences allocating DOIs to software from papers, we helped lobby DataCite to + include \u201Cworkflow\u201D as a similar resource type, and they have now + included this in the release of their latest metadata schema. + We have been testing our GigaGalaxy platform by implementing workflows from our SOAPdenovo2 publication, and we presented much of + this work at our \u201CWhat Bioinformaticians need to know Beyond the PDF\u201D + workshop at ISMB (which incidentally will be continued again at the 2014 meeting). The genome + diversity toolkit is our first example of a DOI that resolves purely to a + workflow. From the landing page in GigaDB, you can download the Galaxy XML + files, or click the link to appropriate part in the \u201CPapers\u201D section of our GigaGalaxy server + to browse and run the workflows discussed in the paper. + Presenting a handy toolkit covering a number of popular population genetics + tools, the paper provides diverse examples of their application on the genetics + of Lemurs, and Canines and Cave Bears (oh my!). Seven of these examples are + viewable on our GigaGalaxy page. Whilst the latest versions of the + tools and further examples are available from the main Galaxy server and the authors website, the + GigaScience Galaxy server provides access to static versions of the + tools used within the examples of the paper. To make it a little more interactive + and understandable for users, we have produced SVG graphs to help visualize + how input datasets, workflows and histories are related to each example analysis.

\\n

\\n

As a step on the road to executable papers, this + is aiming to be a more interactive and two-way experience than traditional + publication models still rooted in the print era, so please feedback to us + at editorial@gigasciencejournal.com on on any bugs or features you would like + to see. We would like to thank our collaborators at CBIIT (the CUHK-BGI Innovation Institute of Trans-omics) + who helped us set up our Galaxy server, BioMed Central, DataCite, as well as the authors and reviewers for + working with us to get these examples out and online. The series is still open and we are continuing to take + and review submissions, so watch the series page for future additions. Please + contact us if you are interested in submitting your work or submit through + our submission system here. Thanks to support from the BGI our article processing charges are still currently + free and, as we are again silver sponsors of the 2014 Galaxy Community Conference, we hope to meet + many of you there.

\\n

References

\\n

1. Bedoya-Reina et al.: Galaxy tools to study genome + diversity. GigaScience 2:17 http://dx.doi.org/10.1186/2047-217X-2-17

\\n

2. + Hiltemann et al.: CGtag: complete genomics toolkit and annotation in a cloud-based + Galaxy. GigaScience 2014 3:1 http://dx.doi.org/10.1186/2047-217X-3-1

\\n

3. + Bedoya-Reina, OC; Ratan, A; Burhans, R; Kim, HL; Giardine, B; Riemer, C; Li, + Q; Olson, TL; Loughran Jr, TP; vonHoldt, BM; Perry, GH; Schuster, SC; Miller, + W (2013): GigaGalaxy workflows and histories from \u201CGalaxy tools to study + genome diversity\u201D GigaScience Database. http://dx.doi.org/10.5524/100069

\\n

4. GigaScience Galaxy Series Page https://academic.oup.com/gigascience/pages/galaxy_series_data_intensive_reproducible_research

\\n

The + post Rewarding + Reproducibility: First Papers in our Galaxy Series utilizing our GigaGalaxy + platform appeared first on GigaBlog.

\\n\",\"content_text\":\"content_html\",\"doi\":\"https://doi.org/10.59350/w8kyr-0e629\",\"id\":\"f312e680-13a8-4720-a5ee-61a449410a58\",\"image\":\"http://gigasciencejournal.com/blog/wp-content/uploads/2014/02/bgi-galaxy-21-300x257.png\",\"language\":\"en\",\"published_at\":1391676080,\"reference\":[],\"relationships\":[],\"summary\":\"Push + the button! GigaScience moves toward more interactive articles + Research articles are being published with increasingly large and complicated + supporting datasets, together with the software code used in analyses of the + data.\",\"tags\":[\"Publishing\",\"Technology\",\"Usegalaxy\",\"Conferences\",\"Galaxy\"],\"title\":\"Rewarding + Reproducibility: First Papers in our Galaxy Series utilizing our GigaGalaxy + platform\",\"updated_at\":1692724775,\"url\":\"http://gigasciencejournal.com/blog/rewarding-reproducibility-first-papers-in-our-galaxy-series-utilizing-our-gigagalaxy-platform\"},\"highlight\":{\"content_html\":{\"matched_tokens\":[\"retraction\"],\"snippet\":\"10/3855.abstract\\\" + target=\\\"_blank\\\">highest retraction rates), highest retraction rates),