Comparar commits
1 commit
master
...
dependabot
Autor | SHA1 | Fecha | |
---|---|---|---|
796e7b4a14 |
361
Pipfile.lock
generado
361
Pipfile.lock
generado
|
@ -17,88 +17,109 @@
|
||||||
"develop": {
|
"develop": {
|
||||||
"atomicwrites": {
|
"atomicwrites": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4",
|
"sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197",
|
||||||
"sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"
|
"sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"
|
||||||
],
|
],
|
||||||
"version": "==1.3.0"
|
"version": "==1.4.0"
|
||||||
},
|
},
|
||||||
"attrs": {
|
"attrs": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79",
|
"sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
|
||||||
"sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399"
|
"sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
|
||||||
],
|
],
|
||||||
"version": "==19.1.0"
|
"version": "==20.3.0"
|
||||||
|
},
|
||||||
|
"blurhash": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:7611c1bc41383d2349b6129208587b5d61e8792ce953893cb49c38beeb400d1d",
|
||||||
|
"sha256:da56b163e5a816e4ad07172f5639287698e09d7f3dc38d18d9726d9c1dbc4cee"
|
||||||
|
],
|
||||||
|
"version": "==1.1.4"
|
||||||
},
|
},
|
||||||
"certifi": {
|
"certifi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939",
|
"sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c",
|
||||||
"sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695"
|
"sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"
|
||||||
],
|
],
|
||||||
"version": "==2019.6.16"
|
"version": "==2020.12.5"
|
||||||
},
|
},
|
||||||
"chardet": {
|
"chardet": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
|
"sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
|
||||||
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
|
"sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
|
||||||
],
|
],
|
||||||
"version": "==3.0.4"
|
"version": "==4.0.0"
|
||||||
},
|
},
|
||||||
"coverage": {
|
"coverage": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:3684fabf6b87a369017756b551cef29e505cb155ddb892a7a29277b978da88b9",
|
"sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c",
|
||||||
"sha256:39e088da9b284f1bd17c750ac672103779f7954ce6125fd4382134ac8d152d74",
|
"sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6",
|
||||||
"sha256:3c205bc11cc4fcc57b761c2da73b9b72a59f8d5ca89979afb0c1c6f9e53c7390",
|
"sha256:040af6c32813fa3eae5305d53f18875bedd079960822ef8ec067a66dd8afcd45",
|
||||||
"sha256:465ce53a8c0f3a7950dfb836438442f833cf6663d407f37d8c52fe7b6e56d7e8",
|
"sha256:06191eb60f8d8a5bc046f3799f8a07a2d7aefb9504b0209aff0b47298333302a",
|
||||||
"sha256:48020e343fc40f72a442c8a1334284620f81295256a6b6ca6d8aa1350c763bbe",
|
"sha256:13034c4409db851670bc9acd836243aeee299949bd5673e11844befcb0149f03",
|
||||||
"sha256:5296fc86ab612ec12394565c500b412a43b328b3907c0d14358950d06fd83baf",
|
"sha256:13c4ee887eca0f4c5a247b75398d4114c37882658300e153113dafb1d76de529",
|
||||||
"sha256:5f61bed2f7d9b6a9ab935150a6b23d7f84b8055524e7be7715b6513f3328138e",
|
"sha256:184a47bbe0aa6400ed2d41d8e9ed868b8205046518c52464fde713ea06e3a74a",
|
||||||
"sha256:68a43a9f9f83693ce0414d17e019daee7ab3f7113a70c79a3dd4c2f704e4d741",
|
"sha256:18ba8bbede96a2c3dde7b868de9dcbd55670690af0988713f0603f037848418a",
|
||||||
"sha256:6b8033d47fe22506856fe450470ccb1d8ba1ffb8463494a15cfc96392a288c09",
|
"sha256:1aa846f56c3d49205c952d8318e76ccc2ae23303351d9270ab220004c580cfe2",
|
||||||
"sha256:7ad7536066b28863e5835e8cfeaa794b7fe352d99a8cded9f43d1161be8e9fbd",
|
"sha256:217658ec7187497e3f3ebd901afdca1af062b42cfe3e0dafea4cced3983739f6",
|
||||||
"sha256:7bacb89ccf4bedb30b277e96e4cc68cd1369ca6841bde7b005191b54d3dd1034",
|
"sha256:24d4a7de75446be83244eabbff746d66b9240ae020ced65d060815fac3423759",
|
||||||
"sha256:839dc7c36501254e14331bcb98b27002aa415e4af7ea039d9009409b9d2d5420",
|
"sha256:2910f4d36a6a9b4214bb7038d537f015346f413a975d57ca6b43bf23d6563b53",
|
||||||
"sha256:8f9a95b66969cdea53ec992ecea5406c5bd99c9221f539bca1e8406b200ae98c",
|
"sha256:2949cad1c5208b8298d5686d5a85b66aae46d73eec2c3e08c817dd3513e5848a",
|
||||||
"sha256:932c03d2d565f75961ba1d3cec41ddde00e162c5b46d03f7423edcb807734eab",
|
"sha256:2a3859cb82dcbda1cfd3e6f71c27081d18aa251d20a17d87d26d4cd216fb0af4",
|
||||||
"sha256:988529edadc49039d205e0aa6ce049c5ccda4acb2d6c3c5c550c17e8c02c05ba",
|
"sha256:2cafbbb3af0733db200c9b5f798d18953b1a304d3f86a938367de1567f4b5bff",
|
||||||
"sha256:998d7e73548fe395eeb294495a04d38942edb66d1fa61eb70418871bc621227e",
|
"sha256:2e0d881ad471768bf6e6c2bf905d183543f10098e3b3640fc029509530091502",
|
||||||
"sha256:9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609",
|
"sha256:30c77c1dc9f253283e34c27935fded5015f7d1abe83bc7821680ac444eaf7793",
|
||||||
"sha256:9e80d45d0c7fcee54e22771db7f1b0b126fb4a6c0a2e5afa72f66827207ff2f2",
|
"sha256:3487286bc29a5aa4b93a072e9592f22254291ce96a9fbc5251f566b6b7343cdb",
|
||||||
"sha256:a545a3dfe5082dc8e8c3eb7f8a2cf4f2870902ff1860bd99b6198cfd1f9d1f49",
|
"sha256:372da284cfd642d8e08ef606917846fa2ee350f64994bebfbd3afb0040436905",
|
||||||
"sha256:a5d8f29e5ec661143621a8f4de51adfb300d7a476224156a39a392254f70687b",
|
"sha256:41179b8a845742d1eb60449bdb2992196e211341818565abded11cfa90efb821",
|
||||||
"sha256:aca06bfba4759bbdb09bf52ebb15ae20268ee1f6747417837926fae990ebc41d",
|
"sha256:44d654437b8ddd9eee7d1eaee28b7219bec228520ff809af170488fd2fed3e2b",
|
||||||
"sha256:bb23b7a6fd666e551a3094ab896a57809e010059540ad20acbeec03a154224ce",
|
"sha256:4a7697d8cb0f27399b0e393c0b90f0f1e40c82023ea4d45d22bce7032a5d7b81",
|
||||||
"sha256:bfd1d0ae7e292105f29d7deaa9d8f2916ed8553ab9d5f39ec65bcf5deadff3f9",
|
"sha256:51cb9476a3987c8967ebab3f0fe144819781fca264f57f89760037a2ea191cb0",
|
||||||
"sha256:c62ca0a38958f541a73cf86acdab020c2091631c137bd359c4f5bddde7b75fd4",
|
"sha256:52596d3d0e8bdf3af43db3e9ba8dcdaac724ba7b5ca3f6358529d56f7a166f8b",
|
||||||
"sha256:c709d8bda72cf4cd348ccec2a4881f2c5848fd72903c185f363d361b2737f773",
|
"sha256:53194af30d5bad77fcba80e23a1441c71abfb3e01192034f8246e0d8f99528f3",
|
||||||
"sha256:c968a6aa7e0b56ecbd28531ddf439c2ec103610d3e2bf3b75b813304f8cb7723",
|
"sha256:5fec2d43a2cc6965edc0bb9e83e1e4b557f76f843a77a2496cbe719583ce8184",
|
||||||
"sha256:df785d8cb80539d0b55fd47183264b7002077859028dfe3070cf6359bf8b2d9c",
|
"sha256:6c90e11318f0d3c436a42409f2749ee1a115cd8b067d7f14c148f1ce5574d701",
|
||||||
"sha256:f406628ca51e0ae90ae76ea8398677a921b36f0bd71aab2099dfed08abd0322f",
|
"sha256:74d881fc777ebb11c63736622b60cb9e4aee5cace591ce274fb69e582a12a61a",
|
||||||
"sha256:f46087bbd95ebae244a0eda01a618aff11ec7a069b15a3ef8f6b520db523dcf1",
|
"sha256:7501140f755b725495941b43347ba8a2777407fc7f250d4f5a7d2a1050ba8e82",
|
||||||
"sha256:f8019c5279eb32360ca03e9fac40a12667715546eed5c5eb59eb381f2f501260",
|
"sha256:796c9c3c79747146ebd278dbe1e5c5c05dd6b10cc3bcb8389dfdf844f3ead638",
|
||||||
"sha256:fc5f4d209733750afd2714e9109816a29500718b32dd9a5db01c0cb3a019b96a"
|
"sha256:869a64f53488f40fa5b5b9dcb9e9b2962a66a87dab37790f3fcfb5144b996ef5",
|
||||||
|
"sha256:8963a499849a1fc54b35b1c9f162f4108017b2e6db2c46c1bed93a72262ed083",
|
||||||
|
"sha256:8d0a0725ad7c1a0bcd8d1b437e191107d457e2ec1084b9f190630a4fb1af78e6",
|
||||||
|
"sha256:900fbf7759501bc7807fd6638c947d7a831fc9fdf742dc10f02956ff7220fa90",
|
||||||
|
"sha256:92b017ce34b68a7d67bd6d117e6d443a9bf63a2ecf8567bb3d8c6c7bc5014465",
|
||||||
|
"sha256:970284a88b99673ccb2e4e334cfb38a10aab7cd44f7457564d11898a74b62d0a",
|
||||||
|
"sha256:972c85d205b51e30e59525694670de6a8a89691186012535f9d7dbaa230e42c3",
|
||||||
|
"sha256:9a1ef3b66e38ef8618ce5fdc7bea3d9f45f3624e2a66295eea5e57966c85909e",
|
||||||
|
"sha256:af0e781009aaf59e25c5a678122391cb0f345ac0ec272c7961dc5455e1c40066",
|
||||||
|
"sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf",
|
||||||
|
"sha256:b7895207b4c843c76a25ab8c1e866261bcfe27bfaa20c192de5190121770672b",
|
||||||
|
"sha256:c0891a6a97b09c1f3e073a890514d5012eb256845c451bd48f7968ef939bf4ae",
|
||||||
|
"sha256:c2723d347ab06e7ddad1a58b2a821218239249a9e4365eaff6649d31180c1669",
|
||||||
|
"sha256:d1f8bf7b90ba55699b3a5e44930e93ff0189aa27186e96071fac7dd0d06a1873",
|
||||||
|
"sha256:d1f9ce122f83b2305592c11d64f181b87153fc2c2bbd3bb4a3dde8303cfb1a6b",
|
||||||
|
"sha256:d314ed732c25d29775e84a960c3c60808b682c08d86602ec2c3008e1202e3bb6",
|
||||||
|
"sha256:d636598c8305e1f90b439dbf4f66437de4a5e3c31fdf47ad29542478c8508bbb",
|
||||||
|
"sha256:deee1077aae10d8fa88cb02c845cfba9b62c55e1183f52f6ae6a2df6a2187160",
|
||||||
|
"sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c",
|
||||||
|
"sha256:f030f8873312a16414c0d8e1a1ddff2d3235655a2174e3648b4fa66b3f2f1079",
|
||||||
|
"sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d",
|
||||||
|
"sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6"
|
||||||
],
|
],
|
||||||
"version": "==4.5.3"
|
"version": "==5.5"
|
||||||
},
|
},
|
||||||
"decorator": {
|
"decorator": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de",
|
"sha256:6f201a6c4dac3d187352661f508b9364ec8091217442c9478f1f83c003a0f060",
|
||||||
"sha256:f069f3a01830ca754ba5258fde2278454a0b5b79e0d7f5c13b3b97e57d4acff6"
|
"sha256:945d84890bb20cc4a2f4a31fc4311c0c473af65ea318617f13a7257c9a58bc98"
|
||||||
],
|
],
|
||||||
"version": "==4.4.0"
|
"version": "==5.0.7"
|
||||||
},
|
},
|
||||||
"idna": {
|
"idna": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407",
|
"sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6",
|
||||||
"sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"
|
"sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
|
||||||
],
|
],
|
||||||
"version": "==2.8"
|
"version": "==2.10"
|
||||||
},
|
|
||||||
"importlib-metadata": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:6dfd58dfe281e8d240937776065dd3624ad5469c835248219bd16cf2e12dbeb7",
|
|
||||||
"sha256:cb6ee23b46173539939964df59d3d72c3e0c1b5d54b84f1d8a7e912fe43612db"
|
|
||||||
],
|
|
||||||
"version": "==0.18"
|
|
||||||
},
|
},
|
||||||
"mastodon-py": {
|
"mastodon-py": {
|
||||||
"editable": true,
|
"editable": true,
|
||||||
|
@ -109,58 +130,67 @@
|
||||||
},
|
},
|
||||||
"more-itertools": {
|
"more-itertools": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832",
|
"sha256:5652a9ac72209ed7df8d9c15daf4e1aa0e3d2ccd3c87f8265a0673cd9cbc9ced",
|
||||||
"sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4"
|
"sha256:c5d6da9ca3ff65220c3bfd2a8db06d698f05d4d2b9be57e1deb2be5a45019713"
|
||||||
],
|
],
|
||||||
"version": "==7.2.0"
|
"version": "==8.7.0"
|
||||||
},
|
},
|
||||||
"multidict": {
|
"multidict": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:024b8129695a952ebd93373e45b5d341dbb87c17ce49637b34000093f243dd4f",
|
"sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a",
|
||||||
"sha256:041e9442b11409be5e4fc8b6a97e4bcead758ab1e11768d1e69160bdde18acc3",
|
"sha256:051012ccee979b2b06be928a6150d237aec75dd6bf2d1eeeb190baf2b05abc93",
|
||||||
"sha256:045b4dd0e5f6121e6f314d81759abd2c257db4634260abcfe0d3f7083c4908ef",
|
"sha256:05c20b68e512166fddba59a918773ba002fdd77800cad9f55b59790030bab632",
|
||||||
"sha256:047c0a04e382ef8bd74b0de01407e8d8632d7d1b4db6f2561106af812a68741b",
|
"sha256:07b42215124aedecc6083f1ce6b7e5ec5b50047afa701f3442054373a6deb656",
|
||||||
"sha256:068167c2d7bbeebd359665ac4fff756be5ffac9cda02375b5c5a7c4777038e73",
|
"sha256:0e3c84e6c67eba89c2dbcee08504ba8644ab4284863452450520dad8f1e89b79",
|
||||||
"sha256:148ff60e0fffa2f5fad2eb25aae7bef23d8f3b8bdaf947a65cdbe84a978092bc",
|
"sha256:0e929169f9c090dae0646a011c8b058e5e5fb391466016b39d21745b48817fd7",
|
||||||
"sha256:1d1c77013a259971a72ddaa83b9f42c80a93ff12df6a4723be99d858fa30bee3",
|
"sha256:1ab820665e67373de5802acae069a6a05567ae234ddb129f31d290fc3d1aa56d",
|
||||||
"sha256:1d48bc124a6b7a55006d97917f695effa9725d05abe8ee78fd60d6588b8344cd",
|
"sha256:25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5",
|
||||||
"sha256:31dfa2fc323097f8ad7acd41aa38d7c614dd1960ac6681745b6da124093dc351",
|
"sha256:2e68965192c4ea61fff1b81c14ff712fc7dc15d2bd120602e4a3494ea6584224",
|
||||||
"sha256:34f82db7f80c49f38b032c5abb605c458bac997a6c3142e0d6c130be6fb2b941",
|
"sha256:2f1a132f1c88724674271d636e6b7351477c27722f2ed789f719f9e3545a3d26",
|
||||||
"sha256:3d5dd8e5998fb4ace04789d1d008e2bb532de501218519d70bb672c4c5a2fc5d",
|
"sha256:37e5438e1c78931df5d3c0c78ae049092877e5e9c02dd1ff5abb9cf27a5914ea",
|
||||||
"sha256:4a6ae52bd3ee41ee0f3acf4c60ceb3f44e0e3bc52ab7da1c2b2aa6703363a3d1",
|
"sha256:3a041b76d13706b7fff23b9fc83117c7b8fe8d5fe9e6be45eee72b9baa75f348",
|
||||||
"sha256:4b02a3b2a2f01d0490dd39321c74273fed0568568ea0e7ea23e02bd1fb10a10b",
|
"sha256:3a4f32116f8f72ecf2a29dabfb27b23ab7cdc0ba807e8459e59a93a9be9506f6",
|
||||||
"sha256:4b843f8e1dd6a3195679d9838eb4670222e8b8d01bc36c9894d6c3538316fa0a",
|
"sha256:46c73e09ad374a6d876c599f2328161bcd95e280f84d2060cf57991dec5cfe76",
|
||||||
"sha256:5de53a28f40ef3c4fd57aeab6b590c2c663de87a5af76136ced519923d3efbb3",
|
"sha256:46dd362c2f045095c920162e9307de5ffd0a1bfbba0a6e990b344366f55a30c1",
|
||||||
"sha256:61b2b33ede821b94fa99ce0b09c9ece049c7067a33b279f343adfe35108a4ea7",
|
"sha256:4b186eb7d6ae7c06eb4392411189469e6a820da81447f46c0072a41c748ab73f",
|
||||||
"sha256:6a3a9b0f45fd75dc05d8e93dc21b18fc1670135ec9544d1ad4acbcf6b86781d0",
|
"sha256:54fd1e83a184e19c598d5e70ba508196fd0bbdd676ce159feb412a4a6664f952",
|
||||||
"sha256:76ad8e4c69dadbb31bad17c16baee61c0d1a4a73bed2590b741b2e1a46d3edd0",
|
"sha256:585fd452dd7782130d112f7ddf3473ffdd521414674c33876187e101b588738a",
|
||||||
"sha256:7ba19b777dc00194d1b473180d4ca89a054dd18de27d0ee2e42a103ec9b7d014",
|
"sha256:5cf3443199b83ed9e955f511b5b241fd3ae004e3cb81c58ec10f4fe47c7dce37",
|
||||||
"sha256:7c1b7eab7a49aa96f3db1f716f0113a8a2e93c7375dd3d5d21c4941f1405c9c5",
|
"sha256:6a4d5ce640e37b0efcc8441caeea8f43a06addace2335bd11151bc02d2ee31f9",
|
||||||
"sha256:7fc0eee3046041387cbace9314926aa48b681202f8897f8bff3809967a049036",
|
"sha256:7df80d07818b385f3129180369079bd6934cf70469f99daaebfac89dca288359",
|
||||||
"sha256:8ccd1c5fff1aa1427100ce188557fc31f1e0a383ad8ec42c559aabd4ff08802d",
|
"sha256:806068d4f86cb06af37cd65821554f98240a19ce646d3cd24e1c33587f313eb8",
|
||||||
"sha256:8e08dd76de80539d613654915a2f5196dbccc67448df291e69a88712ea21e24a",
|
"sha256:830f57206cc96ed0ccf68304141fec9481a096c4d2e2831f311bde1c404401da",
|
||||||
"sha256:c18498c50c59263841862ea0501da9f2b3659c00db54abfbf823a80787fde8ce",
|
"sha256:929006d3c2d923788ba153ad0de8ed2e5ed39fdbe8e7be21e2f22ed06c6783d3",
|
||||||
"sha256:c49db89d602c24928e68c0d510f4fcf8989d77defd01c973d6cbe27e684833b1",
|
"sha256:9436dc58c123f07b230383083855593550c4d301d2532045a17ccf6eca505f6d",
|
||||||
"sha256:ce20044d0317649ddbb4e54dab3c1bcc7483c78c27d3f58ab3d0c7e6bc60d26a",
|
"sha256:9dd6e9b1a913d096ac95d0399bd737e00f2af1e1594a787e00f7975778c8b2bf",
|
||||||
"sha256:d1071414dd06ca2eafa90c85a079169bfeb0e5f57fd0b45d44c092546fcd6fd9",
|
"sha256:ace010325c787c378afd7f7c1ac66b26313b3344628652eacd149bdd23c68841",
|
||||||
"sha256:d3be11ac43ab1a3e979dac80843b42226d5d3cccd3986f2e03152720a4297cd7",
|
"sha256:b47a43177a5e65b771b80db71e7be76c0ba23cc8aa73eeeb089ed5219cdbe27d",
|
||||||
"sha256:db603a1c235d110c860d5f39988ebc8218ee028f07a7cbc056ba6424372ca31b"
|
"sha256:b797515be8743b771aa868f83563f789bbd4b236659ba52243b735d80b29ed93",
|
||||||
|
"sha256:b7993704f1a4b204e71debe6095150d43b2ee6150fa4f44d6d966ec356a8d61f",
|
||||||
|
"sha256:d5c65bdf4484872c4af3150aeebe101ba560dcfb34488d9a8ff8dbcd21079647",
|
||||||
|
"sha256:d81eddcb12d608cc08081fa88d046c78afb1bf8107e6feab5d43503fea74a635",
|
||||||
|
"sha256:dc862056f76443a0db4509116c5cd480fe1b6a2d45512a653f9a855cc0517456",
|
||||||
|
"sha256:ecc771ab628ea281517e24fd2c52e8f31c41e66652d07599ad8818abaad38cda",
|
||||||
|
"sha256:f200755768dc19c6f4e2b672421e0ebb3dd54c38d5a4f262b872d8cfcc9e93b5",
|
||||||
|
"sha256:f21756997ad8ef815d8ef3d34edd98804ab5ea337feedcd62fb52d22bf531281",
|
||||||
|
"sha256:fc13a9524bc18b6fb6e0dbec3533ba0496bbed167c56d0aabefd965584557d80"
|
||||||
],
|
],
|
||||||
"version": "==4.5.2"
|
"version": "==5.1.0"
|
||||||
},
|
},
|
||||||
"pluggy": {
|
"pluggy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc",
|
"sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0",
|
||||||
"sha256:b9817417e95936bf75d85d3f8767f7df6cdde751fc40aed3bb3074cbcb77757c"
|
"sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"
|
||||||
],
|
],
|
||||||
"version": "==0.12.0"
|
"version": "==0.13.1"
|
||||||
},
|
},
|
||||||
"py": {
|
"py": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa",
|
"sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3",
|
||||||
"sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53"
|
"sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"
|
||||||
],
|
],
|
||||||
"version": "==1.8.0"
|
"index": "pypi",
|
||||||
|
"version": "==1.10.0"
|
||||||
},
|
},
|
||||||
"pytest": {
|
"pytest": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -204,47 +234,65 @@
|
||||||
},
|
},
|
||||||
"python-dateutil": {
|
"python-dateutil": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb",
|
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
|
||||||
"sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e"
|
"sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"
|
||||||
],
|
],
|
||||||
"version": "==2.8.0"
|
"version": "==2.8.1"
|
||||||
},
|
},
|
||||||
"python-magic": {
|
"python-magic": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:f2674dcfad52ae6c49d4803fa027809540b130db1dec928cfbb9240316831375",
|
"sha256:8551e804c09a3398790bd9e392acb26554ae2609f29c72abb0b9dee9a5571eae",
|
||||||
"sha256:f3765c0f582d2dfc72c15f3b5a82aecfae9498bd29ca840d72f37d7bd38bfcd5"
|
"sha256:ca884349f2c92ce830e3f498c5b7c7051fe2942c3ee4332f65213b8ebff15a62"
|
||||||
],
|
],
|
||||||
"version": "==0.4.15"
|
"version": "==0.4.22"
|
||||||
},
|
},
|
||||||
"pytz": {
|
"pytz": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda",
|
"sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da",
|
||||||
"sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141"
|
"sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"
|
||||||
],
|
],
|
||||||
"version": "==2019.1"
|
"version": "==2021.1"
|
||||||
},
|
},
|
||||||
"pyyaml": {
|
"pyyaml": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:57acc1d8533cbe51f6662a55434f0dbecfa2b9eaf115bede8f6fd00115a0c0d3",
|
"sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf",
|
||||||
"sha256:588c94b3d16b76cfed8e0be54932e5729cc185caffaa5a451e7ad2f7ed8b4043",
|
"sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696",
|
||||||
"sha256:68c8dd247f29f9a0d09375c9c6b8fdc64b60810ebf07ba4cdd64ceee3a58c7b7",
|
"sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393",
|
||||||
"sha256:70d9818f1c9cd5c48bb87804f2efc8692f1023dac7f1a1a5c61d454043c1d265",
|
"sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77",
|
||||||
"sha256:86a93cccd50f8c125286e637328ff4eef108400dd7089b46a7be3445eecfa391",
|
"sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922",
|
||||||
"sha256:a0f329125a926876f647c9fa0ef32801587a12328b4a3c741270464e3e4fa778",
|
"sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5",
|
||||||
"sha256:a3c252ab0fa1bb0d5a3f6449a4826732f3eb6c0270925548cac342bc9b22c225",
|
"sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8",
|
||||||
"sha256:b4bb4d3f5e232425e25dda21c070ce05168a786ac9eda43768ab7f3ac2770955",
|
"sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10",
|
||||||
"sha256:cd0618c5ba5bda5f4039b9398bb7fb6a317bb8298218c3de25c47c4740e4b95e",
|
"sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc",
|
||||||
"sha256:ceacb9e5f8474dcf45b940578591c7f3d960e82f926c707788a570b51ba59190",
|
"sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018",
|
||||||
"sha256:fe6a88094b64132c4bb3b631412e90032e8cfe9745a58370462240b8cb7553cd"
|
"sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e",
|
||||||
|
"sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253",
|
||||||
|
"sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347",
|
||||||
|
"sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183",
|
||||||
|
"sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541",
|
||||||
|
"sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb",
|
||||||
|
"sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185",
|
||||||
|
"sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc",
|
||||||
|
"sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db",
|
||||||
|
"sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa",
|
||||||
|
"sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46",
|
||||||
|
"sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122",
|
||||||
|
"sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b",
|
||||||
|
"sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63",
|
||||||
|
"sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df",
|
||||||
|
"sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc",
|
||||||
|
"sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247",
|
||||||
|
"sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6",
|
||||||
|
"sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"
|
||||||
],
|
],
|
||||||
"version": "==5.1.1"
|
"version": "==5.4.1"
|
||||||
},
|
},
|
||||||
"requests": {
|
"requests": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4",
|
"sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804",
|
||||||
"sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31"
|
"sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
|
||||||
],
|
],
|
||||||
"version": "==2.22.0"
|
"version": "==2.25.1"
|
||||||
},
|
},
|
||||||
"requests-mock": {
|
"requests-mock": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -256,17 +304,17 @@
|
||||||
},
|
},
|
||||||
"six": {
|
"six": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c",
|
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||||
"sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73"
|
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||||
],
|
],
|
||||||
"version": "==1.12.0"
|
"version": "==1.15.0"
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1",
|
"sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df",
|
||||||
"sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232"
|
"sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"
|
||||||
],
|
],
|
||||||
"version": "==1.25.3"
|
"version": "==1.26.4"
|
||||||
},
|
},
|
||||||
"vcrpy": {
|
"vcrpy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
@ -278,33 +326,52 @@
|
||||||
},
|
},
|
||||||
"wrapt": {
|
"wrapt": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1"
|
"sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
|
||||||
],
|
],
|
||||||
"version": "==1.11.2"
|
"version": "==1.12.1"
|
||||||
},
|
},
|
||||||
"yarl": {
|
"yarl": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:024ecdc12bc02b321bc66b41327f930d1c2c543fa9a561b39861da9388ba7aa9",
|
"sha256:00d7ad91b6583602eb9c1d085a2cf281ada267e9a197e8b7cae487dadbfa293e",
|
||||||
"sha256:2f3010703295fbe1aec51023740871e64bb9664c789cba5a6bdf404e93f7568f",
|
"sha256:0355a701b3998dcd832d0dc47cc5dedf3874f966ac7f870e0f3a6788d802d434",
|
||||||
"sha256:3890ab952d508523ef4881457c4099056546593fa05e93da84c7250516e632eb",
|
"sha256:15263c3b0b47968c1d90daa89f21fcc889bb4b1aac5555580d74565de6836366",
|
||||||
"sha256:3e2724eb9af5dc41648e5bb304fcf4891adc33258c6e14e2a7414ea32541e320",
|
"sha256:2ce4c621d21326a4a5500c25031e102af589edb50c09b321049e388b3934eec3",
|
||||||
"sha256:5badb97dd0abf26623a9982cd448ff12cb39b8e4c94032ccdedf22ce01a64842",
|
"sha256:31ede6e8c4329fb81c86706ba8f6bf661a924b53ba191b27aa5fcee5714d18ec",
|
||||||
"sha256:73f447d11b530d860ca1e6b582f947688286ad16ca42256413083d13f260b7a0",
|
"sha256:324ba3d3c6fee56e2e0b0d09bf5c73824b9f08234339d2b788af65e60040c959",
|
||||||
"sha256:7ab825726f2940c16d92aaec7d204cfc34ac26c0040da727cf8ba87255a33829",
|
"sha256:329412812ecfc94a57cd37c9d547579510a9e83c516bc069470db5f75684629e",
|
||||||
"sha256:b25de84a8c20540531526dfbb0e2d2b648c13fd5dd126728c496d7c3fea33310",
|
"sha256:4736eaee5626db8d9cda9eb5282028cc834e2aeb194e0d8b50217d707e98bb5c",
|
||||||
"sha256:c6e341f5a6562af74ba55205dbd56d248daf1b5748ec48a0200ba227bb9e33f4",
|
"sha256:4953fb0b4fdb7e08b2f3b3be80a00d28c5c8a2056bb066169de00e6501b986b6",
|
||||||
"sha256:c9bb7c249c4432cd47e75af3864bc02d26c9594f49c82e2a28624417f0ae63b8",
|
"sha256:4c5bcfc3ed226bf6419f7a33982fb4b8ec2e45785a0561eb99274ebbf09fdd6a",
|
||||||
"sha256:e060906c0c585565c718d1c3841747b61c5439af2211e185f6739a9412dfbde1"
|
"sha256:547f7665ad50fa8563150ed079f8e805e63dd85def6674c97efd78eed6c224a6",
|
||||||
|
"sha256:5b883e458058f8d6099e4420f0cc2567989032b5f34b271c0827de9f1079a424",
|
||||||
|
"sha256:63f90b20ca654b3ecc7a8d62c03ffa46999595f0167d6450fa8383bab252987e",
|
||||||
|
"sha256:68dc568889b1c13f1e4745c96b931cc94fdd0defe92a72c2b8ce01091b22e35f",
|
||||||
|
"sha256:69ee97c71fee1f63d04c945f56d5d726483c4762845400a6795a3b75d56b6c50",
|
||||||
|
"sha256:6d6283d8e0631b617edf0fd726353cb76630b83a089a40933043894e7f6721e2",
|
||||||
|
"sha256:72a660bdd24497e3e84f5519e57a9ee9220b6f3ac4d45056961bf22838ce20cc",
|
||||||
|
"sha256:73494d5b71099ae8cb8754f1df131c11d433b387efab7b51849e7e1e851f07a4",
|
||||||
|
"sha256:7356644cbed76119d0b6bd32ffba704d30d747e0c217109d7979a7bc36c4d970",
|
||||||
|
"sha256:8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b426bf10",
|
||||||
|
"sha256:8aa3decd5e0e852dc68335abf5478a518b41bf2ab2f330fe44916399efedfae0",
|
||||||
|
"sha256:97b5bdc450d63c3ba30a127d018b866ea94e65655efaf889ebeabc20f7d12406",
|
||||||
|
"sha256:9ede61b0854e267fd565e7527e2f2eb3ef8858b301319be0604177690e1a3896",
|
||||||
|
"sha256:b2e9a456c121e26d13c29251f8267541bd75e6a1ccf9e859179701c36a078643",
|
||||||
|
"sha256:b5dfc9a40c198334f4f3f55880ecf910adebdcb2a0b9a9c23c9345faa9185721",
|
||||||
|
"sha256:bafb450deef6861815ed579c7a6113a879a6ef58aed4c3a4be54400ae8871478",
|
||||||
|
"sha256:c49ff66d479d38ab863c50f7bb27dee97c6627c5fe60697de15529da9c3de724",
|
||||||
|
"sha256:ce3beb46a72d9f2190f9e1027886bfc513702d748047b548b05dab7dfb584d2e",
|
||||||
|
"sha256:d26608cf178efb8faa5ff0f2d2e77c208f471c5a3709e577a7b3fd0445703ac8",
|
||||||
|
"sha256:d597767fcd2c3dc49d6eea360c458b65643d1e4dbed91361cf5e36e53c1f8c96",
|
||||||
|
"sha256:d5c32c82990e4ac4d8150fd7652b972216b204de4e83a122546dce571c1bdf25",
|
||||||
|
"sha256:d8d07d102f17b68966e2de0e07bfd6e139c7c02ef06d3a0f8d2f0f055e13bb76",
|
||||||
|
"sha256:e46fba844f4895b36f4c398c5af062a9808d1f26b2999c58909517384d5deda2",
|
||||||
|
"sha256:e6b5460dc5ad42ad2b36cca524491dfcaffbfd9c8df50508bddc354e787b8dc2",
|
||||||
|
"sha256:f040bcc6725c821a4c0665f3aa96a4d0805a7aaf2caf266d256b8ed71b9f041c",
|
||||||
|
"sha256:f0b059678fd549c66b89bed03efcabb009075bd131c248ecdf087bdb6faba24a",
|
||||||
|
"sha256:fcbb48a93e8699eae920f8d92f7160c03567b421bc17362a9ffbbd706a816f71"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.4'",
|
"markers": "python_version >= '3.4'",
|
||||||
"version": "==1.3.0"
|
"version": "==1.6.3"
|
||||||
},
|
|
||||||
"zipp": {
|
|
||||||
"hashes": [
|
|
||||||
"sha256:4970c3758f4e89a7857a973b1e2a5d75bcdc47794442f2e2dd4fe8e0466e809a",
|
|
||||||
"sha256:8a5712cfd3bb4248015eb3b0b3c54a5f6ee3f2425963ef2a0125b8bc40aafaec"
|
|
||||||
],
|
|
||||||
"version": "==0.5.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
57
README.md
57
README.md
|
@ -1,57 +0,0 @@
|
||||||
# Mastodonplus.py
|
|
||||||
Fork of Python wrapper for the Mastodon (https://github.com/mastodon/mastodon) API.
|
|
||||||
The goal of this fork is to add all 'new' Mastodon API's endpoints to the excellent [halcy's wrapper](https://github.com/halcy/Mastodon.py).
|
|
||||||
|
|
||||||
#### Register your app! This only needs to be done once. Uncomment the code and substitute in your information.
|
|
||||||
|
|
||||||
```
|
|
||||||
from mastodon import Mastodon
|
|
||||||
|
|
||||||
Mastodon.create_app(
|
|
||||||
'pytooterapp',
|
|
||||||
api_base_url = 'https://your-mastodon.server'
|
|
||||||
to_file = 'pytooter_clientcred.secret'
|
|
||||||
)
|
|
||||||
```
|
|
||||||
#### Then login. This can be done every time, or use persisted.
|
|
||||||
|
|
||||||
```
|
|
||||||
from mastodon import Mastodon
|
|
||||||
|
|
||||||
mastodon = Mastodon(
|
|
||||||
client_id = 'pytooter_clientcred.secret',
|
|
||||||
api_base_url = 'https://your-mastodon.server'
|
|
||||||
)
|
|
||||||
mastodon.log_in(
|
|
||||||
'my_login_email@example.com',
|
|
||||||
'incrediblygoodpassword',
|
|
||||||
to_file = 'pytooter_usercred.secret'
|
|
||||||
)
|
|
||||||
```
|
|
||||||
#### To post, create an actual API instance.
|
|
||||||
|
|
||||||
```
|
|
||||||
from mastodon import Mastodon
|
|
||||||
|
|
||||||
mastodon = Mastodon(
|
|
||||||
access_token = 'pytooter_usercred.secret',
|
|
||||||
api_base_url = 'https://your-mastodon.server>'
|
|
||||||
)
|
|
||||||
mastodon.toot('Tooting from python using #mastodonpy !')
|
|
||||||
```
|
|
||||||
You can install Mastodonplus.py via pypi:
|
|
||||||
|
|
||||||
```
|
|
||||||
# Python 3
|
|
||||||
pip3 install Mastodonplus.py
|
|
||||||
```
|
|
||||||
#### New features
|
|
||||||
|
|
||||||
* 26.8.2022. Mastodon v3.6.0. Added New endpoints: /api/v1/admin/domain_blocks (list,show by id, delete and create)
|
|
||||||
* 27.8.2022. Mastodon v3.1.4. Added 'remote" param to GET /api/v1/timelines/public REST API
|
|
||||||
* 27.8.2022. Mastodon v3.1.4. Added GET /api/v1/streaming/public/remote (Mastodon.stream_remote())
|
|
||||||
* 06.9.2022. Mastodon v3.2.0. Added POST /api/v1/accounts/:account_id/note with comment param. (Mastodon.accounts_note(id=account_id, comment='comment')
|
|
||||||
* 06.9.2022. Mastodon v3.6.0. Added GET /api/v1/admin/ip_blocks (Mastodon.admin_ip_blocks_list(max_id=None, min_id=None, since_id=None, limit=None)
|
|
||||||
* 06.9.2022. Mastodon v3.6.0. Added DELETE /api/v1/admin/ip_blocks/:id (Mastodon.admin_ip_blocks_delete(id=None)
|
|
||||||
* 06.9.2022. Mastodon v3.6.0. Added POST /api/v1/admin/ip_blocks (Mastodon.admin_ip_blocks_create(self, ip=None, severity=None, comment=None, expires_in=None)
|
|
||||||
severity possible values are: sign_up_requires_approval, sign_up_block, no_access
|
|
76
README.rst
Normal file
76
README.rst
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
Mastodon.py
|
||||||
|
===========
|
||||||
|
Python wrapper for the Mastodon ( https://github.com/tootsuite/mastodon/ ) API.
|
||||||
|
Feature complete for public API as of Mastodon version 3.0.1 and easy to get started with:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
# Register your app! This only needs to be done once. Uncomment the code and substitute in your information.
|
||||||
|
|
||||||
|
from mastodon import Mastodon
|
||||||
|
|
||||||
|
'''
|
||||||
|
Mastodon.create_app(
|
||||||
|
'pytooterapp',
|
||||||
|
api_base_url = 'https://mastodon.social',
|
||||||
|
to_file = 'pytooter_clientcred.secret'
|
||||||
|
)
|
||||||
|
'''
|
||||||
|
|
||||||
|
# Then login. This can be done every time, or use persisted.
|
||||||
|
|
||||||
|
from mastodon import Mastodon
|
||||||
|
|
||||||
|
mastodon = Mastodon(
|
||||||
|
client_id = 'pytooter_clientcred.secret',
|
||||||
|
api_base_url = 'https://mastodon.social'
|
||||||
|
)
|
||||||
|
mastodon.log_in(
|
||||||
|
'my_login_email@example.com',
|
||||||
|
'incrediblygoodpassword',
|
||||||
|
to_file = 'pytooter_usercred.secret'
|
||||||
|
)
|
||||||
|
|
||||||
|
# To post, create an actual API instance.
|
||||||
|
|
||||||
|
from mastodon import Mastodon
|
||||||
|
|
||||||
|
mastodon = Mastodon(
|
||||||
|
access_token = 'pytooter_usercred.secret',
|
||||||
|
api_base_url = 'https://mastodon.social'
|
||||||
|
)
|
||||||
|
mastodon.toot('Tooting from python using #mastodonpy !')
|
||||||
|
|
||||||
|
You can install Mastodon.py via pypi:
|
||||||
|
|
||||||
|
.. code-block:: Bash
|
||||||
|
|
||||||
|
# Python 3
|
||||||
|
pip3 install Mastodon.py
|
||||||
|
|
||||||
|
Note that python 2.7 is now no longer officially supported. It will still
|
||||||
|
work for a while, and we will fix issues as they come up, but we will not
|
||||||
|
be testing specifically for python 2.7 any longer.
|
||||||
|
|
||||||
|
Full documentation and basic usage examples can be found
|
||||||
|
at http://mastodonpy.readthedocs.io/en/stable/ .
|
||||||
|
|
||||||
|
Maintenance
|
||||||
|
-----------
|
||||||
|
As you might have noticed, I have not done any maint work on this project in a while.
|
||||||
|
I am currently extremely busy with my actual paid work, and will not be able to work
|
||||||
|
on Mastodon.py until I hand in my dissertation, i.e. there will be no new releases or
|
||||||
|
code from me for at least the rest of this year, maybe part of next. If you would like
|
||||||
|
to temporarily take over bug fixing / test writing / new method implementing, hit me up.
|
||||||
|
|
||||||
|
Acknowledgements
|
||||||
|
----------------
|
||||||
|
Mastodon.py contains work by a large amount of contributors, many of which have
|
||||||
|
put significant work into making it a better library. You can find some information
|
||||||
|
about who helped with which particular feature or fix in the changelog.
|
||||||
|
|
||||||
|
.. image:: https://travis-ci.org/halcy/Mastodon.py.svg?branch=master
|
||||||
|
:target: https://travis-ci.org/halcy/Mastodon.py
|
||||||
|
.. image:: https://codecov.io/gh/halcy/Mastodon.py/branch/master/graph/badge.svg
|
||||||
|
:target: https://codecov.io/gh/halcy/Mastodon.py
|
||||||
|
|
|
@ -1275,19 +1275,6 @@ The streaming functions take instances of `StreamListener` as the `listener` par
|
||||||
A `CallbackStreamListener` class that allows you to specify function callbacks
|
A `CallbackStreamListener` class that allows you to specify function callbacks
|
||||||
directly is included for convenience.
|
directly is included for convenience.
|
||||||
|
|
||||||
For new well-known events implement the streaming function in `StreamListener` or `CallbackStreamListener`.
|
|
||||||
The function name is `on_` + the event name. If the event-name contains dots, use an underscore instead.
|
|
||||||
|
|
||||||
E.g. for `'status.update'` the listener function should be named as `on_status_update`.
|
|
||||||
|
|
||||||
It may be that future Mastodon versions will come with completely new (unknown) event names. In this
|
|
||||||
case a (deprecated) Mastodon.py would throw an error. If you want to avoid this in general, you can
|
|
||||||
override the listener function `on_unknown_event`. This has an additional parameter `name` which informs
|
|
||||||
about the name of the event. `unknown_event` contains the content of the event.
|
|
||||||
|
|
||||||
Alternatively, a callback function can be passed in the `unknown_event_handler` parameter in the
|
|
||||||
`CallbackStreamListener` constructor.
|
|
||||||
|
|
||||||
When in not-async mode or async mode without async_reconnect, the stream functions may raise
|
When in not-async mode or async mode without async_reconnect, the stream functions may raise
|
||||||
various exceptions: `MastodonMalformedEventError` if a received event cannot be parsed and
|
various exceptions: `MastodonMalformedEventError` if a received event cannot be parsed and
|
||||||
`MastodonNetworkError` if any connection problems occur.
|
`MastodonNetworkError` if any connection problems occur.
|
||||||
|
@ -1307,7 +1294,6 @@ StreamListener
|
||||||
.. automethod:: StreamListener.on_notification
|
.. automethod:: StreamListener.on_notification
|
||||||
.. automethod:: StreamListener.on_delete
|
.. automethod:: StreamListener.on_delete
|
||||||
.. automethod:: StreamListener.on_conversation
|
.. automethod:: StreamListener.on_conversation
|
||||||
.. automethod:: StreamListener.on_unknown_event
|
|
||||||
.. automethod:: StreamListener.on_abort
|
.. automethod:: StreamListener.on_abort
|
||||||
.. automethod:: StreamListener.handle_heartbeat
|
.. automethod:: StreamListener.handle_heartbeat
|
||||||
|
|
||||||
|
|
|
@ -120,27 +120,10 @@ class AttribAccessDict(dict):
|
||||||
raise AttributeError("Attribute-style access is read only")
|
raise AttributeError("Attribute-style access is read only")
|
||||||
super(AttribAccessDict, self).__setattr__(attr, val)
|
super(AttribAccessDict, self).__setattr__(attr, val)
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
# List helper class.
|
|
||||||
# Defined at top level so it can be pickled.
|
|
||||||
###
|
|
||||||
class AttribAccessList(list):
|
|
||||||
def __getattr__(self, attr):
|
|
||||||
if attr in self:
|
|
||||||
return self[attr]
|
|
||||||
else:
|
|
||||||
raise AttributeError("Attribute not found: " + str(attr))
|
|
||||||
|
|
||||||
def __setattr__(self, attr, val):
|
|
||||||
if attr in self:
|
|
||||||
raise AttributeError("Attribute-style access is read only")
|
|
||||||
super(AttribAccessList, self).__setattr__(attr, val)
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# The actual Mastodon class
|
# The actual Mastodon class
|
||||||
###
|
###
|
||||||
|
|
||||||
class Mastodon:
|
class Mastodon:
|
||||||
"""
|
"""
|
||||||
Thorough and easy to use Mastodon
|
Thorough and easy to use Mastodon
|
||||||
|
@ -193,14 +176,10 @@ class Mastodon:
|
||||||
'admin:read': [
|
'admin:read': [
|
||||||
'admin:read:accounts',
|
'admin:read:accounts',
|
||||||
'admin:read:reports',
|
'admin:read:reports',
|
||||||
'admin:read:domain_blocks',
|
|
||||||
'admin:read:ip_blocks',
|
|
||||||
],
|
],
|
||||||
'admin:write': [
|
'admin:write': [
|
||||||
'admin:write:accounts',
|
'admin:write:accounts',
|
||||||
'admin:write:reports',
|
'admin:write:reports',
|
||||||
'admin:write:domain_blocks',
|
|
||||||
'admin:write:ip_blocks',
|
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
__VALID_SCOPES = ['read', 'write', 'follow', 'push', 'admin:read', 'admin:write'] + \
|
__VALID_SCOPES = ['read', 'write', 'follow', 'push', 'admin:read', 'admin:write'] + \
|
||||||
|
@ -239,8 +218,6 @@ class Mastodon:
|
||||||
__DICT_VERSION_MARKER = "3.0.0"
|
__DICT_VERSION_MARKER = "3.0.0"
|
||||||
__DICT_VERSION_REACTION = "3.1.0"
|
__DICT_VERSION_REACTION = "3.1.0"
|
||||||
__DICT_VERSION_ANNOUNCEMENT = bigger_version("3.1.0", __DICT_VERSION_REACTION)
|
__DICT_VERSION_ANNOUNCEMENT = bigger_version("3.1.0", __DICT_VERSION_REACTION)
|
||||||
__DICT_VERSION_DOMAIN_BLOCKS = "3.6.0"
|
|
||||||
__DICT_VERSION_IP_BLOCKS = "3.6.0"
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Registering apps
|
# Registering apps
|
||||||
|
@ -299,7 +276,6 @@ class Mastodon:
|
||||||
secret_file.write(response['client_id'] + "\n")
|
secret_file.write(response['client_id'] + "\n")
|
||||||
secret_file.write(response['client_secret'] + "\n")
|
secret_file.write(response['client_secret'] + "\n")
|
||||||
secret_file.write(api_base_url + "\n")
|
secret_file.write(api_base_url + "\n")
|
||||||
secret_file.write(client_name + "\n")
|
|
||||||
|
|
||||||
return (response['client_id'], response['client_secret'])
|
return (response['client_id'], response['client_secret'])
|
||||||
|
|
||||||
|
@ -310,7 +286,7 @@ class Mastodon:
|
||||||
api_base_url=None, debug_requests=False,
|
api_base_url=None, debug_requests=False,
|
||||||
ratelimit_method="wait", ratelimit_pacefactor=1.1,
|
ratelimit_method="wait", ratelimit_pacefactor=1.1,
|
||||||
request_timeout=__DEFAULT_TIMEOUT, mastodon_version=None,
|
request_timeout=__DEFAULT_TIMEOUT, mastodon_version=None,
|
||||||
version_check_mode = "created", session=None, feature_set="mainline", user_agent=None):
|
version_check_mode = "created", session=None, feature_set="mainline"):
|
||||||
"""
|
"""
|
||||||
Create a new API wrapper instance based on the given `client_secret` and `client_id`. If you
|
Create a new API wrapper instance based on the given `client_secret` and `client_id`. If you
|
||||||
give a `client_id` and it is not a file, you must also give a secret. If you specify an
|
give a `client_id` and it is not a file, you must also give a secret. If you specify an
|
||||||
|
@ -355,11 +331,6 @@ class Mastodon:
|
||||||
`feature_set` can be used to enable behaviour specific to non-mainline Mastodon API implementations.
|
`feature_set` can be used to enable behaviour specific to non-mainline Mastodon API implementations.
|
||||||
Details are documented in the functions that provide such functionality. Currently supported feature
|
Details are documented in the functions that provide such functionality. Currently supported feature
|
||||||
sets are `mainline`, `fedibird` and `pleroma`.
|
sets are `mainline`, `fedibird` and `pleroma`.
|
||||||
|
|
||||||
For some mastodon-instances a `User-Agent` header is needed. This can be set by parameter `user_agent`. From now
|
|
||||||
`create_app()` stores the application name into the client secret file. If `client_id` points to this file,
|
|
||||||
the app name will be used as `User-Agent` header as default. It's possible to modify old secret files and append
|
|
||||||
a client app name to use it as a `User-Agent` name.
|
|
||||||
"""
|
"""
|
||||||
self.api_base_url = None
|
self.api_base_url = None
|
||||||
if not api_base_url is None:
|
if not api_base_url is None:
|
||||||
|
@ -391,9 +362,6 @@ class Mastodon:
|
||||||
self.feature_set = feature_set
|
self.feature_set = feature_set
|
||||||
if not self.feature_set in ["mainline", "fedibird", "pleroma"]:
|
if not self.feature_set in ["mainline", "fedibird", "pleroma"]:
|
||||||
raise MastodonIllegalArgumentError('Requested invalid feature set')
|
raise MastodonIllegalArgumentError('Requested invalid feature set')
|
||||||
|
|
||||||
# General defined user-agent
|
|
||||||
self.user_agent = user_agent
|
|
||||||
|
|
||||||
# Token loading
|
# Token loading
|
||||||
if self.client_id is not None:
|
if self.client_id is not None:
|
||||||
|
@ -408,11 +376,6 @@ class Mastodon:
|
||||||
if not (self.api_base_url is None or try_base_url == self.api_base_url):
|
if not (self.api_base_url is None or try_base_url == self.api_base_url):
|
||||||
raise MastodonIllegalArgumentError('Mismatch in base URLs between files and/or specified')
|
raise MastodonIllegalArgumentError('Mismatch in base URLs between files and/or specified')
|
||||||
self.api_base_url = try_base_url
|
self.api_base_url = try_base_url
|
||||||
|
|
||||||
# With new registrations we support the 4th line to store a client_name and use it as user-agent
|
|
||||||
client_name = secret_file.readline()
|
|
||||||
if client_name and self.user_agent is None:
|
|
||||||
self.user_agent = client_name.rstrip()
|
|
||||||
else:
|
else:
|
||||||
if self.client_secret is None:
|
if self.client_secret is None:
|
||||||
raise MastodonIllegalArgumentError('Specified client id directly, but did not supply secret')
|
raise MastodonIllegalArgumentError('Specified client id directly, but did not supply secret')
|
||||||
|
@ -753,13 +716,13 @@ class Mastodon:
|
||||||
"""
|
"""
|
||||||
if max_id != None:
|
if max_id != None:
|
||||||
max_id = self.__unpack_id(max_id)
|
max_id = self.__unpack_id(max_id)
|
||||||
|
|
||||||
if min_id != None:
|
if min_id != None:
|
||||||
min_id = self.__unpack_id(min_id)
|
min_id = self.__unpack_id(min_id)
|
||||||
|
|
||||||
if since_id != None:
|
if since_id != None:
|
||||||
since_id = self.__unpack_id(since_id)
|
since_id = self.__unpack_id(since_id)
|
||||||
|
|
||||||
params_initial = locals()
|
params_initial = locals()
|
||||||
|
|
||||||
if timeline == "local":
|
if timeline == "local":
|
||||||
|
@ -791,7 +754,7 @@ class Mastodon:
|
||||||
since_id=since_id, limit=limit)
|
since_id=since_id, limit=limit)
|
||||||
|
|
||||||
@api_version("1.0.0", "2.6.0", __DICT_VERSION_STATUS)
|
@api_version("1.0.0", "2.6.0", __DICT_VERSION_STATUS)
|
||||||
def timeline_public(self, max_id=None, min_id=None, since_id=None, limit=None, only_media=False, remote=None):
|
def timeline_public(self, max_id=None, min_id=None, since_id=None, limit=None, only_media=False):
|
||||||
"""
|
"""
|
||||||
Fetches the public / visible-network timeline, not including replies.
|
Fetches the public / visible-network timeline, not including replies.
|
||||||
|
|
||||||
|
@ -801,24 +764,21 @@ class Mastodon:
|
||||||
"""
|
"""
|
||||||
if max_id != None:
|
if max_id != None:
|
||||||
max_id = self.__unpack_id(max_id)
|
max_id = self.__unpack_id(max_id)
|
||||||
|
|
||||||
if min_id != None:
|
if min_id != None:
|
||||||
min_id = self.__unpack_id(min_id)
|
min_id = self.__unpack_id(min_id)
|
||||||
|
|
||||||
if since_id != None:
|
if since_id != None:
|
||||||
since_id = self.__unpack_id(since_id)
|
since_id = self.__unpack_id(since_id)
|
||||||
|
|
||||||
params_initial = locals()
|
params_initial = locals()
|
||||||
|
|
||||||
if only_media == False:
|
if only_media == False:
|
||||||
del params_initial['only_media']
|
del params_initial['only_media']
|
||||||
|
|
||||||
if remote != None:
|
|
||||||
params_initial['remote'] = remote
|
|
||||||
|
|
||||||
url = '/api/v1/timelines/public'
|
url = '/api/v1/timelines/public'
|
||||||
params = self.__generate_params(params_initial)
|
params = self.__generate_params(params_initial)
|
||||||
|
|
||||||
return self.__api_request('GET', url, params)
|
return self.__api_request('GET', url, params)
|
||||||
|
|
||||||
@api_version("1.0.0", "2.6.0", __DICT_VERSION_STATUS)
|
@api_version("1.0.0", "2.6.0", __DICT_VERSION_STATUS)
|
||||||
|
@ -1005,13 +965,10 @@ class Mastodon:
|
||||||
# Reading data: Notifications
|
# Reading data: Notifications
|
||||||
###
|
###
|
||||||
@api_version("1.0.0", "2.9.0", __DICT_VERSION_NOTIFICATION)
|
@api_version("1.0.0", "2.9.0", __DICT_VERSION_NOTIFICATION)
|
||||||
def notifications(self, id=None, account_id=None, max_id=None, min_id=None, since_id=None, limit=None, exclude_types=None):
|
def notifications(self, id=None, account_id=None, max_id=None, min_id=None, since_id=None, limit=None, mentions_only=None):
|
||||||
"""
|
"""
|
||||||
Fetch notifications (mentions, favourites, reblogs, follows) for the logged-in
|
Fetch notifications (mentions, favourites, reblogs, follows) for the logged-in
|
||||||
user. Pass `account_id` to get only notifications originating from the given account.
|
user. Pass `account_id` to get only notifications originating from the given account.
|
||||||
|
|
||||||
Parameter `exclude_types` is an array of the following `follow`, `favourite`, `reblog`,
|
|
||||||
`mention`, `poll`, `follow_request`
|
|
||||||
|
|
||||||
Can be passed an `id` to fetch a single notification.
|
Can be passed an `id` to fetch a single notification.
|
||||||
|
|
||||||
|
@ -1071,8 +1028,8 @@ class Mastodon:
|
||||||
"""
|
"""
|
||||||
return self.account_verify_credentials()
|
return self.account_verify_credentials()
|
||||||
|
|
||||||
@api_version("1.0.0", "2.8.0", __DICT_VERSION_STATUS)
|
@api_version("1.0.0", "2.7.0", __DICT_VERSION_STATUS)
|
||||||
def account_statuses(self, id, only_media=False, pinned=False, exclude_replies=False, exclude_reblogs=False, tagged=None, max_id=None, min_id=None, since_id=None, limit=None):
|
def account_statuses(self, id, only_media=False, pinned=False, exclude_replies=False, max_id=None, min_id=None, since_id=None, limit=None):
|
||||||
"""
|
"""
|
||||||
Fetch statuses by user `id`. Same options as `timeline()`_ are permitted.
|
Fetch statuses by user `id`. Same options as `timeline()`_ are permitted.
|
||||||
Returned toots are from the perspective of the logged-in user, i.e.
|
Returned toots are from the perspective of the logged-in user, i.e.
|
||||||
|
@ -1083,8 +1040,6 @@ class Mastodon:
|
||||||
If `pinned` is set, return only statuses that have been pinned. Note that
|
If `pinned` is set, return only statuses that have been pinned. Note that
|
||||||
as of Mastodon 2.1.0, this only works properly for instance-local users.
|
as of Mastodon 2.1.0, this only works properly for instance-local users.
|
||||||
If `exclude_replies` is set, filter out all statuses that are replies.
|
If `exclude_replies` is set, filter out all statuses that are replies.
|
||||||
If `exclude_reblogs` is set, filter out all statuses that are reblogs.
|
|
||||||
If `tagged` is set, return only statuses that are tagged with `tagged`. Only a single tag without a '#' is valid.
|
|
||||||
|
|
||||||
Does not require authentication for Mastodon versions after 2.7.0 (returns
|
Does not require authentication for Mastodon versions after 2.7.0 (returns
|
||||||
publicly visible statuses in that case), for publicly visible accounts.
|
publicly visible statuses in that case), for publicly visible accounts.
|
||||||
|
@ -1108,9 +1063,7 @@ class Mastodon:
|
||||||
del params["only_media"]
|
del params["only_media"]
|
||||||
if exclude_replies == False:
|
if exclude_replies == False:
|
||||||
del params["exclude_replies"]
|
del params["exclude_replies"]
|
||||||
if exclude_reblogs == False:
|
|
||||||
del params["exclude_reblogs"]
|
|
||||||
|
|
||||||
url = '/api/v1/accounts/{0}/statuses'.format(str(id))
|
url = '/api/v1/accounts/{0}/statuses'.format(str(id))
|
||||||
return self.__api_request('GET', url, params)
|
return self.__api_request('GET', url, params)
|
||||||
|
|
||||||
|
@ -1190,27 +1143,14 @@ class Mastodon:
|
||||||
"""
|
"""
|
||||||
Get all of the logged-in users lists which the specified user is
|
Get all of the logged-in users lists which the specified user is
|
||||||
a member of.
|
a member of.
|
||||||
|
|
||||||
Returns a list of `list dicts`_.
|
Returns a list of `list dicts`_.
|
||||||
"""
|
"""
|
||||||
id = self.__unpack_id(id)
|
id = self.__unpack_id(id)
|
||||||
params = self.__generate_params(locals(), ['id'])
|
params = self.__generate_params(locals(), ['id'])
|
||||||
url = '/api/v1/accounts/{0}/lists'.format(str(id))
|
url = '/api/v1/accounts/{0}/lists'.format(str(id))
|
||||||
return self.__api_request('GET', url, params)
|
return self.__api_request('GET', url, params)
|
||||||
|
|
||||||
@api_version("3.6.0", "3.6.0", __DICT_VERSION_LIST)
|
|
||||||
def accounts_note(self, id, comment=None):
|
|
||||||
"""
|
|
||||||
Add personal notes for accounts
|
|
||||||
"""
|
|
||||||
if comment != None:
|
|
||||||
comment = comment
|
|
||||||
|
|
||||||
id = self.__unpack_id(id)
|
|
||||||
params = self.__generate_params(locals(), ['id'])
|
|
||||||
url = '/api/v1/accounts/{0}/note'.format(id)
|
|
||||||
return self.__api_request('POST', url, params)
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Reading data: Featured hashtags
|
# Reading data: Featured hashtags
|
||||||
###
|
###
|
||||||
|
@ -1693,23 +1633,13 @@ class Mastodon:
|
||||||
# Reading data: Bookmarks
|
# Reading data: Bookmarks
|
||||||
###
|
###
|
||||||
@api_version("3.1.0", "3.1.0", __DICT_VERSION_STATUS)
|
@api_version("3.1.0", "3.1.0", __DICT_VERSION_STATUS)
|
||||||
def bookmarks(self, max_id=None, min_id=None, since_id=None, limit=None):
|
def bookmarks(self):
|
||||||
"""
|
"""
|
||||||
Get a list of statuses bookmarked by the logged-in user.
|
Get a list of statuses bookmarked by the logged-in user.
|
||||||
|
|
||||||
Returns a list of `toot dicts`_.
|
Returns a list of `toot dicts`_.
|
||||||
"""
|
"""
|
||||||
if max_id != None:
|
return self.__api_request('GET', '/api/v1/bookmarks')
|
||||||
max_id = self.__unpack_id(max_id)
|
|
||||||
|
|
||||||
if min_id != None:
|
|
||||||
min_id = self.__unpack_id(min_id)
|
|
||||||
|
|
||||||
if since_id != None:
|
|
||||||
since_id = self.__unpack_id(since_id)
|
|
||||||
|
|
||||||
params = self.__generate_params(locals())
|
|
||||||
return self.__api_request('GET', '/api/v1/bookmarks', params)
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Writing data: Statuses
|
# Writing data: Statuses
|
||||||
|
@ -2494,7 +2424,7 @@ class Mastodon:
|
||||||
if not status_ids is None:
|
if not status_ids is None:
|
||||||
if not isinstance(status_ids, list):
|
if not isinstance(status_ids, list):
|
||||||
status_ids = [status_ids]
|
status_ids = [status_ids]
|
||||||
status_ids = list(map(lambda x: self.__unpack_id(x), status_ids))
|
status_ids = list(map(lambda x: self.__unpack_id(x), status_ids))
|
||||||
|
|
||||||
params_initial = locals()
|
params_initial = locals()
|
||||||
if forward == False:
|
if forward == False:
|
||||||
|
@ -2994,100 +2924,7 @@ class Mastodon:
|
||||||
"""
|
"""
|
||||||
id = self.__unpack_id(id)
|
id = self.__unpack_id(id)
|
||||||
return self.__api_request('POST', '/api/v1/admin/reports/{0}/resolve'.format(id))
|
return self.__api_request('POST', '/api/v1/admin/reports/{0}/resolve'.format(id))
|
||||||
|
|
||||||
@api_version("3.6.0", "3.6.0", __DICT_VERSION_DOMAIN_BLOCKS)
|
|
||||||
def admin_domain_blocks_list(self):
|
|
||||||
"""
|
|
||||||
List domain blocks.
|
|
||||||
"""
|
|
||||||
return self.__api_request('GET', '/api/v1/admin/domain_blocks')
|
|
||||||
|
|
||||||
@api_version("3.6.0", "3.6.0", __DICT_VERSION_DOMAIN_BLOCKS)
|
|
||||||
def admin_domain_blocks(self, id):
|
|
||||||
"""
|
|
||||||
Shows one domain block by id.
|
|
||||||
"""
|
|
||||||
id = self.__unpack_id(id)
|
|
||||||
return self.__api_request('GET', '/api/v1/admin/domain_blocks/{0}'.format(id))
|
|
||||||
|
|
||||||
@api_version("3.6.0", "3.6.0", __DICT_VERSION_DOMAIN_BLOCKS)
|
|
||||||
def admin_domain_blocks_delete(self, id):
|
|
||||||
"""
|
|
||||||
Delete one domain block by id.
|
|
||||||
"""
|
|
||||||
id = self.__unpack_id(id)
|
|
||||||
return self.__api_request('DELETE', '/api/v1/admin/domain_blocks/{0}'.format(id))
|
|
||||||
|
|
||||||
@api_version("3.6.0", "3.6.0", __DICT_VERSION_DOMAIN_BLOCKS)
|
|
||||||
def admin_domain_blocks_create(self, domain=None, severity=None, reject_media=None, reject_reports=None, private_comment=None, public_comment=None, obfuscate=None):
|
|
||||||
"""
|
|
||||||
To create a new domain block.
|
|
||||||
If it conflicts with an existing one, returns an error with an attribute `existing_domain_block` with the rendered domain block.
|
|
||||||
"""
|
|
||||||
if severity == None:
|
|
||||||
severity = 'silence'
|
|
||||||
if reject_media == None:
|
|
||||||
reject_media = 'false'
|
|
||||||
if reject_reports == None:
|
|
||||||
reject_reports = 'false'
|
|
||||||
if private_comment != None:
|
|
||||||
private_comment = private_comment
|
|
||||||
if public_comment != None:
|
|
||||||
public_comment = public_comment
|
|
||||||
if obfuscate == None:
|
|
||||||
obfuscate = 'false'
|
|
||||||
params = self.__generate_params(locals())
|
|
||||||
return self.__api_request('POST', '/api/v1/admin/domain_blocks', params)
|
|
||||||
|
|
||||||
@api_version("3.6.0", "3.6.0", __DICT_VERSION_IP_BLOCKS)
|
|
||||||
def admin_ip_blocks_list(self, max_id=None, min_id=None, since_id=None, limit=None):
|
|
||||||
"""
|
|
||||||
List IP blocks.
|
|
||||||
"""
|
|
||||||
if max_id != None:
|
|
||||||
max_id = self.__unpack_id(max_id)
|
|
||||||
|
|
||||||
if min_id != None:
|
|
||||||
min_id = self.__unpack_id(min_id)
|
|
||||||
|
|
||||||
if since_id != None:
|
|
||||||
since_id = self.__unpack_id(since_id)
|
|
||||||
|
|
||||||
params_initial = locals()
|
|
||||||
|
|
||||||
params = self.__generate_params(params_initial)
|
|
||||||
|
|
||||||
return self.__api_request('GET', '/api/v1/admin/ip_blocks', params)
|
|
||||||
|
|
||||||
@api_version("3.6.0", "3.6.0", __DICT_VERSION_IP_BLOCKS)
|
|
||||||
def admin_ip_blocks_delete(self, id):
|
|
||||||
"""
|
|
||||||
Delete one IP block by id.
|
|
||||||
"""
|
|
||||||
id = self.__unpack_id(id)
|
|
||||||
return self.__api_request('DELETE', '/api/v1/admin/ip_blocks/{0}'.format(id))
|
|
||||||
|
|
||||||
@api_version("3.6.0", "3.6.0", __DICT_VERSION_IP_BLOCKS)
|
|
||||||
def admin_ip_blocks_create(self, ip=None, severity=None, comment=None, expires_in=None):
|
|
||||||
"""
|
|
||||||
To create a new IP block.
|
|
||||||
|
|
||||||
severity possible values:
|
|
||||||
sign_up_requires_approval
|
|
||||||
sign_up_block
|
|
||||||
no_access
|
|
||||||
"""
|
|
||||||
if ip == None:
|
|
||||||
return("Missing required IP.")
|
|
||||||
if severity == None:
|
|
||||||
severity = 'sign_up_requires_approval'
|
|
||||||
if comment == None:
|
|
||||||
comment = "blocked"
|
|
||||||
if expires_in == None:
|
|
||||||
expires_in = 86400
|
|
||||||
params = self.__generate_params(locals())
|
|
||||||
return self.__api_request('POST', '/api/v1/admin/ip_blocks', params)
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Push subscription crypto utilities
|
# Push subscription crypto utilities
|
||||||
###
|
###
|
||||||
|
@ -3203,8 +3040,8 @@ class Mastodon:
|
||||||
Returns the next page or None if no further data is available.
|
Returns the next page or None if no further data is available.
|
||||||
"""
|
"""
|
||||||
if isinstance(previous_page, list) and len(previous_page) != 0:
|
if isinstance(previous_page, list) and len(previous_page) != 0:
|
||||||
if hasattr(previous_page, '_pagination_next'):
|
if hasattr(previous_page[-1], '_pagination_next'):
|
||||||
params = copy.deepcopy(previous_page._pagination_next)
|
params = copy.deepcopy(previous_page[-1]._pagination_next)
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
|
@ -3227,8 +3064,8 @@ class Mastodon:
|
||||||
Returns the previous page or None if no further data is available.
|
Returns the previous page or None if no further data is available.
|
||||||
"""
|
"""
|
||||||
if isinstance(next_page, list) and len(next_page) != 0:
|
if isinstance(next_page, list) and len(next_page) != 0:
|
||||||
if hasattr(next_page, '_pagination_prev'):
|
if hasattr(next_page[0], '_pagination_prev'):
|
||||||
params = copy.deepcopy(next_page._pagination_prev)
|
params = copy.deepcopy(next_page[0]._pagination_prev)
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
|
@ -3286,13 +3123,6 @@ class Mastodon:
|
||||||
"""
|
"""
|
||||||
return self.__stream('/api/v1/streaming/public/local', listener, run_async=run_async, timeout=timeout, reconnect_async=reconnect_async, reconnect_async_wait_sec=reconnect_async_wait_sec)
|
return self.__stream('/api/v1/streaming/public/local', listener, run_async=run_async, timeout=timeout, reconnect_async=reconnect_async, reconnect_async_wait_sec=reconnect_async_wait_sec)
|
||||||
|
|
||||||
@api_version("1.1.0", "1.4.2", __DICT_VERSION_STATUS)
|
|
||||||
def stream_remote(self, listener, run_async=False, timeout=__DEFAULT_STREAM_TIMEOUT, reconnect_async=False, reconnect_async_wait_sec=__DEFAULT_STREAM_RECONNECT_WAIT_SEC):
|
|
||||||
"""
|
|
||||||
Streams remote public events.
|
|
||||||
"""
|
|
||||||
return self.__stream('/api/v1/streaming/public/remote', listener, run_async=run_async, timeout=timeout, reconnect_async=reconnect_async, reconnect_async_wait_sec=reconnect_async_wait_sec)
|
|
||||||
|
|
||||||
@api_version("1.1.0", "1.4.2", __DICT_VERSION_STATUS)
|
@api_version("1.1.0", "1.4.2", __DICT_VERSION_STATUS)
|
||||||
def stream_hashtag(self, tag, listener, local=False, run_async=False, timeout=__DEFAULT_STREAM_TIMEOUT, reconnect_async=False, reconnect_async_wait_sec=__DEFAULT_STREAM_RECONNECT_WAIT_SEC):
|
def stream_hashtag(self, tag, listener, local=False, run_async=False, timeout=__DEFAULT_STREAM_TIMEOUT, reconnect_async=False, reconnect_async_wait_sec=__DEFAULT_STREAM_RECONNECT_WAIT_SEC):
|
||||||
"""
|
"""
|
||||||
|
@ -3400,7 +3230,7 @@ class Mastodon:
|
||||||
if (key in json_object and isinstance(json_object[key], six.text_type)):
|
if (key in json_object and isinstance(json_object[key], six.text_type)):
|
||||||
if json_object[key].lower() == 'true':
|
if json_object[key].lower() == 'true':
|
||||||
json_object[key] = True
|
json_object[key] = True
|
||||||
if json_object[key].lower() == 'false':
|
if json_object[key].lower() == 'False':
|
||||||
json_object[key] = False
|
json_object[key] = False
|
||||||
return json_object
|
return json_object
|
||||||
|
|
||||||
|
@ -3474,10 +3304,6 @@ class Mastodon:
|
||||||
if not access_token_override is None:
|
if not access_token_override is None:
|
||||||
headers['Authorization'] = 'Bearer ' + access_token_override
|
headers['Authorization'] = 'Bearer ' + access_token_override
|
||||||
|
|
||||||
# Add user-agent
|
|
||||||
if self.user_agent:
|
|
||||||
headers['User-Agent'] = self.user_agent
|
|
||||||
|
|
||||||
# Determine base URL
|
# Determine base URL
|
||||||
base_url = self.api_base_url
|
base_url = self.api_base_url
|
||||||
if not base_url_override is None:
|
if not base_url_override is None:
|
||||||
|
@ -3617,7 +3443,6 @@ class Mastodon:
|
||||||
if isinstance(response, list) and \
|
if isinstance(response, list) and \
|
||||||
'Link' in response_object.headers and \
|
'Link' in response_object.headers and \
|
||||||
response_object.headers['Link'] != "":
|
response_object.headers['Link'] != "":
|
||||||
response = AttribAccessList(response)
|
|
||||||
tmp_urls = requests.utils.parse_header_links(
|
tmp_urls = requests.utils.parse_header_links(
|
||||||
response_object.headers['Link'].rstrip('>').replace('>,<', ',<'))
|
response_object.headers['Link'].rstrip('>').replace('>,<', ',<'))
|
||||||
for url in tmp_urls:
|
for url in tmp_urls:
|
||||||
|
@ -3642,12 +3467,7 @@ class Mastodon:
|
||||||
del next_params['since_id']
|
del next_params['since_id']
|
||||||
if "min_id" in next_params:
|
if "min_id" in next_params:
|
||||||
del next_params['min_id']
|
del next_params['min_id']
|
||||||
response._pagination_next = next_params
|
response[-1]._pagination_next = next_params
|
||||||
|
|
||||||
# Maybe other API users rely on the pagination info in the last item
|
|
||||||
# Will be removed in future
|
|
||||||
if isinstance(response[-1], AttribAccessDict):
|
|
||||||
response[-1]._pagination_next = next_params
|
|
||||||
|
|
||||||
if url['rel'] == 'prev':
|
if url['rel'] == 'prev':
|
||||||
# Be paranoid and extract since_id or min_id specifically
|
# Be paranoid and extract since_id or min_id specifically
|
||||||
|
@ -3666,13 +3486,8 @@ class Mastodon:
|
||||||
prev_params['since_id'] = since_id
|
prev_params['since_id'] = since_id
|
||||||
if "max_id" in prev_params:
|
if "max_id" in prev_params:
|
||||||
del prev_params['max_id']
|
del prev_params['max_id']
|
||||||
response._pagination_prev = prev_params
|
response[0]._pagination_prev = prev_params
|
||||||
|
|
||||||
# Maybe other API users rely on the pagination info in the first item
|
|
||||||
# Will be removed in future
|
|
||||||
if isinstance(response[0], AttribAccessDict):
|
|
||||||
response[0]._pagination_prev = prev_params
|
|
||||||
|
|
||||||
# New and fantastico (post-2.6.0): min_id pagination
|
# New and fantastico (post-2.6.0): min_id pagination
|
||||||
matchgroups = re.search(r"[?&]min_id=([^&]+)", prev_url)
|
matchgroups = re.search(r"[?&]min_id=([^&]+)", prev_url)
|
||||||
if matchgroups:
|
if matchgroups:
|
||||||
|
@ -3686,12 +3501,7 @@ class Mastodon:
|
||||||
prev_params['min_id'] = min_id
|
prev_params['min_id'] = min_id
|
||||||
if "max_id" in prev_params:
|
if "max_id" in prev_params:
|
||||||
del prev_params['max_id']
|
del prev_params['max_id']
|
||||||
response._pagination_prev = prev_params
|
response[0]._pagination_prev = prev_params
|
||||||
|
|
||||||
# Maybe other API users rely on the pagination info in the first item
|
|
||||||
# Will be removed in future
|
|
||||||
if isinstance(response[0], AttribAccessDict):
|
|
||||||
response[0]._pagination_prev = prev_params
|
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
@ -3736,8 +3546,6 @@ class Mastodon:
|
||||||
# Connect function (called and then potentially passed to async handler)
|
# Connect function (called and then potentially passed to async handler)
|
||||||
def connect_func():
|
def connect_func():
|
||||||
headers = {"Authorization": "Bearer " + self.access_token} if self.access_token else {}
|
headers = {"Authorization": "Bearer " + self.access_token} if self.access_token else {}
|
||||||
if self.user_agent:
|
|
||||||
headers['User-Agent'] = self.user_agent
|
|
||||||
connection = self.session.get(url + endpoint, headers = headers, data = params, stream = True,
|
connection = self.session.get(url + endpoint, headers = headers, data = params, stream = True,
|
||||||
timeout=(self.request_timeout, timeout))
|
timeout=(self.request_timeout, timeout))
|
||||||
|
|
||||||
|
@ -3759,8 +3567,7 @@ class Mastodon:
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self.closed = True
|
self.closed = True
|
||||||
if not self.connection is None:
|
self.connection.close()
|
||||||
self.connection.close()
|
|
||||||
|
|
||||||
def is_alive(self):
|
def is_alive(self):
|
||||||
return self._thread.is_alive()
|
return self._thread.is_alive()
|
||||||
|
@ -3771,14 +3578,6 @@ class Mastodon:
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _sleep_attentive(self):
|
|
||||||
if self._thread != threading.current_thread():
|
|
||||||
raise RuntimeError ("Illegal call from outside the stream_handle thread")
|
|
||||||
time_remaining = self.reconnect_async_wait_sec
|
|
||||||
while time_remaining>0 and not self.closed:
|
|
||||||
time.sleep(0.5)
|
|
||||||
time_remaining -= 0.5
|
|
||||||
|
|
||||||
def _threadproc(self):
|
def _threadproc(self):
|
||||||
self._thread = threading.current_thread()
|
self._thread = threading.current_thread()
|
||||||
|
|
||||||
|
@ -3800,26 +3599,16 @@ class Mastodon:
|
||||||
self.reconnecting = True
|
self.reconnecting = True
|
||||||
connect_success = False
|
connect_success = False
|
||||||
while not connect_success:
|
while not connect_success:
|
||||||
if self.closed:
|
connect_success = True
|
||||||
# Someone from outside stopped the streaming
|
|
||||||
self.running = False
|
|
||||||
break
|
|
||||||
try:
|
try:
|
||||||
the_connection = self.connect_func()
|
self.connection = self.connect_func()
|
||||||
if the_connection.status_code != 200:
|
if self.connection.status_code != 200:
|
||||||
exception = MastodonNetworkError(f"Could not connect to server. "
|
time.sleep(self.reconnect_async_wait_sec)
|
||||||
f"HTTP status: {the_connection.status_code}")
|
connect_success = False
|
||||||
|
exception = MastodonNetworkError("Could not connect to server.")
|
||||||
listener.on_abort(exception)
|
listener.on_abort(exception)
|
||||||
self._sleep_attentive()
|
|
||||||
if self.closed:
|
|
||||||
# Here we have maybe a rare race condition. Exactly on connect, someone
|
|
||||||
# stopped the streaming before. We close the previous established connection:
|
|
||||||
the_connection.close()
|
|
||||||
else:
|
|
||||||
self.connection = the_connection
|
|
||||||
connect_success = True
|
|
||||||
except:
|
except:
|
||||||
self._sleep_attentive()
|
time.sleep(self.reconnect_async_wait_sec)
|
||||||
connect_success = False
|
connect_success = False
|
||||||
self.reconnecting = False
|
self.reconnecting = False
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -45,16 +45,6 @@ class StreamListener(object):
|
||||||
contains the resulting conversation dict."""
|
contains the resulting conversation dict."""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def on_unknown_event(self, name, unknown_event = None):
|
|
||||||
"""An unknown mastodon API event has been received. The name contains the event-name and unknown_event
|
|
||||||
contains the content of the unknown event.
|
|
||||||
|
|
||||||
This function must be implemented, if unknown events should be handled without an error.
|
|
||||||
"""
|
|
||||||
exception = MastodonMalformedEventError('Bad event type', name)
|
|
||||||
self.on_abort(exception)
|
|
||||||
raise exception
|
|
||||||
|
|
||||||
def handle_heartbeat(self):
|
def handle_heartbeat(self):
|
||||||
"""The server has sent us a keep-alive message. This callback may be
|
"""The server has sent us a keep-alive message. This callback may be
|
||||||
useful to carry out periodic housekeeping tasks, or just to confirm
|
useful to carry out periodic housekeeping tasks, or just to confirm
|
||||||
|
@ -66,11 +56,6 @@ class StreamListener(object):
|
||||||
Handles a stream of events from the Mastodon server. When each event
|
Handles a stream of events from the Mastodon server. When each event
|
||||||
is received, the corresponding .on_[name]() method is called.
|
is received, the corresponding .on_[name]() method is called.
|
||||||
|
|
||||||
When the Mastodon API changes, the on_unknown_event(name, content)
|
|
||||||
function is called.
|
|
||||||
The default behavior is to throw an error. Define a callback handler
|
|
||||||
to intercept unknown events if needed (and avoid errors)
|
|
||||||
|
|
||||||
response; a requests response object with the open stream for reading.
|
response; a requests response object with the open stream for reading.
|
||||||
"""
|
"""
|
||||||
event = {}
|
event = {}
|
||||||
|
@ -152,32 +137,33 @@ class StreamListener(object):
|
||||||
exception,
|
exception,
|
||||||
err
|
err
|
||||||
)
|
)
|
||||||
# New mastodon API also supports event names with dots:
|
|
||||||
handler_name = 'on_' + name.replace('.', '_')
|
handler_name = 'on_' + name
|
||||||
# A generic way to handle unknown events to make legacy code more stable for future changes
|
try:
|
||||||
handler = getattr(self, handler_name, self.on_unknown_event)
|
handler = getattr(self, handler_name)
|
||||||
if handler != self.on_unknown_event:
|
except AttributeError as err:
|
||||||
handler(payload)
|
exception = MastodonMalformedEventError('Bad event type', name)
|
||||||
|
self.on_abort(exception)
|
||||||
|
six.raise_from(
|
||||||
|
exception,
|
||||||
|
err
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
handler(name, payload)
|
handler(payload)
|
||||||
|
|
||||||
|
|
||||||
class CallbackStreamListener(StreamListener):
|
class CallbackStreamListener(StreamListener):
|
||||||
"""
|
"""
|
||||||
Simple callback stream handler class.
|
Simple callback stream handler class.
|
||||||
Can optionally additionally send local update events to a separate handler.
|
Can optionally additionally send local update events to a separate handler.
|
||||||
Define an unknown_event_handler for new Mastodon API events. If not, the
|
|
||||||
listener will raise an error on new, not handled, events from the API.
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, update_handler = None, local_update_handler = None, delete_handler = None, notification_handler = None, conversation_handler = None, unknown_event_handler = None):
|
def __init__(self, update_handler = None, local_update_handler = None, delete_handler = None, notification_handler = None, conversation_handler = None):
|
||||||
super(CallbackStreamListener, self).__init__()
|
super(CallbackStreamListener, self).__init__()
|
||||||
self.update_handler = update_handler
|
self.update_handler = update_handler
|
||||||
self.local_update_handler = local_update_handler
|
self.local_update_handler = local_update_handler
|
||||||
self.delete_handler = delete_handler
|
self.delete_handler = delete_handler
|
||||||
self.notification_handler = notification_handler
|
self.notification_handler = notification_handler
|
||||||
self.conversation_handler = conversation_handler
|
self.conversation_handler = conversation_handler
|
||||||
self.unknown_event_handler = unknown_event_handler
|
|
||||||
|
|
||||||
def on_update(self, status):
|
def on_update(self, status):
|
||||||
if self.update_handler != None:
|
if self.update_handler != None:
|
||||||
self.update_handler(status)
|
self.update_handler(status)
|
||||||
|
@ -202,11 +188,3 @@ class CallbackStreamListener(StreamListener):
|
||||||
def on_conversation(self, conversation):
|
def on_conversation(self, conversation):
|
||||||
if self.conversation_handler != None:
|
if self.conversation_handler != None:
|
||||||
self.conversation_handler(conversation)
|
self.conversation_handler(conversation)
|
||||||
|
|
||||||
def on_unknown_event(self, name, unknown_event = None):
|
|
||||||
if self.unknown_event_handler != None:
|
|
||||||
self.unknown_event_handler(name, unknown_event)
|
|
||||||
else:
|
|
||||||
exception = MastodonMalformedEventError('Bad event type', name)
|
|
||||||
self.on_abort(exception)
|
|
||||||
raise exception
|
|
||||||
|
|
18
setup.py
18
setup.py
|
@ -1,6 +1,4 @@
|
||||||
import setuptools
|
from setuptools import setup
|
||||||
|
|
||||||
VERSION = '1.5.5.4'
|
|
||||||
|
|
||||||
test_deps = [
|
test_deps = [
|
||||||
'pytest',
|
'pytest',
|
||||||
|
@ -27,16 +25,10 @@ extras = {
|
||||||
"blurhash": blurhash_deps,
|
"blurhash": blurhash_deps,
|
||||||
}
|
}
|
||||||
|
|
||||||
with open('README.md', 'r', encoding='utf-8') as fh:
|
setup(name='Mastodon.py',
|
||||||
long_description = fh.read()
|
version='1.5.1',
|
||||||
|
description='Python wrapper for the Mastodon API',
|
||||||
setuptools.setup(
|
|
||||||
name='Mastodonplus.py',
|
|
||||||
version=VERSION,
|
|
||||||
description='Python wrapper for the Mastodon API (new endpoints)',
|
|
||||||
packages=['mastodon'],
|
packages=['mastodon'],
|
||||||
long_description=long_description,
|
|
||||||
long_description_content_type='text/markdown',
|
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'requests>=2.4.2',
|
'requests>=2.4.2',
|
||||||
'python-dateutil',
|
'python-dateutil',
|
||||||
|
@ -47,7 +39,7 @@ setuptools.setup(
|
||||||
] + blurhash_deps,
|
] + blurhash_deps,
|
||||||
tests_require=test_deps,
|
tests_require=test_deps,
|
||||||
extras_require=extras,
|
extras_require=extras,
|
||||||
url='https://git.mastodont.cat/spla/Mastodonplus.py',
|
url='https://github.com/halcy/Mastodon.py',
|
||||||
author='Lorenz Diener',
|
author='Lorenz Diener',
|
||||||
author_email='lorenzd+mastodonpypypi@gmail.com',
|
author_email='lorenzd+mastodonpypypi@gmail.com',
|
||||||
license='MIT',
|
license='MIT',
|
||||||
|
|
|
@ -26,7 +26,7 @@ This test suite uses [VCR.py][] to record requests to Mastodon and replay them i
|
||||||
If you want to add or change tests, you will need a Mastodon development server running on `http://localhost:3000`, with the default `admin` user and default password.
|
If you want to add or change tests, you will need a Mastodon development server running on `http://localhost:3000`, with the default `admin` user and default password.
|
||||||
To set this up, follow the development guide and set up the database using "rails db:setup".
|
To set this up, follow the development guide and set up the database using "rails db:setup".
|
||||||
|
|
||||||
It also needs a test OAuth app-registriation and an additional test user to be set up by applying the provided `setup.sql` to Mastodon's database:
|
It also needs a test OAuth app and an additional test user to be set up by applying the provided `setup.sql` to Mastodon's database:
|
||||||
|
|
||||||
psql -d mastodon_development < tests/setup.sql
|
psql -d mastodon_development < tests/setup.sql
|
||||||
|
|
||||||
|
|
|
@ -2,441 +2,174 @@ interactions:
|
||||||
- request:
|
- request:
|
||||||
body: status=Toot%21
|
body: status=Toot%21
|
||||||
headers:
|
headers:
|
||||||
Accept:
|
Accept: ['*/*']
|
||||||
- '*/*'
|
Accept-Encoding: ['gzip, deflate']
|
||||||
Accept-Encoding:
|
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
||||||
- gzip, deflate
|
Connection: [keep-alive]
|
||||||
Authorization:
|
Content-Length: ['14']
|
||||||
- Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
|
Content-Type: [application/x-www-form-urlencoded]
|
||||||
Connection:
|
User-Agent: [python-requests/2.18.4]
|
||||||
- keep-alive
|
|
||||||
Content-Length:
|
|
||||||
- '14'
|
|
||||||
Content-Type:
|
|
||||||
- application/x-www-form-urlencoded
|
|
||||||
User-Agent:
|
|
||||||
- python-requests/2.22.0
|
|
||||||
method: POST
|
method: POST
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
uri: http://localhost:3000/api/v1/statuses
|
||||||
response:
|
response:
|
||||||
body:
|
body: {string: '{"id":"103704183225122470","created_at":"2020-02-22T19:37:36.738Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704183225122470","url":"http://localhost/@mastodonpy_test/103704183225122470","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
||||||
string: '{"id":"108532515807337403","created_at":"2022-06-24T12:46:05.129Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/108532515807337403","url":"http://localhost/@mastodonpy_test/108532515807337403","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"discoverable":null,"group":false,"created_at":"2022-06-24T00:00:00.000Z","note":"","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2022-06-24","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'
|
|
||||||
headers:
|
headers:
|
||||||
Cache-Control:
|
Cache-Control: ['no-cache, no-store']
|
||||||
- no-store
|
Content-Type: [application/json; charset=utf-8]
|
||||||
Content-Security-Policy:
|
Referrer-Policy: [strict-origin-when-cross-origin]
|
||||||
- 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
|
Transfer-Encoding: [chunked]
|
||||||
''self'' http://localhost; img-src ''self'' https: data: blob: http://localhost;
|
Vary: ['Accept-Encoding, Origin']
|
||||||
style-src ''self'' http://localhost ''nonce-s4DtHaGKm+Sv7S0opGjkuA==''; media-src
|
X-Content-Type-Options: [nosniff]
|
||||||
''self'' https: data: http://localhost; frame-src ''self'' https:; manifest-src
|
X-Download-Options: [noopen]
|
||||||
''self'' http://localhost; connect-src ''self'' data: blob: http://localhost
|
X-Frame-Options: [SAMEORIGIN]
|
||||||
http://files.example.com ws://localhost:4000 ws://localhost:3035 http://localhost:3035;
|
X-Permitted-Cross-Domain-Policies: [none]
|
||||||
script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' http://localhost; child-src
|
X-Request-Id: [4c259279-4810-4065-bda7-44fdd2e5e769]
|
||||||
''self'' blob: http://localhost; worker-src ''self'' blob: http://localhost'
|
X-Runtime: ['0.160125']
|
||||||
Content-Type:
|
X-XSS-Protection: [1; mode=block]
|
||||||
- application/json; charset=utf-8
|
content-length: ['1320']
|
||||||
ETag:
|
status: {code: 200, message: OK}
|
||||||
- W/"16c19c98c5667003bada6cc08d6a9efd"
|
|
||||||
Referrer-Policy:
|
|
||||||
- strict-origin-when-cross-origin
|
|
||||||
Transfer-Encoding:
|
|
||||||
- chunked
|
|
||||||
Vary:
|
|
||||||
- Accept, Accept-Encoding, Origin
|
|
||||||
X-Content-Type-Options:
|
|
||||||
- nosniff
|
|
||||||
X-Download-Options:
|
|
||||||
- noopen
|
|
||||||
X-Frame-Options:
|
|
||||||
- SAMEORIGIN
|
|
||||||
X-Permitted-Cross-Domain-Policies:
|
|
||||||
- none
|
|
||||||
X-RateLimit-Limit:
|
|
||||||
- '300'
|
|
||||||
X-RateLimit-Remaining:
|
|
||||||
- '290'
|
|
||||||
X-RateLimit-Reset:
|
|
||||||
- '2022-06-24T15:00:00.156190Z'
|
|
||||||
X-Request-Id:
|
|
||||||
- a38516b7-de3e-4c49-9405-0bded1f29145
|
|
||||||
X-Runtime:
|
|
||||||
- '0.047610'
|
|
||||||
X-XSS-Protection:
|
|
||||||
- 1; mode=block
|
|
||||||
content-length:
|
|
||||||
- '1308'
|
|
||||||
status:
|
|
||||||
code: 200
|
|
||||||
message: OK
|
|
||||||
- request:
|
- request:
|
||||||
body: null
|
body: null
|
||||||
headers:
|
headers:
|
||||||
Accept:
|
Accept: ['*/*']
|
||||||
- '*/*'
|
Accept-Encoding: ['gzip, deflate']
|
||||||
Accept-Encoding:
|
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
||||||
- gzip, deflate
|
Connection: [keep-alive]
|
||||||
Authorization:
|
Content-Length: ['0']
|
||||||
- Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
|
User-Agent: [python-requests/2.18.4]
|
||||||
Connection:
|
|
||||||
- keep-alive
|
|
||||||
Content-Length:
|
|
||||||
- '0'
|
|
||||||
User-Agent:
|
|
||||||
- python-requests/2.22.0
|
|
||||||
method: POST
|
method: POST
|
||||||
uri: http://localhost:3000/api/v1/statuses/108532515807337403/bookmark
|
uri: http://localhost:3000/api/v1/statuses/103704183225122470/bookmark
|
||||||
response:
|
response:
|
||||||
body:
|
body: {string: '{"id":"103704183225122470","created_at":"2020-02-22T19:37:36.738Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704183225122470","url":"http://localhost/@mastodonpy_test/103704183225122470","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":true,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
||||||
string: '{"id":"108532515807337403","created_at":"2022-06-24T12:46:05.129Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/108532515807337403","url":"http://localhost/@mastodonpy_test/108532515807337403","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":true,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"discoverable":null,"group":false,"created_at":"2022-06-24T00:00:00.000Z","note":"","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2022-06-24","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'
|
|
||||||
headers:
|
headers:
|
||||||
Cache-Control:
|
Cache-Control: ['no-cache, no-store']
|
||||||
- no-store
|
Content-Type: [application/json; charset=utf-8]
|
||||||
Content-Security-Policy:
|
Referrer-Policy: [strict-origin-when-cross-origin]
|
||||||
- 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
|
Transfer-Encoding: [chunked]
|
||||||
''self'' http://localhost; img-src ''self'' https: data: blob: http://localhost;
|
Vary: ['Accept-Encoding, Origin']
|
||||||
style-src ''self'' http://localhost ''nonce-r/DodIkic+v9H9lAcksQVw==''; media-src
|
X-Content-Type-Options: [nosniff]
|
||||||
''self'' https: data: http://localhost; frame-src ''self'' https:; manifest-src
|
X-Download-Options: [noopen]
|
||||||
''self'' http://localhost; connect-src ''self'' data: blob: http://localhost
|
X-Frame-Options: [SAMEORIGIN]
|
||||||
http://files.example.com ws://localhost:4000 ws://localhost:3035 http://localhost:3035;
|
X-Permitted-Cross-Domain-Policies: [none]
|
||||||
script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' http://localhost; child-src
|
X-Request-Id: [a0ef24c0-bc8d-45ef-80af-0737f40f4191]
|
||||||
''self'' blob: http://localhost; worker-src ''self'' blob: http://localhost'
|
X-Runtime: ['0.157864']
|
||||||
Content-Type:
|
X-XSS-Protection: [1; mode=block]
|
||||||
- application/json; charset=utf-8
|
content-length: ['1319']
|
||||||
ETag:
|
status: {code: 200, message: OK}
|
||||||
- W/"bb1e121980e105d13ea65b61a8fe3f9e"
|
|
||||||
Referrer-Policy:
|
|
||||||
- strict-origin-when-cross-origin
|
|
||||||
Transfer-Encoding:
|
|
||||||
- chunked
|
|
||||||
Vary:
|
|
||||||
- Accept, Accept-Encoding, Origin
|
|
||||||
X-Content-Type-Options:
|
|
||||||
- nosniff
|
|
||||||
X-Download-Options:
|
|
||||||
- noopen
|
|
||||||
X-Frame-Options:
|
|
||||||
- SAMEORIGIN
|
|
||||||
X-Permitted-Cross-Domain-Policies:
|
|
||||||
- none
|
|
||||||
X-Request-Id:
|
|
||||||
- 4af13637-38f4-41d6-ad47-756de2626bf3
|
|
||||||
X-Runtime:
|
|
||||||
- '0.041993'
|
|
||||||
X-XSS-Protection:
|
|
||||||
- 1; mode=block
|
|
||||||
content-length:
|
|
||||||
- '1307'
|
|
||||||
status:
|
|
||||||
code: 200
|
|
||||||
message: OK
|
|
||||||
- request:
|
- request:
|
||||||
body: null
|
body: null
|
||||||
headers:
|
headers:
|
||||||
Accept:
|
Accept: ['*/*']
|
||||||
- '*/*'
|
Accept-Encoding: ['gzip, deflate']
|
||||||
Accept-Encoding:
|
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
||||||
- gzip, deflate
|
Connection: [keep-alive]
|
||||||
Authorization:
|
User-Agent: [python-requests/2.18.4]
|
||||||
- Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
|
|
||||||
Connection:
|
|
||||||
- keep-alive
|
|
||||||
User-Agent:
|
|
||||||
- python-requests/2.22.0
|
|
||||||
method: GET
|
method: GET
|
||||||
uri: http://localhost:3000/api/v1/bookmarks
|
uri: http://localhost:3000/api/v1/bookmarks
|
||||||
response:
|
response:
|
||||||
body:
|
body: {string: '[{"id":"103704183225122470","created_at":"2020-02-22T19:37:36.738Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704183225122470","url":"http://localhost/@mastodonpy_test/103704183225122470","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":true,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
||||||
string: '[{"id":"108532515807337403","created_at":"2022-06-24T12:46:05.129Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/108532515807337403","url":"http://localhost/@mastodonpy_test/108532515807337403","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":true,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}]'}
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"discoverable":null,"group":false,"created_at":"2022-06-24T00:00:00.000Z","note":"","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2022-06-24","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}]'
|
|
||||||
headers:
|
headers:
|
||||||
Cache-Control:
|
Cache-Control: ['no-cache, no-store']
|
||||||
- no-store
|
Content-Type: [application/json; charset=utf-8]
|
||||||
Content-Security-Policy:
|
Link: ['<http://localhost:3000/api/v1/bookmarks?min_id=2>; rel="prev"']
|
||||||
- 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
|
Referrer-Policy: [strict-origin-when-cross-origin]
|
||||||
''self'' http://localhost; img-src ''self'' https: data: blob: http://localhost;
|
Transfer-Encoding: [chunked]
|
||||||
style-src ''self'' http://localhost ''nonce-EEFQZtT2hj45UYMa5FifxA==''; media-src
|
Vary: ['Accept-Encoding, Origin']
|
||||||
''self'' https: data: http://localhost; frame-src ''self'' https:; manifest-src
|
X-Content-Type-Options: [nosniff]
|
||||||
''self'' http://localhost; connect-src ''self'' data: blob: http://localhost
|
X-Download-Options: [noopen]
|
||||||
http://files.example.com ws://localhost:4000 ws://localhost:3035 http://localhost:3035;
|
X-Frame-Options: [SAMEORIGIN]
|
||||||
script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' http://localhost; child-src
|
X-Permitted-Cross-Domain-Policies: [none]
|
||||||
''self'' blob: http://localhost; worker-src ''self'' blob: http://localhost'
|
X-Request-Id: [e6548f1e-3d17-46be-aca7-f310783119a8]
|
||||||
Content-Type:
|
X-Runtime: ['0.075518']
|
||||||
- application/json; charset=utf-8
|
X-XSS-Protection: [1; mode=block]
|
||||||
ETag:
|
content-length: ['1321']
|
||||||
- W/"e28cea671d77758e8cd2652347a030d1"
|
status: {code: 200, message: OK}
|
||||||
Link:
|
|
||||||
- <http://localhost:3000/api/v1/bookmarks?min_id=11>; rel="prev"
|
|
||||||
Referrer-Policy:
|
|
||||||
- strict-origin-when-cross-origin
|
|
||||||
Transfer-Encoding:
|
|
||||||
- chunked
|
|
||||||
Vary:
|
|
||||||
- Accept, Accept-Encoding, Origin
|
|
||||||
X-Content-Type-Options:
|
|
||||||
- nosniff
|
|
||||||
X-Download-Options:
|
|
||||||
- noopen
|
|
||||||
X-Frame-Options:
|
|
||||||
- SAMEORIGIN
|
|
||||||
X-Permitted-Cross-Domain-Policies:
|
|
||||||
- none
|
|
||||||
X-Request-Id:
|
|
||||||
- 0fe7aaf8-add4-4523-a98f-22608f714cad
|
|
||||||
X-Runtime:
|
|
||||||
- '0.036771'
|
|
||||||
X-XSS-Protection:
|
|
||||||
- 1; mode=block
|
|
||||||
content-length:
|
|
||||||
- '1309'
|
|
||||||
status:
|
|
||||||
code: 200
|
|
||||||
message: OK
|
|
||||||
- request:
|
- request:
|
||||||
body: null
|
body: null
|
||||||
headers:
|
headers:
|
||||||
Accept:
|
Accept: ['*/*']
|
||||||
- '*/*'
|
Accept-Encoding: ['gzip, deflate']
|
||||||
Accept-Encoding:
|
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
||||||
- gzip, deflate
|
Connection: [keep-alive]
|
||||||
Authorization:
|
Content-Length: ['0']
|
||||||
- Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
|
User-Agent: [python-requests/2.18.4]
|
||||||
Connection:
|
|
||||||
- keep-alive
|
|
||||||
User-Agent:
|
|
||||||
- python-requests/2.22.0
|
|
||||||
method: GET
|
|
||||||
uri: http://localhost:3000/api/v1/bookmarks?limit=1
|
|
||||||
response:
|
|
||||||
body:
|
|
||||||
string: '[{"id":"108532515807337403","created_at":"2022-06-24T12:46:05.129Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/108532515807337403","url":"http://localhost/@mastodonpy_test/108532515807337403","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":true,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"discoverable":null,"group":false,"created_at":"2022-06-24T00:00:00.000Z","note":"","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2022-06-24","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}]'
|
|
||||||
headers:
|
|
||||||
Cache-Control:
|
|
||||||
- no-store
|
|
||||||
Content-Security-Policy:
|
|
||||||
- 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
|
|
||||||
''self'' http://localhost; img-src ''self'' https: data: blob: http://localhost;
|
|
||||||
style-src ''self'' http://localhost ''nonce-wzGUumpjXwVRz6YQjB+AhQ==''; media-src
|
|
||||||
''self'' https: data: http://localhost; frame-src ''self'' https:; manifest-src
|
|
||||||
''self'' http://localhost; connect-src ''self'' data: blob: http://localhost
|
|
||||||
http://files.example.com ws://localhost:4000 ws://localhost:3035 http://localhost:3035;
|
|
||||||
script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' http://localhost; child-src
|
|
||||||
''self'' blob: http://localhost; worker-src ''self'' blob: http://localhost'
|
|
||||||
Content-Type:
|
|
||||||
- application/json; charset=utf-8
|
|
||||||
ETag:
|
|
||||||
- W/"e28cea671d77758e8cd2652347a030d1"
|
|
||||||
Link:
|
|
||||||
- <http://localhost:3000/api/v1/bookmarks?limit=1&max_id=11>; rel="next", <http://localhost:3000/api/v1/bookmarks?limit=1&min_id=11>;
|
|
||||||
rel="prev"
|
|
||||||
Referrer-Policy:
|
|
||||||
- strict-origin-when-cross-origin
|
|
||||||
Transfer-Encoding:
|
|
||||||
- chunked
|
|
||||||
Vary:
|
|
||||||
- Accept, Accept-Encoding, Origin
|
|
||||||
X-Content-Type-Options:
|
|
||||||
- nosniff
|
|
||||||
X-Download-Options:
|
|
||||||
- noopen
|
|
||||||
X-Frame-Options:
|
|
||||||
- SAMEORIGIN
|
|
||||||
X-Permitted-Cross-Domain-Policies:
|
|
||||||
- none
|
|
||||||
X-Request-Id:
|
|
||||||
- 7c887921-a7ee-478d-8e68-61359f4eacaf
|
|
||||||
X-Runtime:
|
|
||||||
- '0.037690'
|
|
||||||
X-XSS-Protection:
|
|
||||||
- 1; mode=block
|
|
||||||
content-length:
|
|
||||||
- '1309'
|
|
||||||
status:
|
|
||||||
code: 200
|
|
||||||
message: OK
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept:
|
|
||||||
- '*/*'
|
|
||||||
Accept-Encoding:
|
|
||||||
- gzip, deflate
|
|
||||||
Authorization:
|
|
||||||
- Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
|
|
||||||
Connection:
|
|
||||||
- keep-alive
|
|
||||||
Content-Length:
|
|
||||||
- '0'
|
|
||||||
User-Agent:
|
|
||||||
- python-requests/2.22.0
|
|
||||||
method: POST
|
method: POST
|
||||||
uri: http://localhost:3000/api/v1/statuses/108532515807337403/unbookmark
|
uri: http://localhost:3000/api/v1/statuses/103704183225122470/unbookmark
|
||||||
response:
|
response:
|
||||||
body:
|
body: {string: '{"id":"103704183225122470","created_at":"2020-02-22T19:37:36.738Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704183225122470","url":"http://localhost/@mastodonpy_test/103704183225122470","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
||||||
string: '{"id":"108532515807337403","created_at":"2022-06-24T12:46:05.129Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/108532515807337403","url":"http://localhost/@mastodonpy_test/108532515807337403","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"discoverable":null,"group":false,"created_at":"2022-06-24T00:00:00.000Z","note":"","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2022-06-24","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'
|
|
||||||
headers:
|
headers:
|
||||||
Cache-Control:
|
Cache-Control: ['no-cache, no-store']
|
||||||
- no-store
|
Content-Type: [application/json; charset=utf-8]
|
||||||
Content-Security-Policy:
|
Referrer-Policy: [strict-origin-when-cross-origin]
|
||||||
- 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
|
Transfer-Encoding: [chunked]
|
||||||
''self'' http://localhost; img-src ''self'' https: data: blob: http://localhost;
|
Vary: ['Accept-Encoding, Origin']
|
||||||
style-src ''self'' http://localhost ''nonce-x2CjCkxjnkvgJiPtS/CoIg==''; media-src
|
X-Content-Type-Options: [nosniff]
|
||||||
''self'' https: data: http://localhost; frame-src ''self'' https:; manifest-src
|
X-Download-Options: [noopen]
|
||||||
''self'' http://localhost; connect-src ''self'' data: blob: http://localhost
|
X-Frame-Options: [SAMEORIGIN]
|
||||||
http://files.example.com ws://localhost:4000 ws://localhost:3035 http://localhost:3035;
|
X-Permitted-Cross-Domain-Policies: [none]
|
||||||
script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' http://localhost; child-src
|
X-Request-Id: [d9792c38-ab1e-46de-9737-704433ad8f94]
|
||||||
''self'' blob: http://localhost; worker-src ''self'' blob: http://localhost'
|
X-Runtime: ['0.095876']
|
||||||
Content-Type:
|
X-XSS-Protection: [1; mode=block]
|
||||||
- application/json; charset=utf-8
|
content-length: ['1320']
|
||||||
ETag:
|
status: {code: 200, message: OK}
|
||||||
- W/"16c19c98c5667003bada6cc08d6a9efd"
|
|
||||||
Referrer-Policy:
|
|
||||||
- strict-origin-when-cross-origin
|
|
||||||
Transfer-Encoding:
|
|
||||||
- chunked
|
|
||||||
Vary:
|
|
||||||
- Accept, Accept-Encoding, Origin
|
|
||||||
X-Content-Type-Options:
|
|
||||||
- nosniff
|
|
||||||
X-Download-Options:
|
|
||||||
- noopen
|
|
||||||
X-Frame-Options:
|
|
||||||
- SAMEORIGIN
|
|
||||||
X-Permitted-Cross-Domain-Policies:
|
|
||||||
- none
|
|
||||||
X-Request-Id:
|
|
||||||
- 61142a88-6453-47c6-8230-6b6196efb64c
|
|
||||||
X-Runtime:
|
|
||||||
- '0.035340'
|
|
||||||
X-XSS-Protection:
|
|
||||||
- 1; mode=block
|
|
||||||
content-length:
|
|
||||||
- '1308'
|
|
||||||
status:
|
|
||||||
code: 200
|
|
||||||
message: OK
|
|
||||||
- request:
|
- request:
|
||||||
body: null
|
body: null
|
||||||
headers:
|
headers:
|
||||||
Accept:
|
Accept: ['*/*']
|
||||||
- '*/*'
|
Accept-Encoding: ['gzip, deflate']
|
||||||
Accept-Encoding:
|
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
||||||
- gzip, deflate
|
Connection: [keep-alive]
|
||||||
Authorization:
|
User-Agent: [python-requests/2.18.4]
|
||||||
- Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
|
|
||||||
Connection:
|
|
||||||
- keep-alive
|
|
||||||
User-Agent:
|
|
||||||
- python-requests/2.22.0
|
|
||||||
method: GET
|
method: GET
|
||||||
uri: http://localhost:3000/api/v1/bookmarks
|
uri: http://localhost:3000/api/v1/bookmarks
|
||||||
response:
|
response:
|
||||||
body:
|
body: {string: '[]'}
|
||||||
string: '[]'
|
|
||||||
headers:
|
headers:
|
||||||
Cache-Control:
|
Cache-Control: ['no-cache, no-store']
|
||||||
- no-store
|
Content-Type: [application/json; charset=utf-8]
|
||||||
Content-Security-Policy:
|
Referrer-Policy: [strict-origin-when-cross-origin]
|
||||||
- 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
|
Transfer-Encoding: [chunked]
|
||||||
''self'' http://localhost; img-src ''self'' https: data: blob: http://localhost;
|
Vary: ['Accept-Encoding, Origin']
|
||||||
style-src ''self'' http://localhost ''nonce-i6oSjmQ5IE8wtOR+vDrGZw==''; media-src
|
X-Content-Type-Options: [nosniff]
|
||||||
''self'' https: data: http://localhost; frame-src ''self'' https:; manifest-src
|
X-Download-Options: [noopen]
|
||||||
''self'' http://localhost; connect-src ''self'' data: blob: http://localhost
|
X-Frame-Options: [SAMEORIGIN]
|
||||||
http://files.example.com ws://localhost:4000 ws://localhost:3035 http://localhost:3035;
|
X-Permitted-Cross-Domain-Policies: [none]
|
||||||
script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' http://localhost; child-src
|
X-Request-Id: [8454c5ef-5f23-43b9-89d8-dc1b1605f7ac]
|
||||||
''self'' blob: http://localhost; worker-src ''self'' blob: http://localhost'
|
X-Runtime: ['0.035375']
|
||||||
Content-Type:
|
X-XSS-Protection: [1; mode=block]
|
||||||
- application/json; charset=utf-8
|
content-length: ['2']
|
||||||
ETag:
|
status: {code: 200, message: OK}
|
||||||
- W/"aaa12070e167024a89ca985596a44579"
|
|
||||||
Referrer-Policy:
|
|
||||||
- strict-origin-when-cross-origin
|
|
||||||
Transfer-Encoding:
|
|
||||||
- chunked
|
|
||||||
Vary:
|
|
||||||
- Accept, Accept-Encoding, Origin
|
|
||||||
X-Content-Type-Options:
|
|
||||||
- nosniff
|
|
||||||
X-Download-Options:
|
|
||||||
- noopen
|
|
||||||
X-Frame-Options:
|
|
||||||
- SAMEORIGIN
|
|
||||||
X-Permitted-Cross-Domain-Policies:
|
|
||||||
- none
|
|
||||||
X-Request-Id:
|
|
||||||
- 639bbb25-65a5-44eb-a886-d7092f891ecb
|
|
||||||
X-Runtime:
|
|
||||||
- '0.014781'
|
|
||||||
X-XSS-Protection:
|
|
||||||
- 1; mode=block
|
|
||||||
content-length:
|
|
||||||
- '2'
|
|
||||||
status:
|
|
||||||
code: 200
|
|
||||||
message: OK
|
|
||||||
- request:
|
- request:
|
||||||
body: null
|
body: null
|
||||||
headers:
|
headers:
|
||||||
Accept:
|
Accept: ['*/*']
|
||||||
- '*/*'
|
Accept-Encoding: ['gzip, deflate']
|
||||||
Accept-Encoding:
|
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
||||||
- gzip, deflate
|
Connection: [keep-alive]
|
||||||
Authorization:
|
Content-Length: ['0']
|
||||||
- Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
|
User-Agent: [python-requests/2.18.4]
|
||||||
Connection:
|
|
||||||
- keep-alive
|
|
||||||
Content-Length:
|
|
||||||
- '0'
|
|
||||||
User-Agent:
|
|
||||||
- python-requests/2.22.0
|
|
||||||
method: DELETE
|
method: DELETE
|
||||||
uri: http://localhost:3000/api/v1/statuses/108532515807337403
|
uri: http://localhost:3000/api/v1/statuses/103704183225122470
|
||||||
response:
|
response:
|
||||||
body:
|
body: {string: '{"id":"103704183225122470","created_at":"2020-02-22T19:37:36.738Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704183225122470","url":"http://localhost/@mastodonpy_test/103704183225122470","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot!","reblog":null,"application":{"name":"Mastodon.py
|
||||||
string: '{"id":"108532515807337403","created_at":"2022-06-24T12:46:05.129Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/108532515807337403","url":"http://localhost/@mastodonpy_test/108532515807337403","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot!","reblog":null,"application":{"name":"Mastodon.py
|
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"discoverable":null,"group":false,"created_at":"2022-06-24T00:00:00.000Z","note":"","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":0,"last_status_at":"2022-06-24","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'
|
|
||||||
headers:
|
headers:
|
||||||
Cache-Control:
|
Cache-Control: ['no-cache, no-store']
|
||||||
- no-store
|
Content-Type: [application/json; charset=utf-8]
|
||||||
Content-Security-Policy:
|
Referrer-Policy: [strict-origin-when-cross-origin]
|
||||||
- 'base-uri ''none''; default-src ''none''; frame-ancestors ''none''; font-src
|
Transfer-Encoding: [chunked]
|
||||||
''self'' http://localhost; img-src ''self'' https: data: blob: http://localhost;
|
Vary: ['Accept-Encoding, Origin']
|
||||||
style-src ''self'' http://localhost ''nonce-9ZHC6oHcDEPPkskChbQjOQ==''; media-src
|
X-Content-Type-Options: [nosniff]
|
||||||
''self'' https: data: http://localhost; frame-src ''self'' https:; manifest-src
|
X-Download-Options: [noopen]
|
||||||
''self'' http://localhost; connect-src ''self'' data: blob: http://localhost
|
X-Frame-Options: [SAMEORIGIN]
|
||||||
http://files.example.com ws://localhost:4000 ws://localhost:3035 http://localhost:3035;
|
X-Permitted-Cross-Domain-Policies: [none]
|
||||||
script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' http://localhost; child-src
|
X-Request-Id: [c222a2ef-6671-4d1c-97be-0a4e2b2f6a14]
|
||||||
''self'' blob: http://localhost; worker-src ''self'' blob: http://localhost'
|
X-Runtime: ['0.122283']
|
||||||
Content-Type:
|
X-XSS-Protection: [1; mode=block]
|
||||||
- application/json; charset=utf-8
|
content-length: ['1290']
|
||||||
ETag:
|
status: {code: 200, message: OK}
|
||||||
- W/"efc9742f5a2c445d981fd8b15ed77122"
|
|
||||||
Referrer-Policy:
|
|
||||||
- strict-origin-when-cross-origin
|
|
||||||
Transfer-Encoding:
|
|
||||||
- chunked
|
|
||||||
Vary:
|
|
||||||
- Accept, Accept-Encoding, Origin
|
|
||||||
X-Content-Type-Options:
|
|
||||||
- nosniff
|
|
||||||
X-Download-Options:
|
|
||||||
- noopen
|
|
||||||
X-Frame-Options:
|
|
||||||
- SAMEORIGIN
|
|
||||||
X-Permitted-Cross-Domain-Policies:
|
|
||||||
- none
|
|
||||||
X-Request-Id:
|
|
||||||
- 1ca08d80-70b4-4aa9-abfe-5ca3286f63b8
|
|
||||||
X-Runtime:
|
|
||||||
- '0.037653'
|
|
||||||
X-XSS-Protection:
|
|
||||||
- 1; mode=block
|
|
||||||
content-length:
|
|
||||||
- '1278'
|
|
||||||
status:
|
|
||||||
code: 200
|
|
||||||
message: OK
|
|
||||||
version: 1
|
version: 1
|
||||||
|
|
|
@ -10,13 +10,10 @@ interactions:
|
||||||
method: GET
|
method: GET
|
||||||
uri: http://localhost:3000/api/v1/domain_blocks
|
uri: http://localhost:3000/api/v1/domain_blocks
|
||||||
response:
|
response:
|
||||||
body: {string: '["example.com"]'}
|
body: {string: '[]'}
|
||||||
headers:
|
headers:
|
||||||
Cache-Control: ['no-cache, no-store']
|
Cache-Control: ['no-cache, no-store']
|
||||||
Content-Type: [application/json; charset=utf-8]
|
Content-Type: [application/json; charset=utf-8]
|
||||||
Link: ['<http://localhost:3000/api/v1/domain_blocks?max_id=10023>;
|
|
||||||
rel="next", <http://localhost:3000/api/v1/domain_blocks?min_id=10021>;
|
|
||||||
rel="prev"']
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
Referrer-Policy: [strict-origin-when-cross-origin]
|
||||||
Transfer-Encoding: [chunked]
|
Transfer-Encoding: [chunked]
|
||||||
Vary: ['Accept-Encoding, Origin']
|
Vary: ['Accept-Encoding, Origin']
|
||||||
|
@ -27,6 +24,6 @@ interactions:
|
||||||
X-Request-Id: [79ec8c37-a374-47e4-a698-a8b8511ca20f]
|
X-Request-Id: [79ec8c37-a374-47e4-a698-a8b8511ca20f]
|
||||||
X-Runtime: ['0.098492']
|
X-Runtime: ['0.098492']
|
||||||
X-XSS-Protection: [1; mode=block]
|
X-XSS-Protection: [1; mode=block]
|
||||||
content-length: ['15']
|
content-length: ['2']
|
||||||
status: {code: 200, message: OK}
|
status: {code: 200, message: OK}
|
||||||
version: 1
|
version: 1
|
||||||
|
|
|
@ -1,749 +0,0 @@
|
||||||
interactions:
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: GET
|
|
||||||
uri: http://localhost:3000/api/v1/accounts/verify_credentials
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2020-02-22","source":{"privacy":"public","sensitive":false,"language":null,"note":"","fields":[],"follow_requests_count":0},"emojis":[],"fields":[]}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [ae32b16c-712a-4109-88b9-392036a21925]
|
|
||||||
X-Runtime: ['0.651439']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['745']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+0%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149189751466","created_at":"2020-02-22T19:28:57.717Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149189751466","url":"http://localhost/@mastodonpy_test/103704149189751466","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 0!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":2,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [f17c9f1b-ccda-4ffb-8677-931a2bcd778b]
|
|
||||||
X-Runtime: ['0.801649']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1329']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+1%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149240204204","created_at":"2020-02-22T19:28:58.181Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149240204204","url":"http://localhost/@mastodonpy_test/103704149240204204","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 1!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [d3af53b9-a9f0-41ce-b0c4-1a69b7e7f18a]
|
|
||||||
X-Runtime: ['0.211565']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1329']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+2%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149255716248","created_at":"2020-02-22T19:28:58.413Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149255716248","url":"http://localhost/@mastodonpy_test/103704149255716248","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 2!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":4,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [dc3327da-8fc5-46c6-8759-8953392d450d]
|
|
||||||
X-Runtime: ['0.211682']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1329']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+3%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149270849591","created_at":"2020-02-22T19:28:58.643Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149270849591","url":"http://localhost/@mastodonpy_test/103704149270849591","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 3!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":5,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [3b34502f-358b-4f69-a8a7-b72cee3056a0]
|
|
||||||
X-Runtime: ['0.205497']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1329']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+4%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149285153724","created_at":"2020-02-22T19:28:58.863Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149285153724","url":"http://localhost/@mastodonpy_test/103704149285153724","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 4!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":6,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [49cc87eb-ae66-4bbb-8fca-79277c82b4b6]
|
|
||||||
X-Runtime: ['0.214698']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1329']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+5%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149300069225","created_at":"2020-02-22T19:28:59.095Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149300069225","url":"http://localhost/@mastodonpy_test/103704149300069225","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 5!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":7,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [c0aed740-e674-4ca5-8e98-f4cba0044418]
|
|
||||||
X-Runtime: ['0.225727']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1329']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+6%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149316561035","created_at":"2020-02-22T19:28:59.341Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149316561035","url":"http://localhost/@mastodonpy_test/103704149316561035","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 6!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":8,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [93854c13-4b4c-420e-a825-c65efae49785]
|
|
||||||
X-Runtime: ['0.251071']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1329']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+7%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149334172751","created_at":"2020-02-22T19:28:59.612Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149334172751","url":"http://localhost/@mastodonpy_test/103704149334172751","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 7!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":9,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [31c48d09-3509-4a99-ba24-5c08cc689296]
|
|
||||||
X-Runtime: ['0.203192']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1329']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+8%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149348344165","created_at":"2020-02-22T19:28:59.827Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149348344165","url":"http://localhost/@mastodonpy_test/103704149348344165","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 8!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":10,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [24ce9bfd-9f86-4a6a-b889-998c58c137f2]
|
|
||||||
X-Runtime: ['0.223554']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1330']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: status=Toot+number+9%21
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['23']
|
|
||||||
Content-Type: [application/x-www-form-urlencoded]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: POST
|
|
||||||
uri: http://localhost:3000/api/v1/statuses
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149365440398","created_at":"2020-02-22T19:29:00.089Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149365440398","url":"http://localhost/@mastodonpy_test/103704149365440398","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 9!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [98577765-f52d-4994-a792-36c9eef95f62]
|
|
||||||
X-Runtime: ['0.228954']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1330']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: GET
|
|
||||||
uri: http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5
|
|
||||||
response:
|
|
||||||
body: {string: '[{"id":"103704149365440398","created_at":"2020-02-22T19:29:00.089Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149365440398","url":"http://localhost/@mastodonpy_test/103704149365440398","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 9!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149348344165","created_at":"2020-02-22T19:28:59.827Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149348344165","url":"http://localhost/@mastodonpy_test/103704149348344165","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 8!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149334172751","created_at":"2020-02-22T19:28:59.612Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149334172751","url":"http://localhost/@mastodonpy_test/103704149334172751","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 7!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149316561035","created_at":"2020-02-22T19:28:59.341Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149316561035","url":"http://localhost/@mastodonpy_test/103704149316561035","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 6!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149300069225","created_at":"2020-02-22T19:28:59.095Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149300069225","url":"http://localhost/@mastodonpy_test/103704149300069225","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 5!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}]'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Link: ['<http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5&max_id=103704149300069225>;
|
|
||||||
rel="next", <http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5&min_id=103704149365440398>;
|
|
||||||
rel="prev"']
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [4960311a-9e9a-4722-9417-5a34c30c805b]
|
|
||||||
X-Runtime: ['0.338488']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['6656']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: GET
|
|
||||||
uri: http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5&max_id=103704149300069225
|
|
||||||
response:
|
|
||||||
body: {string: '[{"id":"103704149285153724","created_at":"2020-02-22T19:28:58.863Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149285153724","url":"http://localhost/@mastodonpy_test/103704149285153724","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 4!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149270849591","created_at":"2020-02-22T19:28:58.643Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149270849591","url":"http://localhost/@mastodonpy_test/103704149270849591","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 3!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149255716248","created_at":"2020-02-22T19:28:58.413Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149255716248","url":"http://localhost/@mastodonpy_test/103704149255716248","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 2!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149240204204","created_at":"2020-02-22T19:28:58.181Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149240204204","url":"http://localhost/@mastodonpy_test/103704149240204204","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 1!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149189751466","created_at":"2020-02-22T19:28:57.717Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149189751466","url":"http://localhost/@mastodonpy_test/103704149189751466","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 0!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}]'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Link: ['<http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5&max_id=103704149189751466>;
|
|
||||||
rel="next", <http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5&min_id=103704149285153724>;
|
|
||||||
rel="prev"']
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [aa025632-b316-43c0-afc5-243f62d2b6b8]
|
|
||||||
X-Runtime: ['0.201975']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['6656']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: GET
|
|
||||||
uri: http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5&min_id=103704149285153724
|
|
||||||
response:
|
|
||||||
body: {string: '[{"id":"103704149365440398","created_at":"2020-02-22T19:29:00.089Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149365440398","url":"http://localhost/@mastodonpy_test/103704149365440398","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 9!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149348344165","created_at":"2020-02-22T19:28:59.827Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149348344165","url":"http://localhost/@mastodonpy_test/103704149348344165","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 8!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149334172751","created_at":"2020-02-22T19:28:59.612Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149334172751","url":"http://localhost/@mastodonpy_test/103704149334172751","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 7!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149316561035","created_at":"2020-02-22T19:28:59.341Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149316561035","url":"http://localhost/@mastodonpy_test/103704149316561035","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 6!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null},{"id":"103704149300069225","created_at":"2020-02-22T19:28:59.095Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149300069225","url":"http://localhost/@mastodonpy_test/103704149300069225","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003eToot
|
|
||||||
number 5!\u003c/p\u003e","reblog":null,"application":{"name":"Mastodon.py
|
|
||||||
test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}]'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Link: ['<http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5&max_id=103704149300069225>;
|
|
||||||
rel="next", <http://localhost:3000/api/v1/accounts/1234567890123456/statuses?limit=5&min_id=103704149365440398>;
|
|
||||||
rel="prev"']
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [03a7b3a0-09b2-4281-833e-d5885806890e]
|
|
||||||
X-Runtime: ['0.169965']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['6656']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149189751466
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149189751466","created_at":"2020-02-22T19:28:57.717Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149189751466","url":"http://localhost/@mastodonpy_test/103704149189751466","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 0!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":11,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [c9121201-0be7-4c73-bdce-884e21d969d4]
|
|
||||||
X-Runtime: ['0.157991']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1300']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149240204204
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149240204204","created_at":"2020-02-22T19:28:58.181Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149240204204","url":"http://localhost/@mastodonpy_test/103704149240204204","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 1!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":10,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [e2df2022-af35-41e7-ab48-c888b17fb266]
|
|
||||||
X-Runtime: ['0.205063']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1300']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149255716248
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149255716248","created_at":"2020-02-22T19:28:58.413Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149255716248","url":"http://localhost/@mastodonpy_test/103704149255716248","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 2!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":9,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [cd3f1791-e612-445c-853a-d1b49229fdc7]
|
|
||||||
X-Runtime: ['0.173011']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1299']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149270849591
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149270849591","created_at":"2020-02-22T19:28:58.643Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149270849591","url":"http://localhost/@mastodonpy_test/103704149270849591","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 3!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":8,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [86e29869-c84c-4bda-ba30-cf3b7c047351]
|
|
||||||
X-Runtime: ['0.162408']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1299']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149285153724
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149285153724","created_at":"2020-02-22T19:28:58.863Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149285153724","url":"http://localhost/@mastodonpy_test/103704149285153724","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 4!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":7,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [4c6c6433-9a62-4b28-ad17-98c12279e9da]
|
|
||||||
X-Runtime: ['0.126905']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1299']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149300069225
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149300069225","created_at":"2020-02-22T19:28:59.095Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149300069225","url":"http://localhost/@mastodonpy_test/103704149300069225","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 5!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":6,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [a4a8ad1a-7b70-4322-b524-34c7a6966505]
|
|
||||||
X-Runtime: ['0.130927']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1299']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149316561035
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149316561035","created_at":"2020-02-22T19:28:59.341Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149316561035","url":"http://localhost/@mastodonpy_test/103704149316561035","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 6!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":5,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [2a19b9cb-7487-4c3f-9b5a-f8796526945b]
|
|
||||||
X-Runtime: ['0.137676']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1299']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149334172751
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149334172751","created_at":"2020-02-22T19:28:59.612Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149334172751","url":"http://localhost/@mastodonpy_test/103704149334172751","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 7!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":4,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [7a8d07ec-da26-4554-8011-46a70cf4c356]
|
|
||||||
X-Runtime: ['0.138911']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1299']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149348344165
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149348344165","created_at":"2020-02-22T19:28:59.827Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149348344165","url":"http://localhost/@mastodonpy_test/103704149348344165","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 8!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [4cdbde9e-b14a-405e-840e-d5ebac69f1a6]
|
|
||||||
X-Runtime: ['0.143361']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1299']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
- request:
|
|
||||||
body: null
|
|
||||||
headers:
|
|
||||||
Accept: ['*/*']
|
|
||||||
Accept-Encoding: ['gzip, deflate']
|
|
||||||
Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
|
|
||||||
Connection: [keep-alive]
|
|
||||||
Content-Length: ['0']
|
|
||||||
User-Agent: [python-requests/2.18.4]
|
|
||||||
method: DELETE
|
|
||||||
uri: http://localhost:3000/api/v1/statuses/103704149365440398
|
|
||||||
response:
|
|
||||||
body: {string: '{"id":"103704149365440398","created_at":"2020-02-22T19:29:00.089Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/103704149365440398","url":"http://localhost/@mastodonpy_test/103704149365440398","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"Toot
|
|
||||||
number 9!","reblog":null,"application":{"name":"Mastodon.py test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":false,"bot":false,"discoverable":false,"group":false,"created_at":"2020-02-22T20:26:54.402Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":2,"last_status_at":"2020-02-22","emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
|
|
||||||
headers:
|
|
||||||
Cache-Control: ['no-cache, no-store']
|
|
||||||
Content-Type: [application/json; charset=utf-8]
|
|
||||||
Referrer-Policy: [strict-origin-when-cross-origin]
|
|
||||||
Transfer-Encoding: [chunked]
|
|
||||||
Vary: ['Accept-Encoding, Origin']
|
|
||||||
X-Content-Type-Options: [nosniff]
|
|
||||||
X-Download-Options: [noopen]
|
|
||||||
X-Frame-Options: [SAMEORIGIN]
|
|
||||||
X-Permitted-Cross-Domain-Policies: [none]
|
|
||||||
X-Request-Id: [41b9b30e-23fa-4929-a1a2-417ae0d28b48]
|
|
||||||
X-Runtime: ['0.130683']
|
|
||||||
X-XSS-Protection: [1; mode=block]
|
|
||||||
content-length: ['1299']
|
|
||||||
status: {code: 200, message: OK}
|
|
||||||
version: 1
|
|
|
@ -8,8 +8,7 @@ def _api(access_token='__MASTODON_PY_TEST_ACCESS_TOKEN', version="3.1.1", versio
|
||||||
client_secret='__MASTODON_PY_TEST_CLIENT_SECRET',
|
client_secret='__MASTODON_PY_TEST_CLIENT_SECRET',
|
||||||
access_token=access_token,
|
access_token=access_token,
|
||||||
mastodon_version=version,
|
mastodon_version=version,
|
||||||
version_check_mode=version_check_mode,
|
version_check_mode=version_check_mode)
|
||||||
user_agent='tests/v311')
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|
|
@ -11,11 +11,6 @@ def test_bookmarks(api, status):
|
||||||
assert len(bookmarked_statuses) > 0
|
assert len(bookmarked_statuses) > 0
|
||||||
assert status_bookmarked == bookmarked_statuses[0]
|
assert status_bookmarked == bookmarked_statuses[0]
|
||||||
|
|
||||||
bookmarked_statuses = api.bookmarks(limit=1)
|
|
||||||
assert bookmarked_statuses
|
|
||||||
assert len(bookmarked_statuses) > 0
|
|
||||||
assert status_bookmarked == bookmarked_statuses[0]
|
|
||||||
|
|
||||||
status_unbookmarked = api.status_unbookmark(status_bookmarked)
|
status_unbookmarked = api.status_unbookmark(status_bookmarked)
|
||||||
assert status_unbookmarked
|
assert status_unbookmarked
|
||||||
assert status_unbookmarked.bookmarked == False
|
assert status_unbookmarked.bookmarked == False
|
||||||
|
|
|
@ -31,7 +31,7 @@ def test_create_app(mocker, to_file=None, redirect_uris=None, website=None):
|
||||||
def test_create_app_to_file(mocker, tmpdir):
|
def test_create_app_to_file(mocker, tmpdir):
|
||||||
filepath = tmpdir.join('credentials')
|
filepath = tmpdir.join('credentials')
|
||||||
test_create_app(mocker, to_file=str(filepath))
|
test_create_app(mocker, to_file=str(filepath))
|
||||||
assert filepath.read_text('UTF-8') == "foo\nbar\nhttps://example.com\nMastodon.py test suite\n"
|
assert filepath.read_text('UTF-8') == "foo\nbar\nhttps://example.com\n"
|
||||||
|
|
||||||
def test_create_app_redirect_uris(mocker):
|
def test_create_app_redirect_uris(mocker):
|
||||||
test_create_app(mocker, redirect_uris='http://example.net')
|
test_create_app(mocker, redirect_uris='http://example.net')
|
||||||
|
|
|
@ -36,17 +36,6 @@ def test_fetch_next_previous(api):
|
||||||
|
|
||||||
@pytest.mark.vcr()
|
@pytest.mark.vcr()
|
||||||
def test_fetch_next_previous_from_pagination_info(api):
|
def test_fetch_next_previous_from_pagination_info(api):
|
||||||
account = api.account_verify_credentials()
|
|
||||||
with many_statuses(api):
|
|
||||||
statuses = api.account_statuses(account['id'], limit=5)
|
|
||||||
next_statuses = api.fetch_next(statuses._pagination_next)
|
|
||||||
assert next_statuses
|
|
||||||
previous_statuses = api.fetch_previous(next_statuses._pagination_prev)
|
|
||||||
assert previous_statuses
|
|
||||||
|
|
||||||
@pytest.mark.vcr()
|
|
||||||
def test_fetch_next_previous_from_pagination_info_oldstyle(api):
|
|
||||||
# Old style compatibility mode. The storage in the list items is not anymore internally used.
|
|
||||||
account = api.account_verify_credentials()
|
account = api.account_verify_credentials()
|
||||||
with many_statuses(api):
|
with many_statuses(api):
|
||||||
statuses = api.account_statuses(account['id'], limit=5)
|
statuses = api.account_statuses(account['id'], limit=5)
|
||||||
|
@ -70,17 +59,6 @@ def test_fetch_next_previous_from_pagination_info_old_pagination(api):
|
||||||
with vcr.use_cassette('test_fetch_next_previous_from_pagination_info.yaml', cassette_library_dir='tests/cassettes_old_pagination', record_mode='none'):
|
with vcr.use_cassette('test_fetch_next_previous_from_pagination_info.yaml', cassette_library_dir='tests/cassettes_old_pagination', record_mode='none'):
|
||||||
account = api.account_verify_credentials()
|
account = api.account_verify_credentials()
|
||||||
|
|
||||||
with many_statuses(api):
|
|
||||||
statuses = api.account_statuses(account['id'], limit=5)
|
|
||||||
next_statuses = api.fetch_next(statuses._pagination_next)
|
|
||||||
assert next_statuses
|
|
||||||
previous_statuses = api.fetch_previous(next_statuses._pagination_prev)
|
|
||||||
assert previous_statuses
|
|
||||||
|
|
||||||
# Old style compatibility mode. The storage in the list items is not anymore internally used.
|
|
||||||
with vcr.use_cassette('test_fetch_next_previous_from_pagination_info.yaml', cassette_library_dir='tests/cassettes_old_pagination', record_mode='none'):
|
|
||||||
account = api.account_verify_credentials()
|
|
||||||
|
|
||||||
with many_statuses(api):
|
with many_statuses(api):
|
||||||
statuses = api.account_statuses(account['id'], limit=5)
|
statuses = api.account_statuses(account['id'], limit=5)
|
||||||
next_statuses = api.fetch_next(statuses[-1]._pagination_next)
|
next_statuses = api.fetch_next(statuses[-1]._pagination_next)
|
||||||
|
@ -108,9 +86,5 @@ def test_link_headers(api):
|
||||||
})
|
})
|
||||||
|
|
||||||
resp = api.timeline_hashtag(UNLIKELY_HASHTAG)
|
resp = api.timeline_hashtag(UNLIKELY_HASHTAG)
|
||||||
assert resp._pagination_next['max_id'] == _id
|
|
||||||
assert resp._pagination_prev['since_id'] == _id
|
|
||||||
|
|
||||||
# Old style compatibility mode. The storage in the list items is not anymore internally used.
|
|
||||||
assert resp[0]._pagination_next['max_id'] == _id
|
assert resp[0]._pagination_next['max_id'] == _id
|
||||||
assert resp[0]._pagination_prev['since_id'] == _id
|
assert resp[0]._pagination_prev['since_id'] == _id
|
||||||
|
|
|
@ -61,8 +61,6 @@ class Listener(StreamListener):
|
||||||
self.notifications = []
|
self.notifications = []
|
||||||
self.deletes = []
|
self.deletes = []
|
||||||
self.heartbeats = 0
|
self.heartbeats = 0
|
||||||
self.bla_called = False
|
|
||||||
self.do_something_called = False
|
|
||||||
|
|
||||||
def on_update(self, status):
|
def on_update(self, status):
|
||||||
self.updates.append(status)
|
self.updates.append(status)
|
||||||
|
@ -74,11 +72,6 @@ class Listener(StreamListener):
|
||||||
self.deletes.append(status_id)
|
self.deletes.append(status_id)
|
||||||
|
|
||||||
def on_blahblah(self, data):
|
def on_blahblah(self, data):
|
||||||
self.bla_called = True
|
|
||||||
pass
|
|
||||||
|
|
||||||
def on_do_something(self, data):
|
|
||||||
self.do_something_called = True
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def handle_heartbeat(self):
|
def handle_heartbeat(self):
|
||||||
|
@ -165,37 +158,6 @@ def test_unknown_event():
|
||||||
'data: {}',
|
'data: {}',
|
||||||
'',
|
'',
|
||||||
])
|
])
|
||||||
assert listener.bla_called == True
|
|
||||||
assert listener.updates == []
|
|
||||||
assert listener.notifications == []
|
|
||||||
assert listener.deletes == []
|
|
||||||
assert listener.heartbeats == 0
|
|
||||||
|
|
||||||
def test_unknown_handled_event():
|
|
||||||
"""Be tolerant of new unknown event types, if on_unknown_event is available"""
|
|
||||||
listener = Listener()
|
|
||||||
listener.on_unknown_event = lambda name, payload: None
|
|
||||||
|
|
||||||
listener.handle_stream_([
|
|
||||||
'event: complete.new.event',
|
|
||||||
'data: {"k": "v"}',
|
|
||||||
'',
|
|
||||||
])
|
|
||||||
|
|
||||||
assert listener.updates == []
|
|
||||||
assert listener.notifications == []
|
|
||||||
assert listener.deletes == []
|
|
||||||
assert listener.heartbeats == 0
|
|
||||||
|
|
||||||
def test_dotted_unknown_event():
|
|
||||||
"""Be tolerant of new event types with dots in the event-name"""
|
|
||||||
listener = Listener()
|
|
||||||
listener.handle_stream_([
|
|
||||||
'event: do.something',
|
|
||||||
'data: {}',
|
|
||||||
'',
|
|
||||||
])
|
|
||||||
assert listener.do_something_called == True
|
|
||||||
assert listener.updates == []
|
assert listener.updates == []
|
||||||
assert listener.notifications == []
|
assert listener.notifications == []
|
||||||
assert listener.deletes == []
|
assert listener.deletes == []
|
||||||
|
@ -207,7 +169,7 @@ def test_invalid_event():
|
||||||
with pytest.raises(MastodonMalformedEventError):
|
with pytest.raises(MastodonMalformedEventError):
|
||||||
listener.handle_stream_([
|
listener.handle_stream_([
|
||||||
'event: whatup',
|
'event: whatup',
|
||||||
'data: {"k": "v"}',
|
'data: {}',
|
||||||
'',
|
'',
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
Loading…
Referencia en una nova incidència