diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3497d11b..5212e1e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: permissions: contents: read id-token: write - runs-on: ${{ github.repository == 'stainless-sdks/onlyfansapi-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: |- github.repository == 'stainless-sdks/onlyfansapi-ruby' && (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') @@ -56,7 +56,7 @@ jobs: lint: timeout-minutes: 10 name: lint - runs-on: ${{ github.repository == 'stainless-sdks/onlyfansapi-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: @@ -73,7 +73,7 @@ jobs: test: timeout-minutes: 10 name: test - runs-on: ${{ github.repository == 'stainless-sdks/onlyfansapi-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 10f30916..6b7b74c5 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.2.0" + ".": "0.3.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 451539e4..0751bec3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 266 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/onlyfansapi/onlyfansapi-bb6c9c76d967f92637fe23928eed8e2b72857607f7d633cd313edac2159251da.yml -openapi_spec_hash: 6ebbddf9d4240bc9dd02c40ba29fdbbc +configured_endpoints: 265 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/onlyfansapi/onlyfansapi-5ac36f138ceb953477f1830fb90a8455ee5fb60bb00b79351f49a0d930a7bb44.yml +openapi_spec_hash: 4925a6c29f19d5958094e6a45fb3cd5a config_hash: 397c91e15c0024f8b5bbed9b82c2348c diff --git a/CHANGELOG.md b/CHANGELOG.md index 04da6bab..8a09f435 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,265 @@ # Changelog +## 0.3.0 (2026-08-26) + +Full Changelog: [v0.2.0...v0.3.0](https://github.com/onlyfansapi/onlyfansapi-ruby/compare/v0.2.0...v0.3.0) + +### Features + +* **api:** api update ([1e4386c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1e4386c7a7cb7c5e3bc29ca9f00bdc3d9759366b)) +* **api:** api update ([388f2f8](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/388f2f8a186b6e3aa71441c7c4277e22a2f402ec)) +* **api:** api update ([b03d669](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/b03d669d97d0239d99bf40dad316b3fd8595a9c7)) +* **api:** api update ([44230f7](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/44230f7fdb9b75d17520c1ee8c61119edaf62606)) +* **api:** api update ([c113e51](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c113e51cf3b84a3932f1e0bff35ba1be7bf5a134)) +* **api:** api update ([182d32e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/182d32e60697aab72c462f6c42cc34d8ab1aa828)) +* **api:** api update ([debeb16](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/debeb1601896446c9d9a6b8c9db01c6db7a9e63b)) +* **api:** api update ([1c26c1c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1c26c1ce4597f22af3865471ed6d6d9357cf6421)) +* **api:** api update ([1b0f575](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1b0f575f06e121a70fe269da36fdc73ee8f883c5)) +* **api:** api update ([61c7368](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/61c73684bbd823351766cce8f4a6147e672c9e07)) +* **api:** api update ([f1b9fab](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/f1b9fab582624ca61040c6f3d7784e125420a4c0)) +* **api:** api update ([d37bb9b](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/d37bb9bfc8f6a71afc87b3d99b6535b7df53a323)) +* **api:** api update ([12175c5](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/12175c5078e45dbcf722eca1b9208768f1befc8a)) +* **api:** api update ([4fe0084](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4fe008434c1ad28b7fde4aa47f69078e83c20427)) +* **api:** api update ([c989f1e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c989f1ed4907bb861c88bbeebb112d957bd7679b)) +* **api:** api update ([0dcd1df](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0dcd1df3d6c56c9c14cb9ed692751e82faf4c80a)) +* **api:** api update ([c2e98b3](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c2e98b332506145435105d7e86954592de411c4e)) +* **api:** api update ([4ddbb92](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4ddbb92a2d04060b103e151c01680ee39943e5d8)) +* **api:** api update ([75b8d0a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/75b8d0a09eb55c7c6ae1b6c3fb61206701626107)) +* **api:** api update ([5e5665f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5e5665f8c1ae14c8a2b22a097f09cff65eda96c6)) +* **api:** api update ([2c28223](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/2c282239927c577a8b33a4a148dbb234b1bed39f)) +* **api:** api update ([1cb1c41](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1cb1c41bc39df6623c3e8116db3822a926a67a4e)) +* **api:** api update ([919ca77](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/919ca77e9a1ab3521a0dfd28def13d8f818876c3)) +* **api:** api update ([d49533c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/d49533cca9582591734e75cc4fc08f3390b966ee)) +* **api:** api update ([3e108df](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/3e108df2ad8e243e6754c3a35e7af12dcdbbd7fe)) +* **api:** api update ([51f010d](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/51f010d242663382cc291c425cf0f7e04026b6be)) +* **api:** api update ([107ad3c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/107ad3c283d582a410153fcfe0adc516e32ec879)) +* **api:** api update ([88e0f69](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/88e0f696ade70cdecb14842620296b56957e9ea8)) +* **api:** api update ([dd8b1fa](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/dd8b1fa7939a43ea3e8127ea6aa574296136d1e8)) +* **api:** api update ([522b9eb](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/522b9ebc0b3d7af03e9d6fabab5574321459def5)) +* **api:** api update ([c7aad0e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c7aad0e431537d27081ffa1cb206d491b10f72dc)) +* **api:** api update ([0a6df6e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0a6df6e3e45dd26cbae282b2a54686c92b8ee6fd)) +* **api:** api update ([25bbd7d](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/25bbd7d08cc5a5ca6d5a3ae6fd9e31e25da03290)) +* **api:** api update ([ecdb213](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ecdb213ba9c8b1bc53ba81d81f79a7a5d6aed6ae)) +* **api:** api update ([8b82857](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8b828575a4d41fdf733462441ac126b8b5cf6c52)) +* **api:** api update ([6107bb8](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/6107bb86fc734b0379cf1798b8927f23a3a697ba)) +* **api:** api update ([3207931](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/320793171893fb1e940ff566b4558cd4a46d2683)) +* **api:** api update ([a853785](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/a853785d9a57d85f65cb791bd4b14ffb9abca41d)) +* **api:** api update ([8b9a433](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8b9a4334256c1a6b8d5b6eb268ecf3491b92d4f4)) +* **api:** api update ([7b4307a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7b4307a1c636f3d0e51d2dffbfd16ba6af1fc4ad)) +* **api:** api update ([bd637a8](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bd637a8c13b8adee5f0c2e4598a2261ed96b30d8)) +* **api:** api update ([7b99e71](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7b99e71dc359e63cb4c4c5a32e3b1bfaad0f63a2)) +* **api:** api update ([529c97c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/529c97cd427c45954855f7dca45d31a7ef3eaf1a)) +* **api:** api update ([0af7b81](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0af7b81ae5591e085b2d05dc49bcabadcb75993b)) +* **api:** api update ([16e8642](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/16e86422b558b0bd472e52b25b55cc6b4228c600)) +* **api:** api update ([1a458e4](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1a458e4d4e82f747776421107684bc8a8b55aacf)) +* **api:** api update ([efa29e0](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/efa29e0564d88a407dbc531e767ed257086ab0fa)) +* **api:** api update ([15ab5df](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/15ab5dfaa098cce1503d8019ee0fcd4fb02ba75b)) +* **api:** api update ([39b6eaf](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/39b6eaf829e5c0d129adba3b35d181aab5c50c4f)) +* **api:** api update ([3359892](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/335989294dfd982499efedbb7aaeace5dd219a92)) +* **api:** api update ([7893efb](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7893efb068dc50cb084652ee02c9e47be8734258)) +* **api:** api update ([fe5b0aa](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fe5b0aa15e6d2e059c54612179a33f5c03b75ffb)) +* **api:** api update ([4731af6](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4731af6e490a84042fa40bd45945373fa3cf3ec1)) +* **api:** api update ([7fc4665](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7fc4665813748d2e3bfe1b945e4620842d7940ac)) +* **api:** api update ([19615d1](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/19615d172a80039aae37c58b7f5e7e1e1977f0b9)) +* **api:** api update ([74f8c8e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/74f8c8efb1d15a5356343162d0c5ea9be027b922)) +* **api:** api update ([10a013c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/10a013ce7e743eaca941182e6c7d27864c3d4765)) +* **api:** api update ([38be57b](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/38be57bda46237c35ba77e799005942fea57e22a)) +* **api:** api update ([90075fe](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/90075fe3ad940e6c293782b4565956ae2e12a51b)) +* **api:** api update ([d63a8bc](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/d63a8bc35f6a420d1a03830d91400794c17773a1)) +* **api:** api update ([4ace39b](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4ace39b4171ea225661c8018f270dc4ad5ab4a8a)) +* **api:** api update ([bb7e5fc](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bb7e5fcc3ef23f249e6ae108f70be5ec0329c51a)) +* **api:** api update ([db54e0d](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/db54e0db766cf26b8e4c5b60f18024c591f5258e)) +* **api:** api update ([2cba54a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/2cba54a90abafe855254a241aaaffbe69531cd1e)) +* **api:** api update ([73f73fa](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/73f73faec80171d575fd00c14be987893af5bb13)) +* **api:** api update ([5b9a85b](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5b9a85bd5ada5fa9a6fda64345dfe98e1a891d4c)) +* **api:** api update ([3c01513](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/3c01513a7def5feb0cdec7cec06e400144598983)) +* **api:** api update ([c26b329](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c26b329286ce299ca396904d5c72fc9a4bdacccf)) +* **api:** api update ([c5e0db1](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c5e0db1ec7a5be27a561f1818bb9b72f8c2f563b)) +* **api:** api update ([e6c8b0a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/e6c8b0a4466ff535d9374d07caf7af4d8311fb73)) +* **api:** api update ([5f9b67a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5f9b67a7aa22aeadabbd0db84fe957084084673a)) +* **api:** api update ([1d43dab](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1d43dab04bead6260b41c3507eb1496bd992dc99)) +* **api:** api update ([3ef87da](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/3ef87da104cba0038297282a2c38af6512661057)) +* **api:** api update ([c943507](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c943507a52be11acc2bcd315c38eb2614f922cf8)) +* **api:** api update ([b9a1a4a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/b9a1a4a532a221b72a77f784465640817d37e61f)) +* **api:** api update ([6aa17ac](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/6aa17ac1fbc408c8016cab0fb719d0b8ac00e042)) +* **api:** api update ([b363ce8](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/b363ce8d1a5bc879e2325aceaf8003e4881b3d2d)) +* **api:** api update ([7c6dff8](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7c6dff8bb4a6fe5171595524b43a88342f8e19eb)) +* **api:** api update ([f9c91ef](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/f9c91efe4a58d3e01d7178a64822f5040444b797)) +* **api:** api update ([8d83d5f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8d83d5f0e7c8c470a8e41d064729d98e846e3a58)) +* **api:** api update ([fdf9b7c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fdf9b7c61130828ce8a762fa04ea15e4aff6514a)) +* **api:** api update ([756ef0f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/756ef0fd10d12a9c3941f76a0fa50ab2d2304af6)) +* **api:** api update ([0dcf939](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0dcf9394c2847c31268beac43c8b2a15f3dba06a)) +* **api:** api update ([9a94857](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/9a9485779643c6ddba0d79ba4391e2fec4c55845)) +* **api:** api update ([3fda9a7](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/3fda9a73e843ad661ef651aa8917e90546bebf09)) +* **api:** api update ([7a3d9bc](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7a3d9bc16a583c28b8c5ccad54440bc295e62ef1)) +* **api:** api update ([01aceee](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/01aceee553a666d9a77410f73da8ad8289cca7ab)) +* **api:** api update ([431c17b](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/431c17b04d30d6dd2ce1800e03cf9354a1415a59)) +* **api:** api update ([336209a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/336209a6953dbe452d6f03f27cd42f499c98ab7b)) +* **api:** api update ([94c1a6f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/94c1a6f04aba19f47f49734efa6e8b689787634e)) +* **api:** api update ([fd328c6](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fd328c6c6eea2769a3b3de93703461961ccfdfe7)) +* **api:** api update ([656a759](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/656a759b0731f34cf8d4294c67266e6e833c08a6)) +* **api:** api update ([ff8c5e7](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ff8c5e7bed7f552ce368788d9471d72417991033)) +* **api:** api update ([94750f9](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/94750f94f9d70896a2213fec7e8388567e643e9c)) +* **api:** api update ([f2a3127](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/f2a3127c85434fc2e77751463ef9d73471e34e4d)) +* **api:** api update ([76d16b1](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/76d16b130a3072d0615d93be71ae1db1894a2b28)) +* **api:** api update ([ed431c9](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ed431c998704451c5277e22bc812b1f160829bd1)) +* **api:** api update ([aebccd2](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/aebccd2c8087a5d1b879eb8d75ddb8f841e60434)) +* **api:** api update ([6b993b2](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/6b993b242662efbc4022f0dfb91236bead5d0035)) +* **api:** api update ([73fd391](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/73fd391cfc142ed62215f54bd76a4eab9eae7b41)) +* **api:** api update ([e0cf8c7](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/e0cf8c7a93946fcf128ee84e1b8f482b8164406e)) +* **api:** api update ([f9fde9b](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/f9fde9b892d916dd74068d027d9ca92d8afa1b53)) +* **api:** api update ([9a3865f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/9a3865fd11ffc888e19b217a1f989b25a2a7dfa3)) +* **api:** api update ([fcf9ce3](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fcf9ce3fd8510f972590eceba69476ffc9348b0b)) +* **api:** api update ([9669171](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/9669171ca1dceb16a94451e920ad7646d760ebcd)) +* **api:** api update ([d5a9a01](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/d5a9a01606243e53a56356b28c782cc455e81927)) +* **api:** api update ([07783b8](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/07783b8719954a5247dd2551b6178a24c448a368)) +* **api:** api update ([aabe3d1](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/aabe3d18807e96954f99f8ba496fc50b09dcb0df)) +* **api:** api update ([bbb3d7e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bbb3d7eeb328812685f5bd474dd1c4bdf0a3550e)) +* **api:** api update ([d99bdb4](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/d99bdb41e142632341c094f2414a281dd423497f)) +* **api:** api update ([fa6e927](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fa6e927112af0aa47ececc8e179e3f69427f5cde)) +* **api:** api update ([835c1d9](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/835c1d93d56d5de88f4eb8eca5f64317ff2cb827)) +* **api:** api update ([2fe0bc4](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/2fe0bc441c0d15c8f1898b080b39d106262ac690)) +* **api:** api update ([7463e03](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7463e0376d18b12f4fe47642ecfac678eba65b5d)) +* **api:** api update ([b024970](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/b02497013035917ca93747f83bf8214a835ea920)) +* **api:** api update ([49b77ca](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/49b77ca5557706407bfebdfed9b91ecba6205e47)) +* **api:** api update ([bb0b546](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bb0b54621d5d407755960c59cfba835790fd635a)) +* **api:** api update ([e5afcbb](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/e5afcbb1f5d8f9345c9b0ce3f9f80f3fd5faf942)) +* **api:** api update ([fe02d9a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fe02d9aa1b11c9001f72652a319047962811edc9)) +* **api:** api update ([4887485](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4887485ea5ecae37205c190541dc34e236d23aa1)) +* **api:** api update ([cac2205](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/cac2205b6397bf83d18beb2cebc9647d3cc4c73c)) +* **api:** api update ([8b85593](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8b855931eaaa0203f3a4f856d374f6deffb04572)) +* **api:** api update ([fa6edbb](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fa6edbb7a3b31d7ba284ee8ed6f0876746e54378)) +* **api:** api update ([bd5ee20](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bd5ee2036ce8cfc7fbd5e094f8d6b7e5a507508f)) +* **api:** api update ([bd813b8](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bd813b81bb2eb2454e6693c358c7b8553985856d)) +* **api:** api update ([9a39701](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/9a39701aed0d5eb8ec2746f0fadb9726307846b3)) +* **api:** api update ([4b3ba42](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4b3ba42ba7627adac95a82854908fc87b69c49aa)) +* **api:** api update ([ceb51e3](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ceb51e3de15bab28afd2d8d28947ff7db76c49e1)) +* **api:** api update ([71bb889](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/71bb889c1884cfcba4180c5884f000fc4f86007f)) +* **api:** api update ([4bb2501](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4bb250140f0c50da053bc0cbe93209619dd7c742)) +* **api:** api update ([4aacd42](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4aacd429c90ce3ea155067cd74cc706263dfe481)) +* **api:** api update ([9cc5830](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/9cc5830530ee0989885e1cefb8f62f449e38c6e1)) +* **api:** api update ([efc070e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/efc070ede49e5048ca2bb01af6404d2460468e41)) +* **api:** api update ([adefdbb](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/adefdbb4d2c0a218103e53293dbd077e29236e71)) +* **api:** api update ([7d736fb](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7d736fb8b036e9f6b35916336d50280f39a01fb2)) +* **api:** api update ([f2ffc9f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/f2ffc9f141a5f7ad17ebb0dc2586c3ec13b77f1d)) +* **api:** api update ([a3b740c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/a3b740c68a31f197fe4839c309047b1c0c66f52f)) +* **api:** api update ([5dc1f11](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5dc1f11b2d23437a27566842154c4334acdd7255)) +* **api:** api update ([904ce14](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/904ce14d65bc4a4f4a2efe2f55727998a14eb4a7)) +* **api:** api update ([3ea3815](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/3ea3815da505af67505e951d5aa1c9e8f2b33eef)) +* **api:** api update ([b316fc2](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/b316fc28da1796287d2de4f2817418797cd429b5)) +* **api:** api update ([73ee11e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/73ee11e7416130e8fde6578d2e13a3f31fca394f)) +* **api:** api update ([2816bd9](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/2816bd9042782d0e87d8ed4b5e1c53ae0b6c1105)) +* **api:** api update ([62bdcce](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/62bdcce059b25f0223ac73c8e59447e4c9569d3e)) +* **api:** api update ([1796912](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1796912bc6e3f02a9679f39e89cbf5b873698789)) +* **api:** api update ([2ac5d02](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/2ac5d0257aa77f81162a9b6b985e0aeea921af7e)) +* **api:** api update ([12d9ed0](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/12d9ed01f6ec5cfc6e182a6f2daf1661819c3872)) +* **api:** api update ([aa173c1](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/aa173c12474e49b384f4b859b15472ea26b18b77)) +* **api:** api update ([c064880](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c0648803da083068a9408981683164dae4c075b4)) +* **api:** api update ([eea3446](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/eea3446f4dd3ac0460b9c28adaf7096b6929eef4)) +* **api:** api update ([fa7dd95](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fa7dd9525afcfb47d2392d8ed2d1a9e8c54d9f74)) +* **api:** api update ([a04abd3](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/a04abd35606f9a26fb7aaef591503e3d18e08021)) +* **api:** api update ([b77e834](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/b77e834efe93e0702ca2205c1f4fe6770cac29b5)) +* **api:** api update ([cb70c60](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/cb70c6073aa518cb392703f1737c045835b72bde)) +* **api:** api update ([510acf6](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/510acf66f4c45415ce672e51a8757b3378dff7b9)) +* **api:** api update ([483d562](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/483d5624fd08169594df3758b271a2ccd3787a82)) +* **api:** api update ([b432c6f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/b432c6f659aecf997a0c436d14260a4fdf42fb92)) +* **api:** api update ([a1b9176](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/a1b9176340b9fccee74e4f568103f232b711e1cf)) +* **api:** api update ([7368b4a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7368b4a103288010ee1e722868e0bbe741adbe4b)) +* **api:** api update ([0caa488](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0caa48853dd761a2196be08bb66ae16e25168703)) +* **api:** api update ([15349b5](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/15349b5e4d28799cde07242dcc7aa0bfff1f3551)) +* **api:** api update ([e954dcc](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/e954dcc7b0b2ddc5de64d1c454eee5d9045f5c55)) +* **api:** api update ([41016bb](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/41016bbac001d367b911714d128942268146fe38)) +* **api:** api update ([7dccd7f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7dccd7fade2dfc60ebc32bda765f47dab34fe937)) +* **api:** api update ([51c7d03](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/51c7d0333ca2a224aa3a285febf87344a5ee4771)) +* **api:** api update ([1444b9d](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1444b9d3ef17f6118581442edb0b8dc977d3aa45)) +* **api:** api update ([3666b55](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/3666b55d4c637a84ebd8f7dfccf018c47a21c633)) +* **api:** api update ([4a76fb4](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4a76fb46523e578050f25eec3e39e4920858ddf2)) +* **api:** api update ([95700ba](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/95700ba9b8062da278f41481d4e32872e1b375bf)) +* **api:** api update ([631cdca](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/631cdcaccb1509e37721e22b6639738e88048d42)) +* **api:** api update ([e388dfd](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/e388dfdc11913a7a184e55f2c9fda7747e777838)) +* **api:** api update ([288d7df](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/288d7df96984c04d3e90d978f89861f7bce7298e)) +* **api:** api update ([312a493](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/312a4931091dfe855ca671479706c358d06d50dc)) +* **api:** api update ([a79815d](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/a79815d8755270eb036f689e948bb290e1290a3b)) +* **api:** api update ([3ab0702](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/3ab0702ddd8784a892bb494c1086b389c1dbb761)) +* **api:** api update ([faeb177](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/faeb177617a9657ad115fa6921295b44be91559e)) +* **api:** api update ([aa3b0e0](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/aa3b0e0b67d8c061d5f23b4b8b80192c12b81da8)) +* **api:** api update ([8a0b064](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8a0b06454d7aaaf729511822408cb2a6aec7e574)) +* **api:** api update ([868ff45](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/868ff45397688bddd05b63e919a34313a4e00fa7)) +* **api:** api update ([0ca203c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0ca203cddcbd70ed612801b98732b9dbdc146902)) +* **api:** api update ([3e2c097](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/3e2c0971a978ea0fd4c4bbe2bb34fe90a90245d8)) +* **api:** api update ([2500623](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/250062394f515f9c0c800e1c384405c12f4773df)) +* **api:** api update ([ccfe0a2](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ccfe0a20a613989f8cb1700c192e4d998bf4ed75)) +* **api:** api update ([289d92c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/289d92cd21fcf2dfcfabe0074aab2389d94fdcc9)) +* **api:** api update ([8d50090](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8d5009041f752ec6fef513c56dbff5dd3b472d56)) +* **api:** api update ([c5aaeeb](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c5aaeeb3bca8d29c738e658794b7de433b3880c9)) +* **api:** api update ([55af6e0](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/55af6e09bb9fc08d8c7ae04029f806db98b31454)) +* **api:** api update ([0bc264c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0bc264c9675e81c872ae335a20fa3959c52c0a25)) +* **api:** api update ([5b8546d](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5b8546db8c1dd3d0189df63d1d2a3105fcf0d529)) +* **api:** api update ([2fa3ee5](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/2fa3ee5d82f7f142453e4b21f7bd81b1153d743f)) +* **api:** api update ([01855d9](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/01855d9fea747fab23201a963196bc724b0973a7)) +* **api:** api update ([49cd504](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/49cd50438037f80bd3d33c5144275e5ca61fd7f0)) +* **api:** api update ([c8968ce](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/c8968ce7017f95eb2bf61ea551635673f427b5f9)) +* **api:** api update ([bb14b95](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bb14b95ad7fa1ec8ba14a481a805679afc4bd7c2)) +* **api:** api update ([d68116c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/d68116c02424b68258578ae75c452a93a05341a5)) +* **api:** api update ([bb8c8ab](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bb8c8abbd53b2b67b02bdd145db927afb8afe455)) +* **api:** api update ([94cf329](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/94cf32971cf9f6961183cc2df4d9cb1cb640c2af)) +* **api:** api update ([25b3558](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/25b3558217a4cd23d0130061437b16761750b404)) +* **api:** api update ([10e67de](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/10e67dec06d287f74e2a8d1a1eaaa999df091111)) +* **api:** api update ([92378ee](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/92378eeedf7d2299e35ebde8e38d11acfa1846e5)) +* **api:** api update ([fc76e11](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/fc76e116f4a8ff8a42c64217e56297e143fc9a6d)) +* **api:** api update ([d83ad90](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/d83ad901c84ef1bb99a9271656f6d3a62bc07d20)) +* **api:** api update ([afe6f6c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/afe6f6ca9fcdd6fe10f230bc482574e8e5ca08c4)) +* **api:** api update ([5c57dd0](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5c57dd071c1dbb90f89e94ba3f6ab4b27c8fb91c)) +* **api:** api update ([761278f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/761278f775b3c1d22833d6e7eba373cbc570f9c4)) +* **api:** api update ([a3aa7f5](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/a3aa7f5c0d8d44b18cbe14556994b0bebe8ffd76)) +* **api:** api update ([bbbb279](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/bbbb279735b6571cd5c42071d30ee228f682f1ff)) +* **api:** api update ([ee42afe](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ee42afeb16f4f13c8e4c313c55b3cfa0434d0320)) +* **api:** api update ([5de9c43](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5de9c4329fa0d03dca63f8a0ac859f713d44922c)) +* **api:** api update ([01a46c6](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/01a46c667852034e7c9c1d8bd2aaa12561daf22a)) +* **api:** api update ([aaf95d7](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/aaf95d7f70056c8883a6a82683a64dff25461fa6)) +* **api:** api update ([e730bd1](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/e730bd1e88ce9f61780bb277c091ccaf3205c0ba)) +* **api:** api update ([206d9b8](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/206d9b8a2272fb4c5e8b56e8751add0b4415f73a)) +* **api:** api update ([9c0416e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/9c0416ee59b152e3429d2afe982bfb21a02b024a)) +* **api:** api update ([8b4369d](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8b4369de6244e1ea790e3648f5a1cb9c007cfd87)) +* **api:** api update ([ee2c0ca](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ee2c0caabb42258992f75a0e5c04fb498699502c)) +* **api:** api update ([60925a0](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/60925a0d7dcbad0b755c3a171726c594e1672d3c)) +* **api:** api update ([196af8c](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/196af8c90835f50cf58d9ddecf05fe861ba4259e)) +* **api:** api update ([59b720e](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/59b720e1a245ed006d711f49898c8d1a1607e246)) +* **api:** api update ([7f28b90](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/7f28b90d83758f6648f3ce511837e69ca023e868)) +* **api:** api update ([efdea3b](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/efdea3bfe743e552326a6588be1a309d0b6e06a4)) +* **api:** api update ([f22f8ef](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/f22f8ef08294702904f11cc7f546f96d9e1f90af)) +* **api:** api update ([e9db188](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/e9db18891e6a61cb89ebc76dec9867a360b0eca2)) +* **api:** api update ([0356380](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0356380f15e0dce83f8307a2c4506412f0724a7e)) +* **api:** api update ([92899b2](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/92899b2b377fcd1f28af038db76df0a8a8778500)) +* **api:** api update ([cbc9d88](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/cbc9d881ab00f39d5aef659cc5969109ee4ba338)) +* **api:** api update ([52a55ae](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/52a55ae65af5d2f72b732292d45c1f8b8e71ce10)) +* **api:** api update ([26475cd](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/26475cd17b9b4e66e01deefa99cc2d896dd8a4b2)) +* **api:** api update ([141f257](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/141f2576a165ae37876baf7b20268bfefd386823)) +* **api:** api update ([ab1c889](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ab1c889b7be046c7d401b9f6a44172690b95dc25)) +* **api:** api update ([5b2ac7b](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5b2ac7be16634612cfc763f5336621e6dbcf7051)) +* **api:** api update ([deff141](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/deff141d025e3cd6be0204da8ebe04b528fb6811)) +* **api:** api update ([192ab69](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/192ab6949cbdbb981f2facdfb47a578b0e85ad5e)) +* **api:** api update ([0a52056](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/0a52056aca870ec16c2d1075811032ee72ae60b8)) +* **api:** api update ([501f426](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/501f426c6048bf84d8c1f3ccf1cdf6642b1c1d39)) +* **api:** api update ([94c5355](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/94c535528bc788ed61e217a06ad7d95282b8ac28)) +* **api:** api update ([5e0dfb2](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/5e0dfb2a6ddcddcd8511925e9950195a32f1db86)) +* **api:** api update ([231c428](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/231c4285eb57bb5e8cb2f6e8feb7919518c0bc88)) +* **api:** api update ([8e3f41a](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8e3f41a242c2ceb06cbd617f719f0eb532a62a44)) +* **api:** api update ([8b6b6a1](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/8b6b6a117f158496c90ed5f5a4502bff0a0d4941)) +* **api:** api update ([be61973](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/be61973f54b73a4b19b9153ea80bc89895b3c37c)) +* **api:** api update ([1980ebe](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/1980ebed9dc210db3f52601f5829504e71384ead)) +* **stlc:** configurable CI runner and private-production-repo support in workflow templates ([4d2e59f](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/4d2e59fcda95044b958eed1c50faee1ecf1d979f)) + + +### Bug Fixes + +* **client:** send content-type header for requests with an omitted optional body ([ccbd8e2](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/ccbd8e2b2b41a3bc1e756e5176162612a26568e5)) + + +### Chores + +* **internal:** bound formatter parallelism to CPU count ([95c3909](https://github.com/onlyfansapi/onlyfansapi-ruby/commit/95c39091f40622f2fbf35ef778afb5bd8f89bf95)) + ## 0.2.0 (2026-05-25) Full Changelog: [v0.1.0...v0.2.0](https://github.com/onlyfansapi/onlyfansapi-ruby/compare/v0.1.0...v0.2.0) diff --git a/Gemfile.lock b/Gemfile.lock index 978c4204..7ecdf94c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - onlyfans (0.2.0) + onlyfans (0.3.0) cgi connection_pool diff --git a/README.md b/README.md index 5915e95f..62738c75 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "onlyfans", "~> 0.2.0" +gem "onlyfans", "~> 0.3.0" ``` diff --git a/Rakefile b/Rakefile index 6f9d357f..b20ecadd 100644 --- a/Rakefile +++ b/Rakefile @@ -1,5 +1,6 @@ # frozen_string_literal: true +require "etc" require "pathname" require "securerandom" require "shellwords" @@ -37,7 +38,11 @@ multitask(:test) do ruby(*%w[-w -e], rb, verbose: false) { fail unless _1 } end -xargs = %w[xargs --no-run-if-empty --null --max-procs=0 --max-args=300 --] +# Cap parallelism at the CPU count. `--max-procs=0` spawns one process per +# 300-file batch with no upper bound; on large SDKs (thousands of files) that +# oversubscribes CPUs and stacks up rubocop processes, exhausting memory and +# slowing CI to the point of timing out. +xargs = %W[xargs --no-run-if-empty --null --max-procs=#{Etc.nprocessors} --max-args=300 --] ruby_opt = {"RUBYOPT" => [ENV["RUBYOPT"], "--encoding=UTF-8"].compact.join(" ")} filtered = ->(ext, dirs) do diff --git a/lib/onlyfans.rb b/lib/onlyfans.rb index 0a7092e0..5f5af3f9 100644 --- a/lib/onlyfans.rb +++ b/lib/onlyfans.rb @@ -245,7 +245,6 @@ require_relative "onlyfans/models/media/vault_upload_params" require_relative "onlyfans/models/media/vault_upload_response" require_relative "onlyfans/models/media_download_params" -require_relative "onlyfans/models/media_download_response" require_relative "onlyfans/models/media_scrape_params" require_relative "onlyfans/models/media_scrape_response" require_relative "onlyfans/models/media_upload_params" @@ -256,8 +255,6 @@ require_relative "onlyfans/models/me_get_top_percentage_response" require_relative "onlyfans/models/me_retrieve_params" require_relative "onlyfans/models/me_retrieve_response" -require_relative "onlyfans/models/message_attach_tags_params" -require_relative "onlyfans/models/message_attach_tags_response" require_relative "onlyfans/models/notification_get_counts_params" require_relative "onlyfans/models/notification_get_counts_response" require_relative "onlyfans/models/notification_list_params" diff --git a/lib/onlyfans/client.rb b/lib/onlyfans/client.rb index 1618961e..a8dc06d9 100644 --- a/lib/onlyfans/client.rb +++ b/lib/onlyfans/client.rb @@ -75,7 +75,7 @@ class Client < Onlyfans::Internal::Transport::BaseClient # @return [Onlyfans::Resources::Giphy] attr_reader :giphy - # APIs for managing tags on free trial links and tracking links + # APIs for managing tags on free trial links, tracking links, and Smart Links # @return [Onlyfans::Resources::LinkTags] attr_reader :link_tags diff --git a/lib/onlyfans/internal/transport/base_client.rb b/lib/onlyfans/internal/transport/base_client.rb index 17222ee9..bdbcd42e 100644 --- a/lib/onlyfans/internal/transport/base_client.rb +++ b/lib/onlyfans/internal/transport/base_client.rb @@ -306,7 +306,10 @@ def initialize( Onlyfans::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact) end - headers.delete("content-type") if body.nil? + # Generated methods always pass `req[:body]` for operations that define a + # request body, so only elide the content-type header when the operation + # has no body at all, not when an optional body param was omitted. + headers.delete("content-type") if body.nil? && !req.key?(:body) url = Onlyfans::Internal::Util.join_parsed_uri( @base_url_components, diff --git a/lib/onlyfans/models.rb b/lib/onlyfans/models.rb index 1c33fa03..489ebae5 100644 --- a/lib/onlyfans/models.rb +++ b/lib/onlyfans/models.rb @@ -163,8 +163,6 @@ module Onlyfans MeRetrieveParams = Onlyfans::Models::MeRetrieveParams - MessageAttachTagsParams = Onlyfans::Models::MessageAttachTagsParams - NotificationGetCountsParams = Onlyfans::Models::NotificationGetCountsParams NotificationListParams = Onlyfans::Models::NotificationListParams diff --git a/lib/onlyfans/models/analytics/financial/profitability_get_history_response.rb b/lib/onlyfans/models/analytics/financial/profitability_get_history_response.rb index ab60c137..acb381b0 100644 --- a/lib/onlyfans/models/analytics/financial/profitability_get_history_response.rb +++ b/lib/onlyfans/models/analytics/financial/profitability_get_history_response.rb @@ -4,49 +4,127 @@ module Onlyfans module Models module Analytics module Financial - class ProfitabilityGetHistoryResponseItem < Onlyfans::Internal::Type::BaseModel - # @!attribute gross_revenue + # @see Onlyfans::Resources::Analytics::Financial::Profitability#get_history + class ProfitabilityGetHistoryResponse < Onlyfans::Internal::Type::BaseModel + # @!attribute data # - # @return [Float, nil] - optional :gross_revenue, Float + # @return [Array, nil] + optional :data, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data] } - # @!attribute margin - # - # @return [Float, nil] - optional :margin, Float + # @!method initialize(data: nil) + # @param data [Array] - # @!attribute month - # - # @return [Integer, nil] - optional :month, Integer + class Data < Onlyfans::Internal::Type::BaseModel + # @!attribute active_milestones + # + # @return [String, nil] + optional :active_milestones, String, api_name: :activeMilestones, nil?: true - # @!attribute net_revenue - # - # @return [Float, nil] - optional :net_revenue, Float + # @!attribute agency_earnings + # + # @return [String, nil] + optional :agency_earnings, String, api_name: :agencyEarnings - # @!attribute profit - # - # @return [Float, nil] - optional :profit, Float + # @!attribute commission_amount + # + # @return [String, nil] + optional :commission_amount, String, api_name: :commissionAmount - # @!attribute year - # - # @return [Integer, nil] - optional :year, Integer - - # @!method initialize(gross_revenue: nil, margin: nil, month: nil, net_revenue: nil, profit: nil, year: nil) - # @param gross_revenue [Float] - # @param margin [Float] - # @param month [Integer] - # @param net_revenue [Float] - # @param profit [Float] - # @param year [Integer] - end + # @!attribute commission_rate + # + # @return [String, nil] + optional :commission_rate, String, api_name: :commissionRate + + # @!attribute costs + # + # @return [Array, nil] + optional :costs, Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown] + + # @!attribute creator_name + # + # @return [String, nil] + optional :creator_name, String, api_name: :creatorName + + # @!attribute has_commission_for_period + # + # @return [Boolean, nil] + optional :has_commission_for_period, + Onlyfans::Internal::Type::Boolean, + api_name: :hasCommissionForPeriod + + # @!attribute has_costs_for_period + # + # @return [Boolean, nil] + optional :has_costs_for_period, Onlyfans::Internal::Type::Boolean, api_name: :hasCostsForPeriod - # @type [Onlyfans::Internal::Type::Converter] - ProfitabilityGetHistoryResponse = - Onlyfans::Internal::Type::ArrayOf[-> { Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem }] + # @!attribute margin_percentage + # + # @return [String, nil] + optional :margin_percentage, String, api_name: :marginPercentage + + # @!attribute month + # + # @return [Integer, nil] + optional :month, Integer + + # @!attribute only_fans_user_id + # + # @return [Integer, nil] + optional :only_fans_user_id, Integer, api_name: :onlyFansUserId + + # @!attribute profit + # + # @return [String, nil] + optional :profit, String + + # @!attribute projected_net + # + # @return [String, nil] + optional :projected_net, String, api_name: :projectedNet + + # @!attribute rate_periods + # + # @return [Array, nil] + optional :rate_periods, + Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown], + api_name: :ratePeriods + + # @!attribute referral_note + # + # @return [String, nil] + optional :referral_note, String, api_name: :referralNote, nil?: true + + # @!attribute total_costs + # + # @return [String, nil] + optional :total_costs, String, api_name: :totalCosts + + # @!attribute year + # + # @return [Integer, nil] + optional :year, Integer + + # @!method initialize(active_milestones: nil, agency_earnings: nil, commission_amount: nil, commission_rate: nil, costs: nil, creator_name: nil, has_commission_for_period: nil, has_costs_for_period: nil, margin_percentage: nil, month: nil, only_fans_user_id: nil, profit: nil, projected_net: nil, rate_periods: nil, referral_note: nil, total_costs: nil, year: nil) + # @param active_milestones [String, nil] + # @param agency_earnings [String] + # @param commission_amount [String] + # @param commission_rate [String] + # @param costs [Array] + # @param creator_name [String] + # @param has_commission_for_period [Boolean] + # @param has_costs_for_period [Boolean] + # @param margin_percentage [String] + # @param month [Integer] + # @param only_fans_user_id [Integer] + # @param profit [String] + # @param projected_net [String] + # @param rate_periods [Array] + # @param referral_note [String, nil] + # @param total_costs [String] + # @param year [Integer] + end + end end end end diff --git a/lib/onlyfans/models/analytics/financial/profitability_get_profitability_response.rb b/lib/onlyfans/models/analytics/financial/profitability_get_profitability_response.rb index 6dafcc8e..1083fed5 100644 --- a/lib/onlyfans/models/analytics/financial/profitability_get_profitability_response.rb +++ b/lib/onlyfans/models/analytics/financial/profitability_get_profitability_response.rb @@ -4,61 +4,127 @@ module Onlyfans module Models module Analytics module Financial - class ProfitabilityGetProfitabilityResponseItem < Onlyfans::Internal::Type::BaseModel - # @!attribute commission + # @see Onlyfans::Resources::Analytics::Financial::Profitability#get_profitability + class ProfitabilityGetProfitabilityResponse < Onlyfans::Internal::Type::BaseModel + # @!attribute data # - # @return [Float, nil] - optional :commission, Float + # @return [Array, nil] + optional :data, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data] } - # @!attribute creator_id - # - # @return [Integer, nil] - optional :creator_id, Integer + # @!method initialize(data: nil) + # @param data [Array] - # @!attribute gross_revenue - # - # @return [Float, nil] - optional :gross_revenue, Float + class Data < Onlyfans::Internal::Type::BaseModel + # @!attribute active_milestones + # + # @return [String, nil] + optional :active_milestones, String, api_name: :activeMilestones, nil?: true - # @!attribute margin - # - # @return [Float, nil] - optional :margin, Float + # @!attribute agency_earnings + # + # @return [String, nil] + optional :agency_earnings, String, api_name: :agencyEarnings - # @!attribute name - # - # @return [String, nil] - optional :name, String + # @!attribute commission_amount + # + # @return [String, nil] + optional :commission_amount, String, api_name: :commissionAmount - # @!attribute net_revenue - # - # @return [Float, nil] - optional :net_revenue, Float + # @!attribute commission_rate + # + # @return [String, nil] + optional :commission_rate, String, api_name: :commissionRate - # @!attribute profit - # - # @return [Float, nil] - optional :profit, Float + # @!attribute costs + # + # @return [Array, nil] + optional :costs, Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown] - # @!attribute total_costs - # - # @return [Float, nil] - optional :total_costs, Float - - # @!method initialize(commission: nil, creator_id: nil, gross_revenue: nil, margin: nil, name: nil, net_revenue: nil, profit: nil, total_costs: nil) - # @param commission [Float] - # @param creator_id [Integer] - # @param gross_revenue [Float] - # @param margin [Float] - # @param name [String] - # @param net_revenue [Float] - # @param profit [Float] - # @param total_costs [Float] - end + # @!attribute creator_name + # + # @return [String, nil] + optional :creator_name, String, api_name: :creatorName + + # @!attribute has_commission_for_period + # + # @return [Boolean, nil] + optional :has_commission_for_period, + Onlyfans::Internal::Type::Boolean, + api_name: :hasCommissionForPeriod + + # @!attribute has_costs_for_period + # + # @return [Boolean, nil] + optional :has_costs_for_period, Onlyfans::Internal::Type::Boolean, api_name: :hasCostsForPeriod - # @type [Onlyfans::Internal::Type::Converter] - ProfitabilityGetProfitabilityResponse = - Onlyfans::Internal::Type::ArrayOf[-> { Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem }] + # @!attribute margin_percentage + # + # @return [String, nil] + optional :margin_percentage, String, api_name: :marginPercentage + + # @!attribute month + # + # @return [Integer, nil] + optional :month, Integer + + # @!attribute only_fans_user_id + # + # @return [Integer, nil] + optional :only_fans_user_id, Integer, api_name: :onlyFansUserId + + # @!attribute profit + # + # @return [String, nil] + optional :profit, String + + # @!attribute projected_net + # + # @return [String, nil] + optional :projected_net, String, api_name: :projectedNet + + # @!attribute rate_periods + # + # @return [Array, nil] + optional :rate_periods, + Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown], + api_name: :ratePeriods + + # @!attribute referral_note + # + # @return [String, nil] + optional :referral_note, String, api_name: :referralNote, nil?: true + + # @!attribute total_costs + # + # @return [String, nil] + optional :total_costs, String, api_name: :totalCosts + + # @!attribute year + # + # @return [Integer, nil] + optional :year, Integer + + # @!method initialize(active_milestones: nil, agency_earnings: nil, commission_amount: nil, commission_rate: nil, costs: nil, creator_name: nil, has_commission_for_period: nil, has_costs_for_period: nil, margin_percentage: nil, month: nil, only_fans_user_id: nil, profit: nil, projected_net: nil, rate_periods: nil, referral_note: nil, total_costs: nil, year: nil) + # @param active_milestones [String, nil] + # @param agency_earnings [String] + # @param commission_amount [String] + # @param commission_rate [String] + # @param costs [Array] + # @param creator_name [String] + # @param has_commission_for_period [Boolean] + # @param has_costs_for_period [Boolean] + # @param margin_percentage [String] + # @param month [Integer] + # @param only_fans_user_id [Integer] + # @param profit [String] + # @param projected_net [String] + # @param rate_periods [Array] + # @param referral_note [String, nil] + # @param total_costs [String] + # @param year [Integer] + end + end end end end diff --git a/lib/onlyfans/models/authenticate_start_params.rb b/lib/onlyfans/models/authenticate_start_params.rb index 1de8bccc..2c7fd2f1 100644 --- a/lib/onlyfans/models/authenticate_start_params.rb +++ b/lib/onlyfans/models/authenticate_start_params.rb @@ -169,6 +169,7 @@ module ProxyCountry US = :us UK = :uk + GB = :gb # @!method self.values # @return [Array] diff --git a/lib/onlyfans/models/chat_list_media_params.rb b/lib/onlyfans/models/chat_list_media_params.rb index c00f605b..da2cc99d 100644 --- a/lib/onlyfans/models/chat_list_media_params.rb +++ b/lib/onlyfans/models/chat_list_media_params.rb @@ -30,7 +30,8 @@ class ChatListMediaParams < Onlyfans::Internal::Type::BaseModel optional :offset, String # @!attribute skip_users - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. # # @return [String, nil] optional :skip_users, String @@ -42,6 +43,9 @@ class ChatListMediaParams < Onlyfans::Internal::Type::BaseModel optional :type, enum: -> { Onlyfans::ChatListMediaParams::Type }, nil?: true # @!method initialize(account:, chat_id:, limit: nil, offset: nil, skip_users: nil, type: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::ChatListMediaParams} for more details. + # # @param account [String] # # @param chat_id [String] @@ -50,7 +54,7 @@ class ChatListMediaParams < Onlyfans::Internal::Type::BaseModel # # @param offset [String] Number of medias to skip for pagination # - # @param skip_users [String] Whether to skip user details in response (all or none). Default = all + # @param skip_users [String] Whether to skip user details in the response (`all` or `none`). Defaults to `all # # @param type [Symbol, Onlyfans::Models::ChatListMediaParams::Type, nil] Filter by specific media types. Keep empty to return all. # diff --git a/lib/onlyfans/models/chat_list_params.rb b/lib/onlyfans/models/chat_list_params.rb index 99694f24..9e8115de 100644 --- a/lib/onlyfans/models/chat_list_params.rb +++ b/lib/onlyfans/models/chat_list_params.rb @@ -43,12 +43,16 @@ class ChatListParams < Onlyfans::Internal::Type::BaseModel optional :query, String # @!attribute skip_users - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. # # @return [Symbol, Onlyfans::Models::ChatListParams::SkipUsers, nil] optional :skip_users, enum: -> { Onlyfans::ChatListParams::SkipUsers } # @!method initialize(account:, filter: nil, limit: nil, offset: nil, order: nil, query: nil, skip_users: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::ChatListParams} for more details. + # # @param account [String] # # @param filter [Symbol, Onlyfans::Models::ChatListParams::Filter] Optionally, filter the chats by type. @@ -61,7 +65,7 @@ class ChatListParams < Onlyfans::Internal::Type::BaseModel # # @param query [String] Search query to filter chats # - # @param skip_users [Symbol, Onlyfans::Models::ChatListParams::SkipUsers] Whether to skip user details in response (all or none). Default = all + # @param skip_users [Symbol, Onlyfans::Models::ChatListParams::SkipUsers] Whether to skip user details in the response (`all` or `none`). Defaults to `all # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] @@ -90,7 +94,8 @@ module Order # @return [Array] end - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. module SkipUsers extend Onlyfans::Internal::Type::Enum diff --git a/lib/onlyfans/models/chats/message_list_params.rb b/lib/onlyfans/models/chats/message_list_params.rb index b3e46a56..476d031f 100644 --- a/lib/onlyfans/models/chats/message_list_params.rb +++ b/lib/onlyfans/models/chats/message_list_params.rb @@ -54,7 +54,7 @@ class MessageListParams < Onlyfans::Internal::Type::BaseModel optional :order, String # @!attribute skip_users - # Whether to skip user details (all or none) + # Whether to skip user details (`all` or `none`). # # @return [String, nil] optional :skip_users, String @@ -77,7 +77,7 @@ class MessageListParams < Onlyfans::Internal::Type::BaseModel # # @param order [String] Sort order for messages (desc or asc) # - # @param skip_users [String] Whether to skip user details (all or none) + # @param skip_users [String] Whether to skip user details (`all` or `none`). # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/onlyfans/models/chats/message_send_params.rb b/lib/onlyfans/models/chats/message_send_params.rb index ae103308..e3453266 100644 --- a/lib/onlyfans/models/chats/message_send_params.rb +++ b/lib/onlyfans/models/chats/message_send_params.rb @@ -18,6 +18,17 @@ class MessageSendParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :chat_id, String + # @!attribute block_banned_words + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + # + # @return [Symbol, Onlyfans::Models::Chats::MessageSendParams::BlockBannedWords, nil] + optional :block_banned_words, + enum: -> { Onlyfans::Chats::MessageSendParams::BlockBannedWords }, + api_name: :blockBannedWords + # @!attribute giphy_id # The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing # endpoints (`/giphy/trending`, `/giphy/search`). @@ -49,11 +60,11 @@ class MessageSendParams < Onlyfans::Internal::Type::BaseModel optional :previews, Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown] # @!attribute price - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required # - # @return [Integer, nil] - optional :price, Integer + # @return [Float, nil] + optional :price, Float # @!attribute reply_to_message_id # Mark this message as a reply to another (can be either your own, or the @@ -86,7 +97,12 @@ class MessageSendParams < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :text, String - # @!method initialize(account:, chat_id:, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, reply_to_message_id: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, text: nil, request_options: {}) + # @!attribute idempotency_key + # + # @return [String, nil] + optional :idempotency_key, String + + # @!method initialize(account:, chat_id:, block_banned_words: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, reply_to_message_id: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, text: nil, idempotency_key: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::Chats::MessageSendParams} for more details. # @@ -94,6 +110,8 @@ class MessageSendParams < Onlyfans::Internal::Type::BaseModel # # @param chat_id [String] # + # @param block_banned_words [Symbol, Onlyfans::Models::Chats::MessageSendParams::BlockBannedWords] Screen `text` for OnlyFans banned words and block the send if any are found (ret + # # @param giphy_id [String] The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing # # @param locked_text [Boolean] Whether the text should be shown or hidden @@ -102,8 +120,8 @@ class MessageSendParams < Onlyfans::Internal::Type::BaseModel # # @param previews [Array] Direct file uploads, OFAPI `ofapi_media_` IDs, OF vault IDs, or integer indices # - # @param price [Integer] Price for paid content (0 or between 3-200). In case this is not zero, - # \*\*mediaFi + # @param price [Float] Price for paid content in USD (0 or between 3-200). In case this is not zero, + # \*\* # # @param reply_to_message_id [Integer] Mark this message as a reply to another (can be either your own, or the recipien # @@ -115,7 +133,24 @@ class MessageSendParams < Onlyfans::Internal::Type::BaseModel # # @param text [String] The message text content. Required unless a media file is present. # + # @param idempotency_key [String] + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN = :strict_ban + RISKY = :risky + REPLACE_SOFTEN = :replace_soften + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/client_session_create_params.rb b/lib/onlyfans/models/client_session_create_params.rb index 67396739..261f026f 100644 --- a/lib/onlyfans/models/client_session_create_params.rb +++ b/lib/onlyfans/models/client_session_create_params.rb @@ -38,6 +38,7 @@ module ProxyCountry US = :us UK = :uk + GB = :gb # @!method self.values # @return [Array] diff --git a/lib/onlyfans/models/data_export_create_params.rb b/lib/onlyfans/models/data_export_create_params.rb index 4b5440c5..2a287d6e 100644 --- a/lib/onlyfans/models/data_export_create_params.rb +++ b/lib/onlyfans/models/data_export_create_params.rb @@ -15,8 +15,9 @@ class DataExportCreateParams < Onlyfans::Internal::Type::BaseModel # @!attribute file_type # The output file format. Supported formats vary by export type: `csv` or `xlsx` - # for transactions, chat_messages, trial_links, tracking_links, smart_links, - # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault. + # for transactions, chat_messages, fansly_chat_messages, trial_links, + # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans, + # followings, profile_visitors; `zip` for media_vault. # # @return [Symbol, Onlyfans::Models::DataExportCreateParams::FileType] required :file_type, enum: -> { Onlyfans::DataExportCreateParams::FileType } @@ -28,14 +29,18 @@ class DataExportCreateParams < Onlyfans::Internal::Type::BaseModel required :start_date, String # @!attribute type - # The type of data to export + # The type of data to export. Use `fansly_chat_messages` to export Fansly chat + # messages (all other types are OnlyFans). `profile_visitors` returns one row per + # account per day, scraped one day at a time so the daily numbers are not + # aggregated away by OnlyFans. # # @return [Symbol, Onlyfans::Models::DataExportCreateParams::Type] required :type, enum: -> { Onlyfans::DataExportCreateParams::Type } # @!attribute account_ids # Array of account prefixed IDs to export data from. Not required for - # `public_profiles` type. + # `public_profiles` type. For `fansly_chat_messages`, pass Fansly account prefixed + # IDs (`fansly_acct_...`); all other types take OnlyFans account IDs. # # @return [Array, nil] optional :account_ids, Onlyfans::Internal::Type::ArrayOf[String] @@ -58,19 +63,23 @@ class DataExportCreateParams < Onlyfans::Internal::Type::BaseModel # account, max 10,000,000), `maxChats` (optional per-account chat scrape limit), # `skipMassMessages` (optional, bool), `chatIds` (optional array of numeric # fan/chat IDs; filters output and can drastically reduce totals). For - # `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, `video`, - # `audio`). For `fans`: `type` (required, one of: `all`, `active`, `expired`, - # `latest`). For `followings`: `type` (required, one of: `all`, `active`, - # `expired`). For `public_profiles`: `query` (optional, full-text search), - # `gender` (optional, filter: male, female, trans, couple), `minSubscribePrice` - # (optional, USD), `maxSubscribePrice` (optional, USD), `location` (optional), - # `minPostsCount` (optional, minimum posts), `minPhotosCount` (optional, minimum - # photos), `minVideosCount` (optional, minimum videos), `minSubscribersCount` - # (optional, minimum subscribers), `minJoinDate` (optional, ISO 8601 date), - # `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` (optional, ISO 8601 - # date, profile added to DB after), `createdAtTo` (optional, ISO 8601 date, - # profile added to DB before), `instagram` (optional), `twitter` (optional), - # `tiktok` (optional), `maxResults` (optional, limit results). + # `fansly_chat_messages`: `maxMessages` (required per account, max 10,000,000), + # `maxChats` (optional per-account chat scrape limit), `chatIds` (optional array + # of Fansly group ID strings; filters output and can drastically reduce totals). + # For `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, + # `video`, `audio`). For `fans`: `type` (required, one of: `all`, `active`, + # `expired`, `latest`). For `followings`: `type` (required, one of: `all`, + # `active`, `expired`). For `public_profiles`: `query` (optional, full-text + # search), `gender` (optional, filter: male, female, trans, couple), + # `minSubscribePrice` (optional, USD), `maxSubscribePrice` (optional, USD), + # `location` (optional), `minPostsCount` (optional, minimum posts), + # `minPhotosCount` (optional, minimum photos), `minVideosCount` (optional, minimum + # videos), `minSubscribersCount` (optional, minimum subscribers), + # `maxSubscribersCount` (optional, maximum subscribers), `minJoinDate` (optional, + # ISO 8601 date), `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` + # (optional, ISO 8601 date, profile added to DB after), `createdAtTo` (optional, + # ISO 8601 date, profile added to DB before), `instagram` (optional), `twitter` + # (optional), `tiktok` (optional), `maxResults` (optional, limit results). # # @return [Hash{Symbol=>Object}, nil] optional :options, Onlyfans::Internal::Type::HashOf[Onlyfans::Internal::Type::Unknown] @@ -85,7 +94,7 @@ class DataExportCreateParams < Onlyfans::Internal::Type::BaseModel # # @param start_date [String] The start date for the export (ISO 8601 format). # - # @param type [Symbol, Onlyfans::Models::DataExportCreateParams::Type] The type of data to export + # @param type [Symbol, Onlyfans::Models::DataExportCreateParams::Type] The type of data to export. Use `fansly_chat_messages` to export Fansly chat mes # # @param account_ids [Array] Array of account prefixed IDs to export data from. Not required for `public_prof # @@ -98,8 +107,9 @@ class DataExportCreateParams < Onlyfans::Internal::Type::BaseModel # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] # The output file format. Supported formats vary by export type: `csv` or `xlsx` - # for transactions, chat_messages, trial_links, tracking_links, smart_links, - # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault. + # for transactions, chat_messages, fansly_chat_messages, trial_links, + # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans, + # followings, profile_visitors; `zip` for media_vault. module FileType extend Onlyfans::Internal::Type::Enum @@ -111,7 +121,10 @@ module FileType # @return [Array] end - # The type of data to export + # The type of data to export. Use `fansly_chat_messages` to export Fansly chat + # messages (all other types are OnlyFans). `profile_visitors` returns one row per + # account per day, scraped one day at a time so the daily numbers are not + # aggregated away by OnlyFans. module Type extend Onlyfans::Internal::Type::Enum @@ -126,6 +139,8 @@ module Type PUBLIC_PROFILES = :public_profiles FANS = :fans FOLLOWINGS = :followings + PROFILE_VISITORS = :profile_visitors + FANSLY_CHAT_MESSAGES = :fansly_chat_messages # @!method self.values # @return [Array] diff --git a/lib/onlyfans/models/data_export_list_params.rb b/lib/onlyfans/models/data_export_list_params.rb index 05921424..fc357ac2 100644 --- a/lib/onlyfans/models/data_export_list_params.rb +++ b/lib/onlyfans/models/data_export_list_params.rb @@ -75,9 +75,14 @@ module Type MEDIA_VAULT = :media_vault TRIAL_LINKS = :trial_links TRACKING_LINKS = :tracking_links + SMART_LINKS = :smart_links PAYOUTS = :payouts CHARGEBACKS = :chargebacks PUBLIC_PROFILES = :public_profiles + FANS = :fans + FOLLOWINGS = :followings + PROFILE_VISITORS = :profile_visitors + FANSLY_CHAT_MESSAGES = :fansly_chat_messages # @!method self.values # @return [Array] diff --git a/lib/onlyfans/models/data_export_list_response.rb b/lib/onlyfans/models/data_export_list_response.rb index 258a241c..ed07f44e 100644 --- a/lib/onlyfans/models/data_export_list_response.rb +++ b/lib/onlyfans/models/data_export_list_response.rb @@ -185,6 +185,11 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :failed_at, String, nil?: true + # @!attribute failed_downloads + # + # @return [Integer, nil] + optional :failed_downloads, Integer + # @!attribute failed_reason # # @return [String, nil] @@ -225,7 +230,7 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :type, String - # @!method initialize(id: nil, accounts: nil, completed_at: nil, created_at: nil, credit_cost: nil, download_url: nil, download_url_expires_at: nil, end_date: nil, export_columns: nil, failed_at: nil, failed_reason: nil, file_type: nil, progress_percentage: nil, rows_processed: nil, start_date: nil, status: nil, total_rows: nil, type: nil) + # @!method initialize(id: nil, accounts: nil, completed_at: nil, created_at: nil, credit_cost: nil, download_url: nil, download_url_expires_at: nil, end_date: nil, export_columns: nil, failed_at: nil, failed_downloads: nil, failed_reason: nil, file_type: nil, progress_percentage: nil, rows_processed: nil, start_date: nil, status: nil, total_rows: nil, type: nil) # @param id [String] # @param accounts [Array] # @param completed_at [String] @@ -236,6 +241,7 @@ class Data < Onlyfans::Internal::Type::BaseModel # @param end_date [String] # @param export_columns [Array] # @param failed_at [String, nil] + # @param failed_downloads [Integer] # @param failed_reason [String, nil] # @param file_type [String] # @param progress_percentage [Integer] diff --git a/lib/onlyfans/models/data_export_retrieve_response.rb b/lib/onlyfans/models/data_export_retrieve_response.rb index bd45187f..8b36bcc8 100644 --- a/lib/onlyfans/models/data_export_retrieve_response.rb +++ b/lib/onlyfans/models/data_export_retrieve_response.rb @@ -159,6 +159,11 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :failed_at, String, nil?: true + # @!attribute failed_downloads + # + # @return [Integer, nil] + optional :failed_downloads, Integer + # @!attribute failed_reason # # @return [String, nil] @@ -199,7 +204,7 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :type, String - # @!method initialize(id: nil, accounts: nil, completed_at: nil, created_at: nil, credit_cost: nil, end_date: nil, export_columns: nil, failed_at: nil, failed_reason: nil, file_type: nil, progress_percentage: nil, rows_processed: nil, start_date: nil, status: nil, total_rows: nil, type: nil) + # @!method initialize(id: nil, accounts: nil, completed_at: nil, created_at: nil, credit_cost: nil, end_date: nil, export_columns: nil, failed_at: nil, failed_downloads: nil, failed_reason: nil, file_type: nil, progress_percentage: nil, rows_processed: nil, start_date: nil, status: nil, total_rows: nil, type: nil) # @param id [String] # @param accounts [Array] # @param completed_at [String, nil] @@ -208,6 +213,7 @@ class Data < Onlyfans::Internal::Type::BaseModel # @param end_date [String] # @param export_columns [Array] # @param failed_at [String, nil] + # @param failed_downloads [Integer] # @param failed_reason [String, nil] # @param file_type [String] # @param progress_percentage [Integer] diff --git a/lib/onlyfans/models/engagement/message_get_message_buyers_params.rb b/lib/onlyfans/models/engagement/message_get_message_buyers_params.rb index 36b9e5d0..1fbd25c7 100644 --- a/lib/onlyfans/models/engagement/message_get_message_buyers_params.rb +++ b/lib/onlyfans/models/engagement/message_get_message_buyers_params.rb @@ -37,7 +37,7 @@ class MessageGetMessageBuyersParams < Onlyfans::Internal::Type::BaseModel optional :offset, Integer # @!attribute skip_users - # Optional flag for subsequent pages (example: all) + # Optional flag for subsequent pages (example: all). # # @return [String, nil] optional :skip_users, String @@ -59,7 +59,7 @@ class MessageGetMessageBuyersParams < Onlyfans::Internal::Type::BaseModel # # @param offset [Integer] Offset for pagination (default = 0) # - # @param skip_users [String] Optional flag for subsequent pages (example: all) + # @param skip_users [String] Optional flag for subsequent pages (example: all). # # @param skip_users_dups [Integer] Skip duplicate users in results (0/1). Default = 1 # diff --git a/lib/onlyfans/models/engagement/message_get_top_message_params.rb b/lib/onlyfans/models/engagement/message_get_top_message_params.rb index f966a377..8faacb88 100644 --- a/lib/onlyfans/models/engagement/message_get_top_message_params.rb +++ b/lib/onlyfans/models/engagement/message_get_top_message_params.rb @@ -14,8 +14,8 @@ class MessageGetTopMessageParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute end_date - # The end date for the period. Keep empty to retrieve until now. MUST BE DATE - # AFTER `startDate`. + # The end date for the period. Keep empty to retrieve until now. It must be after + # `startDate`. # # @return [String, nil] optional :end_date, String @@ -32,7 +32,7 @@ class MessageGetTopMessageParams < Onlyfans::Internal::Type::BaseModel # # @param account [String] # - # @param end_date [String] The end date for the period. Keep empty to retrieve until now. MUST BE DATE AFTE + # @param end_date [String] The end date for the period. Keep empty to retrieve until now. It must be after # # @param start_date [String] The start date for the period. Keep empty to retrieve from the model start date. # diff --git a/lib/onlyfans/models/engagement/messages/direct_message_chart_params.rb b/lib/onlyfans/models/engagement/messages/direct_message_chart_params.rb index 37b0cb04..4ad74837 100644 --- a/lib/onlyfans/models/engagement/messages/direct_message_chart_params.rb +++ b/lib/onlyfans/models/engagement/messages/direct_message_chart_params.rb @@ -15,7 +15,7 @@ class DirectMessageChartParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute end_date - # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. # # @return [String, nil] optional :end_date, String @@ -35,7 +35,7 @@ class DirectMessageChartParams < Onlyfans::Internal::Type::BaseModel # @!method initialize(account:, end_date: nil, start_date: nil, with_total: nil, request_options: {}) # @param account [String] # - # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. # # @param start_date [String] Start of the chart window in `Y-m-d H:i:s` format. # diff --git a/lib/onlyfans/models/engagement/messages/direct_message_list_params.rb b/lib/onlyfans/models/engagement/messages/direct_message_list_params.rb index 4018cd7f..b0905d19 100644 --- a/lib/onlyfans/models/engagement/messages/direct_message_list_params.rb +++ b/lib/onlyfans/models/engagement/messages/direct_message_list_params.rb @@ -15,8 +15,8 @@ class DirectMessageListParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute end_date - # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. # # @return [String, nil] optional :end_date, String @@ -52,7 +52,7 @@ class DirectMessageListParams < Onlyfans::Internal::Type::BaseModel # # @param account [String] # - # @param end_date [String] The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER `start + # @param end_date [String] The latest message to retrieve. Keep empty to get all. It must be after `startDa # # @param limit [Integer] Number of messages to return (default = 10) # diff --git a/lib/onlyfans/models/engagement/messages/mass_message_chart_params.rb b/lib/onlyfans/models/engagement/messages/mass_message_chart_params.rb index 916c1f70..dd7841b5 100644 --- a/lib/onlyfans/models/engagement/messages/mass_message_chart_params.rb +++ b/lib/onlyfans/models/engagement/messages/mass_message_chart_params.rb @@ -15,7 +15,7 @@ class MassMessageChartParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute end_date - # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. # # @return [String, nil] optional :end_date, String @@ -35,7 +35,7 @@ class MassMessageChartParams < Onlyfans::Internal::Type::BaseModel # @!method initialize(account:, end_date: nil, start_date: nil, with_total: nil, request_options: {}) # @param account [String] # - # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. # # @param start_date [String] Start of the chart window in `Y-m-d H:i:s` format. # diff --git a/lib/onlyfans/models/engagement/messages/mass_message_list_params.rb b/lib/onlyfans/models/engagement/messages/mass_message_list_params.rb index 52254348..89c3ddee 100644 --- a/lib/onlyfans/models/engagement/messages/mass_message_list_params.rb +++ b/lib/onlyfans/models/engagement/messages/mass_message_list_params.rb @@ -15,8 +15,8 @@ class MassMessageListParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute end_date - # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. # # @return [String, nil] optional :end_date, String @@ -46,7 +46,7 @@ class MassMessageListParams < Onlyfans::Internal::Type::BaseModel # # @param account [String] # - # @param end_date [String] The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER `start + # @param end_date [String] The latest message to retrieve. Keep empty to get all. It must be after `startDa # # @param limit [Integer] Number of messages to return (default = 10) # diff --git a/lib/onlyfans/models/fan_list_active_params.rb b/lib/onlyfans/models/fan_list_active_params.rb index d8a0436f..e5359a9d 100644 --- a/lib/onlyfans/models/fan_list_active_params.rb +++ b/lib/onlyfans/models/fan_list_active_params.rb @@ -18,8 +18,8 @@ class FanListActiveParams < Onlyfans::Internal::Type::BaseModel optional :filter, -> { Onlyfans::FanListActiveParams::Filter } # @!attribute limit - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. # # @return [Integer, nil] optional :limit, Integer @@ -50,7 +50,7 @@ class FanListActiveParams < Onlyfans::Internal::Type::BaseModel # # @param filter [Onlyfans::Models::FanListActiveParams::Filter] # - # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20 + # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. # # @param offset [Integer] Number of fans to skip. Must be at least 0. # @@ -62,39 +62,81 @@ class FanListActiveParams < Onlyfans::Internal::Type::BaseModel class Filter < Onlyfans::Internal::Type::BaseModel # @!attribute duration - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. # # @return [Integer, nil] optional :duration, Integer + # @!attribute max_total_spent + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + # + # @return [Float, nil] + optional :max_total_spent, Float + # @!attribute online - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. # # @return [Integer, Onlyfans::Models::FanListActiveParams::Filter::Online, nil] optional :online, enum: -> { Onlyfans::FanListActiveParams::Filter::Online }, nil?: true # @!attribute tips - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. # # @return [Integer, nil] optional :tips, Integer # @!attribute total_spent - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. # # @return [Integer, nil] optional :total_spent, Integer - # @!method initialize(duration: nil, online: nil, tips: nil, total_spent: nil) - # @param duration [Integer] Filter by minimum subscription duration in months. Must be at least 0. + # @!method initialize(duration: nil, max_total_spent: nil, online: nil, tips: nil, total_spent: nil) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::FanListActiveParams::Filter} for more details. + # + # @param duration [Integer] Filter by minimum subscription duration in months. Must use bracket syntax: filt + # + # @param max_total_spent [Float] Filter by **maximum** amount total spent by a fan — use `filter[max_total_spent] # - # @param online [Integer, Onlyfans::Models::FanListActiveParams::Filter::Online, nil] Filter by online status (`1` for online fans). + # @param online [Integer, Onlyfans::Models::FanListActiveParams::Filter::Online, nil] Filter by online status (`1` for online fans). Must use bracket syntax: filter[o # - # @param tips [Integer] Filter by minimum tips. Must be at least 0. + # @param tips [Integer] Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form # - # @param total_spent [Integer] Filter by minimum amount total spent by a fan. Must be at least 0. + # @param total_spent [Integer] Filter by minimum amount total spent by a fan. Must use bracket syntax: filter[t - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. # # @see Onlyfans::Models::FanListActiveParams::Filter#online module Online diff --git a/lib/onlyfans/models/fan_list_all_params.rb b/lib/onlyfans/models/fan_list_all_params.rb index e530fbf9..c9f95b59 100644 --- a/lib/onlyfans/models/fan_list_all_params.rb +++ b/lib/onlyfans/models/fan_list_all_params.rb @@ -18,8 +18,8 @@ class FanListAllParams < Onlyfans::Internal::Type::BaseModel optional :filter, -> { Onlyfans::FanListAllParams::Filter } # @!attribute limit - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. # # @return [Integer, nil] optional :limit, Integer @@ -50,7 +50,7 @@ class FanListAllParams < Onlyfans::Internal::Type::BaseModel # # @param filter [Onlyfans::Models::FanListAllParams::Filter] # - # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20 + # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. # # @param offset [Integer] Number of fans to skip. Must be at least 0. # @@ -62,39 +62,81 @@ class FanListAllParams < Onlyfans::Internal::Type::BaseModel class Filter < Onlyfans::Internal::Type::BaseModel # @!attribute duration - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. # # @return [Integer, nil] optional :duration, Integer + # @!attribute max_total_spent + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + # + # @return [Float, nil] + optional :max_total_spent, Float + # @!attribute online - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. # # @return [Integer, Onlyfans::Models::FanListAllParams::Filter::Online, nil] optional :online, enum: -> { Onlyfans::FanListAllParams::Filter::Online }, nil?: true # @!attribute tips - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. # # @return [Integer, nil] optional :tips, Integer # @!attribute total_spent - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. # # @return [Integer, nil] optional :total_spent, Integer - # @!method initialize(duration: nil, online: nil, tips: nil, total_spent: nil) - # @param duration [Integer] Filter by minimum subscription duration in months. Must be at least 0. + # @!method initialize(duration: nil, max_total_spent: nil, online: nil, tips: nil, total_spent: nil) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::FanListAllParams::Filter} for more details. + # + # @param duration [Integer] Filter by minimum subscription duration in months. Must use bracket syntax: filt + # + # @param max_total_spent [Float] Filter by **maximum** amount total spent by a fan — use `filter[max_total_spent] # - # @param online [Integer, Onlyfans::Models::FanListAllParams::Filter::Online, nil] Filter by online status (`1` for online fans). + # @param online [Integer, Onlyfans::Models::FanListAllParams::Filter::Online, nil] Filter by online status (`1` for online fans). Must use bracket syntax: filter[o # - # @param tips [Integer] Filter by minimum tips. Must be at least 0. + # @param tips [Integer] Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form # - # @param total_spent [Integer] Filter by minimum amount total spent by a fan. Must be at least 0. + # @param total_spent [Integer] Filter by minimum amount total spent by a fan. Must use bracket syntax: filter[t - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. # # @see Onlyfans::Models::FanListAllParams::Filter#online module Online diff --git a/lib/onlyfans/models/fan_list_expired_params.rb b/lib/onlyfans/models/fan_list_expired_params.rb index 25ad2df7..974137e6 100644 --- a/lib/onlyfans/models/fan_list_expired_params.rb +++ b/lib/onlyfans/models/fan_list_expired_params.rb @@ -18,8 +18,8 @@ class FanListExpiredParams < Onlyfans::Internal::Type::BaseModel optional :filter, -> { Onlyfans::FanListExpiredParams::Filter } # @!attribute limit - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. # # @return [Integer, nil] optional :limit, Integer @@ -50,7 +50,7 @@ class FanListExpiredParams < Onlyfans::Internal::Type::BaseModel # # @param filter [Onlyfans::Models::FanListExpiredParams::Filter] # - # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20 + # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. # # @param offset [Integer] Number of fans to skip. Must be at least 0. # @@ -62,39 +62,81 @@ class FanListExpiredParams < Onlyfans::Internal::Type::BaseModel class Filter < Onlyfans::Internal::Type::BaseModel # @!attribute duration - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. # # @return [Integer, nil] optional :duration, Integer + # @!attribute max_total_spent + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + # + # @return [Float, nil] + optional :max_total_spent, Float + # @!attribute online - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. # # @return [Integer, Onlyfans::Models::FanListExpiredParams::Filter::Online, nil] optional :online, enum: -> { Onlyfans::FanListExpiredParams::Filter::Online }, nil?: true # @!attribute tips - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. # # @return [Integer, nil] optional :tips, Integer # @!attribute total_spent - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. # # @return [Integer, nil] optional :total_spent, Integer - # @!method initialize(duration: nil, online: nil, tips: nil, total_spent: nil) - # @param duration [Integer] Filter by minimum subscription duration in months. Must be at least 0. + # @!method initialize(duration: nil, max_total_spent: nil, online: nil, tips: nil, total_spent: nil) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::FanListExpiredParams::Filter} for more details. + # + # @param duration [Integer] Filter by minimum subscription duration in months. Must use bracket syntax: filt + # + # @param max_total_spent [Float] Filter by **maximum** amount total spent by a fan — use `filter[max_total_spent] # - # @param online [Integer, Onlyfans::Models::FanListExpiredParams::Filter::Online, nil] Filter by online status (`1` for online fans). + # @param online [Integer, Onlyfans::Models::FanListExpiredParams::Filter::Online, nil] Filter by online status (`1` for online fans). Must use bracket syntax: filter[o # - # @param tips [Integer] Filter by minimum tips. Must be at least 0. + # @param tips [Integer] Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form # - # @param total_spent [Integer] Filter by minimum amount total spent by a fan. Must be at least 0. + # @param total_spent [Integer] Filter by minimum amount total spent by a fan. Must use bracket syntax: filter[t - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. # # @see Onlyfans::Models::FanListExpiredParams::Filter#online module Online diff --git a/lib/onlyfans/models/fan_list_latest_params.rb b/lib/onlyfans/models/fan_list_latest_params.rb index c8886110..d8e82045 100644 --- a/lib/onlyfans/models/fan_list_latest_params.rb +++ b/lib/onlyfans/models/fan_list_latest_params.rb @@ -13,15 +13,15 @@ class FanListLatestParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute end_date - # End date for filtering (required with start_date). This field is required when - # start_date is present. + # End date for filtering (required with start_date). Must be a valid date. Must + # not be greater than 255 characters. # # @return [String, nil] optional :end_date, String, nil?: true # @!attribute limit # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 100. + # than 50. # # @return [Integer, nil] optional :limit, Integer @@ -33,8 +33,8 @@ class FanListLatestParams < Onlyfans::Internal::Type::BaseModel optional :offset, Integer # @!attribute start_date - # Start date for filtering (required with end_date). This field is required when - # end_date is present. + # Start date for filtering (required with end_date). Must be a valid date. Must + # not be greater than 255 characters. # # @return [String, nil] optional :start_date, String, nil?: true @@ -51,13 +51,13 @@ class FanListLatestParams < Onlyfans::Internal::Type::BaseModel # # @param account [String] # - # @param end_date [String, nil] End date for filtering (required with start_date). This field is required when < + # @param end_date [String, nil] End date for filtering (required with start_date). Must be a valid date. Must no # - # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 10 + # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 50 # # @param offset [Integer] Number of fans to skip. Must be at least 0. # - # @param start_date [String, nil] Start date for filtering (required with end_date). This field is required when < + # @param start_date [String, nil] Start date for filtering (required with end_date). Must be a valid date. Must no # # @param type [Symbol, Onlyfans::Models::FanListLatestParams::Type, nil] Filter by type: total, renew, or new. # diff --git a/lib/onlyfans/models/fan_list_top_params.rb b/lib/onlyfans/models/fan_list_top_params.rb index e3bca659..8cf54ca8 100644 --- a/lib/onlyfans/models/fan_list_top_params.rb +++ b/lib/onlyfans/models/fan_list_top_params.rb @@ -19,15 +19,15 @@ class FanListTopParams < Onlyfans::Internal::Type::BaseModel optional :by, enum: -> { Onlyfans::FanListTopParams::By }, nil?: true # @!attribute end_date - # End date for filtering (required with start_date). This field is required when - # start_date is present. + # End date for filtering (required with start_date). Must be a valid date. Must + # not be greater than 255 characters. # # @return [String, nil] optional :end_date, String, nil?: true # @!attribute start_date - # Start date for filtering (required with end_date). This field is required when - # end_date is present. + # Start date for filtering (required with end_date). Must be a valid date. Must + # not be greater than 255 characters. # # @return [String, nil] optional :start_date, String, nil?: true @@ -40,9 +40,9 @@ class FanListTopParams < Onlyfans::Internal::Type::BaseModel # # @param by [Symbol, Onlyfans::Models::FanListTopParams::By, nil] Sort by: total (default), subscribes, tips, messages, post, streams. # - # @param end_date [String, nil] End date for filtering (required with start_date). This field is required when < + # @param end_date [String, nil] End date for filtering (required with start_date). Must be a valid date. Must no # - # @param start_date [String, nil] Start date for filtering (required with end_date). This field is required when < + # @param start_date [String, nil] Start date for filtering (required with end_date). Must be a valid date. Must no # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/onlyfans/models/fans/summary_get_summary_response.rb b/lib/onlyfans/models/fans/summary_get_summary_response.rb index 7581c79a..dbe3cf28 100644 --- a/lib/onlyfans/models/fans/summary_get_summary_response.rb +++ b/lib/onlyfans/models/fans/summary_get_summary_response.rb @@ -10,6 +10,12 @@ class SummaryGetSummaryResponse < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :analyzed_message_count, Integer + # @!attribute custom_fields + # + # @return [Array, nil] + optional :custom_fields, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField] } + # @!attribute error_message # # @return [String, nil] @@ -20,6 +26,11 @@ class SummaryGetSummaryResponse < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :last_analyzed_at, String + # @!attribute last_buy_date + # + # @return [String, nil] + optional :last_buy_date, String + # @!attribute status # # @return [String, nil] @@ -30,20 +41,48 @@ class SummaryGetSummaryResponse < Onlyfans::Internal::Type::BaseModel # @return [Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData, nil] optional :summary_data, -> { Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData } - # @!method initialize(analyzed_message_count: nil, error_message: nil, last_analyzed_at: nil, status: nil, summary_data: nil) + # @!method initialize(analyzed_message_count: nil, custom_fields: nil, error_message: nil, last_analyzed_at: nil, last_buy_date: nil, status: nil, summary_data: nil) # @param analyzed_message_count [Integer] + # @param custom_fields [Array] # @param error_message [String, nil] # @param last_analyzed_at [String] + # @param last_buy_date [String] # @param status [String] # @param summary_data [Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData] + class CustomField < Onlyfans::Internal::Type::BaseModel + # @!attribute key + # + # @return [String, nil] + optional :key, String + + # @!attribute label + # + # @return [String, nil] + optional :label, String + + # @!method initialize(key: nil, label: nil) + # @param key [String] + # @param label [String] + end + # @see Onlyfans::Models::Fans::SummaryGetSummaryResponse#summary_data class SummaryData < Onlyfans::Internal::Type::BaseModel + # @!attribute content_dislikes + # + # @return [String, nil] + optional :content_dislikes, String + # @!attribute content_preferences # # @return [String, nil] optional :content_preferences, String + # @!attribute dos_and_donts + # + # @return [String, nil] + optional :dos_and_donts, String + # @!attribute family_pets # # @return [String, nil] @@ -84,6 +123,11 @@ class SummaryData < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :requests, String + # @!attribute spend_cadence + # + # @return [String, nil] + optional :spend_cadence, String + # @!attribute themes # # @return [String, nil] @@ -94,8 +138,10 @@ class SummaryData < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :travel_plans, String - # @!method initialize(content_preferences: nil, family_pets: nil, hobbies: nil, interests: nil, kinks: nil, name: nil, other_notes: nil, preferred_name: nil, requests: nil, themes: nil, travel_plans: nil) + # @!method initialize(content_dislikes: nil, content_preferences: nil, dos_and_donts: nil, family_pets: nil, hobbies: nil, interests: nil, kinks: nil, name: nil, other_notes: nil, preferred_name: nil, requests: nil, spend_cadence: nil, themes: nil, travel_plans: nil) + # @param content_dislikes [String] # @param content_preferences [String] + # @param dos_and_donts [String] # @param family_pets [String] # @param hobbies [String] # @param interests [String] @@ -104,6 +150,7 @@ class SummaryData < Onlyfans::Internal::Type::BaseModel # @param other_notes [String] # @param preferred_name [String] # @param requests [String] + # @param spend_cadence [String] # @param themes [String] # @param travel_plans [String] end diff --git a/lib/onlyfans/models/following_list_active_params.rb b/lib/onlyfans/models/following_list_active_params.rb index a100f81f..d44ea310 100644 --- a/lib/onlyfans/models/following_list_active_params.rb +++ b/lib/onlyfans/models/following_list_active_params.rb @@ -36,7 +36,38 @@ class FollowingListActiveParams < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :query, String, nil?: true - # @!method initialize(account:, filter: nil, limit: nil, offset: nil, query: nil, request_options: {}) + # @!attribute sort + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + # + # @return [Symbol, Onlyfans::Models::FollowingListActiveParams::Sort, nil] + optional :sort, enum: -> { Onlyfans::FollowingListActiveParams::Sort }, nil?: true + + # @!attribute sort_direction + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + # + # @return [Symbol, Onlyfans::Models::FollowingListActiveParams::SortDirection, nil] + optional :sort_direction, enum: -> { Onlyfans::FollowingListActiveParams::SortDirection }, nil?: true + + # @!method initialize(account:, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::FollowingListActiveParams} for more details. # @@ -50,6 +81,10 @@ class FollowingListActiveParams < Onlyfans::Internal::Type::BaseModel # # @param query [String, nil] Search within following name/username. # + # @param sort [Symbol, Onlyfans::Models::FollowingListActiveParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir + # + # @param sort_direction [Symbol, Onlyfans::Models::FollowingListActiveParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] class Filter < Onlyfans::Internal::Type::BaseModel @@ -96,6 +131,49 @@ module Paid # @return [Array] end end + + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + module Sort + extend Onlyfans::Internal::Type::Enum + + LAST_ACTIVITY = :last_activity + EXPIRE_DATE = :expire_date + SUBSCRIBE_DATE = :subscribe_date + IS_EXPIRED = :is_expired + + # @!method self.values + # @return [Array] + end + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + module SortDirection + extend Onlyfans::Internal::Type::Enum + + ASC = :asc + DESC = :desc + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/following_list_all_params.rb b/lib/onlyfans/models/following_list_all_params.rb index d26f8472..17f6a815 100644 --- a/lib/onlyfans/models/following_list_all_params.rb +++ b/lib/onlyfans/models/following_list_all_params.rb @@ -36,7 +36,38 @@ class FollowingListAllParams < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :query, String, nil?: true - # @!method initialize(account:, filter: nil, limit: nil, offset: nil, query: nil, request_options: {}) + # @!attribute sort + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + # + # @return [Symbol, Onlyfans::Models::FollowingListAllParams::Sort, nil] + optional :sort, enum: -> { Onlyfans::FollowingListAllParams::Sort }, nil?: true + + # @!attribute sort_direction + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + # + # @return [Symbol, Onlyfans::Models::FollowingListAllParams::SortDirection, nil] + optional :sort_direction, enum: -> { Onlyfans::FollowingListAllParams::SortDirection }, nil?: true + + # @!method initialize(account:, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::FollowingListAllParams} for more details. # @@ -50,6 +81,10 @@ class FollowingListAllParams < Onlyfans::Internal::Type::BaseModel # # @param query [String, nil] Search within following name/username. # + # @param sort [Symbol, Onlyfans::Models::FollowingListAllParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir + # + # @param sort_direction [Symbol, Onlyfans::Models::FollowingListAllParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] class Filter < Onlyfans::Internal::Type::BaseModel @@ -96,6 +131,49 @@ module Paid # @return [Array] end end + + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + module Sort + extend Onlyfans::Internal::Type::Enum + + LAST_ACTIVITY = :last_activity + EXPIRE_DATE = :expire_date + SUBSCRIBE_DATE = :subscribe_date + IS_EXPIRED = :is_expired + + # @!method self.values + # @return [Array] + end + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + module SortDirection + extend Onlyfans::Internal::Type::Enum + + ASC = :asc + DESC = :desc + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/following_list_expired_params.rb b/lib/onlyfans/models/following_list_expired_params.rb index b6f479be..84436b7d 100644 --- a/lib/onlyfans/models/following_list_expired_params.rb +++ b/lib/onlyfans/models/following_list_expired_params.rb @@ -36,7 +36,38 @@ class FollowingListExpiredParams < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :query, String, nil?: true - # @!method initialize(account:, filter: nil, limit: nil, offset: nil, query: nil, request_options: {}) + # @!attribute sort + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + # + # @return [Symbol, Onlyfans::Models::FollowingListExpiredParams::Sort, nil] + optional :sort, enum: -> { Onlyfans::FollowingListExpiredParams::Sort }, nil?: true + + # @!attribute sort_direction + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + # + # @return [Symbol, Onlyfans::Models::FollowingListExpiredParams::SortDirection, nil] + optional :sort_direction, enum: -> { Onlyfans::FollowingListExpiredParams::SortDirection }, nil?: true + + # @!method initialize(account:, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::FollowingListExpiredParams} for more details. # @@ -50,6 +81,10 @@ class FollowingListExpiredParams < Onlyfans::Internal::Type::BaseModel # # @param query [String, nil] Search within following name/username. # + # @param sort [Symbol, Onlyfans::Models::FollowingListExpiredParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir + # + # @param sort_direction [Symbol, Onlyfans::Models::FollowingListExpiredParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] class Filter < Onlyfans::Internal::Type::BaseModel @@ -96,6 +131,49 @@ module Paid # @return [Array] end end + + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + module Sort + extend Onlyfans::Internal::Type::Enum + + LAST_ACTIVITY = :last_activity + EXPIRE_DATE = :expire_date + SUBSCRIBE_DATE = :subscribe_date + IS_EXPIRED = :is_expired + + # @!method self.values + # @return [Array] + end + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + module SortDirection + extend Onlyfans::Internal::Type::Enum + + ASC = :asc + DESC = :desc + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/link_tag_list_params.rb b/lib/onlyfans/models/link_tag_list_params.rb index edf063d7..9cbb2df3 100644 --- a/lib/onlyfans/models/link_tag_list_params.rb +++ b/lib/onlyfans/models/link_tag_list_params.rb @@ -8,22 +8,23 @@ class LinkTagListParams < Onlyfans::Internal::Type::BaseModel include Onlyfans::Internal::Type::RequestParameters # @!attribute type - # Filter by link type. If not provided, returns tags for both types. + # Filter by link type. If not provided, returns tags for all types. # # @return [Symbol, Onlyfans::Models::LinkTagListParams::Type, nil] optional :type, enum: -> { Onlyfans::LinkTagListParams::Type } # @!method initialize(type: nil, request_options: {}) - # @param type [Symbol, Onlyfans::Models::LinkTagListParams::Type] Filter by link type. If not provided, returns tags for both types. + # @param type [Symbol, Onlyfans::Models::LinkTagListParams::Type] Filter by link type. If not provided, returns tags for all types. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] - # Filter by link type. If not provided, returns tags for both types. + # Filter by link type. If not provided, returns tags for all types. module Type extend Onlyfans::Internal::Type::Enum TRIAL_LINKS = :trial_links TRACKING_LINKS = :tracking_links + SMART_LINKS = :smart_links # @!method self.values # @return [Array] diff --git a/lib/onlyfans/models/mass_messaging_retrieve_overview_params.rb b/lib/onlyfans/models/mass_messaging_retrieve_overview_params.rb index 09455c1d..ef9d7020 100644 --- a/lib/onlyfans/models/mass_messaging_retrieve_overview_params.rb +++ b/lib/onlyfans/models/mass_messaging_retrieve_overview_params.rb @@ -13,8 +13,8 @@ class MassMessagingRetrieveOverviewParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute end_date - # The latest mass message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest mass message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. # # @return [String, nil] optional :end_date, String @@ -43,7 +43,7 @@ class MassMessagingRetrieveOverviewParams < Onlyfans::Internal::Type::BaseModel # # @param account [String] # - # @param end_date [String] The latest mass message to retrieve. Keep empty to get all. MUST BE DATE AFTER ` + # @param end_date [String] The latest mass message to retrieve. Keep empty to get all. It must be after `st # # @param limit [Integer] Number of mass messages to return (default = 10) # diff --git a/lib/onlyfans/models/mass_messaging_send_params.rb b/lib/onlyfans/models/mass_messaging_send_params.rb index 4ad0394f..c3fa6924 100644 --- a/lib/onlyfans/models/mass_messaging_send_params.rb +++ b/lib/onlyfans/models/mass_messaging_send_params.rb @@ -18,6 +18,17 @@ class MassMessagingSendParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :text, String + # @!attribute block_banned_words + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + # + # @return [Symbol, Onlyfans::Models::MassMessagingSendParams::BlockBannedWords, nil] + optional :block_banned_words, + enum: -> { Onlyfans::MassMessagingSendParams::BlockBannedWords }, + api_name: :blockBannedWords + # @!attribute excluded_lists # Array of user list IDs that the mass message will NOT be sent to. # @@ -55,11 +66,11 @@ class MassMessagingSendParams < Onlyfans::Internal::Type::BaseModel optional :previews, Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown] # @!attribute price - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required # - # @return [Integer, nil] - optional :price, Integer + # @return [Float, nil] + optional :price, Float # @!attribute rf_guest # Array of OnlyFans Release Form Guest IDs to tag in your mass message @@ -103,7 +114,7 @@ class MassMessagingSendParams < Onlyfans::Internal::Type::BaseModel # @return [Array, nil] optional :user_lists, Onlyfans::Internal::Type::ArrayOf[String], api_name: :userLists - # @!method initialize(account:, text:, excluded_lists: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, user_ids: nil, user_lists: nil, request_options: {}) + # @!method initialize(account:, text:, block_banned_words: nil, excluded_lists: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, user_ids: nil, user_lists: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::MassMessagingSendParams} for more details. # @@ -111,6 +122,8 @@ class MassMessagingSendParams < Onlyfans::Internal::Type::BaseModel # # @param text [String] The message text content # + # @param block_banned_words [Symbol, Onlyfans::Models::MassMessagingSendParams::BlockBannedWords] Screen `text` for OnlyFans banned words and block the send if any are found (ret + # # @param excluded_lists [Array] Array of user list IDs that the mass message will NOT be sent to. # # @param giphy_id [String] The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing @@ -121,8 +134,8 @@ class MassMessagingSendParams < Onlyfans::Internal::Type::BaseModel # # @param previews [Array] Direct file uploads, OFAPI `ofapi_media_` IDs, OF vault IDs, or integer indices # - # @param price [Integer] Price for paid content (0 or between 3-200). In case this is not zero, - # \*\*mediaFi + # @param price [Float] Price for paid content in USD (0 or between 3-200). In case this is not zero, + # \*\* # # @param rf_guest [String] Array of OnlyFans Release Form Guest IDs to tag in your mass message # @@ -139,6 +152,21 @@ class MassMessagingSendParams < Onlyfans::Internal::Type::BaseModel # @param user_lists [Array] Array of user list IDs that the mass message will be sent to. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN = :strict_ban + RISKY = :risky + REPLACE_SOFTEN = :replace_soften + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/mass_messaging_update_params.rb b/lib/onlyfans/models/mass_messaging_update_params.rb index d566105d..47b30ba8 100644 --- a/lib/onlyfans/models/mass_messaging_update_params.rb +++ b/lib/onlyfans/models/mass_messaging_update_params.rb @@ -23,6 +23,17 @@ class MassMessagingUpdateParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :text, String + # @!attribute block_banned_words + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + # + # @return [Symbol, Onlyfans::Models::MassMessagingUpdateParams::BlockBannedWords, nil] + optional :block_banned_words, + enum: -> { Onlyfans::MassMessagingUpdateParams::BlockBannedWords }, + api_name: :blockBannedWords + # @!attribute giphy_id # The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing # endpoints (`/giphy/trending`, `/giphy/search`). @@ -52,11 +63,11 @@ class MassMessagingUpdateParams < Onlyfans::Internal::Type::BaseModel optional :previews, Onlyfans::Internal::Type::ArrayOf[String] # @!attribute price - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required # - # @return [Integer, nil] - optional :price, Integer + # @return [Float, nil] + optional :price, Float # @!attribute scheduled_date # Schedule the chat message in the future (UTC timezone). @@ -76,7 +87,7 @@ class MassMessagingUpdateParams < Onlyfans::Internal::Type::BaseModel # @return [Array, nil] optional :user_lists, Onlyfans::Internal::Type::ArrayOf[String], api_name: :userLists - # @!method initialize(account:, id:, text:, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, scheduled_date: nil, user_ids: nil, user_lists: nil, request_options: {}) + # @!method initialize(account:, id:, text:, block_banned_words: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, scheduled_date: nil, user_ids: nil, user_lists: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::MassMessagingUpdateParams} for more details. # @@ -86,6 +97,8 @@ class MassMessagingUpdateParams < Onlyfans::Internal::Type::BaseModel # # @param text [String] The message text content # + # @param block_banned_words [Symbol, Onlyfans::Models::MassMessagingUpdateParams::BlockBannedWords] Screen `text` for OnlyFans banned words and block the update if any are found (r + # # @param giphy_id [String] The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing # # @param locked_text [Boolean] Whether the text should be shown or hidden @@ -94,8 +107,8 @@ class MassMessagingUpdateParams < Onlyfans::Internal::Type::BaseModel # # @param previews [Array] Array of media file upload prefixed_ids, or OF media IDs (required if price is n # - # @param price [Integer] Price for paid content (0 or between 3-200). In case this is not zero, - # \*\*mediaFi + # @param price [Float] Price for paid content in USD (0 or between 3-200). In case this is not zero, + # \*\* # # @param scheduled_date [String] Schedule the chat message in the future (UTC timezone). # @@ -104,6 +117,21 @@ class MassMessagingUpdateParams < Onlyfans::Internal::Type::BaseModel # @param user_lists [Array] Array of user list IDs that the mass message will be sent to. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN = :strict_ban + RISKY = :risky + REPLACE_SOFTEN = :replace_soften + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/media/vault/list_list_params.rb b/lib/onlyfans/models/media/vault/list_list_params.rb index da6abe95..5ce79e69 100644 --- a/lib/onlyfans/models/media/vault/list_list_params.rb +++ b/lib/onlyfans/models/media/vault/list_list_params.rb @@ -14,6 +14,14 @@ class ListListParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :account, String + # @!attribute lightweight + # Set to `true` to return only `id`, `name`, `type`, `canUpdate` and a rolled-up + # `mediaCount` per list, dropping the `medias` previews. Much smaller payload — + # ideal for rendering a folder picker. Default: `false` + # + # @return [Boolean, nil] + optional :lightweight, Onlyfans::Internal::Type::Boolean + # @!attribute limit # Number of media to return per page. Default: `24` # @@ -32,9 +40,14 @@ class ListListParams < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :query, String - # @!method initialize(account:, limit: nil, offset: nil, query: nil, request_options: {}) + # @!method initialize(account:, lightweight: nil, limit: nil, offset: nil, query: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::Media::Vault::ListListParams} for more details. + # # @param account [String] # + # @param lightweight [Boolean] Set to `true` to return only `id`, `name`, `type`, `canUpdate` and a rolled-up ` + # # @param limit [Integer] Number of media to return per page. Default: `24` # # @param offset [Integer] The offset used for pagination. Default `0` diff --git a/lib/onlyfans/models/media/vault/list_list_response.rb b/lib/onlyfans/models/media/vault/list_list_response.rb index 7f023a56..981fd953 100644 --- a/lib/onlyfans/models/media/vault/list_list_response.rb +++ b/lib/onlyfans/models/media/vault/list_list_response.rb @@ -4,279 +4,497 @@ module Onlyfans module Models module Media module Vault + # Success + # # @see Onlyfans::Resources::Media::Vault::Lists#list - class ListListResponse < Onlyfans::Internal::Type::BaseModel - # @!attribute _meta - # - # @return [Onlyfans::Models::Media::Vault::ListListResponse::Meta, nil] - optional :_meta, -> { Onlyfans::Models::Media::Vault::ListListResponse::Meta } - - # @!attribute data - # - # @return [Onlyfans::Models::Media::Vault::ListListResponse::Data, nil] - optional :data, -> { Onlyfans::Models::Media::Vault::ListListResponse::Data } - - # @!method initialize(_meta: nil, data: nil) - # @param _meta [Onlyfans::Models::Media::Vault::ListListResponse::Meta] - # @param data [Onlyfans::Models::Media::Vault::ListListResponse::Data] - - # @see Onlyfans::Models::Media::Vault::ListListResponse#_meta - class Meta < Onlyfans::Internal::Type::BaseModel - # @!attribute _cache + module ListListResponse + extend Onlyfans::Internal::Type::Union + + # Success + variant -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0 } + + # Success (lightweight=true) + variant -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1 } + + class UnionMember0 < Onlyfans::Internal::Type::BaseModel + # @!attribute _meta # - # @return [Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache, nil] - optional :_cache, -> { Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache } + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta, nil] + optional :_meta, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta } - # @!attribute _credits + # @!attribute data # - # @return [Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits, nil] - optional :_credits, -> { Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits } + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data, nil] + optional :data, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data } - # @!attribute _rate_limits + # @!method initialize(_meta: nil, data: nil) + # Success # - # @return [Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits, nil] - optional :_rate_limits, -> { Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits } + # @param _meta [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta] + # @param data [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data] - # @!method initialize(_cache: nil, _credits: nil, _rate_limits: nil) - # @param _cache [Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache] - # @param _credits [Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits] - # @param _rate_limits [Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits] + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0#_meta + class Meta < Onlyfans::Internal::Type::BaseModel + # @!attribute _cache + # + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache, nil] + optional :_cache, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache } - # @see Onlyfans::Models::Media::Vault::ListListResponse::Meta#_cache - class Cache < Onlyfans::Internal::Type::BaseModel - # @!attribute is_cached + # @!attribute _credits # - # @return [Boolean, nil] - optional :is_cached, Onlyfans::Internal::Type::Boolean + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits, nil] + optional :_credits, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits } - # @!attribute note + # @!attribute _rate_limits # - # @return [String, nil] - optional :note, String + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits, nil] + optional :_rate_limits, + -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits } + + # @!method initialize(_cache: nil, _credits: nil, _rate_limits: nil) + # @param _cache [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache] + # @param _credits [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits] + # @param _rate_limits [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits] + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta#_cache + class Cache < Onlyfans::Internal::Type::BaseModel + # @!attribute is_cached + # + # @return [Boolean, nil] + optional :is_cached, Onlyfans::Internal::Type::Boolean + + # @!attribute note + # + # @return [String, nil] + optional :note, String + + # @!method initialize(is_cached: nil, note: nil) + # @param is_cached [Boolean] + # @param note [String] + end + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta#_credits + class Credits < Onlyfans::Internal::Type::BaseModel + # @!attribute balance + # + # @return [Integer, nil] + optional :balance, Integer + + # @!attribute note + # + # @return [String, nil] + optional :note, String + + # @!attribute used + # + # @return [Integer, nil] + optional :used, Integer + + # @!method initialize(balance: nil, note: nil, used: nil) + # @param balance [Integer] + # @param note [String] + # @param used [Integer] + end + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta#_rate_limits + class RateLimits < Onlyfans::Internal::Type::BaseModel + # @!attribute limit_day + # + # @return [Integer, nil] + optional :limit_day, Integer + + # @!attribute limit_minute + # + # @return [Integer, nil] + optional :limit_minute, Integer + + # @!attribute remaining_day + # + # @return [Integer, nil] + optional :remaining_day, Integer - # @!method initialize(is_cached: nil, note: nil) - # @param is_cached [Boolean] - # @param note [String] + # @!attribute remaining_minute + # + # @return [Integer, nil] + optional :remaining_minute, Integer + + # @!method initialize(limit_day: nil, limit_minute: nil, remaining_day: nil, remaining_minute: nil) + # @param limit_day [Integer] + # @param limit_minute [Integer] + # @param remaining_day [Integer] + # @param remaining_minute [Integer] + end end - # @see Onlyfans::Models::Media::Vault::ListListResponse::Meta#_credits - class Credits < Onlyfans::Internal::Type::BaseModel - # @!attribute balance + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0#data + class Data < Onlyfans::Internal::Type::BaseModel + # @!attribute all # - # @return [Integer, nil] - optional :balance, Integer + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All, nil] + optional :all, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All } - # @!attribute note + # @!attribute can_create_vault_lists # - # @return [String, nil] - optional :note, String + # @return [Boolean, nil] + optional :can_create_vault_lists, + Onlyfans::Internal::Type::Boolean, + api_name: :canCreateVaultLists - # @!attribute used + # @!attribute has_more # - # @return [Integer, nil] - optional :used, Integer - - # @!method initialize(balance: nil, note: nil, used: nil) - # @param balance [Integer] - # @param note [String] - # @param used [Integer] - end + # @return [Boolean, nil] + optional :has_more, Onlyfans::Internal::Type::Boolean, api_name: :hasMore - # @see Onlyfans::Models::Media::Vault::ListListResponse::Meta#_rate_limits - class RateLimits < Onlyfans::Internal::Type::BaseModel - # @!attribute limit_day + # @!attribute list # - # @return [Integer, nil] - optional :limit_day, Integer + # @return [Array, nil] + optional :list, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List] } - # @!attribute limit_minute + # @!attribute order # - # @return [Integer, nil] - optional :limit_minute, Integer + # @return [String, nil] + optional :order, String - # @!attribute remaining_day + # @!attribute sort # - # @return [Integer, nil] - optional :remaining_day, Integer + # @return [String, nil] + optional :sort, String + + # @!method initialize(all: nil, can_create_vault_lists: nil, has_more: nil, list: nil, order: nil, sort: nil) + # @param all [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All] + # @param can_create_vault_lists [Boolean] + # @param has_more [Boolean] + # @param list [Array] + # @param order [String] + # @param sort [String] + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data#all + class All < Onlyfans::Internal::Type::BaseModel + # @!attribute audios_count + # + # @return [Integer, nil] + optional :audios_count, Integer, api_name: :audiosCount - # @!attribute remaining_minute - # - # @return [Integer, nil] - optional :remaining_minute, Integer - - # @!method initialize(limit_day: nil, limit_minute: nil, remaining_day: nil, remaining_minute: nil) - # @param limit_day [Integer] - # @param limit_minute [Integer] - # @param remaining_day [Integer] - # @param remaining_minute [Integer] - end - end + # @!attribute gifs_count + # + # @return [Integer, nil] + optional :gifs_count, Integer, api_name: :gifsCount - # @see Onlyfans::Models::Media::Vault::ListListResponse#data - class Data < Onlyfans::Internal::Type::BaseModel - # @!attribute all - # - # @return [Onlyfans::Models::Media::Vault::ListListResponse::Data::All, nil] - optional :all, -> { Onlyfans::Models::Media::Vault::ListListResponse::Data::All } + # @!attribute medias + # + # @return [Array, nil] + optional :medias, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media] } - # @!attribute can_create_vault_lists - # - # @return [Boolean, nil] - optional :can_create_vault_lists, - Onlyfans::Internal::Type::Boolean, - api_name: :canCreateVaultLists + # @!attribute photos_count + # + # @return [Integer, nil] + optional :photos_count, Integer, api_name: :photosCount - # @!attribute has_more - # - # @return [Boolean, nil] - optional :has_more, Onlyfans::Internal::Type::Boolean, api_name: :hasMore + # @!attribute videos_count + # + # @return [Integer, nil] + optional :videos_count, Integer, api_name: :videosCount + + # @!method initialize(audios_count: nil, gifs_count: nil, medias: nil, photos_count: nil, videos_count: nil) + # @param audios_count [Integer] + # @param gifs_count [Integer] + # @param medias [Array] + # @param photos_count [Integer] + # @param videos_count [Integer] + + class Media < Onlyfans::Internal::Type::BaseModel + # @!attribute type + # + # @return [String, nil] + optional :type, String + + # @!attribute url + # + # @return [String, nil] + optional :url, String + + # @!method initialize(type: nil, url: nil) + # @param type [String] + # @param url [String] + end + end - # @!attribute list - # - # @return [Array, nil] - optional :list, - -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Media::Vault::ListListResponse::Data::List] } + class List < Onlyfans::Internal::Type::BaseModel + # @!attribute id + # + # @return [Integer, nil] + optional :id, Integer - # @!attribute order - # - # @return [String, nil] - optional :order, String + # @!attribute audios_count + # + # @return [Integer, nil] + optional :audios_count, Integer, api_name: :audiosCount - # @!attribute sort - # - # @return [String, nil] - optional :sort, String - - # @!method initialize(all: nil, can_create_vault_lists: nil, has_more: nil, list: nil, order: nil, sort: nil) - # @param all [Onlyfans::Models::Media::Vault::ListListResponse::Data::All] - # @param can_create_vault_lists [Boolean] - # @param has_more [Boolean] - # @param list [Array] - # @param order [String] - # @param sort [String] - - # @see Onlyfans::Models::Media::Vault::ListListResponse::Data#all - class All < Onlyfans::Internal::Type::BaseModel - # @!attribute audios_count - # - # @return [Integer, nil] - optional :audios_count, Integer, api_name: :audiosCount + # @!attribute can_delete + # + # @return [Boolean, nil] + optional :can_delete, Onlyfans::Internal::Type::Boolean, api_name: :canDelete - # @!attribute gifs_count - # - # @return [Integer, nil] - optional :gifs_count, Integer, api_name: :gifsCount + # @!attribute can_update + # + # @return [Boolean, nil] + optional :can_update, Onlyfans::Internal::Type::Boolean, api_name: :canUpdate - # @!attribute medias - # - # @return [Array, nil] - optional :medias, - -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media] } + # @!attribute gifs_count + # + # @return [Integer, nil] + optional :gifs_count, Integer, api_name: :gifsCount - # @!attribute photos_count - # - # @return [Integer, nil] - optional :photos_count, Integer, api_name: :photosCount + # @!attribute has_media + # + # @return [Boolean, nil] + optional :has_media, Onlyfans::Internal::Type::Boolean, api_name: :hasMedia - # @!attribute videos_count - # - # @return [Integer, nil] - optional :videos_count, Integer, api_name: :videosCount + # @!attribute medias + # + # @return [Array, nil] + optional :medias, Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown] - # @!method initialize(audios_count: nil, gifs_count: nil, medias: nil, photos_count: nil, videos_count: nil) - # @param audios_count [Integer] - # @param gifs_count [Integer] - # @param medias [Array] - # @param photos_count [Integer] - # @param videos_count [Integer] + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!attribute photos_count + # + # @return [Integer, nil] + optional :photos_count, Integer, api_name: :photosCount - class Media < Onlyfans::Internal::Type::BaseModel # @!attribute type # # @return [String, nil] optional :type, String - # @!attribute url + # @!attribute videos_count # - # @return [String, nil] - optional :url, String - - # @!method initialize(type: nil, url: nil) + # @return [Integer, nil] + optional :videos_count, Integer, api_name: :videosCount + + # @!method initialize(id: nil, audios_count: nil, can_delete: nil, can_update: nil, gifs_count: nil, has_media: nil, medias: nil, name: nil, photos_count: nil, type: nil, videos_count: nil) + # @param id [Integer] + # @param audios_count [Integer] + # @param can_delete [Boolean] + # @param can_update [Boolean] + # @param gifs_count [Integer] + # @param has_media [Boolean] + # @param medias [Array] + # @param name [String] + # @param photos_count [Integer] # @param type [String] - # @param url [String] + # @param videos_count [Integer] end end + end - class List < Onlyfans::Internal::Type::BaseModel - # @!attribute id - # - # @return [Integer, nil] - optional :id, Integer + class UnionMember1 < Onlyfans::Internal::Type::BaseModel + # @!attribute _meta + # + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta, nil] + optional :_meta, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta } - # @!attribute audios_count + # @!attribute data + # + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data, nil] + optional :data, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data } + + # @!method initialize(_meta: nil, data: nil) + # Success (lightweight=true) + # + # @param _meta [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta] + # @param data [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data] + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1#_meta + class Meta < Onlyfans::Internal::Type::BaseModel + # @!attribute _cache # - # @return [Integer, nil] - optional :audios_count, Integer, api_name: :audiosCount + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache, nil] + optional :_cache, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache } - # @!attribute can_delete + # @!attribute _credits # - # @return [Boolean, nil] - optional :can_delete, Onlyfans::Internal::Type::Boolean, api_name: :canDelete + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits, nil] + optional :_credits, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits } - # @!attribute can_update + # @!attribute _rate_limits # - # @return [Boolean, nil] - optional :can_update, Onlyfans::Internal::Type::Boolean, api_name: :canUpdate + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits, nil] + optional :_rate_limits, + -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits } + + # @!method initialize(_cache: nil, _credits: nil, _rate_limits: nil) + # @param _cache [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache] + # @param _credits [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits] + # @param _rate_limits [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits] + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta#_cache + class Cache < Onlyfans::Internal::Type::BaseModel + # @!attribute is_cached + # + # @return [Boolean, nil] + optional :is_cached, Onlyfans::Internal::Type::Boolean + + # @!attribute note + # + # @return [String, nil] + optional :note, String + + # @!method initialize(is_cached: nil, note: nil) + # @param is_cached [Boolean] + # @param note [String] + end + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta#_credits + class Credits < Onlyfans::Internal::Type::BaseModel + # @!attribute balance + # + # @return [Integer, nil] + optional :balance, Integer + + # @!attribute note + # + # @return [String, nil] + optional :note, String + + # @!attribute used + # + # @return [Integer, nil] + optional :used, Integer + + # @!method initialize(balance: nil, note: nil, used: nil) + # @param balance [Integer] + # @param note [String] + # @param used [Integer] + end + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta#_rate_limits + class RateLimits < Onlyfans::Internal::Type::BaseModel + # @!attribute limit_day + # + # @return [Integer, nil] + optional :limit_day, Integer - # @!attribute gifs_count + # @!attribute limit_minute + # + # @return [Integer, nil] + optional :limit_minute, Integer + + # @!attribute remaining_day + # + # @return [Integer, nil] + optional :remaining_day, Integer + + # @!attribute remaining_minute + # + # @return [Integer, nil] + optional :remaining_minute, Integer + + # @!method initialize(limit_day: nil, limit_minute: nil, remaining_day: nil, remaining_minute: nil) + # @param limit_day [Integer] + # @param limit_minute [Integer] + # @param remaining_day [Integer] + # @param remaining_minute [Integer] + end + end + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1#data + class Data < Onlyfans::Internal::Type::BaseModel + # @!attribute all # - # @return [Integer, nil] - optional :gifs_count, Integer, api_name: :gifsCount + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All, nil] + optional :all, -> { Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All } - # @!attribute has_media + # @!attribute can_create_vault_lists # # @return [Boolean, nil] - optional :has_media, Onlyfans::Internal::Type::Boolean, api_name: :hasMedia + optional :can_create_vault_lists, + Onlyfans::Internal::Type::Boolean, + api_name: :canCreateVaultLists - # @!attribute medias + # @!attribute has_more # - # @return [Array, nil] - optional :medias, Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown] + # @return [Boolean, nil] + optional :has_more, Onlyfans::Internal::Type::Boolean, api_name: :hasMore - # @!attribute name + # @!attribute list # - # @return [String, nil] - optional :name, String + # @return [Array, nil] + optional :list, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List] } - # @!attribute photos_count + # @!attribute order # - # @return [Integer, nil] - optional :photos_count, Integer, api_name: :photosCount + # @return [String, nil] + optional :order, String - # @!attribute type + # @!attribute sort # # @return [String, nil] - optional :type, String + optional :sort, String + + # @!method initialize(all: nil, can_create_vault_lists: nil, has_more: nil, list: nil, order: nil, sort: nil) + # @param all [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All] + # @param can_create_vault_lists [Boolean] + # @param has_more [Boolean] + # @param list [Array] + # @param order [String] + # @param sort [String] + + # @see Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data#all + class All < Onlyfans::Internal::Type::BaseModel + # @!attribute media_count + # + # @return [Integer, nil] + optional :media_count, Integer, api_name: :mediaCount - # @!attribute videos_count - # - # @return [Integer, nil] - optional :videos_count, Integer, api_name: :videosCount - - # @!method initialize(id: nil, audios_count: nil, can_delete: nil, can_update: nil, gifs_count: nil, has_media: nil, medias: nil, name: nil, photos_count: nil, type: nil, videos_count: nil) - # @param id [Integer] - # @param audios_count [Integer] - # @param can_delete [Boolean] - # @param can_update [Boolean] - # @param gifs_count [Integer] - # @param has_media [Boolean] - # @param medias [Array] - # @param name [String] - # @param photos_count [Integer] - # @param type [String] - # @param videos_count [Integer] + # @!method initialize(media_count: nil) + # @param media_count [Integer] + end + + class List < Onlyfans::Internal::Type::BaseModel + # @!attribute id + # + # @return [Integer, nil] + optional :id, Integer + + # @!attribute can_update + # + # @return [Boolean, nil] + optional :can_update, Onlyfans::Internal::Type::Boolean, api_name: :canUpdate + + # @!attribute media_count + # + # @return [Integer, nil] + optional :media_count, Integer, api_name: :mediaCount + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!attribute type + # + # @return [String, nil] + optional :type, String + + # @!method initialize(id: nil, can_update: nil, media_count: nil, name: nil, type: nil) + # @param id [Integer] + # @param can_update [Boolean] + # @param media_count [Integer] + # @param name [String] + # @param type [String] + end end end + + # @!method self.variants + # @return [Array(Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0, Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1)] end end end diff --git a/lib/onlyfans/models/media/vault/list_update_params.rb b/lib/onlyfans/models/media/vault/list_update_params.rb index 2b345c47..fc421292 100644 --- a/lib/onlyfans/models/media/vault/list_update_params.rb +++ b/lib/onlyfans/models/media/vault/list_update_params.rb @@ -19,9 +19,19 @@ class ListUpdateParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :list_id, String - # @!method initialize(account:, list_id:, request_options: {}) + # @!attribute name + # The new name for the vault list. Must not be greater than 255 characters. + # + # @return [String] + required :name, String + + # @!method initialize(account:, list_id:, name:, request_options: {}) # @param account [String] + # # @param list_id [String] + # + # @param name [String] The new name for the vault list. Must not be greater than 255 characters. + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/onlyfans/models/media/vault_upload_params.rb b/lib/onlyfans/models/media/vault_upload_params.rb index 93053810..462bf860 100644 --- a/lib/onlyfans/models/media/vault_upload_params.rb +++ b/lib/onlyfans/models/media/vault_upload_params.rb @@ -15,7 +15,9 @@ class VaultUploadParams < Onlyfans::Internal::Type::BaseModel # @!attribute async # Set to `true` to process uploads in the background. Returns a `polling_url` to - # check status. Recommended for large files. + # check status. Recommended for large files. Instead of polling, you can subscribe + # to the `media_uploads.completed` and `media_uploads.failed` webhook events — + # they only fire for async uploads. # # @return [Boolean, nil] optional :async, Onlyfans::Internal::Type::Boolean diff --git a/lib/onlyfans/models/media_download_response.rb b/lib/onlyfans/models/media_download_response.rb deleted file mode 100644 index 459d0eac..00000000 --- a/lib/onlyfans/models/media_download_response.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -module Onlyfans - module Models - MediaDownloadResponse = String - end -end diff --git a/lib/onlyfans/models/media_upload_params.rb b/lib/onlyfans/models/media_upload_params.rb index 98f7f1dc..f15e4202 100644 --- a/lib/onlyfans/models/media_upload_params.rb +++ b/lib/onlyfans/models/media_upload_params.rb @@ -14,7 +14,9 @@ class MediaUploadParams < Onlyfans::Internal::Type::BaseModel # @!attribute async # Set to `true` to process uploads in the background. Returns a `polling_url` to - # check status. Recommended for large files. + # check status. Recommended for large files. Instead of polling, you can subscribe + # to the `media_uploads.completed` and `media_uploads.failed` webhook events — + # they only fire for async uploads. # # @return [Boolean, nil] optional :async, Onlyfans::Internal::Type::Boolean diff --git a/lib/onlyfans/models/message_attach_tags_params.rb b/lib/onlyfans/models/message_attach_tags_params.rb deleted file mode 100644 index 333983de..00000000 --- a/lib/onlyfans/models/message_attach_tags_params.rb +++ /dev/null @@ -1,52 +0,0 @@ -# frozen_string_literal: true - -module Onlyfans - module Models - # @see Onlyfans::Resources::Messages#attach_tags - class MessageAttachTagsParams < Onlyfans::Internal::Type::BaseModel - extend Onlyfans::Internal::Type::RequestParameters::Converter - include Onlyfans::Internal::Type::RequestParameters - - # @!attribute account - # - # @return [String] - required :account, String - - # @!attribute message_id - # - # @return [String] - required :message_id, String - - # @!attribute rf_guest - # Array of OnlyFans Release Form Guest IDs to tag in your message - # - # @return [String, nil] - optional :rf_guest, String, api_name: :rfGuest - - # @!attribute rf_partner - # Array of OnlyFans Release Form Partners IDs to tag in your message - # - # @return [String, nil] - optional :rf_partner, String, api_name: :rfPartner - - # @!attribute rf_tag - # Array of OnlyFans Creator User IDs to tag in your message - # - # @return [String, nil] - optional :rf_tag, String, api_name: :rfTag - - # @!method initialize(account:, message_id:, rf_guest: nil, rf_partner: nil, rf_tag: nil, request_options: {}) - # @param account [String] - # - # @param message_id [String] - # - # @param rf_guest [String] Array of OnlyFans Release Form Guest IDs to tag in your message - # - # @param rf_partner [String] Array of OnlyFans Release Form Partners IDs to tag in your message - # - # @param rf_tag [String] Array of OnlyFans Creator User IDs to tag in your message - # - # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/onlyfans/models/message_attach_tags_response.rb b/lib/onlyfans/models/message_attach_tags_response.rb deleted file mode 100644 index e55f6a07..00000000 --- a/lib/onlyfans/models/message_attach_tags_response.rb +++ /dev/null @@ -1,125 +0,0 @@ -# frozen_string_literal: true - -module Onlyfans - module Models - # @see Onlyfans::Resources::Messages#attach_tags - class MessageAttachTagsResponse < Onlyfans::Internal::Type::BaseModel - # @!attribute _meta - # - # @return [Onlyfans::Models::MessageAttachTagsResponse::Meta, nil] - optional :_meta, -> { Onlyfans::Models::MessageAttachTagsResponse::Meta } - - # @!attribute data - # - # @return [Onlyfans::Models::MessageAttachTagsResponse::Data, nil] - optional :data, -> { Onlyfans::Models::MessageAttachTagsResponse::Data } - - # @!method initialize(_meta: nil, data: nil) - # @param _meta [Onlyfans::Models::MessageAttachTagsResponse::Meta] - # @param data [Onlyfans::Models::MessageAttachTagsResponse::Data] - - # @see Onlyfans::Models::MessageAttachTagsResponse#_meta - class Meta < Onlyfans::Internal::Type::BaseModel - # @!attribute _cache - # - # @return [Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache, nil] - optional :_cache, -> { Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache } - - # @!attribute _credits - # - # @return [Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits, nil] - optional :_credits, -> { Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits } - - # @!attribute _rate_limits - # - # @return [Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits, nil] - optional :_rate_limits, -> { Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits } - - # @!method initialize(_cache: nil, _credits: nil, _rate_limits: nil) - # @param _cache [Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache] - # @param _credits [Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits] - # @param _rate_limits [Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits] - - # @see Onlyfans::Models::MessageAttachTagsResponse::Meta#_cache - class Cache < Onlyfans::Internal::Type::BaseModel - # @!attribute is_cached - # - # @return [Boolean, nil] - optional :is_cached, Onlyfans::Internal::Type::Boolean - - # @!attribute note - # - # @return [String, nil] - optional :note, String - - # @!method initialize(is_cached: nil, note: nil) - # @param is_cached [Boolean] - # @param note [String] - end - - # @see Onlyfans::Models::MessageAttachTagsResponse::Meta#_credits - class Credits < Onlyfans::Internal::Type::BaseModel - # @!attribute balance - # - # @return [Integer, nil] - optional :balance, Integer - - # @!attribute note - # - # @return [String, nil] - optional :note, String - - # @!attribute used - # - # @return [Integer, nil] - optional :used, Integer - - # @!method initialize(balance: nil, note: nil, used: nil) - # @param balance [Integer] - # @param note [String] - # @param used [Integer] - end - - # @see Onlyfans::Models::MessageAttachTagsResponse::Meta#_rate_limits - class RateLimits < Onlyfans::Internal::Type::BaseModel - # @!attribute limit_day - # - # @return [Integer, nil] - optional :limit_day, Integer - - # @!attribute limit_minute - # - # @return [Integer, nil] - optional :limit_minute, Integer - - # @!attribute remaining_day - # - # @return [Integer, nil] - optional :remaining_day, Integer - - # @!attribute remaining_minute - # - # @return [Integer, nil] - optional :remaining_minute, Integer - - # @!method initialize(limit_day: nil, limit_minute: nil, remaining_day: nil, remaining_minute: nil) - # @param limit_day [Integer] - # @param limit_minute [Integer] - # @param remaining_day [Integer] - # @param remaining_minute [Integer] - end - end - - # @see Onlyfans::Models::MessageAttachTagsResponse#data - class Data < Onlyfans::Internal::Type::BaseModel - # @!attribute success - # - # @return [Boolean, nil] - optional :success, Onlyfans::Internal::Type::Boolean - - # @!method initialize(success: nil) - # @param success [Boolean] - end - end - end -end diff --git a/lib/onlyfans/models/notification_list_params.rb b/lib/onlyfans/models/notification_list_params.rb index 8b9f6c14..6eb32723 100644 --- a/lib/onlyfans/models/notification_list_params.rb +++ b/lib/onlyfans/models/notification_list_params.rb @@ -26,7 +26,7 @@ class NotificationListParams < Onlyfans::Internal::Type::BaseModel optional :limit, Integer # @!attribute skip_users - # Whether to skip user details. Default `all` + # Whether to skip user details. Defaults to `all`. # # @return [Symbol, Onlyfans::Models::NotificationListParams::SkipUsers, nil] optional :skip_users, enum: -> { Onlyfans::NotificationListParams::SkipUsers } @@ -47,13 +47,13 @@ class NotificationListParams < Onlyfans::Internal::Type::BaseModel # # @param limit [Integer] The number of notifications. Default `10` # - # @param skip_users [Symbol, Onlyfans::Models::NotificationListParams::SkipUsers] Whether to skip user details. Default `all` + # @param skip_users [Symbol, Onlyfans::Models::NotificationListParams::SkipUsers] Whether to skip user details. Defaults to `all`. # # @param type [Symbol, Onlyfans::Models::NotificationListParams::Type] Filter notifications by a specific type # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] - # Whether to skip user details. Default `all` + # Whether to skip user details. Defaults to `all`. module SkipUsers extend Onlyfans::Internal::Type::Enum diff --git a/lib/onlyfans/models/post_create_params.rb b/lib/onlyfans/models/post_create_params.rb index 4e6e04bb..ca4c70fa 100644 --- a/lib/onlyfans/models/post_create_params.rb +++ b/lib/onlyfans/models/post_create_params.rb @@ -18,6 +18,17 @@ class PostCreateParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :text, String + # @!attribute block_banned_words + # Screen `text` for OnlyFans banned words and block the post if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + # + # @return [Symbol, Onlyfans::Models::PostCreateParams::BlockBannedWords, nil] + optional :block_banned_words, + enum: -> { Onlyfans::PostCreateParams::BlockBannedWords }, + api_name: :blockBannedWords + # @!attribute expire_days # Number of days after which the post will expire. Between 1 and 30 days. Keep # empty for no expiration. @@ -107,7 +118,7 @@ class PostCreateParams < Onlyfans::Internal::Type::BaseModel # @return [Symbol, Onlyfans::Models::PostCreateParams::VotingType, nil] optional :voting_type, enum: -> { Onlyfans::PostCreateParams::VotingType }, api_name: :votingType - # @!method initialize(account:, text:, expire_days: nil, fund_raising_target_amount: nil, fund_raising_tips_presets: nil, label_ids: nil, media_files: nil, previews: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, voting_correct_index: nil, voting_due: nil, voting_options: nil, voting_type: nil, request_options: {}) + # @!method initialize(account:, text:, block_banned_words: nil, expire_days: nil, fund_raising_target_amount: nil, fund_raising_tips_presets: nil, label_ids: nil, media_files: nil, previews: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, voting_correct_index: nil, voting_due: nil, voting_options: nil, voting_type: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::PostCreateParams} for more details. # @@ -115,6 +126,8 @@ class PostCreateParams < Onlyfans::Internal::Type::BaseModel # # @param text [String] The post text content # + # @param block_banned_words [Symbol, Onlyfans::Models::PostCreateParams::BlockBannedWords] Screen `text` for OnlyFans banned words and block the post if any are found (ret + # # @param expire_days [Integer] Number of days after which the post will expire. Between 1 and 30 days. Keep emp # # @param fund_raising_target_amount [Integer] Add a fundraising target to your post. If present, value must be at least 10. @@ -143,6 +156,21 @@ class PostCreateParams < Onlyfans::Internal::Type::BaseModel # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + # Screen `text` for OnlyFans banned words and block the post if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN = :strict_ban + RISKY = :risky + REPLACE_SOFTEN = :replace_soften + + # @!method self.values + # @return [Array] + end + # Include a poll or quiz within your post. module VotingType extend Onlyfans::Internal::Type::Enum diff --git a/lib/onlyfans/models/post_update_params.rb b/lib/onlyfans/models/post_update_params.rb index 44075e38..20e644c6 100644 --- a/lib/onlyfans/models/post_update_params.rb +++ b/lib/onlyfans/models/post_update_params.rb @@ -23,6 +23,17 @@ class PostUpdateParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :text, String + # @!attribute block_banned_words + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + # + # @return [Symbol, Onlyfans::Models::PostUpdateParams::BlockBannedWords, nil] + optional :block_banned_words, + enum: -> { Onlyfans::PostUpdateParams::BlockBannedWords }, + api_name: :blockBannedWords + # @!attribute expire_days # Number of days after which the post will expire. Between 1 and 30 days. Keep # empty for no expiration. @@ -109,7 +120,7 @@ class PostUpdateParams < Onlyfans::Internal::Type::BaseModel # @return [Symbol, Onlyfans::Models::PostUpdateParams::VotingType, nil] optional :voting_type, enum: -> { Onlyfans::PostUpdateParams::VotingType }, api_name: :votingType - # @!method initialize(account:, post_id:, text:, expire_days: nil, fund_raising_target_amount: nil, fund_raising_tips_presets: nil, label_ids: nil, media_files: nil, price: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, voting_correct_index: nil, voting_due: nil, voting_options: nil, voting_type: nil, request_options: {}) + # @!method initialize(account:, post_id:, text:, block_banned_words: nil, expire_days: nil, fund_raising_target_amount: nil, fund_raising_tips_presets: nil, label_ids: nil, media_files: nil, price: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, voting_correct_index: nil, voting_due: nil, voting_options: nil, voting_type: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::PostUpdateParams} for more details. # @@ -119,6 +130,8 @@ class PostUpdateParams < Onlyfans::Internal::Type::BaseModel # # @param text [String] The post text content # + # @param block_banned_words [Symbol, Onlyfans::Models::PostUpdateParams::BlockBannedWords] Screen `text` for OnlyFans banned words and block the update if any are found (r + # # @param expire_days [Integer] Number of days after which the post will expire. Between 1 and 30 days. Keep emp # # @param fund_raising_target_amount [Integer] Add a fundraising target to your post. If present, value must be at least 10. @@ -148,6 +161,21 @@ class PostUpdateParams < Onlyfans::Internal::Type::BaseModel # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN = :strict_ban + RISKY = :risky + REPLACE_SOFTEN = :replace_soften + + # @!method self.values + # @return [Array] + end + # Include a poll or quiz within your post. module VotingType extend Onlyfans::Internal::Type::Enum diff --git a/lib/onlyfans/models/queue_list_params.rb b/lib/onlyfans/models/queue_list_params.rb index 4774e2b1..071882b6 100644 --- a/lib/onlyfans/models/queue_list_params.rb +++ b/lib/onlyfans/models/queue_list_params.rb @@ -12,46 +12,67 @@ class QueueListParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :account, String - # @!attribute limit - # Maximum number of queue items to return (default = 20) - # - # @return [Integer] - required :limit, Integer - # @!attribute publish_date_end - # Latest publish date to return + # Latest publish date to return. Must be a valid date. Must be a valid date. Must + # be a date after or equal to publishDateStart. # # @return [String] required :publish_date_end, String # @!attribute publish_date_start - # Earliest publish date to return (must be at least today) + # Earliest publish date to return (must be at least today). Must be a valid date. + # Must be a valid date. Must be a date after or equal to today. # # @return [String] required :publish_date_start, String # @!attribute timezone - # Time timezone of the provided dates. - # [View available timezone values](https://www.php.net/manual/en/timezones.php) + # Timezone of the provided dates. + # [View available timezone values](https://www.php.net/manual/en/timezones.php). + # Must be a valid time zone, such as Africa/Accra. # # @return [String] required :timezone, String - # @!method initialize(account:, limit:, publish_date_end:, publish_date_start:, timezone:, request_options: {}) + # @!attribute limit + # Maximum number of queue items to return (default 20). Must be at least 1. Must + # not be greater than 100. + # + # @return [Integer, nil] + optional :limit, Integer + + # @!attribute type + # + # @return [Array, nil] + optional :type, -> { Onlyfans::Internal::Type::ArrayOf[enum: Onlyfans::QueueListParams::Type] } + + # @!method initialize(account:, publish_date_end:, publish_date_start:, timezone:, limit: nil, type: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::QueueListParams} for more details. # # @param account [String] # - # @param limit [Integer] Maximum number of queue items to return (default = 20) + # @param publish_date_end [String] Latest publish date to return. Must be a valid date. Must be a valid date. Must + # + # @param publish_date_start [String] Earliest publish date to return (must be at least today). Must be a valid date. # - # @param publish_date_end [String] Latest publish date to return + # @param timezone [String] Timezone of the provided dates. [View available timezone values](https://www.php # - # @param publish_date_start [String] Earliest publish date to return (must be at least today) + # @param limit [Integer] Maximum number of queue items to return (default 20). Must be at least 1. Must n # - # @param timezone [String] Time timezone of the provided dates. [View available timezone values](https://ww + # @param type [Array] # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + module Type + extend Onlyfans::Internal::Type::Enum + + CHAT = :chat + POST = :post + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/release_form_list_taggable_users_response.rb b/lib/onlyfans/models/release_form_list_taggable_users_response.rb index e1ace5ff..2eb473b3 100644 --- a/lib/onlyfans/models/release_form_list_taggable_users_response.rb +++ b/lib/onlyfans/models/release_form_list_taggable_users_response.rb @@ -123,25 +123,25 @@ class Pagination < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :next_page, String - # @!method initialize(next_page: nil) + # @!attribute notice + # + # @return [String, nil] + optional :notice, String + + # @!method initialize(next_page: nil, notice: nil) # @param next_page [String] + # @param notice [String] end # @see Onlyfans::Models::ReleaseFormListTaggableUsersResponse#data class Data < Onlyfans::Internal::Type::BaseModel - # @!attribute has_more - # - # @return [Boolean, nil] - optional :has_more, Onlyfans::Internal::Type::Boolean, api_name: :hasMore - # @!attribute items # # @return [Array, nil] optional :items, -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::ReleaseFormListTaggableUsersResponse::Data::Item] } - # @!method initialize(has_more: nil, items: nil) - # @param has_more [Boolean] + # @!method initialize(items: nil) # @param items [Array] class Item < Onlyfans::Internal::Type::BaseModel diff --git a/lib/onlyfans/models/shared_tracking_link_list_params.rb b/lib/onlyfans/models/shared_tracking_link_list_params.rb index 1ccca61c..77431d11 100644 --- a/lib/onlyfans/models/shared_tracking_link_list_params.rb +++ b/lib/onlyfans/models/shared_tracking_link_list_params.rb @@ -13,38 +13,103 @@ class SharedTrackingLinkListParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute limit - # The number of shared tracking links to return. Default `10` + # The number of shared tracking links to return. Default `10`. Must be at least 1. + # Must not be greater than 100. # # @return [Integer, nil] optional :limit, Integer # @!attribute offset - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. # # @return [Integer, nil] optional :offset, Integer + # @!attribute pagination + # Whether pagination metadata is enabled. Default `1`. + # + # @return [Integer, Onlyfans::Models::SharedTrackingLinkListParams::Pagination, nil] + optional :pagination, enum: -> { Onlyfans::SharedTrackingLinkListParams::Pagination } + + # @!attribute sorting_deleted + # Whether deleted links participate in sorting. Default `1`. + # + # @return [Integer, Onlyfans::Models::SharedTrackingLinkListParams::SortingDeleted, nil] + optional :sorting_deleted, enum: -> { Onlyfans::SharedTrackingLinkListParams::SortingDeleted } + + # @!attribute stats + # Whether statistics are included. Default `true`. Must not be greater than 10 + # characters. + # + # @return [String, nil] + optional :stats, String + # @!attribute synchronous - # Wait for the database sync to finish, instead of running it in the background. - # **Will result in longer response times, use with caution**. Default `false` + # Wait for the database sync instead of processing it in the background. # # @return [Boolean, nil] - optional :synchronous, Onlyfans::Internal::Type::Boolean, nil?: true + optional :synchronous, Onlyfans::Internal::Type::Boolean - # @!method initialize(account:, limit: nil, offset: nil, synchronous: nil, request_options: {}) + # @!attribute with_deleted + # Whether to include deleted shared tracking links. Default `1`. + # + # @return [Integer, Onlyfans::Models::SharedTrackingLinkListParams::WithDeleted, nil] + optional :with_deleted, enum: -> { Onlyfans::SharedTrackingLinkListParams::WithDeleted } + + # @!method initialize(account:, limit: nil, offset: nil, pagination: nil, sorting_deleted: nil, stats: nil, synchronous: nil, with_deleted: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::SharedTrackingLinkListParams} for more details. # # @param account [String] # - # @param limit [Integer] The number of shared tracking links to return. Default `10` + # @param limit [Integer] The number of shared tracking links to return. Default `10`. Must be at least 1. + # + # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. + # + # @param pagination [Integer, Onlyfans::Models::SharedTrackingLinkListParams::Pagination] Whether pagination metadata is enabled. Default `1`. + # + # @param sorting_deleted [Integer, Onlyfans::Models::SharedTrackingLinkListParams::SortingDeleted] Whether deleted links participate in sorting. Default `1`. # - # @param offset [Integer] The offset used for pagination. Default `0` + # @param stats [String] Whether statistics are included. Default `true`. Must not be greater than 10 cha # - # @param synchronous [Boolean, nil] Wait for the database sync to finish, instead of running it in the - # background. \* + # @param synchronous [Boolean] Wait for the database sync instead of processing it in the background. + # + # @param with_deleted [Integer, Onlyfans::Models::SharedTrackingLinkListParams::WithDeleted] Whether to include deleted shared tracking links. Default `1`. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + # Whether pagination metadata is enabled. Default `1`. + module Pagination + extend Onlyfans::Internal::Type::Enum + + PAGINATION_0 = 0 + PAGINATION_1 = 1 + + # @!method self.values + # @return [Array] + end + + # Whether deleted links participate in sorting. Default `1`. + module SortingDeleted + extend Onlyfans::Internal::Type::Enum + + SORTING_DELETED_0 = 0 + SORTING_DELETED_1 = 1 + + # @!method self.values + # @return [Array] + end + + # Whether to include deleted shared tracking links. Default `1`. + module WithDeleted + extend Onlyfans::Internal::Type::Enum + + WITH_DELETED_0 = 0 + WITH_DELETED_1 = 1 + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/shared_trial_link_list_params.rb b/lib/onlyfans/models/shared_trial_link_list_params.rb index 699fdbde..65329ef0 100644 --- a/lib/onlyfans/models/shared_trial_link_list_params.rb +++ b/lib/onlyfans/models/shared_trial_link_list_params.rb @@ -13,38 +13,54 @@ class SharedTrialLinkListParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute limit - # The number of shared trial links to return. Default `10` + # The number of shared trial links to return. Default `10`. Must be at least 1. + # Must not be greater than 100. # # @return [Integer, nil] optional :limit, Integer # @!attribute offset - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. # # @return [Integer, nil] optional :offset, Integer + # @!attribute pagination + # + # @return [Integer, Onlyfans::Models::SharedTrialLinkListParams::Pagination, nil] + optional :pagination, enum: -> { Onlyfans::SharedTrialLinkListParams::Pagination } + # @!attribute synchronous - # Wait for the database sync to finish, instead of running it in the background. - # **Will result in longer response times, use with caution**. Default `false` + # Wait for the database sync instead of processing it in the background. # # @return [Boolean, nil] - optional :synchronous, Onlyfans::Internal::Type::Boolean, nil?: true + optional :synchronous, Onlyfans::Internal::Type::Boolean - # @!method initialize(account:, limit: nil, offset: nil, synchronous: nil, request_options: {}) + # @!method initialize(account:, limit: nil, offset: nil, pagination: nil, synchronous: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::SharedTrialLinkListParams} for more details. # # @param account [String] # - # @param limit [Integer] The number of shared trial links to return. Default `10` + # @param limit [Integer] The number of shared trial links to return. Default `10`. Must be at least 1. Mu + # + # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # - # @param offset [Integer] The offset used for pagination. Default `0` + # @param pagination [Integer, Onlyfans::Models::SharedTrialLinkListParams::Pagination] # - # @param synchronous [Boolean, nil] Wait for the database sync to finish, instead of running it in the - # background. \* + # @param synchronous [Boolean] Wait for the database sync instead of processing it in the background. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + module Pagination + extend Onlyfans::Internal::Type::Enum + + PAGINATION_0 = 0 + PAGINATION_1 = 1 + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/smart_link_create_response.rb b/lib/onlyfans/models/smart_link_create_response.rb index e200ae2c..a9809fb5 100644 --- a/lib/onlyfans/models/smart_link_create_response.rb +++ b/lib/onlyfans/models/smart_link_create_response.rb @@ -160,7 +160,7 @@ class Data < Onlyfans::Internal::Type::BaseModel # @!attribute revenue # # @return [String, nil] - optional :revenue, String, nil?: true + optional :revenue, String # @!attribute subscribers_count # @@ -187,7 +187,7 @@ class Data < Onlyfans::Internal::Type::BaseModel # @param free_trial_days [Integer] # @param link_type [String] # @param name [String] - # @param revenue [String, nil] + # @param revenue [String] # @param subscribers_count [Integer] # @param traffic_redirect_url [String] # @param updated_at [String] diff --git a/lib/onlyfans/models/smart_link_list_conversions_params.rb b/lib/onlyfans/models/smart_link_list_conversions_params.rb index 1144f7c4..344e09ea 100644 --- a/lib/onlyfans/models/smart_link_list_conversions_params.rb +++ b/lib/onlyfans/models/smart_link_list_conversions_params.rb @@ -88,6 +88,7 @@ module ConversionType NEW_SUBSCRIBER = :new_subscriber NEW_TRANSACTION = :new_transaction MESSAGE_RECEIVED = :message_received + FAN_SENT_1_MESSAGE = :fan_sent_1_message FAN_SENT_3_MESSAGES = :fan_sent_3_messages # @!method self.values diff --git a/lib/onlyfans/models/smart_link_list_fans_params.rb b/lib/onlyfans/models/smart_link_list_fans_params.rb index 61185c8b..caae298b 100644 --- a/lib/onlyfans/models/smart_link_list_fans_params.rb +++ b/lib/onlyfans/models/smart_link_list_fans_params.rb @@ -48,13 +48,29 @@ class SmartLinkListFansParams < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :offset, Integer + # @!attribute previously_subscribed + # Optional - Filter to returning subscribers (fans previously subscribed before + # this subscription) + # + # @return [Boolean, nil] + optional :previously_subscribed, Onlyfans::Internal::Type::Boolean + # @!attribute sort # Optional sort field. Default `-revenue_net` # # @return [Symbol, Onlyfans::Models::SmartLinkListFansParams::Sort, nil] optional :sort, enum: -> { Onlyfans::SmartLinkListFansParams::Sort } - # @!method initialize(smart_link_id:, has_messages: nil, limit: nil, min_messages_sent_by_fan: nil, min_revenue_net: nil, min_tips_net: nil, offset: nil, sort: nil, request_options: {}) + # @!attribute subscribed_using_promo + # Optional - Filter to fans who subscribed via a promotion/offer + # + # @return [Boolean, nil] + optional :subscribed_using_promo, Onlyfans::Internal::Type::Boolean + + # @!method initialize(smart_link_id:, has_messages: nil, limit: nil, min_messages_sent_by_fan: nil, min_revenue_net: nil, min_tips_net: nil, offset: nil, previously_subscribed: nil, sort: nil, subscribed_using_promo: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::SmartLinkListFansParams} for more details. + # # @param smart_link_id [String] # # @param has_messages [Boolean] Optional - Filter to fans with or without fan-sent messages @@ -69,8 +85,12 @@ class SmartLinkListFansParams < Onlyfans::Internal::Type::BaseModel # # @param offset [Integer] Offset for pagination. Default `0` # + # @param previously_subscribed [Boolean] Optional - Filter to returning subscribers (fans previously subscribed before th + # # @param sort [Symbol, Onlyfans::Models::SmartLinkListFansParams::Sort] Optional sort field. Default `-revenue_net` # + # @param subscribed_using_promo [Boolean] Optional - Filter to fans who subscribed via a promotion/offer + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] # Optional sort field. Default `-revenue_net` diff --git a/lib/onlyfans/models/smart_link_list_fans_response.rb b/lib/onlyfans/models/smart_link_list_fans_response.rb index 60791157..05553229 100644 --- a/lib/onlyfans/models/smart_link_list_fans_response.rb +++ b/lib/onlyfans/models/smart_link_list_fans_response.rb @@ -130,19 +130,31 @@ class Filters < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :offset, Integer + # @!attribute previously_subscribed + # + # @return [String, nil] + optional :previously_subscribed, String, nil?: true + # @!attribute sort # # @return [String, nil] optional :sort, String - # @!method initialize(has_messages: nil, limit: nil, min_messages_sent_by_fan: nil, min_revenue_net: nil, min_tips_net: nil, offset: nil, sort: nil) + # @!attribute subscribed_using_promo + # + # @return [String, nil] + optional :subscribed_using_promo, String, nil?: true + + # @!method initialize(has_messages: nil, limit: nil, min_messages_sent_by_fan: nil, min_revenue_net: nil, min_tips_net: nil, offset: nil, previously_subscribed: nil, sort: nil, subscribed_using_promo: nil) # @param has_messages [String, nil] # @param limit [Integer] # @param min_messages_sent_by_fan [String, nil] # @param min_revenue_net [String, nil] # @param min_tips_net [String, nil] # @param offset [Integer] + # @param previously_subscribed [String, nil] # @param sort [String] + # @param subscribed_using_promo [String, nil] end class Row < Onlyfans::Internal::Type::BaseModel @@ -196,6 +208,12 @@ class Row < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :revenue_net, Integer + # @!attribute subscription_insights + # + # @return [Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights, nil] + optional :subscription_insights, + -> { Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights } + # @!attribute tips_net # # @return [Integer, nil] @@ -206,7 +224,7 @@ class Row < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :username, String - # @!method initialize(avatar_url: nil, click_id: nil, conversion_id: nil, converted_at: nil, external_click_id: nil, fan_id: nil, messages_sent_by_fan: nil, name: nil, onlyfans_id: nil, revenue_net: nil, tips_net: nil, username: nil) + # @!method initialize(avatar_url: nil, click_id: nil, conversion_id: nil, converted_at: nil, external_click_id: nil, fan_id: nil, messages_sent_by_fan: nil, name: nil, onlyfans_id: nil, revenue_net: nil, subscription_insights: nil, tips_net: nil, username: nil) # @param avatar_url [String] # @param click_id [String] # @param conversion_id [Integer] @@ -217,8 +235,80 @@ class Row < Onlyfans::Internal::Type::BaseModel # @param name [String] # @param onlyfans_id [String] # @param revenue_net [Integer] + # @param subscription_insights [Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights] # @param tips_net [Integer] # @param username [String] + + # @see Onlyfans::Models::SmartLinkListFansResponse::Data::Row#subscription_insights + class SubscriptionInsights < Onlyfans::Internal::Type::BaseModel + # @!attribute current_subscription + # + # @return [Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription, nil] + optional :current_subscription, + -> { Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription } + + # @!attribute current_subscription_from_smart_link + # + # @return [Boolean, nil] + optional :current_subscription_from_smart_link, Onlyfans::Internal::Type::Boolean + + # @!attribute has_subscription_data + # + # @return [Boolean, nil] + optional :has_subscription_data, Onlyfans::Internal::Type::Boolean + + # @!attribute previously_subscribed + # + # @return [Boolean, nil] + optional :previously_subscribed, Onlyfans::Internal::Type::Boolean + + # @!attribute subscribed_using_promo + # + # @return [Boolean, nil] + optional :subscribed_using_promo, Onlyfans::Internal::Type::Boolean + + # @!method initialize(current_subscription: nil, current_subscription_from_smart_link: nil, has_subscription_data: nil, previously_subscribed: nil, subscribed_using_promo: nil) + # @param current_subscription [Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription] + # @param current_subscription_from_smart_link [Boolean] + # @param has_subscription_data [Boolean] + # @param previously_subscribed [Boolean] + # @param subscribed_using_promo [Boolean] + + # @see Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights#current_subscription + class CurrentSubscription < Onlyfans::Internal::Type::BaseModel + # @!attribute action + # + # @return [String, nil] + optional :action, String + + # @!attribute is_free + # + # @return [Boolean, nil] + optional :is_free, Onlyfans::Internal::Type::Boolean + + # @!attribute price + # + # @return [Integer, nil] + optional :price, Integer + + # @!attribute regular_price + # + # @return [Integer, nil] + optional :regular_price, Integer + + # @!attribute type + # + # @return [String, nil] + optional :type, String + + # @!method initialize(action: nil, is_free: nil, price: nil, regular_price: nil, type: nil) + # @param action [String] + # @param is_free [Boolean] + # @param price [Integer] + # @param regular_price [Integer] + # @param type [String] + end + end end # @see Onlyfans::Models::SmartLinkListFansResponse::Data#summary @@ -228,6 +318,11 @@ class Summary < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :fans_total, Integer + # @!attribute fans_with_1_plus_messages_total + # + # @return [Integer, nil] + optional :fans_with_1_plus_messages_total, Integer + # @!attribute fans_with_3_plus_messages_total # # @return [Integer, nil] @@ -243,8 +338,9 @@ class Summary < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :tips_net_total, Integer - # @!method initialize(fans_total: nil, fans_with_3_plus_messages_total: nil, revenue_net_total: nil, tips_net_total: nil) + # @!method initialize(fans_total: nil, fans_with_1_plus_messages_total: nil, fans_with_3_plus_messages_total: nil, revenue_net_total: nil, tips_net_total: nil) # @param fans_total [Integer] + # @param fans_with_1_plus_messages_total [Integer] # @param fans_with_3_plus_messages_total [Integer] # @param revenue_net_total [Integer] # @param tips_net_total [Integer] diff --git a/lib/onlyfans/models/smart_link_list_params.rb b/lib/onlyfans/models/smart_link_list_params.rb index bba47b14..a0ca9220 100644 --- a/lib/onlyfans/models/smart_link_list_params.rb +++ b/lib/onlyfans/models/smart_link_list_params.rb @@ -13,6 +13,11 @@ class SmartLinkListParams < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :account_ids, String, nil?: true + # @!attribute filter + # + # @return [Onlyfans::Models::SmartLinkListParams::Filter, nil] + optional :filter, -> { Onlyfans::SmartLinkListParams::Filter } + # @!attribute limit # The number of Smart Links to return. Default `50`. Must be at least 1. Must not # be greater than 1000. @@ -20,12 +25,6 @@ class SmartLinkListParams < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :limit, Integer - # @!attribute meta_pixel_ids - # Comma-separated Meta Pixel IDs to include. - # - # @return [String, nil] - optional :meta_pixel_ids, String, nil?: true - # @!attribute name # Filter Smart Links by name. Must not be greater than 255 characters. # @@ -38,21 +37,40 @@ class SmartLinkListParams < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :offset, Integer - # @!method initialize(account_ids: nil, limit: nil, meta_pixel_ids: nil, name: nil, offset: nil, request_options: {}) + # @!attribute pixel_ids + # Comma-separated ad platform Pixel IDs to include. + # + # @return [String, nil] + optional :pixel_ids, String, nil?: true + + # @!method initialize(account_ids: nil, filter: nil, limit: nil, name: nil, offset: nil, pixel_ids: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::SmartLinkListParams} for more details. # # @param account_ids [String, nil] Comma-separated account prefixed IDs to include. # - # @param limit [Integer] The number of Smart Links to return. Default `50`. Must be at least 1. Must not + # @param filter [Onlyfans::Models::SmartLinkListParams::Filter] # - # @param meta_pixel_ids [String, nil] Comma-separated Meta Pixel IDs to include. + # @param limit [Integer] The number of Smart Links to return. Default `50`. Must be at least 1. Must not # # @param name [String, nil] Filter Smart Links by name. Must not be greater than 255 characters. # # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # + # @param pixel_ids [String, nil] Comma-separated ad platform Pixel IDs to include. + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + class Filter < Onlyfans::Internal::Type::BaseModel + # @!attribute tags + # Must not be greater than 50 characters. + # + # @return [Array, nil] + optional :tags, Onlyfans::Internal::Type::ArrayOf[String] + + # @!method initialize(tags: nil) + # @param tags [Array] Must not be greater than 50 characters. + end end end end diff --git a/lib/onlyfans/models/smart_link_postback_create_params.rb b/lib/onlyfans/models/smart_link_postback_create_params.rb index 2ffaab12..387e4aa3 100644 --- a/lib/onlyfans/models/smart_link_postback_create_params.rb +++ b/lib/onlyfans/models/smart_link_postback_create_params.rb @@ -21,19 +21,39 @@ class SmartLinkPostbackCreateParams < Onlyfans::Internal::Type::BaseModel required :smart_link_scope, enum: -> { Onlyfans::SmartLinkPostbackCreateParams::SmartLinkScope } # @!attribute url - # The destination URL. Variables such as `{click_id}`, `{fbclid}`, `{gclid}`, and - # `{ttclid}` are replaced when the postback is dispatched. + # The destination URL. Variables such as `{external_click_id}`, `{fbclid}`, + # `{gclid}`, and `{ttclid}` are replaced when the postback is dispatched. # # @return [String] required :url, String + # @!attribute body + # Optional request body template for POST postbacks. Variables are replaced when + # the postback is dispatched. + # + # @return [String, nil] + optional :body, String + + # @!attribute headers + # Optional request headers. Header values may include postback variables. + # + # @return [Array, nil] + optional :headers, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::SmartLinkPostbackCreateParams::Header] } + + # @!attribute http_method + # HTTP method used for the postback request. Defaults to `GET` when omitted. + # + # @return [Symbol, Onlyfans::Models::SmartLinkPostbackCreateParams::HTTPMethod, nil] + optional :http_method, enum: -> { Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod } + # @!attribute smart_link_ids # Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. # # @return [Array, nil] optional :smart_link_ids, Onlyfans::Internal::Type::ArrayOf[String] - # @!method initialize(conversion_types:, smart_link_scope:, url:, smart_link_ids: nil, request_options: {}) + # @!method initialize(conversion_types:, smart_link_scope:, url:, body: nil, headers: nil, http_method: nil, smart_link_ids: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::SmartLinkPostbackCreateParams} for more details. # @@ -41,7 +61,13 @@ class SmartLinkPostbackCreateParams < Onlyfans::Internal::Type::BaseModel # # @param smart_link_scope [Symbol, Onlyfans::Models::SmartLinkPostbackCreateParams::SmartLinkScope] `global` fires for all Smart Links. `campaign_specific` fires only for selected # - # @param url [String] The destination URL. Variables such as `{click_id}`, `{fbclid}`, `{gclid}`, and + # @param url [String] The destination URL. Variables such as `{external_click_id}`, `{fbclid}`, `{gcli + # + # @param body [String] Optional request body template for POST postbacks. Variables are replaced when t + # + # @param headers [Array] Optional request headers. Header values may include postback variables. + # + # @param http_method [Symbol, Onlyfans::Models::SmartLinkPostbackCreateParams::HTTPMethod] HTTP method used for the postback request. Defaults to `GET` when omitted. # # @param smart_link_ids [Array] Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. # @@ -58,6 +84,41 @@ module SmartLinkScope # @!method self.values # @return [Array] end + + class Header < Onlyfans::Internal::Type::BaseModel + # @!attribute name + # This field is required when headers._.value is present. Must match + # the regex /\A[A-Za-z0-9!#$%&'_+.^\_`|~-]+\z/. Must not be greater than 100 + # characters. + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute value + # Must not be greater than 2000 characters. + # + # @return [String, nil] + optional :value, String, nil?: true + + # @!method initialize(name: nil, value: nil) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::SmartLinkPostbackCreateParams::Header} for more details. + # + # @param name [String, nil] This field is required when headers.\*.value is present. Must match + # + # @param value [String, nil] Must not be greater than 2000 characters. + end + + # HTTP method used for the postback request. Defaults to `GET` when omitted. + module HTTPMethod + extend Onlyfans::Internal::Type::Enum + + GET = :GET + POST = :POST + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/smart_link_postback_create_response.rb b/lib/onlyfans/models/smart_link_postback_create_response.rb index 8887f930..06ace321 100644 --- a/lib/onlyfans/models/smart_link_postback_create_response.rb +++ b/lib/onlyfans/models/smart_link_postback_create_response.rb @@ -82,6 +82,11 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :id, Integer + # @!attribute body + # + # @return [String, nil] + optional :body, String + # @!attribute conversion_types # # @return [Array, nil] @@ -92,6 +97,17 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :created_at, String + # @!attribute headers + # + # @return [Array, nil] + optional :headers, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header] } + + # @!attribute http_method + # + # @return [String, nil] + optional :http_method, String + # @!attribute latest_response # # @return [String, nil] @@ -122,16 +138,35 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :url, String - # @!method initialize(id: nil, conversion_types: nil, created_at: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, smart_links: nil, updated_at: nil, url: nil) + # @!method initialize(id: nil, body: nil, conversion_types: nil, created_at: nil, headers: nil, http_method: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, smart_links: nil, updated_at: nil, url: nil) # @param id [Integer] + # @param body [String] # @param conversion_types [Array] # @param created_at [String] + # @param headers [Array] + # @param http_method [String] # @param latest_response [String, nil] # @param smart_link_ids [Array] # @param smart_link_scope [String] # @param smart_links [Array] # @param updated_at [String] # @param url [String] + + class Header < Onlyfans::Internal::Type::BaseModel + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!attribute value + # + # @return [String, nil] + optional :value, String + + # @!method initialize(name: nil, value: nil) + # @param name [String] + # @param value [String] + end end end end diff --git a/lib/onlyfans/models/smart_link_postback_list_response.rb b/lib/onlyfans/models/smart_link_postback_list_response.rb index efc52cd4..aa69555a 100644 --- a/lib/onlyfans/models/smart_link_postback_list_response.rb +++ b/lib/onlyfans/models/smart_link_postback_list_response.rb @@ -82,6 +82,11 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :id, Integer + # @!attribute body + # + # @return [String, nil] + optional :body, String + # @!attribute conversion_types # # @return [Array, nil] @@ -92,6 +97,17 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :created_at, String + # @!attribute headers + # + # @return [Array, nil] + optional :headers, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header] } + + # @!attribute http_method + # + # @return [String, nil] + optional :http_method, String + # @!attribute latest_response # # @return [Onlyfans::Models::SmartLinkPostbackListResponse::Data::LatestResponse, nil] @@ -123,10 +139,13 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :url, String - # @!method initialize(id: nil, conversion_types: nil, created_at: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, smart_links: nil, updated_at: nil, url: nil) + # @!method initialize(id: nil, body: nil, conversion_types: nil, created_at: nil, headers: nil, http_method: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, smart_links: nil, updated_at: nil, url: nil) # @param id [Integer] + # @param body [String] # @param conversion_types [Array] # @param created_at [String] + # @param headers [Array] + # @param http_method [String] # @param latest_response [Onlyfans::Models::SmartLinkPostbackListResponse::Data::LatestResponse] # @param smart_link_ids [Array] # @param smart_link_scope [String] @@ -134,6 +153,22 @@ class Data < Onlyfans::Internal::Type::BaseModel # @param updated_at [String] # @param url [String] + class Header < Onlyfans::Internal::Type::BaseModel + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!attribute value + # + # @return [String, nil] + optional :value, String + + # @!method initialize(name: nil, value: nil) + # @param name [String] + # @param value [String] + end + # @see Onlyfans::Models::SmartLinkPostbackListResponse::Data#latest_response class LatestResponse < Onlyfans::Internal::Type::BaseModel # @!attribute id diff --git a/lib/onlyfans/models/smart_link_postback_retrieve_response.rb b/lib/onlyfans/models/smart_link_postback_retrieve_response.rb index 73323807..828fa869 100644 --- a/lib/onlyfans/models/smart_link_postback_retrieve_response.rb +++ b/lib/onlyfans/models/smart_link_postback_retrieve_response.rb @@ -82,6 +82,11 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :id, Integer + # @!attribute body + # + # @return [String, nil] + optional :body, String + # @!attribute conversion_types # # @return [Array, nil] @@ -92,6 +97,17 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :created_at, String + # @!attribute headers + # + # @return [Array, nil] + optional :headers, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header] } + + # @!attribute http_method + # + # @return [String, nil] + optional :http_method, String + # @!attribute latest_response # # @return [String, nil] @@ -123,10 +139,13 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :url, String - # @!method initialize(id: nil, conversion_types: nil, created_at: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, smart_links: nil, updated_at: nil, url: nil) + # @!method initialize(id: nil, body: nil, conversion_types: nil, created_at: nil, headers: nil, http_method: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, smart_links: nil, updated_at: nil, url: nil) # @param id [Integer] + # @param body [String] # @param conversion_types [Array] # @param created_at [String] + # @param headers [Array] + # @param http_method [String] # @param latest_response [String, nil] # @param smart_link_ids [Array] # @param smart_link_scope [String] @@ -134,6 +153,22 @@ class Data < Onlyfans::Internal::Type::BaseModel # @param updated_at [String] # @param url [String] + class Header < Onlyfans::Internal::Type::BaseModel + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!attribute value + # + # @return [String, nil] + optional :value, String + + # @!method initialize(name: nil, value: nil) + # @param name [String] + # @param value [String] + end + class SmartLink < Onlyfans::Internal::Type::BaseModel # @!attribute account_display_name # diff --git a/lib/onlyfans/models/smart_link_postback_update_params.rb b/lib/onlyfans/models/smart_link_postback_update_params.rb index f878f1d6..3767957f 100644 --- a/lib/onlyfans/models/smart_link_postback_update_params.rb +++ b/lib/onlyfans/models/smart_link_postback_update_params.rb @@ -30,13 +30,36 @@ class SmartLinkPostbackUpdateParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :url, String + # @!attribute body + # Optional request body template for POST postbacks. Variables are replaced when + # the postback is dispatched. + # + # @return [String, nil] + optional :body, String + + # @!attribute headers + # Optional request headers. Header values may include postback variables. + # + # @return [Array, nil] + optional :headers, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::SmartLinkPostbackUpdateParams::Header] } + + # @!attribute http_method + # HTTP method used for the postback request. Existing value is kept when omitted. + # + # @return [Symbol, Onlyfans::Models::SmartLinkPostbackUpdateParams::HTTPMethod, nil] + optional :http_method, enum: -> { Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod } + # @!attribute smart_link_ids # Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. # # @return [Array, nil] optional :smart_link_ids, Onlyfans::Internal::Type::ArrayOf[String] - # @!method initialize(postback_id:, conversion_types:, smart_link_scope:, url:, smart_link_ids: nil, request_options: {}) + # @!method initialize(postback_id:, conversion_types:, smart_link_scope:, url:, body: nil, headers: nil, http_method: nil, smart_link_ids: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::SmartLinkPostbackUpdateParams} for more details. + # # @param postback_id [Integer] # # @param conversion_types [Array] One or more Smart Link conversion types that should trigger this postback. @@ -45,6 +68,12 @@ class SmartLinkPostbackUpdateParams < Onlyfans::Internal::Type::BaseModel # # @param url [String] The destination URL. # + # @param body [String] Optional request body template for POST postbacks. Variables are replaced when t + # + # @param headers [Array] Optional request headers. Header values may include postback variables. + # + # @param http_method [Symbol, Onlyfans::Models::SmartLinkPostbackUpdateParams::HTTPMethod] HTTP method used for the postback request. Existing value is kept when omitted. + # # @param smart_link_ids [Array] Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] @@ -59,6 +88,41 @@ module SmartLinkScope # @!method self.values # @return [Array] end + + class Header < Onlyfans::Internal::Type::BaseModel + # @!attribute name + # This field is required when headers._.value is present. Must match + # the regex /\A[A-Za-z0-9!#$%&'_+.^\_`|~-]+\z/. Must not be greater than 100 + # characters. + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute value + # Must not be greater than 2000 characters. + # + # @return [String, nil] + optional :value, String, nil?: true + + # @!method initialize(name: nil, value: nil) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::SmartLinkPostbackUpdateParams::Header} for more details. + # + # @param name [String, nil] This field is required when headers.\*.value is present. Must match + # + # @param value [String, nil] Must not be greater than 2000 characters. + end + + # HTTP method used for the postback request. Existing value is kept when omitted. + module HTTPMethod + extend Onlyfans::Internal::Type::Enum + + GET = :GET + POST = :POST + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/smart_link_postback_update_response.rb b/lib/onlyfans/models/smart_link_postback_update_response.rb index facd7dfd..77948bd5 100644 --- a/lib/onlyfans/models/smart_link_postback_update_response.rb +++ b/lib/onlyfans/models/smart_link_postback_update_response.rb @@ -82,6 +82,11 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :id, Integer + # @!attribute body + # + # @return [String, nil] + optional :body, String + # @!attribute conversion_types # # @return [Array, nil] @@ -92,6 +97,17 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :created_at, String + # @!attribute headers + # + # @return [Array, nil] + optional :headers, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header] } + + # @!attribute http_method + # + # @return [String, nil] + optional :http_method, String + # @!attribute latest_response # # @return [String, nil] @@ -123,10 +139,13 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [String, nil] optional :url, String - # @!method initialize(id: nil, conversion_types: nil, created_at: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, smart_links: nil, updated_at: nil, url: nil) + # @!method initialize(id: nil, body: nil, conversion_types: nil, created_at: nil, headers: nil, http_method: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, smart_links: nil, updated_at: nil, url: nil) # @param id [Integer] + # @param body [String] # @param conversion_types [Array] # @param created_at [String] + # @param headers [Array] + # @param http_method [String] # @param latest_response [String, nil] # @param smart_link_ids [Array] # @param smart_link_scope [String] @@ -134,6 +153,22 @@ class Data < Onlyfans::Internal::Type::BaseModel # @param updated_at [String] # @param url [String] + class Header < Onlyfans::Internal::Type::BaseModel + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!attribute value + # + # @return [String, nil] + optional :value, String + + # @!method initialize(name: nil, value: nil) + # @param name [String] + # @param value [String] + end + class SmartLink < Onlyfans::Internal::Type::BaseModel # @!attribute account_display_name # diff --git a/lib/onlyfans/models/statistic_calculate_total_transactions_params.rb b/lib/onlyfans/models/statistic_calculate_total_transactions_params.rb index 7c78a399..c62c37cd 100644 --- a/lib/onlyfans/models/statistic_calculate_total_transactions_params.rb +++ b/lib/onlyfans/models/statistic_calculate_total_transactions_params.rb @@ -15,16 +15,16 @@ class StatisticCalculateTotalTransactionsParams < Onlyfans::Internal::Type::Base # @!attribute end_date # The end date for the period. Keep empty to calculate everything. # - # @return [String] - required :end_date, String + # @return [String, nil] + optional :end_date, String # @!attribute start_date # The start date for the period. Keep empty to calculate everything. # - # @return [String] - required :start_date, String + # @return [String, nil] + optional :start_date, String - # @!method initialize(account:, end_date:, start_date:, request_options: {}) + # @!method initialize(account:, end_date: nil, start_date: nil, request_options: {}) # @param account [String] # # @param end_date [String] The end date for the period. Keep empty to calculate everything. diff --git a/lib/onlyfans/models/statistic_get_subscriber_metrics_params.rb b/lib/onlyfans/models/statistic_get_subscriber_metrics_params.rb index 4daaaf2c..a9025328 100644 --- a/lib/onlyfans/models/statistic_get_subscriber_metrics_params.rb +++ b/lib/onlyfans/models/statistic_get_subscriber_metrics_params.rb @@ -31,7 +31,16 @@ class StatisticGetSubscriberMetricsParams < Onlyfans::Internal::Type::BaseModel # @return [Boolean, nil] optional :detailed, Onlyfans::Internal::Type::Boolean, nil?: true - # @!method initialize(account:, end_date:, start_date:, detailed: nil, request_options: {}) + # @!attribute detailed_type + # Use only with `detailed=true` - otherwise, it has no effect. Filter the + # subscriber statistics (default = total) + # + # @return [Symbol, Onlyfans::Models::StatisticGetSubscriberMetricsParams::DetailedType, nil] + optional :detailed_type, + enum: -> { Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType }, + nil?: true + + # @!method initialize(account:, end_date:, start_date:, detailed: nil, detailed_type: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::StatisticGetSubscriberMetricsParams} for more details. # @@ -43,7 +52,22 @@ class StatisticGetSubscriberMetricsParams < Onlyfans::Internal::Type::BaseModel # # @param detailed [Boolean, nil] Include paid and free fan metrics. Will slow down the response time, and might t # + # @param detailed_type [Symbol, Onlyfans::Models::StatisticGetSubscriberMetricsParams::DetailedType, nil] Use only with `detailed=true` - otherwise, it has no effect. Filter the subscrib + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + # Use only with `detailed=true` - otherwise, it has no effect. Filter the + # subscriber statistics (default = total) + module DetailedType + extend Onlyfans::Internal::Type::Enum + + TOTAL = :total + RENEW = :renew + NEW = :new + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/statistics/reach_get_profile_visitors_params.rb b/lib/onlyfans/models/statistics/reach_get_profile_visitors_params.rb index eb551382..77e6c785 100644 --- a/lib/onlyfans/models/statistics/reach_get_profile_visitors_params.rb +++ b/lib/onlyfans/models/statistics/reach_get_profile_visitors_params.rb @@ -20,7 +20,7 @@ class ReachGetProfileVisitorsParams < Onlyfans::Internal::Type::BaseModel required :end_date, String # @!attribute start_date - # The start date for the period + # The start date for the period. # # @return [String] required :start_date, String @@ -52,7 +52,7 @@ class ReachGetProfileVisitorsParams < Onlyfans::Internal::Type::BaseModel # # @param end_date [String] The end date for the period. # - # @param start_date [String] The start date for the period + # @param start_date [String] The start date for the period. # # @param filter [Symbol, Onlyfans::Models::Statistics::ReachGetProfileVisitorsParams::Filter, nil] Optionally, filter the results by `chart` or `topCountries`. See example respons # diff --git a/lib/onlyfans/models/statistics/statement_get_earnings_params.rb b/lib/onlyfans/models/statistics/statement_get_earnings_params.rb index 482d5859..574c80a4 100644 --- a/lib/onlyfans/models/statistics/statement_get_earnings_params.rb +++ b/lib/onlyfans/models/statistics/statement_get_earnings_params.rb @@ -13,17 +13,17 @@ class StatementGetEarningsParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :account, String - # @!attribute start_date - # The start date for the period + # @!attribute end_date + # The end date for the period. # # @return [String] - required :start_date, String + required :end_date, String - # @!attribute end_date - # The end date for the period. + # @!attribute start_date + # The start date for the period. # - # @return [String, nil] - optional :end_date, String + # @return [String] + required :start_date, String # @!attribute type # Filter by All / Subscriptions / Tips / Posts / Messages / Streams @@ -31,13 +31,13 @@ class StatementGetEarningsParams < Onlyfans::Internal::Type::BaseModel # @return [Symbol, Onlyfans::Models::Statistics::StatementGetEarningsParams::Type, nil] optional :type, enum: -> { Onlyfans::Statistics::StatementGetEarningsParams::Type } - # @!method initialize(account:, start_date:, end_date: nil, type: nil, request_options: {}) + # @!method initialize(account:, end_date:, start_date:, type: nil, request_options: {}) # @param account [String] # - # @param start_date [String] The start date for the period - # # @param end_date [String] The end date for the period. # + # @param start_date [String] The start date for the period. + # # @param type [Symbol, Onlyfans::Models::Statistics::StatementGetEarningsParams::Type] Filter by All / Subscriptions / Tips / Posts / Messages / Streams # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/onlyfans/models/story_create_params.rb b/lib/onlyfans/models/story_create_params.rb index e61fdd44..88a148f3 100644 --- a/lib/onlyfans/models/story_create_params.rb +++ b/lib/onlyfans/models/story_create_params.rb @@ -13,21 +13,308 @@ class StoryCreateParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute media_files - # Array of media file upload prefixed_ids, or OF media IDs (required if price is - # not 0). + # Array of media file upload prefixed_ids, or OF vault media IDs. # # @return [Array] required :media_files, Onlyfans::Internal::Type::ArrayOf[String], api_name: :mediaFiles - # @!method initialize(account:, media_files:, request_options: {}) - # Some parameter documentations has been truncated, see - # {Onlyfans::Models::StoryCreateParams} for more details. + # @!attribute canvas_height + # Canvas height overlay positions are relative to. Default `1920`. # + # @return [Integer, nil] + optional :canvas_height, Integer, api_name: :canvasHeight + + # @!attribute canvas_width + # Canvas width overlay positions are relative to. Default `1080`. + # + # @return [Integer, nil] + optional :canvas_width, Integer, api_name: :canvasWidth + + # @!attribute question + # Interactive question sticker viewers can answer. + # + # @return [Onlyfans::Models::StoryCreateParams::Question, nil] + optional :question, -> { Onlyfans::StoryCreateParams::Question } + + # @!attribute texts + # Text and @mention overlays. + # + # @return [Array, nil] + optional :texts, -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::StoryCreateParams::Text] } + + # @!method initialize(account:, media_files:, canvas_height: nil, canvas_width: nil, question: nil, texts: nil, request_options: {}) # @param account [String] # - # @param media_files [Array] Array of media file upload prefixed_ids, or OF media IDs (required if price is n + # @param media_files [Array] Array of media file upload prefixed_ids, or OF vault media IDs. + # + # @param canvas_height [Integer] Canvas height overlay positions are relative to. Default `1920`. + # + # @param canvas_width [Integer] Canvas width overlay positions are relative to. Default `1080`. + # + # @param question [Onlyfans::Models::StoryCreateParams::Question] Interactive question sticker viewers can answer. + # + # @param texts [Array] Text and @mention overlays. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + class Question < Onlyfans::Internal::Type::BaseModel + # @!attribute color + # Sticker accent color (hex). Default `#FF51DC`. + # + # @return [String, nil] + optional :color, String + + # @!attribute height + # Sticker height in canvas px. Default `160`. + # + # @return [Float, nil] + optional :height, Float + + # @!attribute left + # Horizontal position as a percentage of the canvas width (0-100). Default `25`. + # + # @return [Float, nil] + optional :left, Float + + # @!attribute text + # The question to ask. + # + # @return [String, nil] + optional :text, String + + # @!attribute top + # Vertical position as a percentage of the canvas height (0-100). Default `30`. + # + # @return [Float, nil] + optional :top, Float + + # @!attribute width + # Sticker width in canvas px. Default `257`. + # + # @return [Float, nil] + optional :width, Float + + # @!method initialize(color: nil, height: nil, left: nil, text: nil, top: nil, width: nil) + # Interactive question sticker viewers can answer. + # + # @param color [String] Sticker accent color (hex). Default `#FF51DC`. + # + # @param height [Float] Sticker height in canvas px. Default `160`. + # + # @param left [Float] Horizontal position as a percentage of the canvas width (0-100). Default `25`. + # + # @param text [String] The question to ask. + # + # @param top [Float] Vertical position as a percentage of the canvas height (0-100). Default `30`. + # + # @param width [Float] Sticker width in canvas px. Default `257`. + end + + class Text < Onlyfans::Internal::Type::BaseModel + # @!attribute text + # The overlay text. For mentions this must be the `@username` to mention (OnlyFans + # resolves the user and adds them to the story's release forms). + # + # @return [String] + required :text, String + + # @!attribute angle + # Rotation in degrees. Default `0`. + # + # @return [Float, nil] + optional :angle, Float + + # @!attribute bg_color + # Background color (hex, `#00000000` = transparent). Native editor palette: + # #FFFFFF #000000 #69818C #FF51DC #FF4081 #FA3240 #FF8040 #FCA800 #70CF27 #00C864 + # #00B1CC #2196F3 #7953F5 #A832BF. Default: transparent for texts, white for + # mentions. + # + # @return [String, nil] + optional :bg_color, String, api_name: :bgColor + + # @!attribute color + # Text color (hex). Defaults to the native editor behavior: white on a colored + # background, black on a white background (mentions: OnlyFans blue `#0091EA` on + # white). + # + # @return [String, nil] + optional :color, String + + # @!attribute font_family + # Font family. Families support specific weights only: Roboto (400/500/700), + # PTMono (400), ShantellSans (400), SofiaSans (400, renders uppercase), + # YanoneKaffeesatz (700), RubikMedium (500), RubikBlack (700). Default `Roboto`. + # Ignored for mentions (always Roboto 500). + # + # @return [Symbol, Onlyfans::Models::StoryCreateParams::Text::FontFamily, nil] + optional :font_family, + enum: -> { + Onlyfans::StoryCreateParams::Text::FontFamily + }, + api_name: :fontFamily + + # @!attribute font_size + # Font size in canvas px (8-100). The native editor uses 9-36. Default `20`. + # + # @return [Float, nil] + optional :font_size, Float, api_name: :fontSize + + # @!attribute font_weight + # Font weight; must match the chosen family (see `fontFamily`). + # + # @return [Integer, Onlyfans::Models::StoryCreateParams::Text::FontWeight, nil] + optional :font_weight, + enum: -> { + Onlyfans::StoryCreateParams::Text::FontWeight + }, + api_name: :fontWeight + + # @!attribute left + # Horizontal position as a percentage of the canvas width (0-100). Default `25`. + # + # @return [Float, nil] + optional :left, Float + + # @!attribute scale + # Scale factor. Default `1`. + # + # @return [Float, nil] + optional :scale, Float + + # @!attribute text_align + # Text alignment. Default `left`. + # + # @return [Symbol, Onlyfans::Models::StoryCreateParams::Text::TextAlign, nil] + optional :text_align, enum: -> { Onlyfans::StoryCreateParams::Text::TextAlign }, api_name: :textAlign + + # @!attribute text_height + # Rendered text box height in canvas px. Estimated automatically when omitted. + # + # @return [Float, nil] + optional :text_height, Float, api_name: :textHeight + + # @!attribute text_width + # Rendered text box width in canvas px. Estimated automatically when omitted. + # + # @return [Float, nil] + optional :text_width, Float, api_name: :textWidth + + # @!attribute top + # Vertical position as a percentage of the canvas height (0-100). Defaults stagger + # each overlay below the previous one. + # + # @return [Float, nil] + optional :top, Float + + # @!attribute type + # Overlay type. Default `text`. + # + # @return [Symbol, Onlyfans::Models::StoryCreateParams::Text::Type, nil] + optional :type, enum: -> { Onlyfans::StoryCreateParams::Text::Type } + + # @!attribute z_index + # Stacking order. Defaults to placement order. + # + # @return [Integer, nil] + optional :z_index, Integer, api_name: :zIndex + + # @!method initialize(text:, angle: nil, bg_color: nil, color: nil, font_family: nil, font_size: nil, font_weight: nil, left: nil, scale: nil, text_align: nil, text_height: nil, text_width: nil, top: nil, type: nil, z_index: nil) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::StoryCreateParams::Text} for more details. + # + # @param text [String] The overlay text. For mentions this must be the `@username` to mention (OnlyFans + # + # @param angle [Float] Rotation in degrees. Default `0`. + # + # @param bg_color [String] Background color (hex, `#00000000` = transparent). Native editor palette: #FFFFF + # + # @param color [String] Text color (hex). Defaults to the native editor behavior: white on a colored bac + # + # @param font_family [Symbol, Onlyfans::Models::StoryCreateParams::Text::FontFamily] Font family. Families support specific weights only: Roboto (400/500/700), PTMon + # + # @param font_size [Float] Font size in canvas px (8-100). The native editor uses 9-36. Default `20`. + # + # @param font_weight [Integer, Onlyfans::Models::StoryCreateParams::Text::FontWeight] Font weight; must match the chosen family (see `fontFamily`). + # + # @param left [Float] Horizontal position as a percentage of the canvas width (0-100). Default `25`. + # + # @param scale [Float] Scale factor. Default `1`. + # + # @param text_align [Symbol, Onlyfans::Models::StoryCreateParams::Text::TextAlign] Text alignment. Default `left`. + # + # @param text_height [Float] Rendered text box height in canvas px. Estimated automatically when omitted. + # + # @param text_width [Float] Rendered text box width in canvas px. Estimated automatically when omitted. + # + # @param top [Float] Vertical position as a percentage of the canvas height (0-100). Defaults stagger + # + # @param type [Symbol, Onlyfans::Models::StoryCreateParams::Text::Type] Overlay type. Default `text`. + # + # @param z_index [Integer] Stacking order. Defaults to placement order. + + # Font family. Families support specific weights only: Roboto (400/500/700), + # PTMono (400), ShantellSans (400), SofiaSans (400, renders uppercase), + # YanoneKaffeesatz (700), RubikMedium (500), RubikBlack (700). Default `Roboto`. + # Ignored for mentions (always Roboto 500). + # + # @see Onlyfans::Models::StoryCreateParams::Text#font_family + module FontFamily + extend Onlyfans::Internal::Type::Enum + + ROBOTO = :Roboto + PT_MONO = :PTMono + SHANTELL_SANS = :ShantellSans + SOFIA_SANS = :SofiaSans + YANONE_KAFFEESATZ = :YanoneKaffeesatz + RUBIK_MEDIUM = :RubikMedium + RUBIK_BLACK = :RubikBlack + + # @!method self.values + # @return [Array] + end + + # Font weight; must match the chosen family (see `fontFamily`). + # + # @see Onlyfans::Models::StoryCreateParams::Text#font_weight + module FontWeight + extend Onlyfans::Internal::Type::Enum + + FONT_WEIGHT_400 = 400 + FONT_WEIGHT_500 = 500 + FONT_WEIGHT_700 = 700 + + # @!method self.values + # @return [Array] + end + + # Text alignment. Default `left`. + # + # @see Onlyfans::Models::StoryCreateParams::Text#text_align + module TextAlign + extend Onlyfans::Internal::Type::Enum + + LEFT = :left + CENTER = :center + RIGHT = :right + + # @!method self.values + # @return [Array] + end + + # Overlay type. Default `text`. + # + # @see Onlyfans::Models::StoryCreateParams::Text#type + module Type + extend Onlyfans::Internal::Type::Enum + + TEXT = :text + MENTION = :mention + + # @!method self.values + # @return [Array] + end + end end end end diff --git a/lib/onlyfans/models/story_create_response.rb b/lib/onlyfans/models/story_create_response.rb index 2997db43..ee7865c6 100644 --- a/lib/onlyfans/models/story_create_response.rb +++ b/lib/onlyfans/models/story_create_response.rb @@ -128,6 +128,16 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [Boolean, nil] optional :can_delete, Onlyfans::Internal::Type::Boolean, api_name: :canDelete + # @!attribute canvas_height + # + # @return [Integer, nil] + optional :canvas_height, Integer, api_name: :canvasHeight + + # @!attribute canvas_width + # + # @return [Integer, nil] + optional :canvas_width, Integer, api_name: :canvasWidth + # @!attribute comments_count # # @return [Integer, nil] @@ -176,16 +186,22 @@ class Data < Onlyfans::Internal::Type::BaseModel # @!attribute question # - # @return [String, nil] - optional :question, String, nil?: true + # @return [Onlyfans::Models::StoryCreateResponse::Data::Question, nil] + optional :question, -> { Onlyfans::Models::StoryCreateResponse::Data::Question } # @!attribute release_forms # - # @return [Array, nil] + # @return [Array, nil] optional :release_forms, - Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown], + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm] }, api_name: :releaseForms + # @!attribute texts + # + # @return [Array, nil] + optional :texts, + -> { Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::StoryCreateResponse::Data::Text] } + # @!attribute tips_amount # # @return [String, nil] @@ -216,9 +232,11 @@ class Data < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :viewers_count, Integer, api_name: :viewersCount - # @!method initialize(id: nil, can_delete: nil, comments_count: nil, created_at: nil, has_post: nil, is_highlight_cover: nil, is_last_in_highlight: nil, is_ready: nil, is_watched: nil, likes_count: nil, media: nil, question: nil, release_forms: nil, tips_amount: nil, tips_amount_raw: nil, tips_count: nil, user_id: nil, viewers: nil, viewers_count: nil) + # @!method initialize(id: nil, can_delete: nil, canvas_height: nil, canvas_width: nil, comments_count: nil, created_at: nil, has_post: nil, is_highlight_cover: nil, is_last_in_highlight: nil, is_ready: nil, is_watched: nil, likes_count: nil, media: nil, question: nil, release_forms: nil, texts: nil, tips_amount: nil, tips_amount_raw: nil, tips_count: nil, user_id: nil, viewers: nil, viewers_count: nil) # @param id [Integer] # @param can_delete [Boolean] + # @param canvas_height [Integer] + # @param canvas_width [Integer] # @param comments_count [Integer] # @param created_at [String] # @param has_post [Boolean] @@ -228,8 +246,9 @@ class Data < Onlyfans::Internal::Type::BaseModel # @param is_watched [Boolean] # @param likes_count [Integer] # @param media [Array] - # @param question [String, nil] - # @param release_forms [Array] + # @param question [Onlyfans::Models::StoryCreateResponse::Data::Question] + # @param release_forms [Array] + # @param texts [Array] # @param tips_amount [String] # @param tips_amount_raw [Integer] # @param tips_count [Integer] @@ -364,6 +383,310 @@ class Full < Onlyfans::Internal::Type::BaseModel end end end + + # @see Onlyfans::Models::StoryCreateResponse::Data#question + class Question < Onlyfans::Internal::Type::BaseModel + # @!attribute entity + # + # @return [Onlyfans::Models::StoryCreateResponse::Data::Question::Entity, nil] + optional :entity, -> { Onlyfans::Models::StoryCreateResponse::Data::Question::Entity } + + # @!attribute positions + # + # @return [Onlyfans::Models::StoryCreateResponse::Data::Question::Positions, nil] + optional :positions, -> { Onlyfans::Models::StoryCreateResponse::Data::Question::Positions } + + # @!attribute type + # + # @return [String, nil] + optional :type, String + + # @!method initialize(entity: nil, positions: nil, type: nil) + # @param entity [Onlyfans::Models::StoryCreateResponse::Data::Question::Entity] + # @param positions [Onlyfans::Models::StoryCreateResponse::Data::Question::Positions] + # @param type [String] + + # @see Onlyfans::Models::StoryCreateResponse::Data::Question#entity + class Entity < Onlyfans::Internal::Type::BaseModel + # @!attribute id + # + # @return [Integer, nil] + optional :id, Integer + + # @!attribute created_at + # + # @return [String, nil] + optional :created_at, String, api_name: :createdAt + + # @!attribute text + # + # @return [String, nil] + optional :text, String + + # @!method initialize(id: nil, created_at: nil, text: nil) + # @param id [Integer] + # @param created_at [String] + # @param text [String] + end + + # @see Onlyfans::Models::StoryCreateResponse::Data::Question#positions + class Positions < Onlyfans::Internal::Type::BaseModel + # @!attribute angle + # + # @return [Integer, nil] + optional :angle, Integer + + # @!attribute color + # + # @return [String, nil] + optional :color, String + + # @!attribute height + # + # @return [Integer, nil] + optional :height, Integer + + # @!attribute left + # + # @return [Integer, nil] + optional :left, Integer + + # @!attribute top + # + # @return [Integer, nil] + optional :top, Integer + + # @!attribute width + # + # @return [Integer, nil] + optional :width, Integer + + # @!attribute x + # + # @return [String, nil] + optional :x, String, nil?: true + + # @!attribute y_ + # + # @return [String, nil] + optional :y_, String, api_name: :y, nil?: true + + # @!attribute z_index + # + # @return [Integer, nil] + optional :z_index, Integer, api_name: :zIndex + + # @!method initialize(angle: nil, color: nil, height: nil, left: nil, top: nil, width: nil, x: nil, y_: nil, z_index: nil) + # @param angle [Integer] + # @param color [String] + # @param height [Integer] + # @param left [Integer] + # @param top [Integer] + # @param width [Integer] + # @param x [String, nil] + # @param y_ [String, nil] + # @param z_index [Integer] + end + end + + class ReleaseForm < Onlyfans::Internal::Type::BaseModel + # @!attribute id + # + # @return [Integer, nil] + optional :id, Integer + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!attribute partner_source + # + # @return [String, nil] + optional :partner_source, String, api_name: :partnerSource + + # @!attribute type + # + # @return [String, nil] + optional :type, String + + # @!attribute user + # + # @return [Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User, nil] + optional :user, -> { Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User } + + # @!method initialize(id: nil, name: nil, partner_source: nil, type: nil, user: nil) + # @param id [Integer] + # @param name [String] + # @param partner_source [String] + # @param type [String] + # @param user [Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User] + + # @see Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm#user + class User < Onlyfans::Internal::Type::BaseModel + # @!attribute id + # + # @return [Integer, nil] + optional :id, Integer + + # @!attribute avatar + # + # @return [String, nil] + optional :avatar, String, nil?: true + + # @!attribute avatar_thumbs + # + # @return [String, nil] + optional :avatar_thumbs, String, api_name: :avatarThumbs, nil?: true + + # @!attribute is_from_guest + # + # @return [Boolean, nil] + optional :is_from_guest, Onlyfans::Internal::Type::Boolean, api_name: :isFromGuest + + # @!attribute is_identity_verified + # + # @return [Boolean, nil] + optional :is_identity_verified, Onlyfans::Internal::Type::Boolean, api_name: :isIdentityVerified + + # @!attribute iv_status + # + # @return [String, nil] + optional :iv_status, String, api_name: :ivStatus + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!attribute username + # + # @return [String, nil] + optional :username, String + + # @!attribute view + # + # @return [String, nil] + optional :view, String + + # @!method initialize(id: nil, avatar: nil, avatar_thumbs: nil, is_from_guest: nil, is_identity_verified: nil, iv_status: nil, name: nil, username: nil, view: nil) + # @param id [Integer] + # @param avatar [String, nil] + # @param avatar_thumbs [String, nil] + # @param is_from_guest [Boolean] + # @param is_identity_verified [Boolean] + # @param iv_status [String] + # @param name [String] + # @param username [String] + # @param view [String] + end + end + + class Text < Onlyfans::Internal::Type::BaseModel + # @!attribute angle + # + # @return [Integer, nil] + optional :angle, Integer + + # @!attribute bg_color + # + # @return [String, nil] + optional :bg_color, String, api_name: :bgColor + + # @!attribute color + # + # @return [String, nil] + optional :color, String + + # @!attribute font_family + # + # @return [String, nil] + optional :font_family, String, api_name: :fontFamily + + # @!attribute font_size + # + # @return [String, nil] + optional :font_size, String, api_name: :fontSize + + # @!attribute font_style + # + # @return [String, nil] + optional :font_style, String, api_name: :fontStyle, nil?: true + + # @!attribute font_weight + # + # @return [Integer, nil] + optional :font_weight, Integer, api_name: :fontWeight + + # @!attribute left + # + # @return [Integer, nil] + optional :left, Integer + + # @!attribute scale + # + # @return [Integer, nil] + optional :scale, Integer + + # @!attribute text + # + # @return [String, nil] + optional :text, String + + # @!attribute text_align + # + # @return [String, nil] + optional :text_align, String, api_name: :textAlign + + # @!attribute text_height + # + # @return [Float, nil] + optional :text_height, Float, api_name: :textHeight + + # @!attribute text_width + # + # @return [Integer, nil] + optional :text_width, Integer, api_name: :textWidth + + # @!attribute top + # + # @return [Integer, nil] + optional :top, Integer + + # @!attribute type + # + # @return [String, nil] + optional :type, String + + # @!attribute users + # + # @return [Array, nil] + optional :users, Onlyfans::Internal::Type::ArrayOf[Onlyfans::Internal::Type::Unknown] + + # @!attribute z_index + # + # @return [Integer, nil] + optional :z_index, Integer, api_name: :zIndex + + # @!method initialize(angle: nil, bg_color: nil, color: nil, font_family: nil, font_size: nil, font_style: nil, font_weight: nil, left: nil, scale: nil, text: nil, text_align: nil, text_height: nil, text_width: nil, top: nil, type: nil, users: nil, z_index: nil) + # @param angle [Integer] + # @param bg_color [String] + # @param color [String] + # @param font_family [String] + # @param font_size [String] + # @param font_style [String, nil] + # @param font_weight [Integer] + # @param left [Integer] + # @param scale [Integer] + # @param text [String] + # @param text_align [String] + # @param text_height [Float] + # @param text_width [Integer] + # @param top [Integer] + # @param type [String] + # @param users [Array] + # @param z_index [Integer] + end end end end diff --git a/lib/onlyfans/models/tracking_link_list_params.rb b/lib/onlyfans/models/tracking_link_list_params.rb index 2ce15ce7..71009c0d 100644 --- a/lib/onlyfans/models/tracking_link_list_params.rb +++ b/lib/onlyfans/models/tracking_link_list_params.rb @@ -13,92 +13,109 @@ class TrackingLinkListParams < Onlyfans::Internal::Type::BaseModel required :account, String # @!attribute end_date - # The end date for Tracking Links. Keep empty to get all. + # The end date for tracking links. Keep empty to get all. Must not be greater than + # 255 characters. # # @return [String, nil] optional :end_date, String, nil?: true # @!attribute limit - # The number of tracking links to return. Default `3` + # The number of tracking links to return. Default `10`. Must be at least 1. Must + # not be greater than 100. # # @return [Integer, nil] - optional :limit, Integer, nil?: true + optional :limit, Integer # @!attribute offset - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. # # @return [Integer, nil] - optional :offset, Integer, nil?: true + optional :offset, Integer + + # @!attribute pagination + # + # @return [Integer, Onlyfans::Models::TrackingLinkListParams::Pagination, nil] + optional :pagination, enum: -> { Onlyfans::TrackingLinkListParams::Pagination } # @!attribute sort - # Sort the results. Default `desc` + # Sort direction. Default `desc`. # # @return [Symbol, Onlyfans::Models::TrackingLinkListParams::Sort, nil] - optional :sort, enum: -> { Onlyfans::TrackingLinkListParams::Sort }, nil?: true + optional :sort, enum: -> { Onlyfans::TrackingLinkListParams::Sort } # @!attribute sortby - # Sort by subscriber count (claims), or creation date + # Sort by subscriber count (`claims`) or creation date (`created_date`). # # @return [Symbol, Onlyfans::Models::TrackingLinkListParams::Sortby, nil] - optional :sortby, enum: -> { Onlyfans::TrackingLinkListParams::Sortby }, nil?: true + optional :sortby, enum: -> { Onlyfans::TrackingLinkListParams::Sortby } # @!attribute start_date - # The start date for Tracking Links. Keep empty to get all. + # The start date for tracking links. Keep empty to get all. Must not be greater + # than 255 characters. # # @return [String, nil] optional :start_date, String, nil?: true # @!attribute synchronous - # Wait for the revenue data to finish processing, instead of processing in the - # background. **Will result in longer response times, use with caution**. Default - # `false` + # Wait for revenue calculation instead of processing it in the background. # # @return [Boolean, nil] - optional :synchronous, Onlyfans::Internal::Type::Boolean, nil?: true + optional :synchronous, Onlyfans::Internal::Type::Boolean # @!attribute with_deleted - # Whether or not to include deleted tracking links in the response. Default - # `false` + # Whether to include deleted tracking links. Default `true`. # - # @return [Boolean, nil] - optional :with_deleted, Onlyfans::Internal::Type::Boolean, nil?: true + # @return [Integer, Onlyfans::Models::TrackingLinkListParams::WithDeleted, nil] + optional :with_deleted, enum: -> { Onlyfans::TrackingLinkListParams::WithDeleted } - # @!method initialize(account:, end_date: nil, limit: nil, offset: nil, sort: nil, sortby: nil, start_date: nil, synchronous: nil, with_deleted: nil, request_options: {}) + # @!method initialize(account:, end_date: nil, limit: nil, offset: nil, pagination: nil, sort: nil, sortby: nil, start_date: nil, synchronous: nil, with_deleted: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::TrackingLinkListParams} for more details. # # @param account [String] # - # @param end_date [String, nil] The end date for Tracking Links. Keep empty to get all. + # @param end_date [String, nil] The end date for tracking links. Keep empty to get all. Must not be greater than # - # @param limit [Integer, nil] The number of tracking links to return. Default `3` + # @param limit [Integer] The number of tracking links to return. Default `10`. Must be at least 1. Must n # - # @param offset [Integer, nil] The offset used for pagination. Default `0` + # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # - # @param sort [Symbol, Onlyfans::Models::TrackingLinkListParams::Sort, nil] Sort the results. Default `desc` + # @param pagination [Integer, Onlyfans::Models::TrackingLinkListParams::Pagination] # - # @param sortby [Symbol, Onlyfans::Models::TrackingLinkListParams::Sortby, nil] Sort by subscriber count (claims), or creation date + # @param sort [Symbol, Onlyfans::Models::TrackingLinkListParams::Sort] Sort direction. Default `desc`. # - # @param start_date [String, nil] The start date for Tracking Links. Keep empty to get all. + # @param sortby [Symbol, Onlyfans::Models::TrackingLinkListParams::Sortby] Sort by subscriber count (`claims`) or creation date (`created_date`). # - # @param synchronous [Boolean, nil] Wait for the revenue data to finish processing, instead of processing in the bac + # @param start_date [String, nil] The start date for tracking links. Keep empty to get all. Must not be greater th # - # @param with_deleted [Boolean, nil] Whether or not to include deleted tracking links in the response. Default `false + # @param synchronous [Boolean] Wait for revenue calculation instead of processing it in the background. + # + # @param with_deleted [Integer, Onlyfans::Models::TrackingLinkListParams::WithDeleted] Whether to include deleted tracking links. Default `true`. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] - # Sort the results. Default `desc` + module Pagination + extend Onlyfans::Internal::Type::Enum + + PAGINATION_0 = 0 + PAGINATION_1 = 1 + + # @!method self.values + # @return [Array] + end + + # Sort direction. Default `desc`. module Sort extend Onlyfans::Internal::Type::Enum - DESC = :desc ASC = :asc + DESC = :desc # @!method self.values # @return [Array] end - # Sort by subscriber count (claims), or creation date + # Sort by subscriber count (`claims`) or creation date (`created_date`). module Sortby extend Onlyfans::Internal::Type::Enum @@ -108,6 +125,17 @@ module Sortby # @!method self.values # @return [Array] end + + # Whether to include deleted tracking links. Default `true`. + module WithDeleted + extend Onlyfans::Internal::Type::Enum + + WITH_DELETED_0 = 0 + WITH_DELETED_1 = 1 + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/transaction_list_params.rb b/lib/onlyfans/models/transaction_list_params.rb index ac867377..e31020f7 100644 --- a/lib/onlyfans/models/transaction_list_params.rb +++ b/lib/onlyfans/models/transaction_list_params.rb @@ -25,7 +25,7 @@ class TransactionListParams < Onlyfans::Internal::Type::BaseModel optional :marker, String # @!attribute start_date - # The start date for transactions list. Default: `-30days` + # The start date for the transactions list. Defaults to 30 days ago. # # @return [String, nil] optional :start_date, String @@ -54,7 +54,7 @@ class TransactionListParams < Onlyfans::Internal::Type::BaseModel # # @param marker [String] The marker used for pagination. Default: `null` # - # @param start_date [String] The start date for transactions list. Default: `-30days` + # @param start_date [String] The start date for the transactions list. Defaults to 30 days ago. # # @param tips_source [String] Filter tips by source. Only applies when `type=tips`. Options: `profile`, # `post\_ diff --git a/lib/onlyfans/models/trial_link_list_params.rb b/lib/onlyfans/models/trial_link_list_params.rb index 86e603e5..55160cc2 100644 --- a/lib/onlyfans/models/trial_link_list_params.rb +++ b/lib/onlyfans/models/trial_link_list_params.rb @@ -12,57 +12,74 @@ class TrialLinkListParams < Onlyfans::Internal::Type::BaseModel # @return [String] required :account, String - # @!attribute limit - # The number of trial links to return. Default `10` - # - # @return [Integer] - required :limit, Integer - - # @!attribute offset - # The offset used for pagination. Default `0` + # @!attribute end_date + # The end date for trial links. Keep empty to get all. Must not be greater than + # 255 characters. # - # @return [Integer] - required :offset, Integer + # @return [String, nil] + optional :end_date, String, nil?: true # @!attribute field - # Sort the results by a field. Default `create_date` + # Field to sort by. Default `create_date`. # # @return [Symbol, Onlyfans::Models::TrialLinkListParams::Field, nil] - optional :field, enum: -> { Onlyfans::TrialLinkListParams::Field }, nil?: true + optional :field, enum: -> { Onlyfans::TrialLinkListParams::Field } + + # @!attribute limit + # The number of trial links to return. Default `10`. Must be at least 1. Must not + # be greater than 100. + # + # @return [Integer, nil] + optional :limit, Integer + + # @!attribute offset + # The offset used for pagination. Default `0`. Must be at least 0. + # + # @return [Integer, nil] + optional :offset, Integer # @!attribute sort - # Sort the results. Default `desc` + # Sort direction. Default `desc`. # # @return [Symbol, Onlyfans::Models::TrialLinkListParams::Sort, nil] - optional :sort, enum: -> { Onlyfans::TrialLinkListParams::Sort }, nil?: true + optional :sort, enum: -> { Onlyfans::TrialLinkListParams::Sort } + + # @!attribute start_date + # The start date for trial links. Keep empty to get all. Must not be greater than + # 255 characters. + # + # @return [String, nil] + optional :start_date, String, nil?: true # @!attribute synchronous - # Wait for the revenue data to finish processing, instead of processing in the - # background. **Will result in longer response times, use with caution**. Default - # `false` + # Wait for revenue calculation instead of processing it in the background. # # @return [Boolean, nil] - optional :synchronous, Onlyfans::Internal::Type::Boolean, nil?: true + optional :synchronous, Onlyfans::Internal::Type::Boolean - # @!method initialize(account:, limit:, offset:, field: nil, sort: nil, synchronous: nil, request_options: {}) + # @!method initialize(account:, end_date: nil, field: nil, limit: nil, offset: nil, sort: nil, start_date: nil, synchronous: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::TrialLinkListParams} for more details. # # @param account [String] # - # @param limit [Integer] The number of trial links to return. Default `10` + # @param end_date [String, nil] The end date for trial links. Keep empty to get all. Must not be greater than 25 # - # @param offset [Integer] The offset used for pagination. Default `0` + # @param field [Symbol, Onlyfans::Models::TrialLinkListParams::Field] Field to sort by. Default `create_date`. # - # @param field [Symbol, Onlyfans::Models::TrialLinkListParams::Field, nil] Sort the results by a field. Default `create_date` + # @param limit [Integer] The number of trial links to return. Default `10`. Must be at least 1. Must not # - # @param sort [Symbol, Onlyfans::Models::TrialLinkListParams::Sort, nil] Sort the results. Default `desc` + # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # - # @param synchronous [Boolean, nil] Wait for the revenue data to finish processing, instead of processing in the bac + # @param sort [Symbol, Onlyfans::Models::TrialLinkListParams::Sort] Sort direction. Default `desc`. + # + # @param start_date [String, nil] The start date for trial links. Keep empty to get all. Must not be greater than + # + # @param synchronous [Boolean] Wait for revenue calculation instead of processing it in the background. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] - # Sort the results by a field. Default `create_date` + # Field to sort by. Default `create_date`. module Field extend Onlyfans::Internal::Type::Enum @@ -76,12 +93,12 @@ module Field # @return [Array] end - # Sort the results. Default `desc` + # Sort direction. Default `desc`. module Sort extend Onlyfans::Internal::Type::Enum - DESC = :desc ASC = :asc + DESC = :desc # @!method self.values # @return [Array] diff --git a/lib/onlyfans/models/user_list_list_params.rb b/lib/onlyfans/models/user_list_list_params.rb index c36b42f5..9f18f44b 100644 --- a/lib/onlyfans/models/user_list_list_params.rb +++ b/lib/onlyfans/models/user_list_list_params.rb @@ -25,7 +25,14 @@ class UserListListParams < Onlyfans::Internal::Type::BaseModel # @return [Integer, nil] optional :offset, Integer, nil?: true - # @!method initialize(account:, limit: nil, offset: nil, request_options: {}) + # @!attribute view + # How to return the results. `queue` returns the user lists that are available for + # Mass-Messaging. + # + # @return [Symbol, Onlyfans::Models::UserListListParams::View, nil] + optional :view, enum: -> { Onlyfans::UserListListParams::View } + + # @!method initialize(account:, limit: nil, offset: nil, view: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::UserListListParams} for more details. # @@ -35,7 +42,20 @@ class UserListListParams < Onlyfans::Internal::Type::BaseModel # # @param offset [Integer, nil] Must be at least 0. # + # @param view [Symbol, Onlyfans::Models::UserListListParams::View] How to return the results. `queue` returns the user lists that are available for + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] + + # How to return the results. `queue` returns the user lists that are available for + # Mass-Messaging. + module View + extend Onlyfans::Internal::Type::Enum + + QUEUE = :queue + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/onlyfans/models/user_lists/user_add_params.rb b/lib/onlyfans/models/user_lists/user_add_params.rb index 47f414a3..995da2d1 100644 --- a/lib/onlyfans/models/user_lists/user_add_params.rb +++ b/lib/onlyfans/models/user_lists/user_add_params.rb @@ -24,13 +24,30 @@ class UserAddParams < Onlyfans::Internal::Type::BaseModel # @return [Array] required :ids, Onlyfans::Internal::Type::ArrayOf[String] - # @!method initialize(account:, user_list_id:, ids:, request_options: {}) + # @!attribute skip_invalid + # Set to `true` to skip the User IDs OnlyFans refuses instead of failing the whole + # batch. We drop the rejected IDs and retry the remainder for you (up to 5 + # OnlyFans attempts, each costing 1 credit), then respond `200` with `data.added` + # (the IDs that made it in) and `data.failed` (an object mapping each rejected + # User ID to the reason OnlyFans gave). Note this changes the shape of `data` — + # see the example responses. Failures that are not about individual users (e.g. an + # invalid or inaccessible list ID) still return the regular `400`. + # + # @return [Boolean, nil] + optional :skip_invalid, Onlyfans::Internal::Type::Boolean + + # @!method initialize(account:, user_list_id:, ids:, skip_invalid: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::UserLists::UserAddParams} for more details. + # # @param account [String] # # @param user_list_id [String] # # @param ids [Array] Array of OnlyFans User IDs to be added into the list # + # @param skip_invalid [Boolean] Set to `true` to skip the User IDs OnlyFans refuses instead of failing the whole + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/onlyfans/models/user_lists/user_add_response.rb b/lib/onlyfans/models/user_lists/user_add_response.rb index 9bb50460..c74cb385 100644 --- a/lib/onlyfans/models/user_lists/user_add_response.rb +++ b/lib/onlyfans/models/user_lists/user_add_response.rb @@ -3,124 +3,282 @@ module Onlyfans module Models module UserLists + # Default: OnlyFans accepted every User ID + # # @see Onlyfans::Resources::UserLists::Users#add - class UserAddResponse < Onlyfans::Internal::Type::BaseModel - # @!attribute _meta - # - # @return [Onlyfans::Models::UserLists::UserAddResponse::Meta, nil] - optional :_meta, -> { Onlyfans::Models::UserLists::UserAddResponse::Meta } - - # @!attribute data - # - # @return [Onlyfans::Models::UserLists::UserAddResponse::Data, nil] - optional :data, -> { Onlyfans::Models::UserLists::UserAddResponse::Data } - - # @!method initialize(_meta: nil, data: nil) - # @param _meta [Onlyfans::Models::UserLists::UserAddResponse::Meta] - # @param data [Onlyfans::Models::UserLists::UserAddResponse::Data] - - # @see Onlyfans::Models::UserLists::UserAddResponse#_meta - class Meta < Onlyfans::Internal::Type::BaseModel - # @!attribute _cache + module UserAddResponse + extend Onlyfans::Internal::Type::Union + + # Default: OnlyFans accepted every User ID + variant -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember0 } + + # With `skip_invalid=true`: the rejected User IDs are reported instead of failing the batch + variant -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember1 } + + class UnionMember0 < Onlyfans::Internal::Type::BaseModel + # @!attribute _meta # - # @return [Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache, nil] - optional :_cache, -> { Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache } + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta, nil] + optional :_meta, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta } - # @!attribute _credits + # @!attribute data # - # @return [Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits, nil] - optional :_credits, -> { Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits } + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data, nil] + optional :data, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data } - # @!attribute _rate_limits + # @!method initialize(_meta: nil, data: nil) + # Default: OnlyFans accepted every User ID # - # @return [Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits, nil] - optional :_rate_limits, -> { Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits } + # @param _meta [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta] + # @param data [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data] - # @!method initialize(_cache: nil, _credits: nil, _rate_limits: nil) - # @param _cache [Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache] - # @param _credits [Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits] - # @param _rate_limits [Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits] + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember0#_meta + class Meta < Onlyfans::Internal::Type::BaseModel + # @!attribute _cache + # + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache, nil] + optional :_cache, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache } - # @see Onlyfans::Models::UserLists::UserAddResponse::Meta#_cache - class Cache < Onlyfans::Internal::Type::BaseModel - # @!attribute is_cached + # @!attribute _credits # - # @return [Boolean, nil] - optional :is_cached, Onlyfans::Internal::Type::Boolean + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits, nil] + optional :_credits, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits } - # @!attribute note + # @!attribute _rate_limits # - # @return [String, nil] - optional :note, String + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits, nil] + optional :_rate_limits, + -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits } + + # @!method initialize(_cache: nil, _credits: nil, _rate_limits: nil) + # @param _cache [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache] + # @param _credits [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits] + # @param _rate_limits [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits] + + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta#_cache + class Cache < Onlyfans::Internal::Type::BaseModel + # @!attribute is_cached + # + # @return [Boolean, nil] + optional :is_cached, Onlyfans::Internal::Type::Boolean + + # @!attribute note + # + # @return [String, nil] + optional :note, String + + # @!method initialize(is_cached: nil, note: nil) + # @param is_cached [Boolean] + # @param note [String] + end + + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta#_credits + class Credits < Onlyfans::Internal::Type::BaseModel + # @!attribute balance + # + # @return [Integer, nil] + optional :balance, Integer + + # @!attribute note + # + # @return [String, nil] + optional :note, String + + # @!attribute used + # + # @return [Integer, nil] + optional :used, Integer + + # @!method initialize(balance: nil, note: nil, used: nil) + # @param balance [Integer] + # @param note [String] + # @param used [Integer] + end - # @!method initialize(is_cached: nil, note: nil) - # @param is_cached [Boolean] - # @param note [String] + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta#_rate_limits + class RateLimits < Onlyfans::Internal::Type::BaseModel + # @!attribute limit_day + # + # @return [Integer, nil] + optional :limit_day, Integer + + # @!attribute limit_minute + # + # @return [Integer, nil] + optional :limit_minute, Integer + + # @!attribute remaining_day + # + # @return [Integer, nil] + optional :remaining_day, Integer + + # @!attribute remaining_minute + # + # @return [Integer, nil] + optional :remaining_minute, Integer + + # @!method initialize(limit_day: nil, limit_minute: nil, remaining_day: nil, remaining_minute: nil) + # @param limit_day [Integer] + # @param limit_minute [Integer] + # @param remaining_day [Integer] + # @param remaining_minute [Integer] + end end - # @see Onlyfans::Models::UserLists::UserAddResponse::Meta#_credits - class Credits < Onlyfans::Internal::Type::BaseModel - # @!attribute balance + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember0#data + class Data < Onlyfans::Internal::Type::BaseModel + # @!attribute number_1224114714 # - # @return [Integer, nil] - optional :balance, Integer + # @return [Array, nil] + optional :number_1224114714, Onlyfans::Internal::Type::ArrayOf[Integer], api_name: :"1224114714" + + # @!method initialize(number_1224114714: nil) + # @param number_1224114714 [Array] + end + end + + class UnionMember1 < Onlyfans::Internal::Type::BaseModel + # @!attribute _meta + # + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta, nil] + optional :_meta, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta } + + # @!attribute data + # + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data, nil] + optional :data, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data } - # @!attribute note + # @!method initialize(_meta: nil, data: nil) + # With `skip_invalid=true`: the rejected User IDs are reported instead of failing + # the batch + # + # @param _meta [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta] + # @param data [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data] + + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember1#_meta + class Meta < Onlyfans::Internal::Type::BaseModel + # @!attribute _cache + # + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache, nil] + optional :_cache, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache } + + # @!attribute _credits # - # @return [String, nil] - optional :note, String + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits, nil] + optional :_credits, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits } - # @!attribute used + # @!attribute _rate_limits # - # @return [Integer, nil] - optional :used, Integer + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits, nil] + optional :_rate_limits, + -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits } + + # @!method initialize(_cache: nil, _credits: nil, _rate_limits: nil) + # @param _cache [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache] + # @param _credits [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits] + # @param _rate_limits [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits] + + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta#_cache + class Cache < Onlyfans::Internal::Type::BaseModel + # @!attribute is_cached + # + # @return [Boolean, nil] + optional :is_cached, Onlyfans::Internal::Type::Boolean + + # @!attribute note + # + # @return [String, nil] + optional :note, String + + # @!method initialize(is_cached: nil, note: nil) + # @param is_cached [Boolean] + # @param note [String] + end + + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta#_credits + class Credits < Onlyfans::Internal::Type::BaseModel + # @!attribute balance + # + # @return [Integer, nil] + optional :balance, Integer + + # @!attribute note + # + # @return [String, nil] + optional :note, String + + # @!attribute used + # + # @return [Integer, nil] + optional :used, Integer - # @!method initialize(balance: nil, note: nil, used: nil) - # @param balance [Integer] - # @param note [String] - # @param used [Integer] + # @!method initialize(balance: nil, note: nil, used: nil) + # @param balance [Integer] + # @param note [String] + # @param used [Integer] + end + + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta#_rate_limits + class RateLimits < Onlyfans::Internal::Type::BaseModel + # @!attribute limit_day + # + # @return [Integer, nil] + optional :limit_day, Integer + + # @!attribute limit_minute + # + # @return [Integer, nil] + optional :limit_minute, Integer + + # @!attribute remaining_day + # + # @return [Integer, nil] + optional :remaining_day, Integer + + # @!attribute remaining_minute + # + # @return [Integer, nil] + optional :remaining_minute, Integer + + # @!method initialize(limit_day: nil, limit_minute: nil, remaining_day: nil, remaining_minute: nil) + # @param limit_day [Integer] + # @param limit_minute [Integer] + # @param remaining_day [Integer] + # @param remaining_minute [Integer] + end end - # @see Onlyfans::Models::UserLists::UserAddResponse::Meta#_rate_limits - class RateLimits < Onlyfans::Internal::Type::BaseModel - # @!attribute limit_day + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember1#data + class Data < Onlyfans::Internal::Type::BaseModel + # @!attribute added # - # @return [Integer, nil] - optional :limit_day, Integer + # @return [Array, nil] + optional :added, Onlyfans::Internal::Type::ArrayOf[Integer] - # @!attribute limit_minute + # @!attribute failed # - # @return [Integer, nil] - optional :limit_minute, Integer + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed, nil] + optional :failed, -> { Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed } - # @!attribute remaining_day - # - # @return [Integer, nil] - optional :remaining_day, Integer + # @!method initialize(added: nil, failed: nil) + # @param added [Array] + # @param failed [Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed] - # @!attribute remaining_minute - # - # @return [Integer, nil] - optional :remaining_minute, Integer - - # @!method initialize(limit_day: nil, limit_minute: nil, remaining_day: nil, remaining_minute: nil) - # @param limit_day [Integer] - # @param limit_minute [Integer] - # @param remaining_day [Integer] - # @param remaining_minute [Integer] + # @see Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data#failed + class Failed < Onlyfans::Internal::Type::BaseModel + # @!attribute number_123456 + # + # @return [String, nil] + optional :number_123456, String, api_name: :"123456" + + # @!method initialize(number_123456: nil) + # @param number_123456 [String] + end end end - # @see Onlyfans::Models::UserLists::UserAddResponse#data - class Data < Onlyfans::Internal::Type::BaseModel - # @!attribute number_1224114714 - # - # @return [Array, nil] - optional :number_1224114714, Onlyfans::Internal::Type::ArrayOf[Integer], api_name: :"1224114714" - - # @!method initialize(number_1224114714: nil) - # @param number_1224114714 [Array] - end + # @!method self.variants + # @return [Array(Onlyfans::Models::UserLists::UserAddResponse::UnionMember0, Onlyfans::Models::UserLists::UserAddResponse::UnionMember1)] end end end diff --git a/lib/onlyfans/models/webhook_create_params.rb b/lib/onlyfans/models/webhook_create_params.rb index 290d41f3..c3a69a22 100644 --- a/lib/onlyfans/models/webhook_create_params.rb +++ b/lib/onlyfans/models/webhook_create_params.rb @@ -8,8 +8,9 @@ class WebhookCreateParams < Onlyfans::Internal::Type::BaseModel include Onlyfans::Internal::Type::RequestParameters # @!attribute account_scope - # The account scope for the webhook. Use "global" for all accounts, "inclusive" - # for only selected accounts, or "exclusive" for all except selected accounts. + # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use + # "global" for all accounts, "inclusive" for only selected accounts, or + # "exclusive" for all except selected accounts. # # @return [String] required :account_scope, String @@ -22,14 +23,16 @@ class WebhookCreateParams < Onlyfans::Internal::Type::BaseModel # @!attribute events # An array of webhook events to subscribe to. For all options, refer to our **List - # Available Events** endpoint. + # Available Events** endpoint. A webhook is single-platform: subscribe to either + # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook. # # @return [Array] required :events, Onlyfans::Internal::Type::ArrayOf[String] # @!attribute account_ids - # An array of account IDs to apply the scope to. Required unless account_scope is - # "global". + # An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`) + # for Fansly webhooks. Required unless account_scope is "global". # # @return [Array, nil] optional :account_ids, Onlyfans::Internal::Type::ArrayOf[String] @@ -44,14 +47,15 @@ class WebhookCreateParams < Onlyfans::Internal::Type::BaseModel # Some parameter documentations has been truncated, see # {Onlyfans::Models::WebhookCreateParams} for more details. # - # @param account_scope [String] The account scope for the webhook. Use "global" for all accounts, "inclusive" fo + # @param account_scope [String] The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use "glo # # @param endpoint_url [String] The URL of your webhook endpoint. # # @param events [Array] An array of webhook events to subscribe to. For all options, refer to our # \*\*List # - # @param account_ids [Array] An array of account IDs to apply the scope to. Required unless account_scope is + # @param account_ids [Array] An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct\_. # # @param signing_secret [String, nil] Optionally, add a signing secret to protect your webhook. # diff --git a/lib/onlyfans/models/webhook_update_params.rb b/lib/onlyfans/models/webhook_update_params.rb index 62d6129e..af521bbc 100644 --- a/lib/onlyfans/models/webhook_update_params.rb +++ b/lib/onlyfans/models/webhook_update_params.rb @@ -13,8 +13,9 @@ class WebhookUpdateParams < Onlyfans::Internal::Type::BaseModel required :webhook_id, String # @!attribute account_scope - # The account scope for the webhook. Use "global" for all accounts, "inclusive" - # for only selected accounts, or "exclusive" for all except selected accounts. + # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use + # "global" for all accounts, "inclusive" for only selected accounts, or + # "exclusive" for all except selected accounts. # # @return [String] required :account_scope, String @@ -27,14 +28,16 @@ class WebhookUpdateParams < Onlyfans::Internal::Type::BaseModel # @!attribute events # An array of webhook events to subscribe to. For all options, refer to our **List - # Available Events** endpoint. + # Available Events** endpoint. A webhook is single-platform: subscribe to either + # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook. # # @return [Array] required :events, Onlyfans::Internal::Type::ArrayOf[String] # @!attribute account_ids - # An array of account IDs to apply the scope to. Required unless account_scope is - # "global". + # An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`) + # for Fansly webhooks. Required unless account_scope is "global". # # @return [Array, nil] optional :account_ids, Onlyfans::Internal::Type::ArrayOf[String] @@ -52,14 +55,15 @@ class WebhookUpdateParams < Onlyfans::Internal::Type::BaseModel # # @param webhook_id [String] # - # @param account_scope [String] The account scope for the webhook. Use "global" for all accounts, "inclusive" fo + # @param account_scope [String] The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use "glo # # @param endpoint_url [String] The URL of your webhook endpoint. # # @param events [Array] An array of webhook events to subscribe to. For all options, refer to our # \*\*List # - # @param account_ids [Array] An array of account IDs to apply the scope to. Required unless account_scope is + # @param account_ids [Array] An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct\_. # # @param enabled [Boolean, nil] Optionally, enabled/disable the webhook. This will stop/resume the sending of ev # diff --git a/lib/onlyfans/resources/analytics/financial/profitability.rb b/lib/onlyfans/resources/analytics/financial/profitability.rb index 4ad81bec..d6b68510 100644 --- a/lib/onlyfans/resources/analytics/financial/profitability.rb +++ b/lib/onlyfans/resources/analytics/financial/profitability.rb @@ -22,7 +22,7 @@ class Profitability # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Array] + # @return [Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse] # # @see Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryParams def get_history(account, params) @@ -32,7 +32,7 @@ def get_history(account, params) method: :get, path: ["api/analytics/financial/profitability/%1$s/history", account], query: query, - model: Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem], + model: Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse, options: options ) end @@ -50,7 +50,7 @@ def get_history(account, params) # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Array] + # @return [Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse] # # @see Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityParams def get_profitability(params) @@ -60,7 +60,7 @@ def get_profitability(params) method: :post, path: "api/analytics/financial/profitability", body: parsed, - model: Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem], + model: Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse, options: options ) end diff --git a/lib/onlyfans/resources/chats.rb b/lib/onlyfans/resources/chats.rb index f510c020..34e8ea12 100644 --- a/lib/onlyfans/resources/chats.rb +++ b/lib/onlyfans/resources/chats.rb @@ -9,6 +9,9 @@ class Chats # @return [Onlyfans::Resources::Chats::MarkAllAsRead] attr_reader :mark_all_as_read + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::ChatListParams} for more details. + # # Get the list of chats for an Account. # # @overload list(account, filter: nil, limit: nil, offset: nil, order: nil, query: nil, skip_users: nil, request_options: {}) @@ -25,7 +28,7 @@ class Chats # # @param query [String] Search query to filter chats # - # @param skip_users [Symbol, Onlyfans::Models::ChatListParams::SkipUsers] Whether to skip user details in response (all or none). Default = all + # @param skip_users [Symbol, Onlyfans::Models::ChatListParams::SkipUsers] Whether to skip user details in the response (`all` or `none`). Defaults to `all # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -114,7 +117,7 @@ def hide(chat_id, params) # # @param offset [String] Query param: Number of medias to skip for pagination # - # @param skip_users [String] Query param: Whether to skip user details in response (all or none). Default = a + # @param skip_users [String] Query param: Whether to skip user details in the response (`all` or `none`). Def # # @param type [Symbol, Onlyfans::Models::ChatListMediaParams::Type, nil] Query param: Filter by specific media types. Keep empty to return all. # @@ -222,8 +225,8 @@ def mute(chat_id, params) end # Calling this endpoint will show the target fan a "Model is typing..." note in - # the chat for ~4 seconds. If you want to continue showing the indicator call this - # endpoint multiple times. Free - no credits charged. + # the chat for ~4 seconds. Duplicate calls for the same account and chat are + # coalesced during that window. # # @overload start_typing(chat_id, account:, request_options: {}) # diff --git a/lib/onlyfans/resources/chats/messages.rb b/lib/onlyfans/resources/chats/messages.rb index d6be6458..1126193d 100644 --- a/lib/onlyfans/resources/chats/messages.rb +++ b/lib/onlyfans/resources/chats/messages.rb @@ -59,7 +59,7 @@ def retrieve(message_id, params) # # @param order [String] Query param: Sort order for messages (desc or asc) # - # @param skip_users [String] Query param: Whether to skip user details (all or none) + # @param skip_users [String] Query param: Whether to skip user details (`all` or `none`). # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -219,12 +219,38 @@ def search(chat_id, params) # # Send a new message to a chat. # - # @overload send_(chat_id, account:, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, reply_to_message_id: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, text: nil, request_options: {}) + # **Idempotency.** Pass an `Idempotency-Key` header to make retries safe. The + # first request with a given key is executed normally and its response is stored + # for **24 hours**; any later request with the same key returns that stored + # response, plus an `Idempotent-Replayed: true` header, without contacting + # OnlyFans and without consuming credits. The replayed body is the original + # response with its `_meta._credits` block rewritten to show `used: 0` and your + # current balance. + # + # Keys are scoped to your team, this endpoint and the account in the URL, so the + # same value can be reused safely against a different account. Use a fresh, unique + # value (a UUID works well) for each message you send; it must be 1-255 printable + # ASCII characters. + # + # - `400 IDEMPOTENCY_KEY_INVALID` — the header value is empty, too long, or + # contains non-ASCII characters. + # - `409 IDEMPOTENCY_CONFLICT` — an earlier request with this key is still + # running. Retry once it finishes. + # - `422 IDEMPOTENCY_KEY_MISMATCH` — this key was already used with a different + # request body or chat. + # + # Responses with a `5xx` status (and `408`/`429`) are never stored, so a failed + # send can be retried with the same key. The header is optional: omit it and the + # endpoint behaves exactly as before. + # + # @overload send_(chat_id, account:, block_banned_words: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, reply_to_message_id: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, text: nil, idempotency_key: nil, request_options: {}) # # @param chat_id [String] Path param: The ID of the chat (usually a fan's OnlyFans User ID) # # @param account [String] Path param: The Account ID # + # @param block_banned_words [Symbol, Onlyfans::Models::Chats::MessageSendParams::BlockBannedWords] Body param: Screen `text` for OnlyFans banned words and block the send if any ar + # # @param giphy_id [String] Body param: The ID of the Giphy GIF to attach to the message. Get IDs from the G # # @param locked_text [Boolean] Body param: Whether the text should be shown or hidden @@ -233,7 +259,7 @@ def search(chat_id, params) # # @param previews [Array] Body param: Direct file uploads, OFAPI `ofapi_media_` IDs, OF vault IDs, or inte # - # @param price [Integer] Body param: Price for paid content (0 or between 3-200). In case this is not zer + # @param price [Float] Body param: Price for paid content in USD (0 or between 3-200). In case this is # # @param reply_to_message_id [Integer] Body param: Mark this message as a reply to another (can be either your own, or # @@ -245,6 +271,8 @@ def search(chat_id, params) # # @param text [String] Body param: The message text content. Required unless a media file is present. # + # @param idempotency_key [String] Header param + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::Chats::MessageSendResponse] @@ -256,10 +284,12 @@ def send_(chat_id, params) parsed.delete(:account) do raise ArgumentError.new("missing required path argument #{_1}") end + header_params = {idempotency_key: "idempotency-key"} @client.request( method: :post, path: ["api/%1$s/chats/%2$s/messages", account, chat_id], - body: parsed, + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Onlyfans::Models::Chats::MessageSendResponse, options: options ) diff --git a/lib/onlyfans/resources/data_exports.rb b/lib/onlyfans/resources/data_exports.rb index 46ca2630..4ea8c809 100644 --- a/lib/onlyfans/resources/data_exports.rb +++ b/lib/onlyfans/resources/data_exports.rb @@ -18,7 +18,7 @@ class DataExports # # @param start_date [String] The start date for the export (ISO 8601 format). # - # @param type [Symbol, Onlyfans::Models::DataExportCreateParams::Type] The type of data to export + # @param type [Symbol, Onlyfans::Models::DataExportCreateParams::Type] The type of data to export. Use `fansly_chat_messages` to export Fansly chat mes # # @param account_ids [Array] Array of account prefixed IDs to export data from. Not required for `public_prof # diff --git a/lib/onlyfans/resources/engagement/messages.rb b/lib/onlyfans/resources/engagement/messages.rb index 11f34bd5..988dc6f8 100644 --- a/lib/onlyfans/resources/engagement/messages.rb +++ b/lib/onlyfans/resources/engagement/messages.rb @@ -24,7 +24,7 @@ class Messages # # @param offset [Integer] Query param: Offset for pagination (default = 0) # - # @param skip_users [String] Query param: Optional flag for subsequent pages (example: all) + # @param skip_users [String] Query param: Optional flag for subsequent pages (example: all). # # @param skip_users_dups [Integer] Query param: Skip duplicate users in results (0/1). Default = 1 # @@ -58,7 +58,7 @@ def get_message_buyers(message_id, params) # # @param account [String] The Account ID # - # @param end_date [String] The end date for the period. Keep empty to retrieve until now. MUST BE DATE AFTE + # @param end_date [String] The end date for the period. Keep empty to retrieve until now. It must be after # # @param start_date [String] The start date for the period. Keep empty to retrieve from the model start date. # diff --git a/lib/onlyfans/resources/engagement/messages/direct_messages.rb b/lib/onlyfans/resources/engagement/messages/direct_messages.rb index f92e7833..e2a552e7 100644 --- a/lib/onlyfans/resources/engagement/messages/direct_messages.rb +++ b/lib/onlyfans/resources/engagement/messages/direct_messages.rb @@ -15,7 +15,7 @@ class DirectMessages # # @param account [String] The Account ID # - # @param end_date [String] The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER `start + # @param end_date [String] The latest message to retrieve. Keep empty to get all. It must be after `startDa # # @param limit [Integer] Number of messages to return (default = 10) # @@ -49,7 +49,7 @@ def list(account, params = {}) # # @param account [String] The Account ID # - # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. # # @param start_date [String] Start of the chart window in `Y-m-d H:i:s` format. # diff --git a/lib/onlyfans/resources/engagement/messages/mass_messages.rb b/lib/onlyfans/resources/engagement/messages/mass_messages.rb index 25388782..0aa2fd98 100644 --- a/lib/onlyfans/resources/engagement/messages/mass_messages.rb +++ b/lib/onlyfans/resources/engagement/messages/mass_messages.rb @@ -15,7 +15,7 @@ class MassMessages # # @param account [String] The Account ID # - # @param end_date [String] The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER `start + # @param end_date [String] The latest message to retrieve. Keep empty to get all. It must be after `startDa # # @param limit [Integer] Number of messages to return (default = 10) # @@ -47,7 +47,7 @@ def list(account, params = {}) # # @param account [String] The Account ID # - # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # @param end_date [String] End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. # # @param start_date [String] Start of the chart window in `Y-m-d H:i:s` format. # diff --git a/lib/onlyfans/resources/fans.rb b/lib/onlyfans/resources/fans.rb index cec145cc..78ba79df 100644 --- a/lib/onlyfans/resources/fans.rb +++ b/lib/onlyfans/resources/fans.rb @@ -43,7 +43,19 @@ def get_subscription_history(user_id, params) # Some parameter documentations has been truncated, see # {Onlyfans::Models::FanListActiveParams} for more details. # - # Get a paginated list of fans for an Account. Newest fans are first. + # Get a paginated list of fans for an Account. Newest fans are first. Paginate by + # following `_pagination.next_page` until it is null (`data.hasMore` is the + # authoritative flag). Do NOT use the page's item count to detect the last page — + # OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for limit=20) on + # a non-final page because it filters entries server-side; no fans are skipped. To + # track progress, GET `/{account}/me` returns data.subscribersCount (the current + # active-subscriber count) as a total. + # + # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans + # who have never spent), which OnlyFans itself cannot do. Those requests are + # answered from OnlyFansAPI's own fan index rather than proxied, so the page is + # limited to fans we have already indexed for this account — see `data._source` in + # the response. # # @overload list_active(account, filter: nil, limit: nil, offset: nil, query: nil, type: nil, request_options: {}) # @@ -51,7 +63,7 @@ def get_subscription_history(user_id, params) # # @param filter [Onlyfans::Models::FanListActiveParams::Filter] # - # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20 + # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. # # @param offset [Integer] Number of fans to skip. Must be at least 0. # @@ -79,7 +91,17 @@ def list_active(account, params = {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::FanListAllParams} for more details. # - # Get a paginated list of fans for an Account. Newest fans are first. + # Get a paginated list of fans for an Account. Newest fans are first. Paginate by + # following `_pagination.next_page` until it is null (`data.hasMore` is the + # authoritative flag). Do NOT use the page's item count to detect the last page — + # OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for limit=20) on + # a non-final page because it filters entries server-side; no fans are skipped. + # + # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans + # who have never spent), which OnlyFans itself cannot do. Those requests are + # answered from OnlyFansAPI's own fan index rather than proxied, so the page is + # limited to fans we have already indexed for this account — see `data._source` in + # the response. # # @overload list_all(account, filter: nil, limit: nil, offset: nil, query: nil, type: nil, request_options: {}) # @@ -87,7 +109,7 @@ def list_active(account, params = {}) # # @param filter [Onlyfans::Models::FanListAllParams::Filter] # - # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20 + # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. # # @param offset [Integer] Number of fans to skip. Must be at least 0. # @@ -116,6 +138,17 @@ def list_all(account, params = {}) # {Onlyfans::Models::FanListExpiredParams} for more details. # # Get a paginated list of expired fans for an Account. Newest fans are first. + # Paginate by following `_pagination.next_page` until it is null (`data.hasMore` + # is the authoritative flag). Do NOT use the page's item count to detect the last + # page — OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for + # limit=20) on a non-final page because it filters entries server-side; no fans + # are skipped. + # + # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans + # who have never spent), which OnlyFans itself cannot do. Those requests are + # answered from OnlyFansAPI's own fan index rather than proxied, so the page is + # limited to fans we have already indexed for this account — see `data._source` in + # the response. # # @overload list_expired(account, filter: nil, limit: nil, offset: nil, query: nil, type: nil, request_options: {}) # @@ -123,7 +156,7 @@ def list_all(account, params = {}) # # @param filter [Onlyfans::Models::FanListExpiredParams::Filter] # - # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 20 + # @param limit [Integer] Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. # # @param offset [Integer] Number of fans to skip. Must be at least 0. # @@ -158,13 +191,13 @@ def list_expired(account, params = {}) # # @param account [String] The Account ID # - # @param end_date [String, nil] End date for filtering (required with start_date). This field is required when < + # @param end_date [String, nil] End date for filtering (required with start_date). Must be a valid date. Must no # - # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 10 + # @param limit [Integer] Number of fans to return (1-50). Must be at least 1. Must not be greater than 50 # # @param offset [Integer] Number of fans to skip. Must be at least 0. # - # @param start_date [String, nil] Start date for filtering (required with end_date). This field is required when < + # @param start_date [String, nil] Start date for filtering (required with end_date). Must be a valid date. Must no # # @param type [Symbol, Onlyfans::Models::FanListLatestParams::Type, nil] Filter by type: total, renew, or new. # @@ -197,9 +230,9 @@ def list_latest(account, params = {}) # # @param by [Symbol, Onlyfans::Models::FanListTopParams::By, nil] Sort by: total (default), subscribes, tips, messages, post, streams. # - # @param end_date [String, nil] End date for filtering (required with start_date). This field is required when < + # @param end_date [String, nil] End date for filtering (required with start_date). Must be a valid date. Must no # - # @param start_date [String, nil] Start date for filtering (required with end_date). This field is required when < + # @param start_date [String, nil] Start date for filtering (required with end_date). Must be a valid date. Must no # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/lib/onlyfans/resources/following.rb b/lib/onlyfans/resources/following.rb index 8b7760df..c481eaf6 100644 --- a/lib/onlyfans/resources/following.rb +++ b/lib/onlyfans/resources/following.rb @@ -7,9 +7,18 @@ class Following # Some parameter documentations has been truncated, see # {Onlyfans::Models::FollowingListActiveParams} for more details. # - # Get a paginated list of followings for an Account. Newest followings are first. - # - # @overload list_active(account, filter: nil, limit: nil, offset: nil, query: nil, request_options: {}) + # Get a paginated list of followings for an Account. By default OnlyFans returns + # this list newest-first, sorted by `subscribedByData.subscribeAt` descending. The + # expired list does not share this order, so do not assume it applies there. Pass + # `sort` (optionally with `sortDirection`) to reorder the list — see the parameter + # description for the caveat that OnlyFans persists the chosen order account-wide. + # An empty page is not the end of the list: OnlyFans applies `offset` to the whole + # following collection before filtering it down to the requested list, so a page + # can come back empty while more results follow. Keep following + # `_pagination.next_page` until it is `null` instead of stopping at the first + # empty page. + # + # @overload list_active(account, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {}) # # @param account [String] The Account ID # @@ -21,6 +30,10 @@ class Following # # @param query [String, nil] Search within following name/username. # + # @param sort [Symbol, Onlyfans::Models::FollowingListActiveParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir + # + # @param sort_direction [Symbol, Onlyfans::Models::FollowingListActiveParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::FollowingListActiveResponse] @@ -32,7 +45,7 @@ def list_active(account, params = {}) @client.request( method: :get, path: ["api/%1$s/following/active", account], - query: query, + query: query.transform_keys(sort_direction: "sortDirection"), model: Onlyfans::Models::FollowingListActiveResponse, options: options ) @@ -41,9 +54,18 @@ def list_active(account, params = {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::FollowingListAllParams} for more details. # - # Get a paginated list of followings for an Account. Newest followings are first. + # Get a paginated list of followings for an Account. By default OnlyFans returns + # this list newest-first, sorted by `subscribedByData.subscribeAt` descending. The + # expired list does not share this order, so do not assume it applies there. Pass + # `sort` (optionally with `sortDirection`) to reorder the list — see the parameter + # description for the caveat that OnlyFans persists the chosen order account-wide. + # An empty page is not the end of the list: OnlyFans applies `offset` to the whole + # following collection before filtering it down to the requested list, so a page + # can come back empty while more results follow. Keep following + # `_pagination.next_page` until it is `null` instead of stopping at the first + # empty page. # - # @overload list_all(account, filter: nil, limit: nil, offset: nil, query: nil, request_options: {}) + # @overload list_all(account, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {}) # # @param account [String] The Account ID # @@ -55,6 +77,10 @@ def list_active(account, params = {}) # # @param query [String, nil] Search within following name/username. # + # @param sort [Symbol, Onlyfans::Models::FollowingListAllParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir + # + # @param sort_direction [Symbol, Onlyfans::Models::FollowingListAllParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::FollowingListAllResponse] @@ -66,7 +92,7 @@ def list_all(account, params = {}) @client.request( method: :get, path: ["api/%1$s/following/all", account], - query: query, + query: query.transform_keys(sort_direction: "sortDirection"), model: Onlyfans::Models::FollowingListAllResponse, options: options ) @@ -75,10 +101,26 @@ def list_all(account, params = {}) # Some parameter documentations has been truncated, see # {Onlyfans::Models::FollowingListExpiredParams} for more details. # - # Get a paginated list of expired followings for an Account. Newest followings are - # first. - # - # @overload list_expired(account, filter: nil, limit: nil, offset: nil, query: nil, request_options: {}) + # Get a paginated list of expired followings for an Account. This list has no + # order guarantee. Unlike the all and active lists, it is sorted by neither + # `subscribedByData.subscribeAt` nor `subscribedByData.expiredAt`. To poll for new + # expirations, page through the full list each cycle (`limit=50`, follow + # `_pagination.next_page` until it is null) and diff it against your own store + # using `subscribedByData.expiredAt`. Do NOT stop early at the first entry you + # have already seen, as that can silently skip real expirations. An empty page is + # not the end of the list either: OnlyFans applies `offset` to the whole following + # collection and only then filters that window down to expired subscriptions, so + # early pages can come back empty while hundreds of expired rows still follow. + # Keep following `_pagination.next_page` until it is `null` instead of stopping at + # the first empty page. Pass `sort=expire_date` (optionally with `sortDirection`) + # to get a deterministic order instead — see the parameter description for the + # caveat that OnlyFans persists the chosen order account-wide. Ordering by expiry + # descending puts the still-active subscriptions first and moves the expired rows + # to the tail of the collection, so prefer `sortDirection=asc` or + # `sort=is_expired` for expired-first results; for that reason `sort=expire_date` + # defaults to `asc` on this list when no `sortDirection` is given. + # + # @overload list_expired(account, filter: nil, limit: nil, offset: nil, query: nil, sort: nil, sort_direction: nil, request_options: {}) # # @param account [String] The Account ID # @@ -90,6 +132,10 @@ def list_all(account, params = {}) # # @param query [String, nil] Search within following name/username. # + # @param sort [Symbol, Onlyfans::Models::FollowingListExpiredParams::Sort, nil] Order the list by `last_activity` (the followed creator's last activity), `expir + # + # @param sort_direction [Symbol, Onlyfans::Models::FollowingListExpiredParams::SortDirection, nil] Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. Exce + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::FollowingListExpiredResponse] @@ -101,7 +147,7 @@ def list_expired(account, params = {}) @client.request( method: :get, path: ["api/%1$s/following/expired", account], - query: query, + query: query.transform_keys(sort_direction: "sortDirection"), model: Onlyfans::Models::FollowingListExpiredResponse, options: options ) diff --git a/lib/onlyfans/resources/link_tags.rb b/lib/onlyfans/resources/link_tags.rb index ec123b64..cc917808 100644 --- a/lib/onlyfans/resources/link_tags.rb +++ b/lib/onlyfans/resources/link_tags.rb @@ -2,14 +2,14 @@ module Onlyfans module Resources - # APIs for managing tags on free trial links and tracking links + # APIs for managing tags on free trial links, tracking links, and Smart Links class LinkTags - # Get all existing tags that have been used on free trial links and/or tracking - # links for this account. This is a free endpoint. + # Get all existing tags that have been used on free trial links, tracking links, + # and/or Smart Links for this account. This is a free endpoint. # # @overload list(type: nil, request_options: {}) # - # @param type [Symbol, Onlyfans::Models::LinkTagListParams::Type] Filter by link type. If not provided, returns tags for both types. + # @param type [Symbol, Onlyfans::Models::LinkTagListParams::Type] Filter by link type. If not provided, returns tags for all types. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/lib/onlyfans/resources/mass_messaging.rb b/lib/onlyfans/resources/mass_messaging.rb index 9e80538e..1d6a07e0 100644 --- a/lib/onlyfans/resources/mass_messaging.rb +++ b/lib/onlyfans/resources/mass_messaging.rb @@ -6,7 +6,8 @@ class MassMessaging # Some parameter documentations has been truncated, see # {Onlyfans::Models::MassMessagingRetrieveParams} for more details. # - # Get the content of a mass message. + # Get the content and settings of a mass message, including a message scheduled + # for later. # # @overload retrieve(id, account:, request_options: {}) # @@ -36,9 +37,10 @@ def retrieve(id, params) # Some parameter documentations has been truncated, see # {Onlyfans::Models::MassMessagingUpdateParams} for more details. # - # Update a mass message. + # Update the content, recipients, media, price, or scheduled send time of an + # existing mass message. # - # @overload update(id, account:, text:, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, scheduled_date: nil, user_ids: nil, user_lists: nil, request_options: {}) + # @overload update(id, account:, text:, block_banned_words: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, scheduled_date: nil, user_ids: nil, user_lists: nil, request_options: {}) # # @param id [String] Path param: The ID of the message queue item. Can be retrieved from the above st # @@ -46,6 +48,8 @@ def retrieve(id, params) # # @param text [String] Body param: The message text content # + # @param block_banned_words [Symbol, Onlyfans::Models::MassMessagingUpdateParams::BlockBannedWords] Body param: Screen `text` for OnlyFans banned words and block the update if any + # # @param giphy_id [String] Body param: The ID of the Giphy GIF to attach to the message. Get IDs from the G # # @param locked_text [Boolean] Body param: Whether the text should be shown or hidden @@ -54,7 +58,7 @@ def retrieve(id, params) # # @param previews [Array] Body param: Array of media file upload prefixed_ids, or OF media IDs (required i # - # @param price [Integer] Body param: Price for paid content (0 or between 3-200). In case this is not zer + # @param price [Float] Body param: Price for paid content in USD (0 or between 3-200). In case this is # # @param scheduled_date [String] Body param: Schedule the chat message in the future (UTC timezone). # @@ -82,7 +86,8 @@ def update(id, params) ) end - # List the pending or recently sent mass messages in the message queue. + # List pending, scheduled, and recently sent mass messages. Use an item ID to + # retrieve, update, reschedule, delete, or unsend the message. # # @overload list(account, request_options: {}) # @@ -142,7 +147,7 @@ def delete(id, params) # # @param account [String] The Account ID # - # @param end_date [String] The latest mass message to retrieve. Keep empty to get all. MUST BE DATE AFTER ` + # @param end_date [String] The latest mass message to retrieve. Keep empty to get all. It must be after `st # # @param limit [Integer] Number of mass messages to return (default = 10) # @@ -174,12 +179,14 @@ def retrieve_overview(account, params = {}) # `userIds` parameters to send the same message to both lists and individual # users. # - # @overload send_(account, text:, excluded_lists: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, user_ids: nil, user_lists: nil, request_options: {}) + # @overload send_(account, text:, block_banned_words: nil, excluded_lists: nil, giphy_id: nil, locked_text: nil, media_files: nil, previews: nil, price: nil, rf_guest: nil, rf_partner: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, user_ids: nil, user_lists: nil, request_options: {}) # # @param account [String] The Account ID # # @param text [String] The message text content # + # @param block_banned_words [Symbol, Onlyfans::Models::MassMessagingSendParams::BlockBannedWords] Screen `text` for OnlyFans banned words and block the send if any are found (ret + # # @param excluded_lists [Array] Array of user list IDs that the mass message will NOT be sent to. # # @param giphy_id [String] The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing @@ -190,8 +197,8 @@ def retrieve_overview(account, params = {}) # # @param previews [Array] Direct file uploads, OFAPI `ofapi_media_` IDs, OF vault IDs, or integer indices # - # @param price [Integer] Price for paid content (0 or between 3-200). In case this is not zero, - # \*\*mediaFi + # @param price [Float] Price for paid content in USD (0 or between 3-200). In case this is not zero, + # \*\* # # @param rf_guest [String] Array of OnlyFans Release Form Guest IDs to tag in your mass message # diff --git a/lib/onlyfans/resources/media.rb b/lib/onlyfans/resources/media.rb index 801b5558..0da96d17 100644 --- a/lib/onlyfans/resources/media.rb +++ b/lib/onlyfans/resources/media.rb @@ -15,8 +15,9 @@ class Media # Downloads a file directly from a `https://cdn*.onlyfans.com/*` URL. When the # file is already cached on our CDN, this endpoint returns a `302` redirect to a # `https://cdn.fansapi.com/*` URL. Most HTTP clients follow redirects - # automatically (`curl` requires `-L`). Otherwise, the file is streamed through - # our proxies and queued for caching. + # automatically (`curl` requires `-L`). Otherwise, the file is redirected to + # `dl.fansapi.com`, which streams it through the account proxy and reports billing + # back to the API. # # @overload download(cdn_url, account:, request_options: {}) # @@ -27,7 +28,7 @@ class Media # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [String] + # @return [nil] # # @see Onlyfans::Models::MediaDownloadParams def download(cdn_url, params) @@ -39,8 +40,7 @@ def download(cdn_url, params) @client.request( method: :get, path: ["api/%1$s/media/download/%2$s", account, cdn_url], - headers: {"accept" => "text/plain"}, - model: String, + model: NilClass, options: options ) end diff --git a/lib/onlyfans/resources/media/uploads.rb b/lib/onlyfans/resources/media/uploads.rb index 39198b4b..43fe609a 100644 --- a/lib/onlyfans/resources/media/uploads.rb +++ b/lib/onlyfans/resources/media/uploads.rb @@ -14,6 +14,11 @@ class Uploads # - `completed` — Upload finished, `media` and `credits_used` are included # - `failed` — Upload failed, `error` is included # + # Instead of polling, you can subscribe to the `media_uploads.completed` and + # `media_uploads.failed` webhook events. They carry the same fields as this + # endpoint and are only sent for async (`async=true`) uploads — synchronous + # uploads return their result directly. + # # @overload get_status(upload, account:, request_options: {}) # # @param upload [String] The prefixed ID of the upload. diff --git a/lib/onlyfans/resources/media/vault/lists.rb b/lib/onlyfans/resources/media/vault/lists.rb index c243f037..d6709d0f 100644 --- a/lib/onlyfans/resources/media/vault/lists.rb +++ b/lib/onlyfans/resources/media/vault/lists.rb @@ -59,13 +59,18 @@ def retrieve(list_id, params) ) end + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::Media::Vault::ListUpdateParams} for more details. + # # Rename a Vault list. # - # @overload update(list_id, account:, request_options: {}) + # @overload update(list_id, account:, name:, request_options: {}) # - # @param list_id [String] The ID of the list + # @param list_id [String] Path param: The ID of the list # - # @param account [String] The Account ID + # @param account [String] Path param: The Account ID + # + # @param name [String] Body param: The new name for the vault list. Must not be greater than 255 charac # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -81,17 +86,37 @@ def update(list_id, params) @client.request( method: :put, path: ["api/%1$s/media/vault/lists/%2$s", account, list_id], + body: parsed, model: Onlyfans::Models::Media::Vault::ListUpdateResponse, options: options ) end + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::Media::Vault::ListListParams} for more details. + # # List your Vault lists (categories). # - # @overload list(account, limit: nil, offset: nil, query: nil, request_options: {}) + # Every response carries an `ETag` computed over the `data` payload. Send it back + # as `If-None-Match` on your next call and you will get a `304 Not Modified` with + # an empty body when nothing changed, so you can keep serving your cached copy + # instead of re-parsing the full list. Credits are debited either way — we still + # have to ask OnlyFans for the current state to know whether it changed. + # + # The `ETag` covers `data` only, never `_meta` — your credits balance changes on + # every call, so including it would mean the `ETag` never matches. Because a `304` + # has no body, it also has no `_meta`: read the current credits and rate-limit + # counters from the `X-OFAPI-Credits-Used`, `X-OFAPI-Credits-Balance`, + # `X-Rate-Limit-Limit-Minute` and `X-Rate-Limit-Remaining-Minute` response + # headers, which are sent on `304` responses too. The `_meta` inside a body you + # cached earlier is stale by definition. + # + # @overload list(account, lightweight: nil, limit: nil, offset: nil, query: nil, request_options: {}) # # @param account [String] The Account ID # + # @param lightweight [Boolean] Set to `true` to return only `id`, `name`, `type`, `canUpdate` and a rolled-up ` + # # @param limit [Integer] Number of media to return per page. Default: `24` # # @param offset [Integer] The offset used for pagination. Default `0` @@ -100,7 +125,7 @@ def update(list_id, params) # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Onlyfans::Models::Media::Vault::ListListResponse] + # @return [Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0, Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1] # # @see Onlyfans::Models::Media::Vault::ListListParams def list(account, params = {}) diff --git a/lib/onlyfans/resources/messages.rb b/lib/onlyfans/resources/messages.rb index 4dc39e08..bb228f8a 100644 --- a/lib/onlyfans/resources/messages.rb +++ b/lib/onlyfans/resources/messages.rb @@ -3,45 +3,6 @@ module Onlyfans module Resources class Messages - # Some parameter documentations has been truncated, see - # {Onlyfans::Models::MessageAttachTagsParams} for more details. - # - # Attach Tags (Release Forms) to a message that has already been sent. Please - # note, that this is a "sync" operation - for example, if you provide empty - # `rfTag` it will remove all existing tags already attached to the message. - # - # @overload attach_tags(message_id, account:, rf_guest: nil, rf_partner: nil, rf_tag: nil, request_options: {}) - # - # @param message_id [String] Path param: The ID of the message to attach the release forms to. This can be ON - # - # @param account [String] Path param: The Account ID - # - # @param rf_guest [String] Body param: Array of OnlyFans Release Form Guest IDs to tag in your message - # - # @param rf_partner [String] Body param: Array of OnlyFans Release Form Partners IDs to tag in your message - # - # @param rf_tag [String] Body param: Array of OnlyFans Creator User IDs to tag in your message - # - # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Onlyfans::Models::MessageAttachTagsResponse] - # - # @see Onlyfans::Models::MessageAttachTagsParams - def attach_tags(message_id, params) - parsed, options = Onlyfans::MessageAttachTagsParams.dump_request(params) - account = - parsed.delete(:account) do - raise ArgumentError.new("missing required path argument #{_1}") - end - @client.request( - method: :post, - path: ["api/%1$s/messages/%2$s/attach-tags", account, message_id], - body: parsed, - model: Onlyfans::Models::MessageAttachTagsResponse, - options: options - ) - end - # @api private # # @param client [Onlyfans::Client] diff --git a/lib/onlyfans/resources/notifications.rb b/lib/onlyfans/resources/notifications.rb index 4a53680c..e78cbf89 100644 --- a/lib/onlyfans/resources/notifications.rb +++ b/lib/onlyfans/resources/notifications.rb @@ -21,7 +21,7 @@ class Notifications # # @param limit [Integer] The number of notifications. Default `10` # - # @param skip_users [Symbol, Onlyfans::Models::NotificationListParams::SkipUsers] Whether to skip user details. Default `all` + # @param skip_users [Symbol, Onlyfans::Models::NotificationListParams::SkipUsers] Whether to skip user details. Defaults to `all`. # # @param type [Symbol, Onlyfans::Models::NotificationListParams::Type] Filter notifications by a specific type # diff --git a/lib/onlyfans/resources/posts.rb b/lib/onlyfans/resources/posts.rb index 00b620e9..f2609286 100644 --- a/lib/onlyfans/resources/posts.rb +++ b/lib/onlyfans/resources/posts.rb @@ -16,12 +16,14 @@ class Posts # # Compose and send a new post to your OnlyFans account. # - # @overload create(account, text:, expire_days: nil, fund_raising_target_amount: nil, fund_raising_tips_presets: nil, label_ids: nil, media_files: nil, previews: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, voting_correct_index: nil, voting_due: nil, voting_options: nil, voting_type: nil, request_options: {}) + # @overload create(account, text:, block_banned_words: nil, expire_days: nil, fund_raising_target_amount: nil, fund_raising_tips_presets: nil, label_ids: nil, media_files: nil, previews: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, voting_correct_index: nil, voting_due: nil, voting_options: nil, voting_type: nil, request_options: {}) # # @param account [String] The Account ID # # @param text [String] The post text content # + # @param block_banned_words [Symbol, Onlyfans::Models::PostCreateParams::BlockBannedWords] Screen `text` for OnlyFans banned words and block the post if any are found (ret + # # @param expire_days [Integer] Number of days after which the post will expire. Between 1 and 30 days. Keep emp # # @param fund_raising_target_amount [Integer] Add a fundraising target to your post. If present, value must be at least 10. @@ -96,7 +98,7 @@ def retrieve(post_id, params) # # Update a posted, queued, or "saved for later" post. # - # @overload update(post_id, account:, text:, expire_days: nil, fund_raising_target_amount: nil, fund_raising_tips_presets: nil, label_ids: nil, media_files: nil, price: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, voting_correct_index: nil, voting_due: nil, voting_options: nil, voting_type: nil, request_options: {}) + # @overload update(post_id, account:, text:, block_banned_words: nil, expire_days: nil, fund_raising_target_amount: nil, fund_raising_tips_presets: nil, label_ids: nil, media_files: nil, price: nil, rf_tag: nil, save_for_later: nil, scheduled_date: nil, voting_correct_index: nil, voting_due: nil, voting_options: nil, voting_type: nil, request_options: {}) # # @param post_id [Integer] Path param: The ID of the post # @@ -104,6 +106,8 @@ def retrieve(post_id, params) # # @param text [String] Body param: The post text content # + # @param block_banned_words [Symbol, Onlyfans::Models::PostUpdateParams::BlockBannedWords] Body param: Screen `text` for OnlyFans banned words and block the update if any + # # @param expire_days [Integer] Body param: Number of days after which the post will expire. Between 1 and 30 da # # @param fund_raising_target_amount [Integer] Body param: Add a fundraising target to your post. If present, value must be at diff --git a/lib/onlyfans/resources/queue.rb b/lib/onlyfans/resources/queue.rb index e5ea51f8..a49a31e8 100644 --- a/lib/onlyfans/resources/queue.rb +++ b/lib/onlyfans/resources/queue.rb @@ -6,19 +6,22 @@ class Queue # Some parameter documentations has been truncated, see # {Onlyfans::Models::QueueListParams} for more details. # - # List posts and messages in the queue. + # List scheduled posts and mass messages for a date range. Use the type filter to + # return only posts, messages, or both. # - # @overload list(account, limit:, publish_date_end:, publish_date_start:, timezone:, request_options: {}) + # @overload list(account, publish_date_end:, publish_date_start:, timezone:, limit: nil, type: nil, request_options: {}) # # @param account [String] The Account ID # - # @param limit [Integer] Maximum number of queue items to return (default = 20) + # @param publish_date_end [String] Latest publish date to return. Must be a valid date. Must be a valid date. Must # - # @param publish_date_end [String] Latest publish date to return + # @param publish_date_start [String] Earliest publish date to return (must be at least today). Must be a valid date. # - # @param publish_date_start [String] Earliest publish date to return (must be at least today) + # @param timezone [String] Timezone of the provided dates. [View available timezone values](https://www.php # - # @param timezone [String] Time timezone of the provided dates. [View available timezone values](https://ww + # @param limit [Integer] Maximum number of queue items to return (default 20). Must be at least 1. Must n + # + # @param type [Array] # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/lib/onlyfans/resources/release_forms.rb b/lib/onlyfans/resources/release_forms.rb index 6a147ad4..1936d8ce 100644 --- a/lib/onlyfans/resources/release_forms.rb +++ b/lib/onlyfans/resources/release_forms.rb @@ -57,7 +57,8 @@ def create_release_form(account, params) # # Get a paginated list of users that can be tagged in release forms. These are # verified creators who have signed release forms to appear in your content. Use - # `offset` and `limit` for pagination. + # `offset` and `limit` for pagination, following `_pagination.next_page` until it + # is `null`. # # @overload list_taggable_users(account, filter: nil, limit: nil, name: nil, offset: nil, sort: nil, sort_direction: nil, request_options: {}) # diff --git a/lib/onlyfans/resources/shared_tracking_links.rb b/lib/onlyfans/resources/shared_tracking_links.rb index 1a6fc711..e67a27be 100644 --- a/lib/onlyfans/resources/shared_tracking_links.rb +++ b/lib/onlyfans/resources/shared_tracking_links.rb @@ -16,16 +16,23 @@ class SharedTrackingLinks # List all Tracking Links (campaigns) shared with the account by other OF # creators. Calls OnlyFans live and syncs to our cache. # - # @overload list(account, limit: nil, offset: nil, synchronous: nil, request_options: {}) + # @overload list(account, limit: nil, offset: nil, pagination: nil, sorting_deleted: nil, stats: nil, synchronous: nil, with_deleted: nil, request_options: {}) # # @param account [String] The Account ID # - # @param limit [Integer] The number of shared tracking links to return. Default `10` + # @param limit [Integer] The number of shared tracking links to return. Default `10`. Must be at least 1. # - # @param offset [Integer] The offset used for pagination. Default `0` + # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # - # @param synchronous [Boolean, nil] Wait for the database sync to finish, instead of running it in the - # background. \* + # @param pagination [Integer, Onlyfans::Models::SharedTrackingLinkListParams::Pagination] Whether pagination metadata is enabled. Default `1`. + # + # @param sorting_deleted [Integer, Onlyfans::Models::SharedTrackingLinkListParams::SortingDeleted] Whether deleted links participate in sorting. Default `1`. + # + # @param stats [String] Whether statistics are included. Default `true`. Must not be greater than 10 cha + # + # @param synchronous [Boolean] Wait for the database sync instead of processing it in the background. + # + # @param with_deleted [Integer, Onlyfans::Models::SharedTrackingLinkListParams::WithDeleted] Whether to include deleted shared tracking links. Default `1`. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/lib/onlyfans/resources/shared_trial_links.rb b/lib/onlyfans/resources/shared_trial_links.rb index 05fd520f..328e182a 100644 --- a/lib/onlyfans/resources/shared_trial_links.rb +++ b/lib/onlyfans/resources/shared_trial_links.rb @@ -16,16 +16,17 @@ class SharedTrialLinks # List all Free Trial Links shared with the account by other OF creators. Calls # OnlyFans live and syncs to our cache. # - # @overload list(account, limit: nil, offset: nil, synchronous: nil, request_options: {}) + # @overload list(account, limit: nil, offset: nil, pagination: nil, synchronous: nil, request_options: {}) # # @param account [String] The Account ID # - # @param limit [Integer] The number of shared trial links to return. Default `10` + # @param limit [Integer] The number of shared trial links to return. Default `10`. Must be at least 1. Mu # - # @param offset [Integer] The offset used for pagination. Default `0` + # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # - # @param synchronous [Boolean, nil] Wait for the database sync to finish, instead of running it in the - # background. \* + # @param pagination [Integer, Onlyfans::Models::SharedTrialLinkListParams::Pagination] + # + # @param synchronous [Boolean] Wait for the database sync instead of processing it in the background. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/lib/onlyfans/resources/smart_link_postbacks.rb b/lib/onlyfans/resources/smart_link_postbacks.rb index 3f1a783f..3ca202e5 100644 --- a/lib/onlyfans/resources/smart_link_postbacks.rb +++ b/lib/onlyfans/resources/smart_link_postbacks.rb @@ -9,13 +9,19 @@ class SmartLinkPostbacks # # Create a postback that fires for selected Smart Link conversion types # - # @overload create(conversion_types:, smart_link_scope:, url:, smart_link_ids: nil, request_options: {}) + # @overload create(conversion_types:, smart_link_scope:, url:, body: nil, headers: nil, http_method: nil, smart_link_ids: nil, request_options: {}) # # @param conversion_types [Array] One or more Smart Link conversion types that should trigger this postback. # # @param smart_link_scope [Symbol, Onlyfans::Models::SmartLinkPostbackCreateParams::SmartLinkScope] `global` fires for all Smart Links. `campaign_specific` fires only for selected # - # @param url [String] The destination URL. Variables such as `{click_id}`, `{fbclid}`, `{gclid}`, and + # @param url [String] The destination URL. Variables such as `{external_click_id}`, `{fbclid}`, `{gcli + # + # @param body [String] Optional request body template for POST postbacks. Variables are replaced when t + # + # @param headers [Array] Optional request headers. Header values may include postback variables. + # + # @param http_method [Symbol, Onlyfans::Models::SmartLinkPostbackCreateParams::HTTPMethod] HTTP method used for the postback request. Defaults to `GET` when omitted. # # @param smart_link_ids [Array] Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. # @@ -55,9 +61,12 @@ def retrieve(postback_id, params = {}) ) end + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::SmartLinkPostbackUpdateParams} for more details. + # # Update a Smart Link postback configuration # - # @overload update(postback_id, conversion_types:, smart_link_scope:, url:, smart_link_ids: nil, request_options: {}) + # @overload update(postback_id, conversion_types:, smart_link_scope:, url:, body: nil, headers: nil, http_method: nil, smart_link_ids: nil, request_options: {}) # # @param postback_id [Integer] The postback ID # @@ -67,6 +76,12 @@ def retrieve(postback_id, params = {}) # # @param url [String] The destination URL. # + # @param body [String] Optional request body template for POST postbacks. Variables are replaced when t + # + # @param headers [Array] Optional request headers. Header values may include postback variables. + # + # @param http_method [Symbol, Onlyfans::Models::SmartLinkPostbackUpdateParams::HTTPMethod] HTTP method used for the postback request. Existing value is kept when omitted. + # # @param smart_link_ids [Array] Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] diff --git a/lib/onlyfans/resources/smart_links.rb b/lib/onlyfans/resources/smart_links.rb index e4187084..d6090c50 100644 --- a/lib/onlyfans/resources/smart_links.rb +++ b/lib/onlyfans/resources/smart_links.rb @@ -62,18 +62,20 @@ def retrieve(smart_link_id, params = {}) # # List all Smart Links # - # @overload list(account_ids: nil, limit: nil, meta_pixel_ids: nil, name: nil, offset: nil, request_options: {}) + # @overload list(account_ids: nil, filter: nil, limit: nil, name: nil, offset: nil, pixel_ids: nil, request_options: {}) # # @param account_ids [String, nil] Comma-separated account prefixed IDs to include. # - # @param limit [Integer] The number of Smart Links to return. Default `50`. Must be at least 1. Must not + # @param filter [Onlyfans::Models::SmartLinkListParams::Filter] # - # @param meta_pixel_ids [String, nil] Comma-separated Meta Pixel IDs to include. + # @param limit [Integer] The number of Smart Links to return. Default `50`. Must be at least 1. Must not # # @param name [String, nil] Filter Smart Links by name. Must not be greater than 255 characters. # # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # + # @param pixel_ids [String, nil] Comma-separated ad platform Pixel IDs to include. + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::SmartLinkListResponse] @@ -186,10 +188,13 @@ def list_conversions(smart_link_id, params = {}) ) end + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::SmartLinkListFansParams} for more details. + # # Query attributed Smart Link fans with aggregate fan metrics and subscriber # attribution metadata # - # @overload list_fans(smart_link_id, has_messages: nil, limit: nil, min_messages_sent_by_fan: nil, min_revenue_net: nil, min_tips_net: nil, offset: nil, sort: nil, request_options: {}) + # @overload list_fans(smart_link_id, has_messages: nil, limit: nil, min_messages_sent_by_fan: nil, min_revenue_net: nil, min_tips_net: nil, offset: nil, previously_subscribed: nil, sort: nil, subscribed_using_promo: nil, request_options: {}) # # @param smart_link_id [String] The ID of the smart link. # @@ -205,8 +210,12 @@ def list_conversions(smart_link_id, params = {}) # # @param offset [Integer] Offset for pagination. Default `0` # + # @param previously_subscribed [Boolean] Optional - Filter to returning subscribers (fans previously subscribed before th + # # @param sort [Symbol, Onlyfans::Models::SmartLinkListFansParams::Sort] Optional sort field. Default `-revenue_net` # + # @param subscribed_using_promo [Boolean] Optional - Filter to fans who subscribed via a promotion/offer + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::SmartLinkListFansResponse] diff --git a/lib/onlyfans/resources/statistics.rb b/lib/onlyfans/resources/statistics.rb index 4c2e8473..975a306c 100644 --- a/lib/onlyfans/resources/statistics.rb +++ b/lib/onlyfans/resources/statistics.rb @@ -11,7 +11,7 @@ class Statistics # Calculate the total transactions and amounts. # - # @overload calculate_total_transactions(account, end_date:, start_date:, request_options: {}) + # @overload calculate_total_transactions(account, end_date: nil, start_date: nil, request_options: {}) # # @param account [String] The Account ID # @@ -24,7 +24,7 @@ class Statistics # @return [Onlyfans::Models::StatisticCalculateTotalTransactionsResponse] # # @see Onlyfans::Models::StatisticCalculateTotalTransactionsParams - def calculate_total_transactions(account, params) + def calculate_total_transactions(account, params = {}) parsed, options = Onlyfans::StatisticCalculateTotalTransactionsParams.dump_request(params) query = Onlyfans::Internal::Util.encode_query_params(parsed) @client.request( @@ -75,7 +75,7 @@ def get_overview(account, params = {}) # subscriptions for a specified timeframe. `unknown_subscriptions` indicates # deleted fan accounts. # - # @overload get_subscriber_metrics(account, end_date:, start_date:, detailed: nil, request_options: {}) + # @overload get_subscriber_metrics(account, end_date:, start_date:, detailed: nil, detailed_type: nil, request_options: {}) # # @param account [String] The Account ID # @@ -85,6 +85,8 @@ def get_overview(account, params = {}) # # @param detailed [Boolean, nil] Include paid and free fan metrics. Will slow down the response time, and might t # + # @param detailed_type [Symbol, Onlyfans::Models::StatisticGetSubscriberMetricsParams::DetailedType, nil] Use only with `detailed=true` - otherwise, it has no effect. Filter the subscrib + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::StatisticGetSubscriberMetricsResponse] diff --git a/lib/onlyfans/resources/statistics/reach.rb b/lib/onlyfans/resources/statistics/reach.rb index d1a4c6d5..c3bb06d6 100644 --- a/lib/onlyfans/resources/statistics/reach.rb +++ b/lib/onlyfans/resources/statistics/reach.rb @@ -15,7 +15,7 @@ class Reach # # @param end_date [String] The end date for the period. # - # @param start_date [String] The start date for the period + # @param start_date [String] The start date for the period. # # @param filter [Symbol, Onlyfans::Models::Statistics::ReachGetProfileVisitorsParams::Filter, nil] Optionally, filter the results by `chart` or `topCountries`. See example respons # diff --git a/lib/onlyfans/resources/statistics/statements.rb b/lib/onlyfans/resources/statistics/statements.rb index 3886aaa5..c9450f68 100644 --- a/lib/onlyfans/resources/statistics/statements.rb +++ b/lib/onlyfans/resources/statistics/statements.rb @@ -6,14 +6,14 @@ class Statistics class Statements # Get the earnings for a given period. # - # @overload get_earnings(account, start_date:, end_date: nil, type: nil, request_options: {}) + # @overload get_earnings(account, end_date:, start_date:, type: nil, request_options: {}) # # @param account [String] The Account ID # - # @param start_date [String] The start date for the period - # # @param end_date [String] The end date for the period. # + # @param start_date [String] The start date for the period. + # # @param type [Symbol, Onlyfans::Models::Statistics::StatementGetEarningsParams::Type] Filter by All / Subscriptions / Tips / Posts / Messages / Streams # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] diff --git a/lib/onlyfans/resources/stories.rb b/lib/onlyfans/resources/stories.rb index 3aa4c62a..99cc9226 100644 --- a/lib/onlyfans/resources/stories.rb +++ b/lib/onlyfans/resources/stories.rb @@ -8,16 +8,23 @@ class Stories # @return [Onlyfans::Resources::Stories::Highlights] attr_reader :highlights - # Some parameter documentations has been truncated, see - # {Onlyfans::Models::StoryCreateParams} for more details. + # Post a new media or vault file to your story, optionally with text overlays, + # @mentions, and a question sticker. Overlay elements are rendered by OnlyFans on + # top of your story media at view time. # - # Post a new media or vault file to your story. - # - # @overload create(account, media_files:, request_options: {}) + # @overload create(account, media_files:, canvas_height: nil, canvas_width: nil, question: nil, texts: nil, request_options: {}) # # @param account [String] The Account ID # - # @param media_files [Array] Array of media file upload prefixed_ids, or OF media IDs (required if price is n + # @param media_files [Array] Array of media file upload prefixed_ids, or OF vault media IDs. + # + # @param canvas_height [Integer] Canvas height overlay positions are relative to. Default `1920`. + # + # @param canvas_width [Integer] Canvas width overlay positions are relative to. Default `1080`. + # + # @param question [Onlyfans::Models::StoryCreateParams::Question] Interactive question sticker viewers can answer. + # + # @param texts [Array] Text and @mention overlays. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/lib/onlyfans/resources/tracking_links.rb b/lib/onlyfans/resources/tracking_links.rb index 96af5484..2e5142d4 100644 --- a/lib/onlyfans/resources/tracking_links.rb +++ b/lib/onlyfans/resources/tracking_links.rb @@ -66,25 +66,27 @@ def retrieve(tracking_link_id, params) # # List all tracking links for the account and revenue data # - # @overload list(account, end_date: nil, limit: nil, offset: nil, sort: nil, sortby: nil, start_date: nil, synchronous: nil, with_deleted: nil, request_options: {}) + # @overload list(account, end_date: nil, limit: nil, offset: nil, pagination: nil, sort: nil, sortby: nil, start_date: nil, synchronous: nil, with_deleted: nil, request_options: {}) # # @param account [String] The Account ID # - # @param end_date [String, nil] The end date for Tracking Links. Keep empty to get all. + # @param end_date [String, nil] The end date for tracking links. Keep empty to get all. Must not be greater than # - # @param limit [Integer, nil] The number of tracking links to return. Default `3` + # @param limit [Integer] The number of tracking links to return. Default `10`. Must be at least 1. Must n # - # @param offset [Integer, nil] The offset used for pagination. Default `0` + # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # - # @param sort [Symbol, Onlyfans::Models::TrackingLinkListParams::Sort, nil] Sort the results. Default `desc` + # @param pagination [Integer, Onlyfans::Models::TrackingLinkListParams::Pagination] # - # @param sortby [Symbol, Onlyfans::Models::TrackingLinkListParams::Sortby, nil] Sort by subscriber count (claims), or creation date + # @param sort [Symbol, Onlyfans::Models::TrackingLinkListParams::Sort] Sort direction. Default `desc`. # - # @param start_date [String, nil] The start date for Tracking Links. Keep empty to get all. + # @param sortby [Symbol, Onlyfans::Models::TrackingLinkListParams::Sortby] Sort by subscriber count (`claims`) or creation date (`created_date`). # - # @param synchronous [Boolean, nil] Wait for the revenue data to finish processing, instead of processing in the bac + # @param start_date [String, nil] The start date for tracking links. Keep empty to get all. Must not be greater th # - # @param with_deleted [Boolean, nil] Whether or not to include deleted tracking links in the response. Default `false + # @param synchronous [Boolean] Wait for revenue calculation instead of processing it in the background. + # + # @param with_deleted [Integer, Onlyfans::Models::TrackingLinkListParams::WithDeleted] Whether to include deleted tracking links. Default `true`. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/lib/onlyfans/resources/transactions.rb b/lib/onlyfans/resources/transactions.rb index c010e107..19361511 100644 --- a/lib/onlyfans/resources/transactions.rb +++ b/lib/onlyfans/resources/transactions.rb @@ -18,7 +18,7 @@ class Transactions # # @param marker [String] The marker used for pagination. Default: `null` # - # @param start_date [String] The start date for transactions list. Default: `-30days` + # @param start_date [String] The start date for the transactions list. Defaults to 30 days ago. # # @param tips_source [String] Filter tips by source. Only applies when `type=tips`. Options: `profile`, # `post\_ diff --git a/lib/onlyfans/resources/trial_links.rb b/lib/onlyfans/resources/trial_links.rb index 265f12e7..c5d2d6e2 100644 --- a/lib/onlyfans/resources/trial_links.rb +++ b/lib/onlyfans/resources/trial_links.rb @@ -75,32 +75,36 @@ def retrieve(trial_link_id, params) # # List all free trial links for the account, including the details and statistics # - # @overload list(account, limit:, offset:, field: nil, sort: nil, synchronous: nil, request_options: {}) + # @overload list(account, end_date: nil, field: nil, limit: nil, offset: nil, sort: nil, start_date: nil, synchronous: nil, request_options: {}) # # @param account [String] The Account ID # - # @param limit [Integer] The number of trial links to return. Default `10` + # @param end_date [String, nil] The end date for trial links. Keep empty to get all. Must not be greater than 25 # - # @param offset [Integer] The offset used for pagination. Default `0` + # @param field [Symbol, Onlyfans::Models::TrialLinkListParams::Field] Field to sort by. Default `create_date`. # - # @param field [Symbol, Onlyfans::Models::TrialLinkListParams::Field, nil] Sort the results by a field. Default `create_date` + # @param limit [Integer] The number of trial links to return. Default `10`. Must be at least 1. Must not # - # @param sort [Symbol, Onlyfans::Models::TrialLinkListParams::Sort, nil] Sort the results. Default `desc` + # @param offset [Integer] The offset used for pagination. Default `0`. Must be at least 0. # - # @param synchronous [Boolean, nil] Wait for the revenue data to finish processing, instead of processing in the bac + # @param sort [Symbol, Onlyfans::Models::TrialLinkListParams::Sort] Sort direction. Default `desc`. + # + # @param start_date [String, nil] The start date for trial links. Keep empty to get all. Must not be greater than + # + # @param synchronous [Boolean] Wait for revenue calculation instead of processing it in the background. # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::TrialLinkListResponse] # # @see Onlyfans::Models::TrialLinkListParams - def list(account, params) + def list(account, params = {}) parsed, options = Onlyfans::TrialLinkListParams.dump_request(params) query = Onlyfans::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["api/%1$s/trial-links", account], - query: query, + query: query.transform_keys(end_date: "endDate", start_date: "startDate"), model: Onlyfans::Models::TrialLinkListResponse, options: options ) diff --git a/lib/onlyfans/resources/user_lists.rb b/lib/onlyfans/resources/user_lists.rb index ce02bf79..c8f80291 100644 --- a/lib/onlyfans/resources/user_lists.rb +++ b/lib/onlyfans/resources/user_lists.rb @@ -95,9 +95,10 @@ def update(user_list_id, params) # Some parameter documentations has been truncated, see # {Onlyfans::Models::UserListListParams} for more details. # - # Get a list of OnlyFans Collections - User Lists + # Get a list of OnlyFans Collections - User Lists. If you only want to get User + # Lists available for sending a Mass-Message, use `?view=queue` # - # @overload list(account, limit: nil, offset: nil, request_options: {}) + # @overload list(account, limit: nil, offset: nil, view: nil, request_options: {}) # # @param account [String] The Account ID # @@ -105,6 +106,8 @@ def update(user_list_id, params) # # @param offset [Integer, nil] Must be at least 0. # + # @param view [Symbol, Onlyfans::Models::UserListListParams::View] How to return the results. `queue` returns the user lists that are available for + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Onlyfans::Models::UserListListResponse] diff --git a/lib/onlyfans/resources/user_lists/users.rb b/lib/onlyfans/resources/user_lists/users.rb index de86aa06..c16723cf 100644 --- a/lib/onlyfans/resources/user_lists/users.rb +++ b/lib/onlyfans/resources/user_lists/users.rb @@ -37,9 +37,12 @@ def list(user_list_id, params) ) end + # Some parameter documentations has been truncated, see + # {Onlyfans::Models::UserLists::UserAddParams} for more details. + # # Add multiple Users To OnlyFans User List # - # @overload add(user_list_id, account:, ids:, request_options: {}) + # @overload add(user_list_id, account:, ids:, skip_invalid: nil, request_options: {}) # # @param user_list_id [String] Path param: OnlyFans User List ID, or a default list name like `tagged` # @@ -47,9 +50,11 @@ def list(user_list_id, params) # # @param ids [Array] Body param: Array of OnlyFans User IDs to be added into the list # + # @param skip_invalid [Boolean] Body param: Set to `true` to skip the User IDs OnlyFans refuses instead of faili + # # @param request_options [Onlyfans::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Onlyfans::Models::UserLists::UserAddResponse] + # @return [Onlyfans::Models::UserLists::UserAddResponse::UnionMember0, Onlyfans::Models::UserLists::UserAddResponse::UnionMember1] # # @see Onlyfans::Models::UserLists::UserAddParams def add(user_list_id, params) diff --git a/lib/onlyfans/resources/webhooks.rb b/lib/onlyfans/resources/webhooks.rb index 8fdb8ba3..ed3dd2b0 100644 --- a/lib/onlyfans/resources/webhooks.rb +++ b/lib/onlyfans/resources/webhooks.rb @@ -10,14 +10,15 @@ class Webhooks # # @overload create(account_scope:, endpoint_url:, events:, account_ids: nil, signing_secret: nil, request_options: {}) # - # @param account_scope [String] The account scope for the webhook. Use "global" for all accounts, "inclusive" fo + # @param account_scope [String] The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use "glo # # @param endpoint_url [String] The URL of your webhook endpoint. # # @param events [Array] An array of webhook events to subscribe to. For all options, refer to our # \*\*List # - # @param account_ids [Array] An array of account IDs to apply the scope to. Required unless account_scope is + # @param account_ids [Array] An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct\_. # # @param signing_secret [String, nil] Optionally, add a signing secret to protect your webhook. # @@ -66,14 +67,15 @@ def retrieve(webhook_id, params = {}) # # @param webhook_id [String] The ID of the webhook # - # @param account_scope [String] The account scope for the webhook. Use "global" for all accounts, "inclusive" fo + # @param account_scope [String] The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use "glo # # @param endpoint_url [String] The URL of your webhook endpoint. # # @param events [Array] An array of webhook events to subscribe to. For all options, refer to our # \*\*List # - # @param account_ids [Array] An array of account IDs to apply the scope to. Required unless account_scope is + # @param account_ids [Array] An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct\_. # # @param enabled [Boolean, nil] Optionally, enabled/disable the webhook. This will stop/resume the sending of ev # diff --git a/lib/onlyfans/version.rb b/lib/onlyfans/version.rb index 9d1246dd..5239cacd 100644 --- a/lib/onlyfans/version.rb +++ b/lib/onlyfans/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Onlyfans - VERSION = "0.2.0" + VERSION = "0.3.0" end diff --git a/rbi/onlyfans/client.rbi b/rbi/onlyfans/client.rbi index a5829d93..2d69da7c 100644 --- a/rbi/onlyfans/client.rbi +++ b/rbi/onlyfans/client.rbi @@ -70,7 +70,7 @@ module Onlyfans sig { returns(Onlyfans::Resources::Giphy) } attr_reader :giphy - # APIs for managing tags on free trial links and tracking links + # APIs for managing tags on free trial links, tracking links, and Smart Links sig { returns(Onlyfans::Resources::LinkTags) } attr_reader :link_tags diff --git a/rbi/onlyfans/models.rbi b/rbi/onlyfans/models.rbi index 535ea6c3..0fc7dd6f 100644 --- a/rbi/onlyfans/models.rbi +++ b/rbi/onlyfans/models.rbi @@ -132,8 +132,6 @@ module Onlyfans MeRetrieveParams = Onlyfans::Models::MeRetrieveParams - MessageAttachTagsParams = Onlyfans::Models::MessageAttachTagsParams - NotificationGetCountsParams = Onlyfans::Models::NotificationGetCountsParams NotificationListParams = Onlyfans::Models::NotificationListParams diff --git a/rbi/onlyfans/models/analytics/financial/profitability_get_history_response.rbi b/rbi/onlyfans/models/analytics/financial/profitability_get_history_response.rbi index f3836d3e..658c02dd 100644 --- a/rbi/onlyfans/models/analytics/financial/profitability_get_history_response.rbi +++ b/rbi/onlyfans/models/analytics/financial/profitability_get_history_response.rbi @@ -4,94 +4,234 @@ module Onlyfans module Models module Analytics module Financial - class ProfitabilityGetHistoryResponseItem < Onlyfans::Internal::Type::BaseModel + class ProfitabilityGetHistoryResponse < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem, + Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(Float)) } - attr_reader :gross_revenue + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data + ] + ) + ) + end + attr_reader :data - sig { params(gross_revenue: Float).void } - attr_writer :gross_revenue + sig do + params( + data: + T::Array[ + Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data::OrHash + ] + ).void + end + attr_writer :data - sig { returns(T.nilable(Float)) } - attr_reader :margin + sig do + params( + data: + T::Array[ + Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data::OrHash + ] + ).returns(T.attached_class) + end + def self.new(data: nil) + end - sig { params(margin: Float).void } - attr_writer :margin + sig do + override.returns( + { + data: + T::Array[ + Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data + ] + } + ) + end + def to_hash + end - sig { returns(T.nilable(Integer)) } - attr_reader :month + class Data < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data, + Onlyfans::Internal::AnyHash + ) + end - sig { params(month: Integer).void } - attr_writer :month + sig { returns(T.nilable(String)) } + attr_accessor :active_milestones - sig { returns(T.nilable(Float)) } - attr_reader :net_revenue + sig { returns(T.nilable(String)) } + attr_reader :agency_earnings - sig { params(net_revenue: Float).void } - attr_writer :net_revenue + sig { params(agency_earnings: String).void } + attr_writer :agency_earnings - sig { returns(T.nilable(Float)) } - attr_reader :profit + sig { returns(T.nilable(String)) } + attr_reader :commission_amount - sig { params(profit: Float).void } - attr_writer :profit + sig { params(commission_amount: String).void } + attr_writer :commission_amount - sig { returns(T.nilable(Integer)) } - attr_reader :year + sig { returns(T.nilable(String)) } + attr_reader :commission_rate - sig { params(year: Integer).void } - attr_writer :year + sig { params(commission_rate: String).void } + attr_writer :commission_rate - sig do - params( - gross_revenue: Float, - margin: Float, - month: Integer, - net_revenue: Float, - profit: Float, - year: Integer - ).returns(T.attached_class) - end - def self.new( - gross_revenue: nil, - margin: nil, - month: nil, - net_revenue: nil, - profit: nil, - year: nil - ) - end + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :costs - sig do - override.returns( - { - gross_revenue: Float, - margin: Float, + sig { params(costs: T::Array[T.anything]).void } + attr_writer :costs + + sig { returns(T.nilable(String)) } + attr_reader :creator_name + + sig { params(creator_name: String).void } + attr_writer :creator_name + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :has_commission_for_period + + sig { params(has_commission_for_period: T::Boolean).void } + attr_writer :has_commission_for_period + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :has_costs_for_period + + sig { params(has_costs_for_period: T::Boolean).void } + attr_writer :has_costs_for_period + + sig { returns(T.nilable(String)) } + attr_reader :margin_percentage + + sig { params(margin_percentage: String).void } + attr_writer :margin_percentage + + sig { returns(T.nilable(Integer)) } + attr_reader :month + + sig { params(month: Integer).void } + attr_writer :month + + sig { returns(T.nilable(Integer)) } + attr_reader :only_fans_user_id + + sig { params(only_fans_user_id: Integer).void } + attr_writer :only_fans_user_id + + sig { returns(T.nilable(String)) } + attr_reader :profit + + sig { params(profit: String).void } + attr_writer :profit + + sig { returns(T.nilable(String)) } + attr_reader :projected_net + + sig { params(projected_net: String).void } + attr_writer :projected_net + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :rate_periods + + sig { params(rate_periods: T::Array[T.anything]).void } + attr_writer :rate_periods + + sig { returns(T.nilable(String)) } + attr_accessor :referral_note + + sig { returns(T.nilable(String)) } + attr_reader :total_costs + + sig { params(total_costs: String).void } + attr_writer :total_costs + + sig { returns(T.nilable(Integer)) } + attr_reader :year + + sig { params(year: Integer).void } + attr_writer :year + + sig do + params( + active_milestones: T.nilable(String), + agency_earnings: String, + commission_amount: String, + commission_rate: String, + costs: T::Array[T.anything], + creator_name: String, + has_commission_for_period: T::Boolean, + has_costs_for_period: T::Boolean, + margin_percentage: String, month: Integer, - net_revenue: Float, - profit: Float, + only_fans_user_id: Integer, + profit: String, + projected_net: String, + rate_periods: T::Array[T.anything], + referral_note: T.nilable(String), + total_costs: String, year: Integer - } + ).returns(T.attached_class) + end + def self.new( + active_milestones: nil, + agency_earnings: nil, + commission_amount: nil, + commission_rate: nil, + costs: nil, + creator_name: nil, + has_commission_for_period: nil, + has_costs_for_period: nil, + margin_percentage: nil, + month: nil, + only_fans_user_id: nil, + profit: nil, + projected_net: nil, + rate_periods: nil, + referral_note: nil, + total_costs: nil, + year: nil ) - end - def to_hash + end + + sig do + override.returns( + { + active_milestones: T.nilable(String), + agency_earnings: String, + commission_amount: String, + commission_rate: String, + costs: T::Array[T.anything], + creator_name: String, + has_commission_for_period: T::Boolean, + has_costs_for_period: T::Boolean, + margin_percentage: String, + month: Integer, + only_fans_user_id: Integer, + profit: String, + projected_net: String, + rate_periods: T::Array[T.anything], + referral_note: T.nilable(String), + total_costs: String, + year: Integer + } + ) + end + def to_hash + end end end - - ProfitabilityGetHistoryResponse = - T.let( - Onlyfans::Internal::Type::ArrayOf[ - Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem - ], - Onlyfans::Internal::Type::Converter - ) end end end diff --git a/rbi/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbi b/rbi/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbi index 06fda244..a9456038 100644 --- a/rbi/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbi +++ b/rbi/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbi @@ -4,112 +4,234 @@ module Onlyfans module Models module Analytics module Financial - class ProfitabilityGetProfitabilityResponseItem < Onlyfans::Internal::Type::BaseModel + class ProfitabilityGetProfitabilityResponse < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem, + Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(Float)) } - attr_reader :commission + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data + ] + ) + ) + end + attr_reader :data - sig { params(commission: Float).void } - attr_writer :commission + sig do + params( + data: + T::Array[ + Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data::OrHash + ] + ).void + end + attr_writer :data - sig { returns(T.nilable(Integer)) } - attr_reader :creator_id + sig do + params( + data: + T::Array[ + Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data::OrHash + ] + ).returns(T.attached_class) + end + def self.new(data: nil) + end - sig { params(creator_id: Integer).void } - attr_writer :creator_id + sig do + override.returns( + { + data: + T::Array[ + Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data + ] + } + ) + end + def to_hash + end - sig { returns(T.nilable(Float)) } - attr_reader :gross_revenue + class Data < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data, + Onlyfans::Internal::AnyHash + ) + end - sig { params(gross_revenue: Float).void } - attr_writer :gross_revenue + sig { returns(T.nilable(String)) } + attr_accessor :active_milestones - sig { returns(T.nilable(Float)) } - attr_reader :margin + sig { returns(T.nilable(String)) } + attr_reader :agency_earnings - sig { params(margin: Float).void } - attr_writer :margin + sig { params(agency_earnings: String).void } + attr_writer :agency_earnings - sig { returns(T.nilable(String)) } - attr_reader :name + sig { returns(T.nilable(String)) } + attr_reader :commission_amount - sig { params(name: String).void } - attr_writer :name + sig { params(commission_amount: String).void } + attr_writer :commission_amount - sig { returns(T.nilable(Float)) } - attr_reader :net_revenue + sig { returns(T.nilable(String)) } + attr_reader :commission_rate - sig { params(net_revenue: Float).void } - attr_writer :net_revenue + sig { params(commission_rate: String).void } + attr_writer :commission_rate - sig { returns(T.nilable(Float)) } - attr_reader :profit + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :costs - sig { params(profit: Float).void } - attr_writer :profit + sig { params(costs: T::Array[T.anything]).void } + attr_writer :costs - sig { returns(T.nilable(Float)) } - attr_reader :total_costs + sig { returns(T.nilable(String)) } + attr_reader :creator_name - sig { params(total_costs: Float).void } - attr_writer :total_costs + sig { params(creator_name: String).void } + attr_writer :creator_name - sig do - params( - commission: Float, - creator_id: Integer, - gross_revenue: Float, - margin: Float, - name: String, - net_revenue: Float, - profit: Float, - total_costs: Float - ).returns(T.attached_class) - end - def self.new( - commission: nil, - creator_id: nil, - gross_revenue: nil, - margin: nil, - name: nil, - net_revenue: nil, - profit: nil, - total_costs: nil - ) - end + sig { returns(T.nilable(T::Boolean)) } + attr_reader :has_commission_for_period - sig do - override.returns( - { - commission: Float, - creator_id: Integer, - gross_revenue: Float, - margin: Float, - name: String, - net_revenue: Float, - profit: Float, - total_costs: Float - } + sig { params(has_commission_for_period: T::Boolean).void } + attr_writer :has_commission_for_period + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :has_costs_for_period + + sig { params(has_costs_for_period: T::Boolean).void } + attr_writer :has_costs_for_period + + sig { returns(T.nilable(String)) } + attr_reader :margin_percentage + + sig { params(margin_percentage: String).void } + attr_writer :margin_percentage + + sig { returns(T.nilable(Integer)) } + attr_reader :month + + sig { params(month: Integer).void } + attr_writer :month + + sig { returns(T.nilable(Integer)) } + attr_reader :only_fans_user_id + + sig { params(only_fans_user_id: Integer).void } + attr_writer :only_fans_user_id + + sig { returns(T.nilable(String)) } + attr_reader :profit + + sig { params(profit: String).void } + attr_writer :profit + + sig { returns(T.nilable(String)) } + attr_reader :projected_net + + sig { params(projected_net: String).void } + attr_writer :projected_net + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :rate_periods + + sig { params(rate_periods: T::Array[T.anything]).void } + attr_writer :rate_periods + + sig { returns(T.nilable(String)) } + attr_accessor :referral_note + + sig { returns(T.nilable(String)) } + attr_reader :total_costs + + sig { params(total_costs: String).void } + attr_writer :total_costs + + sig { returns(T.nilable(Integer)) } + attr_reader :year + + sig { params(year: Integer).void } + attr_writer :year + + sig do + params( + active_milestones: T.nilable(String), + agency_earnings: String, + commission_amount: String, + commission_rate: String, + costs: T::Array[T.anything], + creator_name: String, + has_commission_for_period: T::Boolean, + has_costs_for_period: T::Boolean, + margin_percentage: String, + month: Integer, + only_fans_user_id: Integer, + profit: String, + projected_net: String, + rate_periods: T::Array[T.anything], + referral_note: T.nilable(String), + total_costs: String, + year: Integer + ).returns(T.attached_class) + end + def self.new( + active_milestones: nil, + agency_earnings: nil, + commission_amount: nil, + commission_rate: nil, + costs: nil, + creator_name: nil, + has_commission_for_period: nil, + has_costs_for_period: nil, + margin_percentage: nil, + month: nil, + only_fans_user_id: nil, + profit: nil, + projected_net: nil, + rate_periods: nil, + referral_note: nil, + total_costs: nil, + year: nil ) - end - def to_hash + end + + sig do + override.returns( + { + active_milestones: T.nilable(String), + agency_earnings: String, + commission_amount: String, + commission_rate: String, + costs: T::Array[T.anything], + creator_name: String, + has_commission_for_period: T::Boolean, + has_costs_for_period: T::Boolean, + margin_percentage: String, + month: Integer, + only_fans_user_id: Integer, + profit: String, + projected_net: String, + rate_periods: T::Array[T.anything], + referral_note: T.nilable(String), + total_costs: String, + year: Integer + } + ) + end + def to_hash + end end end - - ProfitabilityGetProfitabilityResponse = - T.let( - Onlyfans::Internal::Type::ArrayOf[ - Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem - ], - Onlyfans::Internal::Type::Converter - ) end end end diff --git a/rbi/onlyfans/models/authenticate_start_params.rbi b/rbi/onlyfans/models/authenticate_start_params.rbi index b0507072..07189cbc 100644 --- a/rbi/onlyfans/models/authenticate_start_params.rbi +++ b/rbi/onlyfans/models/authenticate_start_params.rbi @@ -316,6 +316,11 @@ module Onlyfans :uk, Onlyfans::AuthenticateStartParams::ProxyCountry::TaggedSymbol ) + GB = + T.let( + :gb, + Onlyfans::AuthenticateStartParams::ProxyCountry::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/onlyfans/models/chat_list_media_params.rbi b/rbi/onlyfans/models/chat_list_media_params.rbi index c5e0006e..59be4293 100644 --- a/rbi/onlyfans/models/chat_list_media_params.rbi +++ b/rbi/onlyfans/models/chat_list_media_params.rbi @@ -31,7 +31,8 @@ module Onlyfans sig { params(offset: String).void } attr_writer :offset - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. sig { returns(T.nilable(String)) } attr_reader :skip_users @@ -60,7 +61,8 @@ module Onlyfans limit: nil, # Number of medias to skip for pagination offset: nil, - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. skip_users: nil, # Filter by specific media types. Keep empty to return all. type: nil, diff --git a/rbi/onlyfans/models/chat_list_params.rbi b/rbi/onlyfans/models/chat_list_params.rbi index 0ecbc06c..09a35b46 100644 --- a/rbi/onlyfans/models/chat_list_params.rbi +++ b/rbi/onlyfans/models/chat_list_params.rbi @@ -49,7 +49,8 @@ module Onlyfans sig { params(query: String).void } attr_writer :query - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. sig { returns(T.nilable(Onlyfans::ChatListParams::SkipUsers::OrSymbol)) } attr_reader :skip_users @@ -82,7 +83,8 @@ module Onlyfans order: nil, # Search query to filter chats query: nil, - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. skip_users: nil, request_options: {} ) @@ -154,7 +156,8 @@ module Onlyfans end end - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. module SkipUsers extend Onlyfans::Internal::Type::Enum diff --git a/rbi/onlyfans/models/chats/message_list_params.rbi b/rbi/onlyfans/models/chats/message_list_params.rbi index 65e51cbd..f9caa3a6 100644 --- a/rbi/onlyfans/models/chats/message_list_params.rbi +++ b/rbi/onlyfans/models/chats/message_list_params.rbi @@ -63,7 +63,7 @@ module Onlyfans sig { params(order: String).void } attr_writer :order - # Whether to skip user details (all or none) + # Whether to skip user details (`all` or `none`). sig { returns(T.nilable(String)) } attr_reader :skip_users @@ -101,7 +101,7 @@ module Onlyfans limit: nil, # Sort order for messages (desc or asc) order: nil, - # Whether to skip user details (all or none) + # Whether to skip user details (`all` or `none`). skip_users: nil, request_options: {} ) diff --git a/rbi/onlyfans/models/chats/message_send_params.rbi b/rbi/onlyfans/models/chats/message_send_params.rbi index b25525e9..678450c2 100644 --- a/rbi/onlyfans/models/chats/message_send_params.rbi +++ b/rbi/onlyfans/models/chats/message_send_params.rbi @@ -21,6 +21,27 @@ module Onlyfans sig { returns(String) } attr_accessor :chat_id + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + sig do + returns( + T.nilable( + Onlyfans::Chats::MessageSendParams::BlockBannedWords::OrSymbol + ) + ) + end + attr_reader :block_banned_words + + sig do + params( + block_banned_words: + Onlyfans::Chats::MessageSendParams::BlockBannedWords::OrSymbol + ).void + end + attr_writer :block_banned_words + # The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing # endpoints (`/giphy/trending`, `/giphy/search`). sig { returns(T.nilable(String)) } @@ -53,12 +74,12 @@ module Onlyfans sig { params(previews: T::Array[T.anything]).void } attr_writer :previews - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required - sig { returns(T.nilable(Integer)) } + sig { returns(T.nilable(Float)) } attr_reader :price - sig { params(price: Integer).void } + sig { params(price: Float).void } attr_writer :price # Mark this message as a reply to another (can be either your own, or the @@ -97,26 +118,40 @@ module Onlyfans sig { params(text: String).void } attr_writer :text + sig { returns(T.nilable(String)) } + attr_reader :idempotency_key + + sig { params(idempotency_key: String).void } + attr_writer :idempotency_key + sig do params( account: String, chat_id: String, + block_banned_words: + Onlyfans::Chats::MessageSendParams::BlockBannedWords::OrSymbol, giphy_id: String, locked_text: T::Boolean, media_files: T::Array[T.anything], previews: T::Array[T.anything], - price: Integer, + price: Float, reply_to_message_id: Integer, rf_guest: String, rf_partner: String, rf_tag: String, text: String, + idempotency_key: String, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( account:, chat_id:, + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + block_banned_words: nil, # The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing # endpoints (`/giphy/trending`, `/giphy/search`). giphy_id: nil, @@ -129,7 +164,7 @@ module Onlyfans # referencing uploaded files in `mediaFiles`. Will be shown if `price` is # provided. previews: nil, - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required price: nil, # Mark this message as a reply to another (can be either your own, or the @@ -143,6 +178,7 @@ module Onlyfans rf_tag: nil, # The message text content. Required unless a media file is present. text: nil, + idempotency_key: nil, request_options: {} ) end @@ -152,22 +188,68 @@ module Onlyfans { account: String, chat_id: String, + block_banned_words: + Onlyfans::Chats::MessageSendParams::BlockBannedWords::OrSymbol, giphy_id: String, locked_text: T::Boolean, media_files: T::Array[T.anything], previews: T::Array[T.anything], - price: Integer, + price: Float, reply_to_message_id: Integer, rf_guest: String, rf_partner: String, rf_tag: String, text: String, + idempotency_key: String, request_options: Onlyfans::RequestOptions } ) end def to_hash end + + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Onlyfans::Chats::MessageSendParams::BlockBannedWords + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + STRICT_BAN = + T.let( + :strict_ban, + Onlyfans::Chats::MessageSendParams::BlockBannedWords::TaggedSymbol + ) + RISKY = + T.let( + :risky, + Onlyfans::Chats::MessageSendParams::BlockBannedWords::TaggedSymbol + ) + REPLACE_SOFTEN = + T.let( + :replace_soften, + Onlyfans::Chats::MessageSendParams::BlockBannedWords::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::Chats::MessageSendParams::BlockBannedWords::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/client_session_create_params.rbi b/rbi/onlyfans/models/client_session_create_params.rbi index 2b830b16..ebded329 100644 --- a/rbi/onlyfans/models/client_session_create_params.rbi +++ b/rbi/onlyfans/models/client_session_create_params.rbi @@ -88,6 +88,11 @@ module Onlyfans :uk, Onlyfans::ClientSessionCreateParams::ProxyCountry::TaggedSymbol ) + GB = + T.let( + :gb, + Onlyfans::ClientSessionCreateParams::ProxyCountry::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/onlyfans/models/data_export_create_params.rbi b/rbi/onlyfans/models/data_export_create_params.rbi index 8738047f..95a5d0ef 100644 --- a/rbi/onlyfans/models/data_export_create_params.rbi +++ b/rbi/onlyfans/models/data_export_create_params.rbi @@ -16,8 +16,9 @@ module Onlyfans attr_accessor :end_date # The output file format. Supported formats vary by export type: `csv` or `xlsx` - # for transactions, chat_messages, trial_links, tracking_links, smart_links, - # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault. + # for transactions, chat_messages, fansly_chat_messages, trial_links, + # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans, + # followings, profile_visitors; `zip` for media_vault. sig { returns(Onlyfans::DataExportCreateParams::FileType::OrSymbol) } attr_accessor :file_type @@ -25,12 +26,16 @@ module Onlyfans sig { returns(String) } attr_accessor :start_date - # The type of data to export + # The type of data to export. Use `fansly_chat_messages` to export Fansly chat + # messages (all other types are OnlyFans). `profile_visitors` returns one row per + # account per day, scraped one day at a time so the daily numbers are not + # aggregated away by OnlyFans. sig { returns(Onlyfans::DataExportCreateParams::Type::OrSymbol) } attr_accessor :type # Array of account prefixed IDs to export data from. Not required for - # `public_profiles` type. + # `public_profiles` type. For `fansly_chat_messages`, pass Fansly account prefixed + # IDs (`fansly_acct_...`); all other types take OnlyFans account IDs. sig { returns(T.nilable(T::Array[String])) } attr_reader :account_ids @@ -56,19 +61,23 @@ module Onlyfans # account, max 10,000,000), `maxChats` (optional per-account chat scrape limit), # `skipMassMessages` (optional, bool), `chatIds` (optional array of numeric # fan/chat IDs; filters output and can drastically reduce totals). For - # `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, `video`, - # `audio`). For `fans`: `type` (required, one of: `all`, `active`, `expired`, - # `latest`). For `followings`: `type` (required, one of: `all`, `active`, - # `expired`). For `public_profiles`: `query` (optional, full-text search), - # `gender` (optional, filter: male, female, trans, couple), `minSubscribePrice` - # (optional, USD), `maxSubscribePrice` (optional, USD), `location` (optional), - # `minPostsCount` (optional, minimum posts), `minPhotosCount` (optional, minimum - # photos), `minVideosCount` (optional, minimum videos), `minSubscribersCount` - # (optional, minimum subscribers), `minJoinDate` (optional, ISO 8601 date), - # `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` (optional, ISO 8601 - # date, profile added to DB after), `createdAtTo` (optional, ISO 8601 date, - # profile added to DB before), `instagram` (optional), `twitter` (optional), - # `tiktok` (optional), `maxResults` (optional, limit results). + # `fansly_chat_messages`: `maxMessages` (required per account, max 10,000,000), + # `maxChats` (optional per-account chat scrape limit), `chatIds` (optional array + # of Fansly group ID strings; filters output and can drastically reduce totals). + # For `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, + # `video`, `audio`). For `fans`: `type` (required, one of: `all`, `active`, + # `expired`, `latest`). For `followings`: `type` (required, one of: `all`, + # `active`, `expired`). For `public_profiles`: `query` (optional, full-text + # search), `gender` (optional, filter: male, female, trans, couple), + # `minSubscribePrice` (optional, USD), `maxSubscribePrice` (optional, USD), + # `location` (optional), `minPostsCount` (optional, minimum posts), + # `minPhotosCount` (optional, minimum photos), `minVideosCount` (optional, minimum + # videos), `minSubscribersCount` (optional, minimum subscribers), + # `maxSubscribersCount` (optional, maximum subscribers), `minJoinDate` (optional, + # ISO 8601 date), `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` + # (optional, ISO 8601 date, profile added to DB after), `createdAtTo` (optional, + # ISO 8601 date, profile added to DB before), `instagram` (optional), `twitter` + # (optional), `tiktok` (optional), `maxResults` (optional, limit results). sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } attr_reader :options @@ -92,15 +101,20 @@ module Onlyfans # The end date for the export (ISO 8601 format). end_date:, # The output file format. Supported formats vary by export type: `csv` or `xlsx` - # for transactions, chat_messages, trial_links, tracking_links, smart_links, - # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault. + # for transactions, chat_messages, fansly_chat_messages, trial_links, + # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans, + # followings, profile_visitors; `zip` for media_vault. file_type:, # The start date for the export (ISO 8601 format). start_date:, - # The type of data to export + # The type of data to export. Use `fansly_chat_messages` to export Fansly chat + # messages (all other types are OnlyFans). `profile_visitors` returns one row per + # account per day, scraped one day at a time so the daily numbers are not + # aggregated away by OnlyFans. type:, # Array of account prefixed IDs to export data from. Not required for - # `public_profiles` type. + # `public_profiles` type. For `fansly_chat_messages`, pass Fansly account prefixed + # IDs (`fansly_acct_...`); all other types take OnlyFans account IDs. account_ids: nil, # When true, automatically starts the export after creation. auto_start: nil, @@ -111,19 +125,23 @@ module Onlyfans # account, max 10,000,000), `maxChats` (optional per-account chat scrape limit), # `skipMassMessages` (optional, bool), `chatIds` (optional array of numeric # fan/chat IDs; filters output and can drastically reduce totals). For - # `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, `video`, - # `audio`). For `fans`: `type` (required, one of: `all`, `active`, `expired`, - # `latest`). For `followings`: `type` (required, one of: `all`, `active`, - # `expired`). For `public_profiles`: `query` (optional, full-text search), - # `gender` (optional, filter: male, female, trans, couple), `minSubscribePrice` - # (optional, USD), `maxSubscribePrice` (optional, USD), `location` (optional), - # `minPostsCount` (optional, minimum posts), `minPhotosCount` (optional, minimum - # photos), `minVideosCount` (optional, minimum videos), `minSubscribersCount` - # (optional, minimum subscribers), `minJoinDate` (optional, ISO 8601 date), - # `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` (optional, ISO 8601 - # date, profile added to DB after), `createdAtTo` (optional, ISO 8601 date, - # profile added to DB before), `instagram` (optional), `twitter` (optional), - # `tiktok` (optional), `maxResults` (optional, limit results). + # `fansly_chat_messages`: `maxMessages` (required per account, max 10,000,000), + # `maxChats` (optional per-account chat scrape limit), `chatIds` (optional array + # of Fansly group ID strings; filters output and can drastically reduce totals). + # For `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, + # `video`, `audio`). For `fans`: `type` (required, one of: `all`, `active`, + # `expired`, `latest`). For `followings`: `type` (required, one of: `all`, + # `active`, `expired`). For `public_profiles`: `query` (optional, full-text + # search), `gender` (optional, filter: male, female, trans, couple), + # `minSubscribePrice` (optional, USD), `maxSubscribePrice` (optional, USD), + # `location` (optional), `minPostsCount` (optional, minimum posts), + # `minPhotosCount` (optional, minimum photos), `minVideosCount` (optional, minimum + # videos), `minSubscribersCount` (optional, minimum subscribers), + # `maxSubscribersCount` (optional, maximum subscribers), `minJoinDate` (optional, + # ISO 8601 date), `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` + # (optional, ISO 8601 date, profile added to DB after), `createdAtTo` (optional, + # ISO 8601 date, profile added to DB before), `instagram` (optional), `twitter` + # (optional), `tiktok` (optional), `maxResults` (optional, limit results). options: nil, request_options: {} ) @@ -148,8 +166,9 @@ module Onlyfans end # The output file format. Supported formats vary by export type: `csv` or `xlsx` - # for transactions, chat_messages, trial_links, tracking_links, smart_links, - # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault. + # for transactions, chat_messages, fansly_chat_messages, trial_links, + # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans, + # followings, profile_visitors; `zip` for media_vault. module FileType extend Onlyfans::Internal::Type::Enum @@ -175,7 +194,10 @@ module Onlyfans end end - # The type of data to export + # The type of data to export. Use `fansly_chat_messages` to export Fansly chat + # messages (all other types are OnlyFans). `profile_visitors` returns one row per + # account per day, scraped one day at a time so the daily numbers are not + # aggregated away by OnlyFans. module Type extend Onlyfans::Internal::Type::Enum @@ -232,6 +254,16 @@ module Onlyfans :followings, Onlyfans::DataExportCreateParams::Type::TaggedSymbol ) + PROFILE_VISITORS = + T.let( + :profile_visitors, + Onlyfans::DataExportCreateParams::Type::TaggedSymbol + ) + FANSLY_CHAT_MESSAGES = + T.let( + :fansly_chat_messages, + Onlyfans::DataExportCreateParams::Type::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/onlyfans/models/data_export_list_params.rbi b/rbi/onlyfans/models/data_export_list_params.rbi index 40462078..62d0246c 100644 --- a/rbi/onlyfans/models/data_export_list_params.rbi +++ b/rbi/onlyfans/models/data_export_list_params.rbi @@ -170,6 +170,11 @@ module Onlyfans :tracking_links, Onlyfans::DataExportListParams::Type::TaggedSymbol ) + SMART_LINKS = + T.let( + :smart_links, + Onlyfans::DataExportListParams::Type::TaggedSymbol + ) PAYOUTS = T.let(:payouts, Onlyfans::DataExportListParams::Type::TaggedSymbol) CHARGEBACKS = @@ -182,6 +187,19 @@ module Onlyfans :public_profiles, Onlyfans::DataExportListParams::Type::TaggedSymbol ) + FANS = T.let(:fans, Onlyfans::DataExportListParams::Type::TaggedSymbol) + FOLLOWINGS = + T.let(:followings, Onlyfans::DataExportListParams::Type::TaggedSymbol) + PROFILE_VISITORS = + T.let( + :profile_visitors, + Onlyfans::DataExportListParams::Type::TaggedSymbol + ) + FANSLY_CHAT_MESSAGES = + T.let( + :fansly_chat_messages, + Onlyfans::DataExportListParams::Type::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/onlyfans/models/data_export_list_response.rbi b/rbi/onlyfans/models/data_export_list_response.rbi index bc1d1cec..50cc01b8 100644 --- a/rbi/onlyfans/models/data_export_list_response.rbi +++ b/rbi/onlyfans/models/data_export_list_response.rbi @@ -423,6 +423,12 @@ module Onlyfans sig { returns(T.nilable(String)) } attr_accessor :failed_at + sig { returns(T.nilable(Integer)) } + attr_reader :failed_downloads + + sig { params(failed_downloads: Integer).void } + attr_writer :failed_downloads + sig { returns(T.nilable(String)) } attr_accessor :failed_reason @@ -483,6 +489,7 @@ module Onlyfans end_date: String, export_columns: T::Array[String], failed_at: T.nilable(String), + failed_downloads: Integer, failed_reason: T.nilable(String), file_type: String, progress_percentage: Integer, @@ -504,6 +511,7 @@ module Onlyfans end_date: nil, export_columns: nil, failed_at: nil, + failed_downloads: nil, failed_reason: nil, file_type: nil, progress_percentage: nil, @@ -531,6 +539,7 @@ module Onlyfans end_date: String, export_columns: T::Array[String], failed_at: T.nilable(String), + failed_downloads: Integer, failed_reason: T.nilable(String), file_type: String, progress_percentage: Integer, diff --git a/rbi/onlyfans/models/data_export_retrieve_response.rbi b/rbi/onlyfans/models/data_export_retrieve_response.rbi index b2fcf19c..507cb8c8 100644 --- a/rbi/onlyfans/models/data_export_retrieve_response.rbi +++ b/rbi/onlyfans/models/data_export_retrieve_response.rbi @@ -349,6 +349,12 @@ module Onlyfans sig { returns(T.nilable(String)) } attr_accessor :failed_at + sig { returns(T.nilable(Integer)) } + attr_reader :failed_downloads + + sig { params(failed_downloads: Integer).void } + attr_writer :failed_downloads + sig { returns(T.nilable(String)) } attr_accessor :failed_reason @@ -407,6 +413,7 @@ module Onlyfans end_date: String, export_columns: T::Array[String], failed_at: T.nilable(String), + failed_downloads: Integer, failed_reason: T.nilable(String), file_type: String, progress_percentage: Integer, @@ -426,6 +433,7 @@ module Onlyfans end_date: nil, export_columns: nil, failed_at: nil, + failed_downloads: nil, failed_reason: nil, file_type: nil, progress_percentage: nil, @@ -451,6 +459,7 @@ module Onlyfans end_date: String, export_columns: T::Array[String], failed_at: T.nilable(String), + failed_downloads: Integer, failed_reason: T.nilable(String), file_type: String, progress_percentage: Integer, diff --git a/rbi/onlyfans/models/engagement/message_get_message_buyers_params.rbi b/rbi/onlyfans/models/engagement/message_get_message_buyers_params.rbi index f21c0703..e485b12f 100644 --- a/rbi/onlyfans/models/engagement/message_get_message_buyers_params.rbi +++ b/rbi/onlyfans/models/engagement/message_get_message_buyers_params.rbi @@ -42,7 +42,7 @@ module Onlyfans sig { params(offset: Integer).void } attr_writer :offset - # Optional flag for subsequent pages (example: all) + # Optional flag for subsequent pages (example: all). sig { returns(T.nilable(String)) } attr_reader :skip_users @@ -77,7 +77,7 @@ module Onlyfans marker: nil, # Offset for pagination (default = 0) offset: nil, - # Optional flag for subsequent pages (example: all) + # Optional flag for subsequent pages (example: all). skip_users: nil, # Skip duplicate users in results (0/1). Default = 1 skip_users_dups: nil, diff --git a/rbi/onlyfans/models/engagement/message_get_top_message_params.rbi b/rbi/onlyfans/models/engagement/message_get_top_message_params.rbi index 6864a220..1b211b14 100644 --- a/rbi/onlyfans/models/engagement/message_get_top_message_params.rbi +++ b/rbi/onlyfans/models/engagement/message_get_top_message_params.rbi @@ -18,8 +18,8 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The end date for the period. Keep empty to retrieve until now. MUST BE DATE - # AFTER `startDate`. + # The end date for the period. Keep empty to retrieve until now. It must be after + # `startDate`. sig { returns(T.nilable(String)) } attr_reader :end_date @@ -43,8 +43,8 @@ module Onlyfans end def self.new( account:, - # The end date for the period. Keep empty to retrieve until now. MUST BE DATE - # AFTER `startDate`. + # The end date for the period. Keep empty to retrieve until now. It must be after + # `startDate`. end_date: nil, # The start date for the period. Keep empty to retrieve from the model start date. start_date: nil, diff --git a/rbi/onlyfans/models/engagement/messages/direct_message_chart_params.rbi b/rbi/onlyfans/models/engagement/messages/direct_message_chart_params.rbi index 96e7f691..52fa60ec 100644 --- a/rbi/onlyfans/models/engagement/messages/direct_message_chart_params.rbi +++ b/rbi/onlyfans/models/engagement/messages/direct_message_chart_params.rbi @@ -19,7 +19,7 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. sig { returns(T.nilable(String)) } attr_reader :end_date @@ -51,7 +51,7 @@ module Onlyfans end def self.new( account:, - # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. end_date: nil, # Start of the chart window in `Y-m-d H:i:s` format. start_date: nil, diff --git a/rbi/onlyfans/models/engagement/messages/direct_message_list_params.rbi b/rbi/onlyfans/models/engagement/messages/direct_message_list_params.rbi index a7b64301..85422d2d 100644 --- a/rbi/onlyfans/models/engagement/messages/direct_message_list_params.rbi +++ b/rbi/onlyfans/models/engagement/messages/direct_message_list_params.rbi @@ -19,8 +19,8 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. sig { returns(T.nilable(String)) } attr_reader :end_date @@ -68,8 +68,8 @@ module Onlyfans end def self.new( account:, - # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. end_date: nil, # Number of messages to return (default = 10) limit: nil, diff --git a/rbi/onlyfans/models/engagement/messages/mass_message_chart_params.rbi b/rbi/onlyfans/models/engagement/messages/mass_message_chart_params.rbi index 485067fa..1fa86321 100644 --- a/rbi/onlyfans/models/engagement/messages/mass_message_chart_params.rbi +++ b/rbi/onlyfans/models/engagement/messages/mass_message_chart_params.rbi @@ -19,7 +19,7 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. sig { returns(T.nilable(String)) } attr_reader :end_date @@ -51,7 +51,7 @@ module Onlyfans end def self.new( account:, - # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. end_date: nil, # Start of the chart window in `Y-m-d H:i:s` format. start_date: nil, diff --git a/rbi/onlyfans/models/engagement/messages/mass_message_list_params.rbi b/rbi/onlyfans/models/engagement/messages/mass_message_list_params.rbi index c0e61852..fffb22ad 100644 --- a/rbi/onlyfans/models/engagement/messages/mass_message_list_params.rbi +++ b/rbi/onlyfans/models/engagement/messages/mass_message_list_params.rbi @@ -19,8 +19,8 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. sig { returns(T.nilable(String)) } attr_reader :end_date @@ -60,8 +60,8 @@ module Onlyfans end def self.new( account:, - # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. end_date: nil, # Number of messages to return (default = 10) limit: nil, diff --git a/rbi/onlyfans/models/fan_list_active_params.rbi b/rbi/onlyfans/models/fan_list_active_params.rbi index 7781e731..afda303d 100644 --- a/rbi/onlyfans/models/fan_list_active_params.rbi +++ b/rbi/onlyfans/models/fan_list_active_params.rbi @@ -20,8 +20,8 @@ module Onlyfans sig { params(filter: Onlyfans::FanListActiveParams::Filter::OrHash).void } attr_writer :filter - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. sig { returns(T.nilable(Integer)) } attr_reader :limit @@ -60,8 +60,8 @@ module Onlyfans def self.new( account:, filter: nil, - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. limit: nil, # Number of fans to skip. Must be at least 0. offset: nil, @@ -98,14 +98,45 @@ module Onlyfans ) end - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :duration sig { params(duration: Integer).void } attr_writer :duration - # Filter by online status (`1` for online fans). + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + sig { returns(T.nilable(Float)) } + attr_reader :max_total_spent + + sig { params(max_total_spent: Float).void } + attr_writer :max_total_spent + + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. sig do returns( T.nilable(Onlyfans::FanListActiveParams::Filter::Online::OrInteger) @@ -113,14 +144,19 @@ module Onlyfans end attr_accessor :online - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :tips sig { params(tips: Integer).void } attr_writer :tips - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :total_spent @@ -130,6 +166,7 @@ module Onlyfans sig do params( duration: Integer, + max_total_spent: Float, online: T.nilable( Onlyfans::FanListActiveParams::Filter::Online::OrInteger @@ -139,13 +176,44 @@ module Onlyfans ).returns(T.attached_class) end def self.new( - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. duration: nil, - # Filter by online status (`1` for online fans). + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + max_total_spent: nil, + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. online: nil, - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. tips: nil, - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. total_spent: nil ) end @@ -154,6 +222,7 @@ module Onlyfans override.returns( { duration: Integer, + max_total_spent: Float, online: T.nilable( Onlyfans::FanListActiveParams::Filter::Online::OrInteger @@ -166,7 +235,9 @@ module Onlyfans def to_hash end - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. module Online extend Onlyfans::Internal::Type::Enum diff --git a/rbi/onlyfans/models/fan_list_all_params.rbi b/rbi/onlyfans/models/fan_list_all_params.rbi index b4910a64..be13c4bf 100644 --- a/rbi/onlyfans/models/fan_list_all_params.rbi +++ b/rbi/onlyfans/models/fan_list_all_params.rbi @@ -20,8 +20,8 @@ module Onlyfans sig { params(filter: Onlyfans::FanListAllParams::Filter::OrHash).void } attr_writer :filter - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. sig { returns(T.nilable(Integer)) } attr_reader :limit @@ -60,8 +60,8 @@ module Onlyfans def self.new( account:, filter: nil, - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. limit: nil, # Number of fans to skip. Must be at least 0. offset: nil, @@ -98,14 +98,45 @@ module Onlyfans ) end - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :duration sig { params(duration: Integer).void } attr_writer :duration - # Filter by online status (`1` for online fans). + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + sig { returns(T.nilable(Float)) } + attr_reader :max_total_spent + + sig { params(max_total_spent: Float).void } + attr_writer :max_total_spent + + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. sig do returns( T.nilable(Onlyfans::FanListAllParams::Filter::Online::OrInteger) @@ -113,14 +144,19 @@ module Onlyfans end attr_accessor :online - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :tips sig { params(tips: Integer).void } attr_writer :tips - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :total_spent @@ -130,6 +166,7 @@ module Onlyfans sig do params( duration: Integer, + max_total_spent: Float, online: T.nilable(Onlyfans::FanListAllParams::Filter::Online::OrInteger), tips: Integer, @@ -137,13 +174,44 @@ module Onlyfans ).returns(T.attached_class) end def self.new( - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. duration: nil, - # Filter by online status (`1` for online fans). + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + max_total_spent: nil, + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. online: nil, - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. tips: nil, - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. total_spent: nil ) end @@ -152,6 +220,7 @@ module Onlyfans override.returns( { duration: Integer, + max_total_spent: Float, online: T.nilable( Onlyfans::FanListAllParams::Filter::Online::OrInteger @@ -164,7 +233,9 @@ module Onlyfans def to_hash end - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. module Online extend Onlyfans::Internal::Type::Enum diff --git a/rbi/onlyfans/models/fan_list_expired_params.rbi b/rbi/onlyfans/models/fan_list_expired_params.rbi index 05333275..ab605917 100644 --- a/rbi/onlyfans/models/fan_list_expired_params.rbi +++ b/rbi/onlyfans/models/fan_list_expired_params.rbi @@ -22,8 +22,8 @@ module Onlyfans end attr_writer :filter - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. sig { returns(T.nilable(Integer)) } attr_reader :limit @@ -62,8 +62,8 @@ module Onlyfans def self.new( account:, filter: nil, - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. limit: nil, # Number of fans to skip. Must be at least 0. offset: nil, @@ -100,14 +100,45 @@ module Onlyfans ) end - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :duration sig { params(duration: Integer).void } attr_writer :duration - # Filter by online status (`1` for online fans). + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + sig { returns(T.nilable(Float)) } + attr_reader :max_total_spent + + sig { params(max_total_spent: Float).void } + attr_writer :max_total_spent + + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. sig do returns( T.nilable(Onlyfans::FanListExpiredParams::Filter::Online::OrInteger) @@ -115,14 +146,19 @@ module Onlyfans end attr_accessor :online - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :tips sig { params(tips: Integer).void } attr_writer :tips - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :total_spent @@ -132,6 +168,7 @@ module Onlyfans sig do params( duration: Integer, + max_total_spent: Float, online: T.nilable( Onlyfans::FanListExpiredParams::Filter::Online::OrInteger @@ -141,13 +178,44 @@ module Onlyfans ).returns(T.attached_class) end def self.new( - # Filter by minimum subscription duration in months. Must be at least 0. + # Filter by minimum subscription duration in months. Must use bracket syntax: + # filter[duration]=1 — the dot form (filter.duration=1) is rejected with a 422, + # because PHP rewrites it to `filter_duration` and the filter could not be + # applied. Must be at least 0. duration: nil, - # Filter by online status (`1` for online fans). + # Filter by **maximum** amount total spent by a fan — use + # `filter[max_total_spent]=0` to isolate fans who have never spent. Combine with + # `filter[total_spent]` for a range. Must use bracket syntax: + # filter[max_total_spent]=0 — the dot form is rejected with a 422, because PHP + # rewrites it to `filter_max_total_spent` and the filter could not be applied. + # + # OnlyFans itself has no maximum-spend filter, so this one is resolved against + # OnlyFansAPI's own fan index instead of being proxied. The fan objects in + # `data.list` are still fetched live from OnlyFans and are re-checked against your + # filters before being returned, but only fans we have already indexed for this + # account can appear. Each response reports its own coverage under `data._source`; + # when `data._source.is_complete` is `false` a full-base backfill is queued + # automatically, so retry later for a complete answer. + # + # `data._source.omitted_from_page` counts fans that matched your filters but which + # OnlyFans returned no usable data for on that page (a deleted account, or a + # partial response). They are left out of `data.list` and not revisited later in + # the same walk, so a non-zero value means that page was short — start a fresh + # walk to retry them. Cannot be combined with `filter[online]`. Must be at + # least 0. + max_total_spent: nil, + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. online: nil, - # Filter by minimum tips. Must be at least 0. + # Filter by minimum tips. Must use bracket syntax: filter[tips]=100 — the dot form + # (filter.tips=100) is rejected with a 422, because PHP rewrites it to + # `filter_tips` and the filter could not be applied. Must be at least 0. tips: nil, - # Filter by minimum amount total spent by a fan. Must be at least 0. + # Filter by minimum amount total spent by a fan. Must use bracket syntax: + # filter[total_spent]=100 — the dot form (filter.total_spent=100) is rejected with + # a 422, because PHP rewrites it to `filter_total_spent` and the filter could not + # be applied. Must be at least 0. total_spent: nil ) end @@ -156,6 +224,7 @@ module Onlyfans override.returns( { duration: Integer, + max_total_spent: Float, online: T.nilable( Onlyfans::FanListExpiredParams::Filter::Online::OrInteger @@ -168,7 +237,9 @@ module Onlyfans def to_hash end - # Filter by online status (`1` for online fans). + # Filter by online status (`1` for online fans). Must use bracket syntax: + # filter[online]=1 — the dot form (filter.online=1) is rejected with a 422, + # because PHP rewrites it to `filter_online` and the filter could not be applied. module Online extend Onlyfans::Internal::Type::Enum diff --git a/rbi/onlyfans/models/fan_list_latest_params.rbi b/rbi/onlyfans/models/fan_list_latest_params.rbi index 52cc45be..42d001d3 100644 --- a/rbi/onlyfans/models/fan_list_latest_params.rbi +++ b/rbi/onlyfans/models/fan_list_latest_params.rbi @@ -14,13 +14,13 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # End date for filtering (required with start_date). This field is required when - # start_date is present. + # End date for filtering (required with start_date). Must be a valid date. Must + # not be greater than 255 characters. sig { returns(T.nilable(String)) } attr_accessor :end_date # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 100. + # than 50. sig { returns(T.nilable(Integer)) } attr_reader :limit @@ -34,8 +34,8 @@ module Onlyfans sig { params(offset: Integer).void } attr_writer :offset - # Start date for filtering (required with end_date). This field is required when - # end_date is present. + # Start date for filtering (required with end_date). Must be a valid date. Must + # not be greater than 255 characters. sig { returns(T.nilable(String)) } attr_accessor :start_date @@ -56,16 +56,16 @@ module Onlyfans end def self.new( account:, - # End date for filtering (required with start_date). This field is required when - # start_date is present. + # End date for filtering (required with start_date). Must be a valid date. Must + # not be greater than 255 characters. end_date: nil, # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 100. + # than 50. limit: nil, # Number of fans to skip. Must be at least 0. offset: nil, - # Start date for filtering (required with end_date). This field is required when - # end_date is present. + # Start date for filtering (required with end_date). Must be a valid date. Must + # not be greater than 255 characters. start_date: nil, # Filter by type: total, renew, or new. type: nil, diff --git a/rbi/onlyfans/models/fan_list_top_params.rbi b/rbi/onlyfans/models/fan_list_top_params.rbi index 42d9f186..54116ca2 100644 --- a/rbi/onlyfans/models/fan_list_top_params.rbi +++ b/rbi/onlyfans/models/fan_list_top_params.rbi @@ -18,13 +18,13 @@ module Onlyfans sig { returns(T.nilable(Onlyfans::FanListTopParams::By::OrSymbol)) } attr_accessor :by - # End date for filtering (required with start_date). This field is required when - # start_date is present. + # End date for filtering (required with start_date). Must be a valid date. Must + # not be greater than 255 characters. sig { returns(T.nilable(String)) } attr_accessor :end_date - # Start date for filtering (required with end_date). This field is required when - # end_date is present. + # Start date for filtering (required with end_date). Must be a valid date. Must + # not be greater than 255 characters. sig { returns(T.nilable(String)) } attr_accessor :start_date @@ -41,11 +41,11 @@ module Onlyfans account:, # Sort by: total (default), subscribes, tips, messages, post, streams. by: nil, - # End date for filtering (required with start_date). This field is required when - # start_date is present. + # End date for filtering (required with start_date). Must be a valid date. Must + # not be greater than 255 characters. end_date: nil, - # Start date for filtering (required with end_date). This field is required when - # end_date is present. + # Start date for filtering (required with end_date). Must be a valid date. Must + # not be greater than 255 characters. start_date: nil, request_options: {} ) diff --git a/rbi/onlyfans/models/fans/summary_get_summary_response.rbi b/rbi/onlyfans/models/fans/summary_get_summary_response.rbi index 864d5415..58d2917b 100644 --- a/rbi/onlyfans/models/fans/summary_get_summary_response.rbi +++ b/rbi/onlyfans/models/fans/summary_get_summary_response.rbi @@ -18,6 +18,27 @@ module Onlyfans sig { params(analyzed_message_count: Integer).void } attr_writer :analyzed_message_count + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField + ] + ) + ) + end + attr_reader :custom_fields + + sig do + params( + custom_fields: + T::Array[ + Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField::OrHash + ] + ).void + end + attr_writer :custom_fields + sig { returns(T.nilable(String)) } attr_accessor :error_message @@ -27,6 +48,12 @@ module Onlyfans sig { params(last_analyzed_at: String).void } attr_writer :last_analyzed_at + sig { returns(T.nilable(String)) } + attr_reader :last_buy_date + + sig { params(last_buy_date: String).void } + attr_writer :last_buy_date + sig { returns(T.nilable(String)) } attr_reader :status @@ -53,8 +80,13 @@ module Onlyfans sig do params( analyzed_message_count: Integer, + custom_fields: + T::Array[ + Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField::OrHash + ], error_message: T.nilable(String), last_analyzed_at: String, + last_buy_date: String, status: String, summary_data: Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData::OrHash @@ -62,8 +94,10 @@ module Onlyfans end def self.new( analyzed_message_count: nil, + custom_fields: nil, error_message: nil, last_analyzed_at: nil, + last_buy_date: nil, status: nil, summary_data: nil ) @@ -73,8 +107,13 @@ module Onlyfans override.returns( { analyzed_message_count: Integer, + custom_fields: + T::Array[ + Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField + ], error_message: T.nilable(String), last_analyzed_at: String, + last_buy_date: String, status: String, summary_data: Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData @@ -84,6 +123,36 @@ module Onlyfans def to_hash end + class CustomField < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :key + + sig { params(key: String).void } + attr_writer :key + + sig { returns(T.nilable(String)) } + attr_reader :label + + sig { params(label: String).void } + attr_writer :label + + sig { params(key: String, label: String).returns(T.attached_class) } + def self.new(key: nil, label: nil) + end + + sig { override.returns({ key: String, label: String }) } + def to_hash + end + end + class SummaryData < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do @@ -93,12 +162,24 @@ module Onlyfans ) end + sig { returns(T.nilable(String)) } + attr_reader :content_dislikes + + sig { params(content_dislikes: String).void } + attr_writer :content_dislikes + sig { returns(T.nilable(String)) } attr_reader :content_preferences sig { params(content_preferences: String).void } attr_writer :content_preferences + sig { returns(T.nilable(String)) } + attr_reader :dos_and_donts + + sig { params(dos_and_donts: String).void } + attr_writer :dos_and_donts + sig { returns(T.nilable(String)) } attr_reader :family_pets @@ -147,6 +228,12 @@ module Onlyfans sig { params(requests: String).void } attr_writer :requests + sig { returns(T.nilable(String)) } + attr_reader :spend_cadence + + sig { params(spend_cadence: String).void } + attr_writer :spend_cadence + sig { returns(T.nilable(String)) } attr_reader :themes @@ -161,7 +248,9 @@ module Onlyfans sig do params( + content_dislikes: String, content_preferences: String, + dos_and_donts: String, family_pets: String, hobbies: String, interests: String, @@ -170,12 +259,15 @@ module Onlyfans other_notes: String, preferred_name: String, requests: String, + spend_cadence: String, themes: String, travel_plans: String ).returns(T.attached_class) end def self.new( + content_dislikes: nil, content_preferences: nil, + dos_and_donts: nil, family_pets: nil, hobbies: nil, interests: nil, @@ -184,6 +276,7 @@ module Onlyfans other_notes: nil, preferred_name: nil, requests: nil, + spend_cadence: nil, themes: nil, travel_plans: nil ) @@ -192,7 +285,9 @@ module Onlyfans sig do override.returns( { + content_dislikes: String, content_preferences: String, + dos_and_donts: String, family_pets: String, hobbies: String, interests: String, @@ -201,6 +296,7 @@ module Onlyfans other_notes: String, preferred_name: String, requests: String, + spend_cadence: String, themes: String, travel_plans: String } diff --git a/rbi/onlyfans/models/following_list_active_params.rbi b/rbi/onlyfans/models/following_list_active_params.rbi index ca6a9c47..479ebfd0 100644 --- a/rbi/onlyfans/models/following_list_active_params.rbi +++ b/rbi/onlyfans/models/following_list_active_params.rbi @@ -44,6 +44,41 @@ module Onlyfans sig { returns(T.nilable(String)) } attr_accessor :query + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sig do + returns(T.nilable(Onlyfans::FollowingListActiveParams::Sort::OrSymbol)) + end + attr_accessor :sort + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sig do + returns( + T.nilable( + Onlyfans::FollowingListActiveParams::SortDirection::OrSymbol + ) + ) + end + attr_accessor :sort_direction + sig do params( account: String, @@ -51,6 +86,11 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: T.nilable(Onlyfans::FollowingListActiveParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListActiveParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end @@ -64,6 +104,29 @@ module Onlyfans offset: nil, # Search within following name/username. query: nil, + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sort: nil, + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sort_direction: nil, request_options: {} ) end @@ -76,6 +139,12 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: + T.nilable(Onlyfans::FollowingListActiveParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListActiveParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions } ) @@ -216,6 +285,97 @@ module Onlyfans end end end + + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + module Sort + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::FollowingListActiveParams::Sort) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + LAST_ACTIVITY = + T.let( + :last_activity, + Onlyfans::FollowingListActiveParams::Sort::TaggedSymbol + ) + EXPIRE_DATE = + T.let( + :expire_date, + Onlyfans::FollowingListActiveParams::Sort::TaggedSymbol + ) + SUBSCRIBE_DATE = + T.let( + :subscribe_date, + Onlyfans::FollowingListActiveParams::Sort::TaggedSymbol + ) + IS_EXPIRED = + T.let( + :is_expired, + Onlyfans::FollowingListActiveParams::Sort::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Onlyfans::FollowingListActiveParams::Sort::TaggedSymbol] + ) + end + def self.values + end + end + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + module SortDirection + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::FollowingListActiveParams::SortDirection) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ASC = + T.let( + :asc, + Onlyfans::FollowingListActiveParams::SortDirection::TaggedSymbol + ) + DESC = + T.let( + :desc, + Onlyfans::FollowingListActiveParams::SortDirection::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::FollowingListActiveParams::SortDirection::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/following_list_all_params.rbi b/rbi/onlyfans/models/following_list_all_params.rbi index fbd48a5e..4fc64f42 100644 --- a/rbi/onlyfans/models/following_list_all_params.rbi +++ b/rbi/onlyfans/models/following_list_all_params.rbi @@ -41,6 +41,39 @@ module Onlyfans sig { returns(T.nilable(String)) } attr_accessor :query + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sig do + returns(T.nilable(Onlyfans::FollowingListAllParams::Sort::OrSymbol)) + end + attr_accessor :sort + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sig do + returns( + T.nilable(Onlyfans::FollowingListAllParams::SortDirection::OrSymbol) + ) + end + attr_accessor :sort_direction + sig do params( account: String, @@ -48,6 +81,11 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: T.nilable(Onlyfans::FollowingListAllParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListAllParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end @@ -61,6 +99,29 @@ module Onlyfans offset: nil, # Search within following name/username. query: nil, + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sort: nil, + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sort_direction: nil, request_options: {} ) end @@ -73,6 +134,11 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: T.nilable(Onlyfans::FollowingListAllParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListAllParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions } ) @@ -208,6 +274,95 @@ module Onlyfans end end end + + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + module Sort + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Onlyfans::FollowingListAllParams::Sort) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + LAST_ACTIVITY = + T.let( + :last_activity, + Onlyfans::FollowingListAllParams::Sort::TaggedSymbol + ) + EXPIRE_DATE = + T.let( + :expire_date, + Onlyfans::FollowingListAllParams::Sort::TaggedSymbol + ) + SUBSCRIBE_DATE = + T.let( + :subscribe_date, + Onlyfans::FollowingListAllParams::Sort::TaggedSymbol + ) + IS_EXPIRED = + T.let( + :is_expired, + Onlyfans::FollowingListAllParams::Sort::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Onlyfans::FollowingListAllParams::Sort::TaggedSymbol] + ) + end + def self.values + end + end + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + module SortDirection + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::FollowingListAllParams::SortDirection) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ASC = + T.let( + :asc, + Onlyfans::FollowingListAllParams::SortDirection::TaggedSymbol + ) + DESC = + T.let( + :desc, + Onlyfans::FollowingListAllParams::SortDirection::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::FollowingListAllParams::SortDirection::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/following_list_expired_params.rbi b/rbi/onlyfans/models/following_list_expired_params.rbi index 460838fc..8724f97c 100644 --- a/rbi/onlyfans/models/following_list_expired_params.rbi +++ b/rbi/onlyfans/models/following_list_expired_params.rbi @@ -46,6 +46,41 @@ module Onlyfans sig { returns(T.nilable(String)) } attr_accessor :query + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sig do + returns(T.nilable(Onlyfans::FollowingListExpiredParams::Sort::OrSymbol)) + end + attr_accessor :sort + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sig do + returns( + T.nilable( + Onlyfans::FollowingListExpiredParams::SortDirection::OrSymbol + ) + ) + end + attr_accessor :sort_direction + sig do params( account: String, @@ -53,6 +88,11 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: T.nilable(Onlyfans::FollowingListExpiredParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListExpiredParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end @@ -66,6 +106,29 @@ module Onlyfans offset: nil, # Search within following name/username. query: nil, + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sort: nil, + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sort_direction: nil, request_options: {} ) end @@ -78,6 +141,12 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: + T.nilable(Onlyfans::FollowingListExpiredParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListExpiredParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions } ) @@ -218,6 +287,97 @@ module Onlyfans end end end + + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + module Sort + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::FollowingListExpiredParams::Sort) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + LAST_ACTIVITY = + T.let( + :last_activity, + Onlyfans::FollowingListExpiredParams::Sort::TaggedSymbol + ) + EXPIRE_DATE = + T.let( + :expire_date, + Onlyfans::FollowingListExpiredParams::Sort::TaggedSymbol + ) + SUBSCRIBE_DATE = + T.let( + :subscribe_date, + Onlyfans::FollowingListExpiredParams::Sort::TaggedSymbol + ) + IS_EXPIRED = + T.let( + :is_expired, + Onlyfans::FollowingListExpiredParams::Sort::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Onlyfans::FollowingListExpiredParams::Sort::TaggedSymbol] + ) + end + def self.values + end + end + + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + module SortDirection + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::FollowingListExpiredParams::SortDirection) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ASC = + T.let( + :asc, + Onlyfans::FollowingListExpiredParams::SortDirection::TaggedSymbol + ) + DESC = + T.let( + :desc, + Onlyfans::FollowingListExpiredParams::SortDirection::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::FollowingListExpiredParams::SortDirection::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/link_tag_list_params.rbi b/rbi/onlyfans/models/link_tag_list_params.rbi index a28b586e..660df692 100644 --- a/rbi/onlyfans/models/link_tag_list_params.rbi +++ b/rbi/onlyfans/models/link_tag_list_params.rbi @@ -11,7 +11,7 @@ module Onlyfans T.any(Onlyfans::LinkTagListParams, Onlyfans::Internal::AnyHash) end - # Filter by link type. If not provided, returns tags for both types. + # Filter by link type. If not provided, returns tags for all types. sig { returns(T.nilable(Onlyfans::LinkTagListParams::Type::OrSymbol)) } attr_reader :type @@ -25,7 +25,7 @@ module Onlyfans ).returns(T.attached_class) end def self.new( - # Filter by link type. If not provided, returns tags for both types. + # Filter by link type. If not provided, returns tags for all types. type: nil, request_options: {} ) @@ -42,7 +42,7 @@ module Onlyfans def to_hash end - # Filter by link type. If not provided, returns tags for both types. + # Filter by link type. If not provided, returns tags for all types. module Type extend Onlyfans::Internal::Type::Enum @@ -57,6 +57,8 @@ module Onlyfans :tracking_links, Onlyfans::LinkTagListParams::Type::TaggedSymbol ) + SMART_LINKS = + T.let(:smart_links, Onlyfans::LinkTagListParams::Type::TaggedSymbol) sig do override.returns( diff --git a/rbi/onlyfans/models/mass_messaging_retrieve_overview_params.rbi b/rbi/onlyfans/models/mass_messaging_retrieve_overview_params.rbi index c772eafa..c9004b72 100644 --- a/rbi/onlyfans/models/mass_messaging_retrieve_overview_params.rbi +++ b/rbi/onlyfans/models/mass_messaging_retrieve_overview_params.rbi @@ -17,8 +17,8 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The latest mass message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest mass message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. sig { returns(T.nilable(String)) } attr_reader :end_date @@ -58,8 +58,8 @@ module Onlyfans end def self.new( account:, - # The latest mass message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest mass message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. end_date: nil, # Number of mass messages to return (default = 10) limit: nil, diff --git a/rbi/onlyfans/models/mass_messaging_send_params.rbi b/rbi/onlyfans/models/mass_messaging_send_params.rbi index a05e8cd9..3d6e783c 100644 --- a/rbi/onlyfans/models/mass_messaging_send_params.rbi +++ b/rbi/onlyfans/models/mass_messaging_send_params.rbi @@ -18,6 +18,27 @@ module Onlyfans sig { returns(String) } attr_accessor :text + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + sig do + returns( + T.nilable( + Onlyfans::MassMessagingSendParams::BlockBannedWords::OrSymbol + ) + ) + end + attr_reader :block_banned_words + + sig do + params( + block_banned_words: + Onlyfans::MassMessagingSendParams::BlockBannedWords::OrSymbol + ).void + end + attr_writer :block_banned_words + # Array of user list IDs that the mass message will NOT be sent to. sig { returns(T.nilable(T::Array[String])) } attr_reader :excluded_lists @@ -57,12 +78,12 @@ module Onlyfans sig { params(previews: T::Array[T.anything]).void } attr_writer :previews - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required - sig { returns(T.nilable(Integer)) } + sig { returns(T.nilable(Float)) } attr_reader :price - sig { params(price: Integer).void } + sig { params(price: Float).void } attr_writer :price # Array of OnlyFans Release Form Guest IDs to tag in your mass message @@ -118,12 +139,14 @@ module Onlyfans params( account: String, text: String, + block_banned_words: + Onlyfans::MassMessagingSendParams::BlockBannedWords::OrSymbol, excluded_lists: T::Array[String], giphy_id: String, locked_text: T::Boolean, media_files: T::Array[T.anything], previews: T::Array[T.anything], - price: Integer, + price: Float, rf_guest: String, rf_partner: String, rf_tag: String, @@ -138,6 +161,11 @@ module Onlyfans account:, # The message text content text:, + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + block_banned_words: nil, # Array of user list IDs that the mass message will NOT be sent to. excluded_lists: nil, # The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing @@ -152,7 +180,7 @@ module Onlyfans # referencing uploaded files in `mediaFiles`. Will be shown if `price` is # provided. previews: nil, - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required price: nil, # Array of OnlyFans Release Form Guest IDs to tag in your mass message @@ -178,12 +206,14 @@ module Onlyfans { account: String, text: String, + block_banned_words: + Onlyfans::MassMessagingSendParams::BlockBannedWords::OrSymbol, excluded_lists: T::Array[String], giphy_id: String, locked_text: T::Boolean, media_files: T::Array[T.anything], previews: T::Array[T.anything], - price: Integer, + price: Float, rf_guest: String, rf_partner: String, rf_tag: String, @@ -197,6 +227,46 @@ module Onlyfans end def to_hash end + + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::MassMessagingSendParams::BlockBannedWords) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + STRICT_BAN = + T.let( + :strict_ban, + Onlyfans::MassMessagingSendParams::BlockBannedWords::TaggedSymbol + ) + RISKY = + T.let( + :risky, + Onlyfans::MassMessagingSendParams::BlockBannedWords::TaggedSymbol + ) + REPLACE_SOFTEN = + T.let( + :replace_soften, + Onlyfans::MassMessagingSendParams::BlockBannedWords::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::MassMessagingSendParams::BlockBannedWords::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/mass_messaging_update_params.rbi b/rbi/onlyfans/models/mass_messaging_update_params.rbi index 70e5d055..28e95da4 100644 --- a/rbi/onlyfans/models/mass_messaging_update_params.rbi +++ b/rbi/onlyfans/models/mass_messaging_update_params.rbi @@ -24,6 +24,27 @@ module Onlyfans sig { returns(String) } attr_accessor :text + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + sig do + returns( + T.nilable( + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::OrSymbol + ) + ) + end + attr_reader :block_banned_words + + sig do + params( + block_banned_words: + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::OrSymbol + ).void + end + attr_writer :block_banned_words + # The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing # endpoints (`/giphy/trending`, `/giphy/search`). sig { returns(T.nilable(String)) } @@ -56,12 +77,12 @@ module Onlyfans sig { params(previews: T::Array[String]).void } attr_writer :previews - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required - sig { returns(T.nilable(Integer)) } + sig { returns(T.nilable(Float)) } attr_reader :price - sig { params(price: Integer).void } + sig { params(price: Float).void } attr_writer :price # Schedule the chat message in the future (UTC timezone). @@ -90,11 +111,13 @@ module Onlyfans account: String, id: String, text: String, + block_banned_words: + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::OrSymbol, giphy_id: String, locked_text: T::Boolean, media_files: T::Array[String], previews: T::Array[String], - price: Integer, + price: Float, scheduled_date: String, user_ids: T::Array[String], user_lists: T::Array[String], @@ -106,6 +129,11 @@ module Onlyfans id:, # The message text content text:, + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + block_banned_words: nil, # The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing # endpoints (`/giphy/trending`, `/giphy/search`). giphy_id: nil, @@ -118,7 +146,7 @@ module Onlyfans # not 0). Will be shown if `price` is provided. All `previews` values must also # exist in the `mediaFiles` array. previews: nil, - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required price: nil, # Schedule the chat message in the future (UTC timezone). @@ -137,11 +165,13 @@ module Onlyfans account: String, id: String, text: String, + block_banned_words: + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::OrSymbol, giphy_id: String, locked_text: T::Boolean, media_files: T::Array[String], previews: T::Array[String], - price: Integer, + price: Float, scheduled_date: String, user_ids: T::Array[String], user_lists: T::Array[String], @@ -151,6 +181,46 @@ module Onlyfans end def to_hash end + + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::MassMessagingUpdateParams::BlockBannedWords) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + STRICT_BAN = + T.let( + :strict_ban, + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::TaggedSymbol + ) + RISKY = + T.let( + :risky, + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::TaggedSymbol + ) + REPLACE_SOFTEN = + T.let( + :replace_soften, + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/media/vault/list_list_params.rbi b/rbi/onlyfans/models/media/vault/list_list_params.rbi index 046cd2f0..3ef90d95 100644 --- a/rbi/onlyfans/models/media/vault/list_list_params.rbi +++ b/rbi/onlyfans/models/media/vault/list_list_params.rbi @@ -19,6 +19,15 @@ module Onlyfans sig { returns(String) } attr_accessor :account + # Set to `true` to return only `id`, `name`, `type`, `canUpdate` and a rolled-up + # `mediaCount` per list, dropping the `medias` previews. Much smaller payload — + # ideal for rendering a folder picker. Default: `false` + sig { returns(T.nilable(T::Boolean)) } + attr_reader :lightweight + + sig { params(lightweight: T::Boolean).void } + attr_writer :lightweight + # Number of media to return per page. Default: `24` sig { returns(T.nilable(Integer)) } attr_reader :limit @@ -43,6 +52,7 @@ module Onlyfans sig do params( account: String, + lightweight: T::Boolean, limit: Integer, offset: Integer, query: String, @@ -51,6 +61,10 @@ module Onlyfans end def self.new( account:, + # Set to `true` to return only `id`, `name`, `type`, `canUpdate` and a rolled-up + # `mediaCount` per list, dropping the `medias` previews. Much smaller payload — + # ideal for rendering a folder picker. Default: `false` + lightweight: nil, # Number of media to return per page. Default: `24` limit: nil, # The offset used for pagination. Default `0` @@ -65,6 +79,7 @@ module Onlyfans override.returns( { account: String, + lightweight: T::Boolean, limit: Integer, offset: Integer, query: String, diff --git a/rbi/onlyfans/models/media/vault/list_list_response.rbi b/rbi/onlyfans/models/media/vault/list_list_response.rbi index 9fbf384e..23565fc4 100644 --- a/rbi/onlyfans/models/media/vault/list_list_response.rbi +++ b/rbi/onlyfans/models/media/vault/list_list_response.rbi @@ -4,72 +4,23 @@ module Onlyfans module Models module Media module Vault - class ListListResponse < Onlyfans::Internal::Type::BaseModel - OrHash = + # Success + module ListListResponse + extend Onlyfans::Internal::Type::Union + + Variants = T.type_alias do T.any( - Onlyfans::Models::Media::Vault::ListListResponse, - Onlyfans::Internal::AnyHash + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0, + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1 ) end - sig do - returns( - T.nilable(Onlyfans::Models::Media::Vault::ListListResponse::Meta) - ) - end - attr_reader :_meta - - sig do - params( - _meta: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::OrHash - ).void - end - attr_writer :_meta - - sig do - returns( - T.nilable(Onlyfans::Models::Media::Vault::ListListResponse::Data) - ) - end - attr_reader :data - - sig do - params( - data: - Onlyfans::Models::Media::Vault::ListListResponse::Data::OrHash - ).void - end - attr_writer :data - - sig do - params( - _meta: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::OrHash, - data: - Onlyfans::Models::Media::Vault::ListListResponse::Data::OrHash - ).returns(T.attached_class) - end - def self.new(_meta: nil, data: nil) - end - - sig do - override.returns( - { - _meta: Onlyfans::Models::Media::Vault::ListListResponse::Meta, - data: Onlyfans::Models::Media::Vault::ListListResponse::Data - } - ) - end - def to_hash - end - - class Meta < Onlyfans::Internal::Type::BaseModel + class UnionMember0 < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::Media::Vault::ListListResponse::Meta, + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0, Onlyfans::Internal::AnyHash ) end @@ -77,589 +28,1182 @@ module Onlyfans sig do returns( T.nilable( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache - ) - ) - end - attr_reader :_cache - - sig do - params( - _cache: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache::OrHash - ).void - end - attr_writer :_cache - - sig do - returns( - T.nilable( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta ) ) end - attr_reader :_credits + attr_reader :_meta sig do params( - _credits: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits::OrHash + _meta: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::OrHash ).void end - attr_writer :_credits + attr_writer :_meta sig do returns( T.nilable( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data ) ) end - attr_reader :_rate_limits + attr_reader :data sig do params( - _rate_limits: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits::OrHash + data: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::OrHash ).void end - attr_writer :_rate_limits + attr_writer :data + # Success sig do params( - _cache: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache::OrHash, - _credits: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits::OrHash, - _rate_limits: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits::OrHash + _meta: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::OrHash, + data: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::OrHash ).returns(T.attached_class) end - def self.new(_cache: nil, _credits: nil, _rate_limits: nil) + def self.new(_meta: nil, data: nil) end sig do override.returns( { - _cache: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache, - _credits: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits, - _rate_limits: - Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits + _meta: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta, + data: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data } ) end def to_hash end - class Cache < Onlyfans::Internal::Type::BaseModel + class Meta < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache, + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(T::Boolean)) } - attr_reader :is_cached - - sig { params(is_cached: T::Boolean).void } - attr_writer :is_cached - - sig { returns(T.nilable(String)) } - attr_reader :note - - sig { params(note: String).void } - attr_writer :note - sig do - params(is_cached: T::Boolean, note: String).returns( - T.attached_class + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache + ) ) end - def self.new(is_cached: nil, note: nil) - end + attr_reader :_cache - sig { override.returns({ is_cached: T::Boolean, note: String }) } - def to_hash + sig do + params( + _cache: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache::OrHash + ).void end - end + attr_writer :_cache - class Credits < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits, - Onlyfans::Internal::AnyHash + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits ) - end - - sig { returns(T.nilable(Integer)) } - attr_reader :balance - - sig { params(balance: Integer).void } - attr_writer :balance - - sig { returns(T.nilable(String)) } - attr_reader :note + ) + end + attr_reader :_credits - sig { params(note: String).void } - attr_writer :note + sig do + params( + _credits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits::OrHash + ).void + end + attr_writer :_credits - sig { returns(T.nilable(Integer)) } - attr_reader :used + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits + ) + ) + end + attr_reader :_rate_limits - sig { params(used: Integer).void } - attr_writer :used + sig do + params( + _rate_limits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits::OrHash + ).void + end + attr_writer :_rate_limits sig do - params(balance: Integer, note: String, used: Integer).returns( - T.attached_class - ) + params( + _cache: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache::OrHash, + _credits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits::OrHash, + _rate_limits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits::OrHash + ).returns(T.attached_class) end - def self.new(balance: nil, note: nil, used: nil) + def self.new(_cache: nil, _credits: nil, _rate_limits: nil) end sig do override.returns( - { balance: Integer, note: String, used: Integer } + { + _cache: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache, + _credits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits, + _rate_limits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits + } ) end def to_hash end - end - class RateLimits < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits, - Onlyfans::Internal::AnyHash - ) - end + class Cache < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache, + Onlyfans::Internal::AnyHash + ) + end - sig { returns(T.nilable(Integer)) } - attr_reader :limit_day + sig { returns(T.nilable(T::Boolean)) } + attr_reader :is_cached - sig { params(limit_day: Integer).void } - attr_writer :limit_day + sig { params(is_cached: T::Boolean).void } + attr_writer :is_cached - sig { returns(T.nilable(Integer)) } - attr_reader :limit_minute + sig { returns(T.nilable(String)) } + attr_reader :note - sig { params(limit_minute: Integer).void } - attr_writer :limit_minute + sig { params(note: String).void } + attr_writer :note - sig { returns(T.nilable(Integer)) } - attr_reader :remaining_day + sig do + params(is_cached: T::Boolean, note: String).returns( + T.attached_class + ) + end + def self.new(is_cached: nil, note: nil) + end - sig { params(remaining_day: Integer).void } - attr_writer :remaining_day + sig do + override.returns({ is_cached: T::Boolean, note: String }) + end + def to_hash + end + end - sig { returns(T.nilable(Integer)) } - attr_reader :remaining_minute + class Credits < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits, + Onlyfans::Internal::AnyHash + ) + end - sig { params(remaining_minute: Integer).void } - attr_writer :remaining_minute + sig { returns(T.nilable(Integer)) } + attr_reader :balance - sig do - params( - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer - ).returns(T.attached_class) - end - def self.new( - limit_day: nil, - limit_minute: nil, - remaining_day: nil, - remaining_minute: nil - ) - end + sig { params(balance: Integer).void } + attr_writer :balance - sig do - override.returns( - { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer - } - ) - end - def to_hash - end - end - end + sig { returns(T.nilable(String)) } + attr_reader :note - class Data < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::Media::Vault::ListListResponse::Data, - Onlyfans::Internal::AnyHash - ) - end + sig { params(note: String).void } + attr_writer :note - sig do - returns( - T.nilable( - Onlyfans::Models::Media::Vault::ListListResponse::Data::All - ) - ) - end - attr_reader :all + sig { returns(T.nilable(Integer)) } + attr_reader :used - sig do - params( - all: - Onlyfans::Models::Media::Vault::ListListResponse::Data::All::OrHash - ).void - end - attr_writer :all + sig { params(used: Integer).void } + attr_writer :used - sig { returns(T.nilable(T::Boolean)) } - attr_reader :can_create_vault_lists + sig do + params(balance: Integer, note: String, used: Integer).returns( + T.attached_class + ) + end + def self.new(balance: nil, note: nil, used: nil) + end - sig { params(can_create_vault_lists: T::Boolean).void } - attr_writer :can_create_vault_lists + sig do + override.returns( + { balance: Integer, note: String, used: Integer } + ) + end + def to_hash + end + end - sig { returns(T.nilable(T::Boolean)) } - attr_reader :has_more + class RateLimits < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits, + Onlyfans::Internal::AnyHash + ) + end - sig { params(has_more: T::Boolean).void } - attr_writer :has_more + sig { returns(T.nilable(Integer)) } + attr_reader :limit_day - sig do - returns( - T.nilable( - T::Array[ - Onlyfans::Models::Media::Vault::ListListResponse::Data::List - ] - ) - ) - end - attr_reader :list + sig { params(limit_day: Integer).void } + attr_writer :limit_day - sig do - params( - list: - T::Array[ - Onlyfans::Models::Media::Vault::ListListResponse::Data::List::OrHash - ] - ).void - end - attr_writer :list + sig { returns(T.nilable(Integer)) } + attr_reader :limit_minute - sig { returns(T.nilable(String)) } - attr_reader :order + sig { params(limit_minute: Integer).void } + attr_writer :limit_minute - sig { params(order: String).void } - attr_writer :order + sig { returns(T.nilable(Integer)) } + attr_reader :remaining_day - sig { returns(T.nilable(String)) } - attr_reader :sort + sig { params(remaining_day: Integer).void } + attr_writer :remaining_day - sig { params(sort: String).void } - attr_writer :sort + sig { returns(T.nilable(Integer)) } + attr_reader :remaining_minute - sig do - params( - all: - Onlyfans::Models::Media::Vault::ListListResponse::Data::All::OrHash, - can_create_vault_lists: T::Boolean, - has_more: T::Boolean, - list: - T::Array[ - Onlyfans::Models::Media::Vault::ListListResponse::Data::List::OrHash - ], - order: String, - sort: String - ).returns(T.attached_class) - end - def self.new( - all: nil, - can_create_vault_lists: nil, - has_more: nil, - list: nil, - order: nil, - sort: nil - ) - end + sig { params(remaining_minute: Integer).void } + attr_writer :remaining_minute - sig do - override.returns( - { - all: - Onlyfans::Models::Media::Vault::ListListResponse::Data::All, - can_create_vault_lists: T::Boolean, - has_more: T::Boolean, - list: - T::Array[ - Onlyfans::Models::Media::Vault::ListListResponse::Data::List - ], - order: String, - sort: String - } - ) - end - def to_hash + sig do + params( + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + ).returns(T.attached_class) + end + def self.new( + limit_day: nil, + limit_minute: nil, + remaining_day: nil, + remaining_minute: nil + ) + end + + sig do + override.returns( + { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + ) + end + def to_hash + end + end end - class All < Onlyfans::Internal::Type::BaseModel + class Data < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::Media::Vault::ListListResponse::Data::All, + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(Integer)) } - attr_reader :audios_count + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All + ) + ) + end + attr_reader :all + + sig do + params( + all: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::OrHash + ).void + end + attr_writer :all + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :can_create_vault_lists - sig { params(audios_count: Integer).void } - attr_writer :audios_count + sig { params(can_create_vault_lists: T::Boolean).void } + attr_writer :can_create_vault_lists - sig { returns(T.nilable(Integer)) } - attr_reader :gifs_count + sig { returns(T.nilable(T::Boolean)) } + attr_reader :has_more - sig { params(gifs_count: Integer).void } - attr_writer :gifs_count + sig { params(has_more: T::Boolean).void } + attr_writer :has_more sig do returns( T.nilable( T::Array[ - Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List ] ) ) end - attr_reader :medias + attr_reader :list sig do params( - medias: + list: T::Array[ - Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media::OrHash + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List::OrHash ] ).void end - attr_writer :medias + attr_writer :list - sig { returns(T.nilable(Integer)) } - attr_reader :photos_count + sig { returns(T.nilable(String)) } + attr_reader :order - sig { params(photos_count: Integer).void } - attr_writer :photos_count + sig { params(order: String).void } + attr_writer :order - sig { returns(T.nilable(Integer)) } - attr_reader :videos_count + sig { returns(T.nilable(String)) } + attr_reader :sort - sig { params(videos_count: Integer).void } - attr_writer :videos_count + sig { params(sort: String).void } + attr_writer :sort sig do params( - audios_count: Integer, - gifs_count: Integer, - medias: + all: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::OrHash, + can_create_vault_lists: T::Boolean, + has_more: T::Boolean, + list: T::Array[ - Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media::OrHash + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List::OrHash ], - photos_count: Integer, - videos_count: Integer + order: String, + sort: String ).returns(T.attached_class) end def self.new( - audios_count: nil, - gifs_count: nil, - medias: nil, - photos_count: nil, - videos_count: nil + all: nil, + can_create_vault_lists: nil, + has_more: nil, + list: nil, + order: nil, + sort: nil ) end sig do override.returns( { - audios_count: Integer, - gifs_count: Integer, - medias: + all: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All, + can_create_vault_lists: T::Boolean, + has_more: T::Boolean, + list: T::Array[ - Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List ], - photos_count: Integer, - videos_count: Integer + order: String, + sort: String } ) end def to_hash end - class Media < Onlyfans::Internal::Type::BaseModel + class All < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media, + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(String)) } - attr_reader :type + sig { returns(T.nilable(Integer)) } + attr_reader :audios_count - sig { params(type: String).void } - attr_writer :type + sig { params(audios_count: Integer).void } + attr_writer :audios_count + + sig { returns(T.nilable(Integer)) } + attr_reader :gifs_count + + sig { params(gifs_count: Integer).void } + attr_writer :gifs_count + + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media + ] + ) + ) + end + attr_reader :medias + + sig do + params( + medias: + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media::OrHash + ] + ).void + end + attr_writer :medias + + sig { returns(T.nilable(Integer)) } + attr_reader :photos_count + + sig { params(photos_count: Integer).void } + attr_writer :photos_count + + sig { returns(T.nilable(Integer)) } + attr_reader :videos_count + + sig { params(videos_count: Integer).void } + attr_writer :videos_count + + sig do + params( + audios_count: Integer, + gifs_count: Integer, + medias: + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media::OrHash + ], + photos_count: Integer, + videos_count: Integer + ).returns(T.attached_class) + end + def self.new( + audios_count: nil, + gifs_count: nil, + medias: nil, + photos_count: nil, + videos_count: nil + ) + end + + sig do + override.returns( + { + audios_count: Integer, + gifs_count: Integer, + medias: + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media + ], + photos_count: Integer, + videos_count: Integer + } + ) + end + def to_hash + end + + class Media < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :type + + sig { params(type: String).void } + attr_writer :type + + sig { returns(T.nilable(String)) } + attr_reader :url + + sig { params(url: String).void } + attr_writer :url + + sig do + params(type: String, url: String).returns(T.attached_class) + end + def self.new(type: nil, url: nil) + end + + sig { override.returns({ type: String, url: String }) } + def to_hash + end + end + end + + class List < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :id + + sig { params(id: Integer).void } + attr_writer :id + + sig { returns(T.nilable(Integer)) } + attr_reader :audios_count + + sig { params(audios_count: Integer).void } + attr_writer :audios_count + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :can_delete + + sig { params(can_delete: T::Boolean).void } + attr_writer :can_delete + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :can_update + + sig { params(can_update: T::Boolean).void } + attr_writer :can_update + + sig { returns(T.nilable(Integer)) } + attr_reader :gifs_count + + sig { params(gifs_count: Integer).void } + attr_writer :gifs_count + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :has_media + + sig { params(has_media: T::Boolean).void } + attr_writer :has_media + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :medias + + sig { params(medias: T::Array[T.anything]).void } + attr_writer :medias + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig { returns(T.nilable(Integer)) } + attr_reader :photos_count + + sig { params(photos_count: Integer).void } + attr_writer :photos_count sig { returns(T.nilable(String)) } - attr_reader :url + attr_reader :type + + sig { params(type: String).void } + attr_writer :type + + sig { returns(T.nilable(Integer)) } + attr_reader :videos_count - sig { params(url: String).void } - attr_writer :url + sig { params(videos_count: Integer).void } + attr_writer :videos_count sig do - params(type: String, url: String).returns(T.attached_class) + params( + id: Integer, + audios_count: Integer, + can_delete: T::Boolean, + can_update: T::Boolean, + gifs_count: Integer, + has_media: T::Boolean, + medias: T::Array[T.anything], + name: String, + photos_count: Integer, + type: String, + videos_count: Integer + ).returns(T.attached_class) end - def self.new(type: nil, url: nil) + def self.new( + id: nil, + audios_count: nil, + can_delete: nil, + can_update: nil, + gifs_count: nil, + has_media: nil, + medias: nil, + name: nil, + photos_count: nil, + type: nil, + videos_count: nil + ) end - sig { override.returns({ type: String, url: String }) } + sig do + override.returns( + { + id: Integer, + audios_count: Integer, + can_delete: T::Boolean, + can_update: T::Boolean, + gifs_count: Integer, + has_media: T::Boolean, + medias: T::Array[T.anything], + name: String, + photos_count: Integer, + type: String, + videos_count: Integer + } + ) + end def to_hash end end end + end + + class UnionMember1 < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1, + Onlyfans::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta + ) + ) + end + attr_reader :_meta - class List < Onlyfans::Internal::Type::BaseModel + sig do + params( + _meta: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::OrHash + ).void + end + attr_writer :_meta + + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data + ) + ) + end + attr_reader :data + + sig do + params( + data: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::OrHash + ).void + end + attr_writer :data + + # Success (lightweight=true) + sig do + params( + _meta: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::OrHash, + data: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::OrHash + ).returns(T.attached_class) + end + def self.new(_meta: nil, data: nil) + end + + sig do + override.returns( + { + _meta: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta, + data: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data + } + ) + end + def to_hash + end + + class Meta < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::Media::Vault::ListListResponse::Data::List, + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(Integer)) } - attr_reader :id + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache + ) + ) + end + attr_reader :_cache - sig { params(id: Integer).void } - attr_writer :id + sig do + params( + _cache: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache::OrHash + ).void + end + attr_writer :_cache - sig { returns(T.nilable(Integer)) } - attr_reader :audios_count + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits + ) + ) + end + attr_reader :_credits - sig { params(audios_count: Integer).void } - attr_writer :audios_count + sig do + params( + _credits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits::OrHash + ).void + end + attr_writer :_credits - sig { returns(T.nilable(T::Boolean)) } - attr_reader :can_delete + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits + ) + ) + end + attr_reader :_rate_limits - sig { params(can_delete: T::Boolean).void } - attr_writer :can_delete + sig do + params( + _rate_limits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits::OrHash + ).void + end + attr_writer :_rate_limits - sig { returns(T.nilable(T::Boolean)) } - attr_reader :can_update + sig do + params( + _cache: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache::OrHash, + _credits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits::OrHash, + _rate_limits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits::OrHash + ).returns(T.attached_class) + end + def self.new(_cache: nil, _credits: nil, _rate_limits: nil) + end - sig { params(can_update: T::Boolean).void } - attr_writer :can_update + sig do + override.returns( + { + _cache: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache, + _credits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits, + _rate_limits: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits + } + ) + end + def to_hash + end - sig { returns(T.nilable(Integer)) } - attr_reader :gifs_count + class Cache < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache, + Onlyfans::Internal::AnyHash + ) + end - sig { params(gifs_count: Integer).void } - attr_writer :gifs_count + sig { returns(T.nilable(T::Boolean)) } + attr_reader :is_cached - sig { returns(T.nilable(T::Boolean)) } - attr_reader :has_media + sig { params(is_cached: T::Boolean).void } + attr_writer :is_cached - sig { params(has_media: T::Boolean).void } - attr_writer :has_media + sig { returns(T.nilable(String)) } + attr_reader :note - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :medias + sig { params(note: String).void } + attr_writer :note - sig { params(medias: T::Array[T.anything]).void } - attr_writer :medias + sig do + params(is_cached: T::Boolean, note: String).returns( + T.attached_class + ) + end + def self.new(is_cached: nil, note: nil) + end - sig { returns(T.nilable(String)) } - attr_reader :name + sig do + override.returns({ is_cached: T::Boolean, note: String }) + end + def to_hash + end + end + + class Credits < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :balance + + sig { params(balance: Integer).void } + attr_writer :balance + + sig { returns(T.nilable(String)) } + attr_reader :note + + sig { params(note: String).void } + attr_writer :note + + sig { returns(T.nilable(Integer)) } + attr_reader :used + + sig { params(used: Integer).void } + attr_writer :used + + sig do + params(balance: Integer, note: String, used: Integer).returns( + T.attached_class + ) + end + def self.new(balance: nil, note: nil, used: nil) + end + + sig do + override.returns( + { balance: Integer, note: String, used: Integer } + ) + end + def to_hash + end + end + + class RateLimits < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :limit_day - sig { params(name: String).void } - attr_writer :name + sig { params(limit_day: Integer).void } + attr_writer :limit_day - sig { returns(T.nilable(Integer)) } - attr_reader :photos_count + sig { returns(T.nilable(Integer)) } + attr_reader :limit_minute - sig { params(photos_count: Integer).void } - attr_writer :photos_count + sig { params(limit_minute: Integer).void } + attr_writer :limit_minute + + sig { returns(T.nilable(Integer)) } + attr_reader :remaining_day + + sig { params(remaining_day: Integer).void } + attr_writer :remaining_day + + sig { returns(T.nilable(Integer)) } + attr_reader :remaining_minute + + sig { params(remaining_minute: Integer).void } + attr_writer :remaining_minute + + sig do + params( + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + ).returns(T.attached_class) + end + def self.new( + limit_day: nil, + limit_minute: nil, + remaining_day: nil, + remaining_minute: nil + ) + end + + sig do + override.returns( + { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + ) + end + def to_hash + end + end + end + + class Data < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data, + Onlyfans::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All + ) + ) + end + attr_reader :all + + sig do + params( + all: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All::OrHash + ).void + end + attr_writer :all + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :can_create_vault_lists + + sig { params(can_create_vault_lists: T::Boolean).void } + attr_writer :can_create_vault_lists + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :has_more + + sig { params(has_more: T::Boolean).void } + attr_writer :has_more + + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List + ] + ) + ) + end + attr_reader :list + + sig do + params( + list: + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List::OrHash + ] + ).void + end + attr_writer :list sig { returns(T.nilable(String)) } - attr_reader :type + attr_reader :order - sig { params(type: String).void } - attr_writer :type + sig { params(order: String).void } + attr_writer :order - sig { returns(T.nilable(Integer)) } - attr_reader :videos_count + sig { returns(T.nilable(String)) } + attr_reader :sort - sig { params(videos_count: Integer).void } - attr_writer :videos_count + sig { params(sort: String).void } + attr_writer :sort sig do params( - id: Integer, - audios_count: Integer, - can_delete: T::Boolean, - can_update: T::Boolean, - gifs_count: Integer, - has_media: T::Boolean, - medias: T::Array[T.anything], - name: String, - photos_count: Integer, - type: String, - videos_count: Integer + all: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All::OrHash, + can_create_vault_lists: T::Boolean, + has_more: T::Boolean, + list: + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List::OrHash + ], + order: String, + sort: String ).returns(T.attached_class) end def self.new( - id: nil, - audios_count: nil, - can_delete: nil, - can_update: nil, - gifs_count: nil, - has_media: nil, - medias: nil, - name: nil, - photos_count: nil, - type: nil, - videos_count: nil + all: nil, + can_create_vault_lists: nil, + has_more: nil, + list: nil, + order: nil, + sort: nil ) end sig do override.returns( { - id: Integer, - audios_count: Integer, - can_delete: T::Boolean, - can_update: T::Boolean, - gifs_count: Integer, - has_media: T::Boolean, - medias: T::Array[T.anything], - name: String, - photos_count: Integer, - type: String, - videos_count: Integer + all: + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All, + can_create_vault_lists: T::Boolean, + has_more: T::Boolean, + list: + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List + ], + order: String, + sort: String } ) end def to_hash end + + class All < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :media_count + + sig { params(media_count: Integer).void } + attr_writer :media_count + + sig { params(media_count: Integer).returns(T.attached_class) } + def self.new(media_count: nil) + end + + sig { override.returns({ media_count: Integer }) } + def to_hash + end + end + + class List < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :id + + sig { params(id: Integer).void } + attr_writer :id + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :can_update + + sig { params(can_update: T::Boolean).void } + attr_writer :can_update + + sig { returns(T.nilable(Integer)) } + attr_reader :media_count + + sig { params(media_count: Integer).void } + attr_writer :media_count + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig { returns(T.nilable(String)) } + attr_reader :type + + sig { params(type: String).void } + attr_writer :type + + sig do + params( + id: Integer, + can_update: T::Boolean, + media_count: Integer, + name: String, + type: String + ).returns(T.attached_class) + end + def self.new( + id: nil, + can_update: nil, + media_count: nil, + name: nil, + type: nil + ) + end + + sig do + override.returns( + { + id: Integer, + can_update: T::Boolean, + media_count: Integer, + name: String, + type: String + } + ) + end + def to_hash + end + end end end + + sig do + override.returns( + T::Array[ + Onlyfans::Models::Media::Vault::ListListResponse::Variants + ] + ) + end + def self.variants + end end end end diff --git a/rbi/onlyfans/models/media/vault/list_update_params.rbi b/rbi/onlyfans/models/media/vault/list_update_params.rbi index b3c3f726..2e45e875 100644 --- a/rbi/onlyfans/models/media/vault/list_update_params.rbi +++ b/rbi/onlyfans/models/media/vault/list_update_params.rbi @@ -22,14 +22,25 @@ module Onlyfans sig { returns(String) } attr_accessor :list_id + # The new name for the vault list. Must not be greater than 255 characters. + sig { returns(String) } + attr_accessor :name + sig do params( account: String, list_id: String, + name: String, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(account:, list_id:, request_options: {}) + def self.new( + account:, + list_id:, + # The new name for the vault list. Must not be greater than 255 characters. + name:, + request_options: {} + ) end sig do @@ -37,6 +48,7 @@ module Onlyfans { account: String, list_id: String, + name: String, request_options: Onlyfans::RequestOptions } ) diff --git a/rbi/onlyfans/models/media/vault_upload_params.rbi b/rbi/onlyfans/models/media/vault_upload_params.rbi index b00396c8..06247112 100644 --- a/rbi/onlyfans/models/media/vault_upload_params.rbi +++ b/rbi/onlyfans/models/media/vault_upload_params.rbi @@ -19,7 +19,9 @@ module Onlyfans attr_accessor :account # Set to `true` to process uploads in the background. Returns a `polling_url` to - # check status. Recommended for large files. + # check status. Recommended for large files. Instead of polling, you can subscribe + # to the `media_uploads.completed` and `media_uploads.failed` webhook events — + # they only fire for async uploads. sig { returns(T.nilable(T::Boolean)) } attr_reader :async @@ -54,7 +56,9 @@ module Onlyfans def self.new( account:, # Set to `true` to process uploads in the background. Returns a `polling_url` to - # check status. Recommended for large files. + # check status. Recommended for large files. Instead of polling, you can subscribe + # to the `media_uploads.completed` and `media_uploads.failed` webhook events — + # they only fire for async uploads. async: nil, # The file to upload. Required if `file_url` is not provided. Maximum file size: # 100 MB (limited by Cloudflare). diff --git a/rbi/onlyfans/models/media_download_response.rbi b/rbi/onlyfans/models/media_download_response.rbi deleted file mode 100644 index 09e4469c..00000000 --- a/rbi/onlyfans/models/media_download_response.rbi +++ /dev/null @@ -1,7 +0,0 @@ -# typed: strong - -module Onlyfans - module Models - MediaDownloadResponse = String - end -end diff --git a/rbi/onlyfans/models/media_upload_params.rbi b/rbi/onlyfans/models/media_upload_params.rbi index ac303cca..b23993a7 100644 --- a/rbi/onlyfans/models/media_upload_params.rbi +++ b/rbi/onlyfans/models/media_upload_params.rbi @@ -15,7 +15,9 @@ module Onlyfans attr_accessor :account # Set to `true` to process uploads in the background. Returns a `polling_url` to - # check status. Recommended for large files. + # check status. Recommended for large files. Instead of polling, you can subscribe + # to the `media_uploads.completed` and `media_uploads.failed` webhook events — + # they only fire for async uploads. sig { returns(T.nilable(T::Boolean)) } attr_reader :async @@ -59,7 +61,9 @@ module Onlyfans def self.new( account:, # Set to `true` to process uploads in the background. Returns a `polling_url` to - # check status. Recommended for large files. + # check status. Recommended for large files. Instead of polling, you can subscribe + # to the `media_uploads.completed` and `media_uploads.failed` webhook events — + # they only fire for async uploads. async: nil, # The file to upload. Required if `file_url` is not provided. Maximum file size: # 100 MB (limited by Cloudflare). diff --git a/rbi/onlyfans/models/message_attach_tags_params.rbi b/rbi/onlyfans/models/message_attach_tags_params.rbi deleted file mode 100644 index 24a9475a..00000000 --- a/rbi/onlyfans/models/message_attach_tags_params.rbi +++ /dev/null @@ -1,80 +0,0 @@ -# typed: strong - -module Onlyfans - module Models - class MessageAttachTagsParams < Onlyfans::Internal::Type::BaseModel - extend Onlyfans::Internal::Type::RequestParameters::Converter - include Onlyfans::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Onlyfans::MessageAttachTagsParams, Onlyfans::Internal::AnyHash) - end - - sig { returns(String) } - attr_accessor :account - - sig { returns(String) } - attr_accessor :message_id - - # Array of OnlyFans Release Form Guest IDs to tag in your message - sig { returns(T.nilable(String)) } - attr_reader :rf_guest - - sig { params(rf_guest: String).void } - attr_writer :rf_guest - - # Array of OnlyFans Release Form Partners IDs to tag in your message - sig { returns(T.nilable(String)) } - attr_reader :rf_partner - - sig { params(rf_partner: String).void } - attr_writer :rf_partner - - # Array of OnlyFans Creator User IDs to tag in your message - sig { returns(T.nilable(String)) } - attr_reader :rf_tag - - sig { params(rf_tag: String).void } - attr_writer :rf_tag - - sig do - params( - account: String, - message_id: String, - rf_guest: String, - rf_partner: String, - rf_tag: String, - request_options: Onlyfans::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - account:, - message_id:, - # Array of OnlyFans Release Form Guest IDs to tag in your message - rf_guest: nil, - # Array of OnlyFans Release Form Partners IDs to tag in your message - rf_partner: nil, - # Array of OnlyFans Creator User IDs to tag in your message - rf_tag: nil, - request_options: {} - ) - end - - sig do - override.returns( - { - account: String, - message_id: String, - rf_guest: String, - rf_partner: String, - rf_tag: String, - request_options: Onlyfans::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/onlyfans/models/message_attach_tags_response.rbi b/rbi/onlyfans/models/message_attach_tags_response.rbi deleted file mode 100644 index a8b9488a..00000000 --- a/rbi/onlyfans/models/message_attach_tags_response.rbi +++ /dev/null @@ -1,308 +0,0 @@ -# typed: strong - -module Onlyfans - module Models - class MessageAttachTagsResponse < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::MessageAttachTagsResponse, - Onlyfans::Internal::AnyHash - ) - end - - sig do - returns(T.nilable(Onlyfans::Models::MessageAttachTagsResponse::Meta)) - end - attr_reader :_meta - - sig do - params( - _meta: Onlyfans::Models::MessageAttachTagsResponse::Meta::OrHash - ).void - end - attr_writer :_meta - - sig do - returns(T.nilable(Onlyfans::Models::MessageAttachTagsResponse::Data)) - end - attr_reader :data - - sig do - params( - data: Onlyfans::Models::MessageAttachTagsResponse::Data::OrHash - ).void - end - attr_writer :data - - sig do - params( - _meta: Onlyfans::Models::MessageAttachTagsResponse::Meta::OrHash, - data: Onlyfans::Models::MessageAttachTagsResponse::Data::OrHash - ).returns(T.attached_class) - end - def self.new(_meta: nil, data: nil) - end - - sig do - override.returns( - { - _meta: Onlyfans::Models::MessageAttachTagsResponse::Meta, - data: Onlyfans::Models::MessageAttachTagsResponse::Data - } - ) - end - def to_hash - end - - class Meta < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::MessageAttachTagsResponse::Meta, - Onlyfans::Internal::AnyHash - ) - end - - sig do - returns( - T.nilable(Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache) - ) - end - attr_reader :_cache - - sig do - params( - _cache: - Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache::OrHash - ).void - end - attr_writer :_cache - - sig do - returns( - T.nilable( - Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits - ) - ) - end - attr_reader :_credits - - sig do - params( - _credits: - Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits::OrHash - ).void - end - attr_writer :_credits - - sig do - returns( - T.nilable( - Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits - ) - ) - end - attr_reader :_rate_limits - - sig do - params( - _rate_limits: - Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits::OrHash - ).void - end - attr_writer :_rate_limits - - sig do - params( - _cache: - Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache::OrHash, - _credits: - Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits::OrHash, - _rate_limits: - Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits::OrHash - ).returns(T.attached_class) - end - def self.new(_cache: nil, _credits: nil, _rate_limits: nil) - end - - sig do - override.returns( - { - _cache: Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache, - _credits: - Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits, - _rate_limits: - Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits - } - ) - end - def to_hash - end - - class Cache < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache, - Onlyfans::Internal::AnyHash - ) - end - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :is_cached - - sig { params(is_cached: T::Boolean).void } - attr_writer :is_cached - - sig { returns(T.nilable(String)) } - attr_reader :note - - sig { params(note: String).void } - attr_writer :note - - sig do - params(is_cached: T::Boolean, note: String).returns( - T.attached_class - ) - end - def self.new(is_cached: nil, note: nil) - end - - sig { override.returns({ is_cached: T::Boolean, note: String }) } - def to_hash - end - end - - class Credits < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits, - Onlyfans::Internal::AnyHash - ) - end - - sig { returns(T.nilable(Integer)) } - attr_reader :balance - - sig { params(balance: Integer).void } - attr_writer :balance - - sig { returns(T.nilable(String)) } - attr_reader :note - - sig { params(note: String).void } - attr_writer :note - - sig { returns(T.nilable(Integer)) } - attr_reader :used - - sig { params(used: Integer).void } - attr_writer :used - - sig do - params(balance: Integer, note: String, used: Integer).returns( - T.attached_class - ) - end - def self.new(balance: nil, note: nil, used: nil) - end - - sig do - override.returns({ balance: Integer, note: String, used: Integer }) - end - def to_hash - end - end - - class RateLimits < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits, - Onlyfans::Internal::AnyHash - ) - end - - sig { returns(T.nilable(Integer)) } - attr_reader :limit_day - - sig { params(limit_day: Integer).void } - attr_writer :limit_day - - sig { returns(T.nilable(Integer)) } - attr_reader :limit_minute - - sig { params(limit_minute: Integer).void } - attr_writer :limit_minute - - sig { returns(T.nilable(Integer)) } - attr_reader :remaining_day - - sig { params(remaining_day: Integer).void } - attr_writer :remaining_day - - sig { returns(T.nilable(Integer)) } - attr_reader :remaining_minute - - sig { params(remaining_minute: Integer).void } - attr_writer :remaining_minute - - sig do - params( - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer - ).returns(T.attached_class) - end - def self.new( - limit_day: nil, - limit_minute: nil, - remaining_day: nil, - remaining_minute: nil - ) - end - - sig do - override.returns( - { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer - } - ) - end - def to_hash - end - end - end - - class Data < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::MessageAttachTagsResponse::Data, - Onlyfans::Internal::AnyHash - ) - end - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :success - - sig { params(success: T::Boolean).void } - attr_writer :success - - sig { params(success: T::Boolean).returns(T.attached_class) } - def self.new(success: nil) - end - - sig { override.returns({ success: T::Boolean }) } - def to_hash - end - end - end - end -end diff --git a/rbi/onlyfans/models/notification_list_params.rbi b/rbi/onlyfans/models/notification_list_params.rbi index 7799d84c..51245520 100644 --- a/rbi/onlyfans/models/notification_list_params.rbi +++ b/rbi/onlyfans/models/notification_list_params.rbi @@ -29,7 +29,7 @@ module Onlyfans sig { params(limit: Integer).void } attr_writer :limit - # Whether to skip user details. Default `all` + # Whether to skip user details. Defaults to `all`. sig do returns( T.nilable(Onlyfans::NotificationListParams::SkipUsers::OrSymbol) @@ -72,7 +72,7 @@ module Onlyfans from_id: nil, # The number of notifications. Default `10` limit: nil, - # Whether to skip user details. Default `all` + # Whether to skip user details. Defaults to `all`. skip_users: nil, # Filter notifications by a specific type type: nil, @@ -95,7 +95,7 @@ module Onlyfans def to_hash end - # Whether to skip user details. Default `all` + # Whether to skip user details. Defaults to `all`. module SkipUsers extend Onlyfans::Internal::Type::Enum diff --git a/rbi/onlyfans/models/post_create_params.rbi b/rbi/onlyfans/models/post_create_params.rbi index b25b3161..45912c19 100644 --- a/rbi/onlyfans/models/post_create_params.rbi +++ b/rbi/onlyfans/models/post_create_params.rbi @@ -18,6 +18,25 @@ module Onlyfans sig { returns(String) } attr_accessor :text + # Screen `text` for OnlyFans banned words and block the post if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + sig do + returns( + T.nilable(Onlyfans::PostCreateParams::BlockBannedWords::OrSymbol) + ) + end + attr_reader :block_banned_words + + sig do + params( + block_banned_words: + Onlyfans::PostCreateParams::BlockBannedWords::OrSymbol + ).void + end + attr_writer :block_banned_words + # Number of days after which the post will expire. Between 1 and 30 days. Keep # empty for no expiration. sig { returns(T.nilable(Integer)) } @@ -126,6 +145,8 @@ module Onlyfans params( account: String, text: String, + block_banned_words: + Onlyfans::PostCreateParams::BlockBannedWords::OrSymbol, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: T::Array[String], @@ -146,6 +167,11 @@ module Onlyfans account:, # The post text content text:, + # Screen `text` for OnlyFans banned words and block the post if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + block_banned_words: nil, # Number of days after which the post will expire. Between 1 and 30 days. Keep # empty for no expiration. expire_days: nil, @@ -188,6 +214,8 @@ module Onlyfans { account: String, text: String, + block_banned_words: + Onlyfans::PostCreateParams::BlockBannedWords::OrSymbol, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: T::Array[String], @@ -208,6 +236,44 @@ module Onlyfans def to_hash end + # Screen `text` for OnlyFans banned words and block the post if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::PostCreateParams::BlockBannedWords) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + STRICT_BAN = + T.let( + :strict_ban, + Onlyfans::PostCreateParams::BlockBannedWords::TaggedSymbol + ) + RISKY = + T.let( + :risky, + Onlyfans::PostCreateParams::BlockBannedWords::TaggedSymbol + ) + REPLACE_SOFTEN = + T.let( + :replace_soften, + Onlyfans::PostCreateParams::BlockBannedWords::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Onlyfans::PostCreateParams::BlockBannedWords::TaggedSymbol] + ) + end + def self.values + end + end + # Include a poll or quiz within your post. module VotingType extend Onlyfans::Internal::Type::Enum diff --git a/rbi/onlyfans/models/post_update_params.rbi b/rbi/onlyfans/models/post_update_params.rbi index 7be9b015..b5cb47cd 100644 --- a/rbi/onlyfans/models/post_update_params.rbi +++ b/rbi/onlyfans/models/post_update_params.rbi @@ -21,6 +21,25 @@ module Onlyfans sig { returns(String) } attr_accessor :text + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + sig do + returns( + T.nilable(Onlyfans::PostUpdateParams::BlockBannedWords::OrSymbol) + ) + end + attr_reader :block_banned_words + + sig do + params( + block_banned_words: + Onlyfans::PostUpdateParams::BlockBannedWords::OrSymbol + ).void + end + attr_writer :block_banned_words + # Number of days after which the post will expire. Between 1 and 30 days. Keep # empty for no expiration. sig { returns(T.nilable(Integer)) } @@ -129,6 +148,8 @@ module Onlyfans account: String, post_id: Integer, text: String, + block_banned_words: + Onlyfans::PostUpdateParams::BlockBannedWords::OrSymbol, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: T::Array[String], @@ -150,6 +171,11 @@ module Onlyfans post_id:, # The post text content text:, + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + block_banned_words: nil, # Number of days after which the post will expire. Between 1 and 30 days. Keep # empty for no expiration. expire_days: nil, @@ -192,6 +218,8 @@ module Onlyfans account: String, post_id: Integer, text: String, + block_banned_words: + Onlyfans::PostUpdateParams::BlockBannedWords::OrSymbol, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: T::Array[String], @@ -212,6 +240,44 @@ module Onlyfans def to_hash end + # Screen `text` for OnlyFans banned words and block the update if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::PostUpdateParams::BlockBannedWords) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + STRICT_BAN = + T.let( + :strict_ban, + Onlyfans::PostUpdateParams::BlockBannedWords::TaggedSymbol + ) + RISKY = + T.let( + :risky, + Onlyfans::PostUpdateParams::BlockBannedWords::TaggedSymbol + ) + REPLACE_SOFTEN = + T.let( + :replace_soften, + Onlyfans::PostUpdateParams::BlockBannedWords::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Onlyfans::PostUpdateParams::BlockBannedWords::TaggedSymbol] + ) + end + def self.values + end + end + # Include a poll or quiz within your post. module VotingType extend Onlyfans::Internal::Type::Enum diff --git a/rbi/onlyfans/models/queue_list_params.rbi b/rbi/onlyfans/models/queue_list_params.rbi index 4f6d29b6..0c43347c 100644 --- a/rbi/onlyfans/models/queue_list_params.rbi +++ b/rbi/onlyfans/models/queue_list_params.rbi @@ -14,44 +14,67 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # Maximum number of queue items to return (default = 20) - sig { returns(Integer) } - attr_accessor :limit - - # Latest publish date to return + # Latest publish date to return. Must be a valid date. Must be a valid date. Must + # be a date after or equal to publishDateStart. sig { returns(String) } attr_accessor :publish_date_end - # Earliest publish date to return (must be at least today) + # Earliest publish date to return (must be at least today). Must be a valid date. + # Must be a valid date. Must be a date after or equal to today. sig { returns(String) } attr_accessor :publish_date_start - # Time timezone of the provided dates. - # [View available timezone values](https://www.php.net/manual/en/timezones.php) + # Timezone of the provided dates. + # [View available timezone values](https://www.php.net/manual/en/timezones.php). + # Must be a valid time zone, such as Africa/Accra. sig { returns(String) } attr_accessor :timezone + # Maximum number of queue items to return (default 20). Must be at least 1. Must + # not be greater than 100. + sig { returns(T.nilable(Integer)) } + attr_reader :limit + + sig { params(limit: Integer).void } + attr_writer :limit + + sig do + returns(T.nilable(T::Array[Onlyfans::QueueListParams::Type::OrSymbol])) + end + attr_reader :type + + sig do + params(type: T::Array[Onlyfans::QueueListParams::Type::OrSymbol]).void + end + attr_writer :type + sig do params( account: String, - limit: Integer, publish_date_end: String, publish_date_start: String, timezone: String, + limit: Integer, + type: T::Array[Onlyfans::QueueListParams::Type::OrSymbol], request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( account:, - # Maximum number of queue items to return (default = 20) - limit:, - # Latest publish date to return + # Latest publish date to return. Must be a valid date. Must be a valid date. Must + # be a date after or equal to publishDateStart. publish_date_end:, - # Earliest publish date to return (must be at least today) + # Earliest publish date to return (must be at least today). Must be a valid date. + # Must be a valid date. Must be a date after or equal to today. publish_date_start:, - # Time timezone of the provided dates. - # [View available timezone values](https://www.php.net/manual/en/timezones.php) + # Timezone of the provided dates. + # [View available timezone values](https://www.php.net/manual/en/timezones.php). + # Must be a valid time zone, such as Africa/Accra. timezone:, + # Maximum number of queue items to return (default 20). Must be at least 1. Must + # not be greater than 100. + limit: nil, + type: nil, request_options: {} ) end @@ -60,16 +83,36 @@ module Onlyfans override.returns( { account: String, - limit: Integer, publish_date_end: String, publish_date_start: String, timezone: String, + limit: Integer, + type: T::Array[Onlyfans::QueueListParams::Type::OrSymbol], request_options: Onlyfans::RequestOptions } ) end def to_hash end + + module Type + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Onlyfans::QueueListParams::Type) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + CHAT = T.let(:chat, Onlyfans::QueueListParams::Type::TaggedSymbol) + POST = T.let(:post, Onlyfans::QueueListParams::Type::TaggedSymbol) + + sig do + override.returns( + T::Array[Onlyfans::QueueListParams::Type::TaggedSymbol] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/release_form_list_taggable_users_response.rbi b/rbi/onlyfans/models/release_form_list_taggable_users_response.rbi index 8cb41409..b751f074 100644 --- a/rbi/onlyfans/models/release_form_list_taggable_users_response.rbi +++ b/rbi/onlyfans/models/release_form_list_taggable_users_response.rbi @@ -331,11 +331,19 @@ module Onlyfans sig { params(next_page: String).void } attr_writer :next_page - sig { params(next_page: String).returns(T.attached_class) } - def self.new(next_page: nil) + sig { returns(T.nilable(String)) } + attr_reader :notice + + sig { params(notice: String).void } + attr_writer :notice + + sig do + params(next_page: String, notice: String).returns(T.attached_class) + end + def self.new(next_page: nil, notice: nil) end - sig { override.returns({ next_page: String }) } + sig { override.returns({ next_page: String, notice: String }) } def to_hash end end @@ -349,12 +357,6 @@ module Onlyfans ) end - sig { returns(T.nilable(T::Boolean)) } - attr_reader :has_more - - sig { params(has_more: T::Boolean).void } - attr_writer :has_more - sig do returns( T.nilable( @@ -378,20 +380,18 @@ module Onlyfans sig do params( - has_more: T::Boolean, items: T::Array[ Onlyfans::Models::ReleaseFormListTaggableUsersResponse::Data::Item::OrHash ] ).returns(T.attached_class) end - def self.new(has_more: nil, items: nil) + def self.new(items: nil) end sig do override.returns( { - has_more: T::Boolean, items: T::Array[ Onlyfans::Models::ReleaseFormListTaggableUsersResponse::Data::Item diff --git a/rbi/onlyfans/models/shared_tracking_link_list_params.rbi b/rbi/onlyfans/models/shared_tracking_link_list_params.rbi index 16e5793d..d0c51811 100644 --- a/rbi/onlyfans/models/shared_tracking_link_list_params.rbi +++ b/rbi/onlyfans/models/shared_tracking_link_list_params.rbi @@ -17,43 +17,124 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The number of shared tracking links to return. Default `10` + # The number of shared tracking links to return. Default `10`. Must be at least 1. + # Must not be greater than 100. sig { returns(T.nilable(Integer)) } attr_reader :limit sig { params(limit: Integer).void } attr_writer :limit - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :offset sig { params(offset: Integer).void } attr_writer :offset - # Wait for the database sync to finish, instead of running it in the background. - # **Will result in longer response times, use with caution**. Default `false` + # Whether pagination metadata is enabled. Default `1`. + sig do + returns( + T.nilable( + Onlyfans::SharedTrackingLinkListParams::Pagination::OrInteger + ) + ) + end + attr_reader :pagination + + sig do + params( + pagination: + Onlyfans::SharedTrackingLinkListParams::Pagination::OrInteger + ).void + end + attr_writer :pagination + + # Whether deleted links participate in sorting. Default `1`. + sig do + returns( + T.nilable( + Onlyfans::SharedTrackingLinkListParams::SortingDeleted::OrInteger + ) + ) + end + attr_reader :sorting_deleted + + sig do + params( + sorting_deleted: + Onlyfans::SharedTrackingLinkListParams::SortingDeleted::OrInteger + ).void + end + attr_writer :sorting_deleted + + # Whether statistics are included. Default `true`. Must not be greater than 10 + # characters. + sig { returns(T.nilable(String)) } + attr_reader :stats + + sig { params(stats: String).void } + attr_writer :stats + + # Wait for the database sync instead of processing it in the background. sig { returns(T.nilable(T::Boolean)) } - attr_accessor :synchronous + attr_reader :synchronous + + sig { params(synchronous: T::Boolean).void } + attr_writer :synchronous + + # Whether to include deleted shared tracking links. Default `1`. + sig do + returns( + T.nilable( + Onlyfans::SharedTrackingLinkListParams::WithDeleted::OrInteger + ) + ) + end + attr_reader :with_deleted + + sig do + params( + with_deleted: + Onlyfans::SharedTrackingLinkListParams::WithDeleted::OrInteger + ).void + end + attr_writer :with_deleted sig do params( account: String, limit: Integer, offset: Integer, - synchronous: T.nilable(T::Boolean), + pagination: + Onlyfans::SharedTrackingLinkListParams::Pagination::OrInteger, + sorting_deleted: + Onlyfans::SharedTrackingLinkListParams::SortingDeleted::OrInteger, + stats: String, + synchronous: T::Boolean, + with_deleted: + Onlyfans::SharedTrackingLinkListParams::WithDeleted::OrInteger, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( account:, - # The number of shared tracking links to return. Default `10` + # The number of shared tracking links to return. Default `10`. Must be at least 1. + # Must not be greater than 100. limit: nil, - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. offset: nil, - # Wait for the database sync to finish, instead of running it in the background. - # **Will result in longer response times, use with caution**. Default `false` + # Whether pagination metadata is enabled. Default `1`. + pagination: nil, + # Whether deleted links participate in sorting. Default `1`. + sorting_deleted: nil, + # Whether statistics are included. Default `true`. Must not be greater than 10 + # characters. + stats: nil, + # Wait for the database sync instead of processing it in the background. synchronous: nil, + # Whether to include deleted shared tracking links. Default `1`. + with_deleted: nil, request_options: {} ) end @@ -64,13 +145,119 @@ module Onlyfans account: String, limit: Integer, offset: Integer, - synchronous: T.nilable(T::Boolean), + pagination: + Onlyfans::SharedTrackingLinkListParams::Pagination::OrInteger, + sorting_deleted: + Onlyfans::SharedTrackingLinkListParams::SortingDeleted::OrInteger, + stats: String, + synchronous: T::Boolean, + with_deleted: + Onlyfans::SharedTrackingLinkListParams::WithDeleted::OrInteger, request_options: Onlyfans::RequestOptions } ) end def to_hash end + + # Whether pagination metadata is enabled. Default `1`. + module Pagination + extend Onlyfans::Internal::Type::Enum + + TaggedInteger = + T.type_alias do + T.all(Integer, Onlyfans::SharedTrackingLinkListParams::Pagination) + end + OrInteger = T.type_alias { Integer } + + PAGINATION_0 = + T.let( + 0, + Onlyfans::SharedTrackingLinkListParams::Pagination::TaggedInteger + ) + PAGINATION_1 = + T.let( + 1, + Onlyfans::SharedTrackingLinkListParams::Pagination::TaggedInteger + ) + + sig do + override.returns( + T::Array[ + Onlyfans::SharedTrackingLinkListParams::Pagination::TaggedInteger + ] + ) + end + def self.values + end + end + + # Whether deleted links participate in sorting. Default `1`. + module SortingDeleted + extend Onlyfans::Internal::Type::Enum + + TaggedInteger = + T.type_alias do + T.all( + Integer, + Onlyfans::SharedTrackingLinkListParams::SortingDeleted + ) + end + OrInteger = T.type_alias { Integer } + + SORTING_DELETED_0 = + T.let( + 0, + Onlyfans::SharedTrackingLinkListParams::SortingDeleted::TaggedInteger + ) + SORTING_DELETED_1 = + T.let( + 1, + Onlyfans::SharedTrackingLinkListParams::SortingDeleted::TaggedInteger + ) + + sig do + override.returns( + T::Array[ + Onlyfans::SharedTrackingLinkListParams::SortingDeleted::TaggedInteger + ] + ) + end + def self.values + end + end + + # Whether to include deleted shared tracking links. Default `1`. + module WithDeleted + extend Onlyfans::Internal::Type::Enum + + TaggedInteger = + T.type_alias do + T.all(Integer, Onlyfans::SharedTrackingLinkListParams::WithDeleted) + end + OrInteger = T.type_alias { Integer } + + WITH_DELETED_0 = + T.let( + 0, + Onlyfans::SharedTrackingLinkListParams::WithDeleted::TaggedInteger + ) + WITH_DELETED_1 = + T.let( + 1, + Onlyfans::SharedTrackingLinkListParams::WithDeleted::TaggedInteger + ) + + sig do + override.returns( + T::Array[ + Onlyfans::SharedTrackingLinkListParams::WithDeleted::TaggedInteger + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/shared_trial_link_list_params.rbi b/rbi/onlyfans/models/shared_trial_link_list_params.rbi index e07e9313..97c415e7 100644 --- a/rbi/onlyfans/models/shared_trial_link_list_params.rbi +++ b/rbi/onlyfans/models/shared_trial_link_list_params.rbi @@ -17,42 +17,62 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The number of shared trial links to return. Default `10` + # The number of shared trial links to return. Default `10`. Must be at least 1. + # Must not be greater than 100. sig { returns(T.nilable(Integer)) } attr_reader :limit sig { params(limit: Integer).void } attr_writer :limit - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. sig { returns(T.nilable(Integer)) } attr_reader :offset sig { params(offset: Integer).void } attr_writer :offset - # Wait for the database sync to finish, instead of running it in the background. - # **Will result in longer response times, use with caution**. Default `false` + sig do + returns( + T.nilable(Onlyfans::SharedTrialLinkListParams::Pagination::OrInteger) + ) + end + attr_reader :pagination + + sig do + params( + pagination: Onlyfans::SharedTrialLinkListParams::Pagination::OrInteger + ).void + end + attr_writer :pagination + + # Wait for the database sync instead of processing it in the background. sig { returns(T.nilable(T::Boolean)) } - attr_accessor :synchronous + attr_reader :synchronous + + sig { params(synchronous: T::Boolean).void } + attr_writer :synchronous sig do params( account: String, limit: Integer, offset: Integer, - synchronous: T.nilable(T::Boolean), + pagination: + Onlyfans::SharedTrialLinkListParams::Pagination::OrInteger, + synchronous: T::Boolean, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( account:, - # The number of shared trial links to return. Default `10` + # The number of shared trial links to return. Default `10`. Must be at least 1. + # Must not be greater than 100. limit: nil, - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. offset: nil, - # Wait for the database sync to finish, instead of running it in the background. - # **Will result in longer response times, use with caution**. Default `false` + pagination: nil, + # Wait for the database sync instead of processing it in the background. synchronous: nil, request_options: {} ) @@ -64,13 +84,46 @@ module Onlyfans account: String, limit: Integer, offset: Integer, - synchronous: T.nilable(T::Boolean), + pagination: + Onlyfans::SharedTrialLinkListParams::Pagination::OrInteger, + synchronous: T::Boolean, request_options: Onlyfans::RequestOptions } ) end def to_hash end + + module Pagination + extend Onlyfans::Internal::Type::Enum + + TaggedInteger = + T.type_alias do + T.all(Integer, Onlyfans::SharedTrialLinkListParams::Pagination) + end + OrInteger = T.type_alias { Integer } + + PAGINATION_0 = + T.let( + 0, + Onlyfans::SharedTrialLinkListParams::Pagination::TaggedInteger + ) + PAGINATION_1 = + T.let( + 1, + Onlyfans::SharedTrialLinkListParams::Pagination::TaggedInteger + ) + + sig do + override.returns( + T::Array[ + Onlyfans::SharedTrialLinkListParams::Pagination::TaggedInteger + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/smart_link_create_response.rbi b/rbi/onlyfans/models/smart_link_create_response.rbi index 976a9e68..05efaa6e 100644 --- a/rbi/onlyfans/models/smart_link_create_response.rbi +++ b/rbi/onlyfans/models/smart_link_create_response.rbi @@ -359,7 +359,10 @@ module Onlyfans attr_writer :name sig { returns(T.nilable(String)) } - attr_accessor :revenue + attr_reader :revenue + + sig { params(revenue: String).void } + attr_writer :revenue sig { returns(T.nilable(Integer)) } attr_reader :subscribers_count @@ -391,7 +394,7 @@ module Onlyfans free_trial_days: Integer, link_type: String, name: String, - revenue: T.nilable(String), + revenue: String, subscribers_count: Integer, traffic_redirect_url: String, updated_at: String @@ -426,7 +429,7 @@ module Onlyfans free_trial_days: Integer, link_type: String, name: String, - revenue: T.nilable(String), + revenue: String, subscribers_count: Integer, traffic_redirect_url: String, updated_at: String diff --git a/rbi/onlyfans/models/smart_link_list_conversions_params.rbi b/rbi/onlyfans/models/smart_link_list_conversions_params.rbi index 73871178..62bef97e 100644 --- a/rbi/onlyfans/models/smart_link_list_conversions_params.rbi +++ b/rbi/onlyfans/models/smart_link_list_conversions_params.rbi @@ -169,6 +169,11 @@ module Onlyfans :message_received, Onlyfans::SmartLinkListConversionsParams::ConversionType::TaggedSymbol ) + FAN_SENT_1_MESSAGE = + T.let( + :fan_sent_1_message, + Onlyfans::SmartLinkListConversionsParams::ConversionType::TaggedSymbol + ) FAN_SENT_3_MESSAGES = T.let( :fan_sent_3_messages, diff --git a/rbi/onlyfans/models/smart_link_list_fans_params.rbi b/rbi/onlyfans/models/smart_link_list_fans_params.rbi index 727a2013..70b54bb6 100644 --- a/rbi/onlyfans/models/smart_link_list_fans_params.rbi +++ b/rbi/onlyfans/models/smart_link_list_fans_params.rbi @@ -56,6 +56,14 @@ module Onlyfans sig { params(offset: Integer).void } attr_writer :offset + # Optional - Filter to returning subscribers (fans previously subscribed before + # this subscription) + sig { returns(T.nilable(T::Boolean)) } + attr_reader :previously_subscribed + + sig { params(previously_subscribed: T::Boolean).void } + attr_writer :previously_subscribed + # Optional sort field. Default `-revenue_net` sig do returns(T.nilable(Onlyfans::SmartLinkListFansParams::Sort::OrSymbol)) @@ -67,6 +75,13 @@ module Onlyfans end attr_writer :sort + # Optional - Filter to fans who subscribed via a promotion/offer + sig { returns(T.nilable(T::Boolean)) } + attr_reader :subscribed_using_promo + + sig { params(subscribed_using_promo: T::Boolean).void } + attr_writer :subscribed_using_promo + sig do params( smart_link_id: String, @@ -76,7 +91,9 @@ module Onlyfans min_revenue_net: Float, min_tips_net: Float, offset: Integer, + previously_subscribed: T::Boolean, sort: Onlyfans::SmartLinkListFansParams::Sort::OrSymbol, + subscribed_using_promo: T::Boolean, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end @@ -94,8 +111,13 @@ module Onlyfans min_tips_net: nil, # Offset for pagination. Default `0` offset: nil, + # Optional - Filter to returning subscribers (fans previously subscribed before + # this subscription) + previously_subscribed: nil, # Optional sort field. Default `-revenue_net` sort: nil, + # Optional - Filter to fans who subscribed via a promotion/offer + subscribed_using_promo: nil, request_options: {} ) end @@ -110,7 +132,9 @@ module Onlyfans min_revenue_net: Float, min_tips_net: Float, offset: Integer, + previously_subscribed: T::Boolean, sort: Onlyfans::SmartLinkListFansParams::Sort::OrSymbol, + subscribed_using_promo: T::Boolean, request_options: Onlyfans::RequestOptions } ) diff --git a/rbi/onlyfans/models/smart_link_list_fans_response.rbi b/rbi/onlyfans/models/smart_link_list_fans_response.rbi index d813e3fe..0db8f80f 100644 --- a/rbi/onlyfans/models/smart_link_list_fans_response.rbi +++ b/rbi/onlyfans/models/smart_link_list_fans_response.rbi @@ -323,12 +323,18 @@ module Onlyfans sig { params(offset: Integer).void } attr_writer :offset + sig { returns(T.nilable(String)) } + attr_accessor :previously_subscribed + sig { returns(T.nilable(String)) } attr_reader :sort sig { params(sort: String).void } attr_writer :sort + sig { returns(T.nilable(String)) } + attr_accessor :subscribed_using_promo + sig do params( has_messages: T.nilable(String), @@ -337,7 +343,9 @@ module Onlyfans min_revenue_net: T.nilable(String), min_tips_net: T.nilable(String), offset: Integer, - sort: String + previously_subscribed: T.nilable(String), + sort: String, + subscribed_using_promo: T.nilable(String) ).returns(T.attached_class) end def self.new( @@ -347,7 +355,9 @@ module Onlyfans min_revenue_net: nil, min_tips_net: nil, offset: nil, - sort: nil + previously_subscribed: nil, + sort: nil, + subscribed_using_promo: nil ) end @@ -360,7 +370,9 @@ module Onlyfans min_revenue_net: T.nilable(String), min_tips_net: T.nilable(String), offset: Integer, - sort: String + previously_subscribed: T.nilable(String), + sort: String, + subscribed_using_promo: T.nilable(String) } ) end @@ -437,6 +449,23 @@ module Onlyfans sig { params(revenue_net: Integer).void } attr_writer :revenue_net + sig do + returns( + T.nilable( + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights + ) + ) + end + attr_reader :subscription_insights + + sig do + params( + subscription_insights: + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::OrHash + ).void + end + attr_writer :subscription_insights + sig { returns(T.nilable(Integer)) } attr_reader :tips_net @@ -461,6 +490,8 @@ module Onlyfans name: String, onlyfans_id: String, revenue_net: Integer, + subscription_insights: + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::OrHash, tips_net: Integer, username: String ).returns(T.attached_class) @@ -476,6 +507,7 @@ module Onlyfans name: nil, onlyfans_id: nil, revenue_net: nil, + subscription_insights: nil, tips_net: nil, username: nil ) @@ -494,6 +526,8 @@ module Onlyfans name: String, onlyfans_id: String, revenue_net: Integer, + subscription_insights: + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights, tips_net: Integer, username: String } @@ -501,6 +535,165 @@ module Onlyfans end def to_hash end + + class SubscriptionInsights < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights, + Onlyfans::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription + ) + ) + end + attr_reader :current_subscription + + sig do + params( + current_subscription: + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription::OrHash + ).void + end + attr_writer :current_subscription + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :current_subscription_from_smart_link + + sig do + params(current_subscription_from_smart_link: T::Boolean).void + end + attr_writer :current_subscription_from_smart_link + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :has_subscription_data + + sig { params(has_subscription_data: T::Boolean).void } + attr_writer :has_subscription_data + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :previously_subscribed + + sig { params(previously_subscribed: T::Boolean).void } + attr_writer :previously_subscribed + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :subscribed_using_promo + + sig { params(subscribed_using_promo: T::Boolean).void } + attr_writer :subscribed_using_promo + + sig do + params( + current_subscription: + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription::OrHash, + current_subscription_from_smart_link: T::Boolean, + has_subscription_data: T::Boolean, + previously_subscribed: T::Boolean, + subscribed_using_promo: T::Boolean + ).returns(T.attached_class) + end + def self.new( + current_subscription: nil, + current_subscription_from_smart_link: nil, + has_subscription_data: nil, + previously_subscribed: nil, + subscribed_using_promo: nil + ) + end + + sig do + override.returns( + { + current_subscription: + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription, + current_subscription_from_smart_link: T::Boolean, + has_subscription_data: T::Boolean, + previously_subscribed: T::Boolean, + subscribed_using_promo: T::Boolean + } + ) + end + def to_hash + end + + class CurrentSubscription < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :action + + sig { params(action: String).void } + attr_writer :action + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :is_free + + sig { params(is_free: T::Boolean).void } + attr_writer :is_free + + sig { returns(T.nilable(Integer)) } + attr_reader :price + + sig { params(price: Integer).void } + attr_writer :price + + sig { returns(T.nilable(Integer)) } + attr_reader :regular_price + + sig { params(regular_price: Integer).void } + attr_writer :regular_price + + sig { returns(T.nilable(String)) } + attr_reader :type + + sig { params(type: String).void } + attr_writer :type + + sig do + params( + action: String, + is_free: T::Boolean, + price: Integer, + regular_price: Integer, + type: String + ).returns(T.attached_class) + end + def self.new( + action: nil, + is_free: nil, + price: nil, + regular_price: nil, + type: nil + ) + end + + sig do + override.returns( + { + action: String, + is_free: T::Boolean, + price: Integer, + regular_price: Integer, + type: String + } + ) + end + def to_hash + end + end + end end class Summary < Onlyfans::Internal::Type::BaseModel @@ -518,6 +711,12 @@ module Onlyfans sig { params(fans_total: Integer).void } attr_writer :fans_total + sig { returns(T.nilable(Integer)) } + attr_reader :fans_with_1_plus_messages_total + + sig { params(fans_with_1_plus_messages_total: Integer).void } + attr_writer :fans_with_1_plus_messages_total + sig { returns(T.nilable(Integer)) } attr_reader :fans_with_3_plus_messages_total @@ -539,6 +738,7 @@ module Onlyfans sig do params( fans_total: Integer, + fans_with_1_plus_messages_total: Integer, fans_with_3_plus_messages_total: Integer, revenue_net_total: Integer, tips_net_total: Integer @@ -546,6 +746,7 @@ module Onlyfans end def self.new( fans_total: nil, + fans_with_1_plus_messages_total: nil, fans_with_3_plus_messages_total: nil, revenue_net_total: nil, tips_net_total: nil @@ -556,6 +757,7 @@ module Onlyfans override.returns( { fans_total: Integer, + fans_with_1_plus_messages_total: Integer, fans_with_3_plus_messages_total: Integer, revenue_net_total: Integer, tips_net_total: Integer diff --git a/rbi/onlyfans/models/smart_link_list_params.rbi b/rbi/onlyfans/models/smart_link_list_params.rbi index 30e4fe8c..66fcd0bf 100644 --- a/rbi/onlyfans/models/smart_link_list_params.rbi +++ b/rbi/onlyfans/models/smart_link_list_params.rbi @@ -15,6 +15,12 @@ module Onlyfans sig { returns(T.nilable(String)) } attr_accessor :account_ids + sig { returns(T.nilable(Onlyfans::SmartLinkListParams::Filter)) } + attr_reader :filter + + sig { params(filter: Onlyfans::SmartLinkListParams::Filter::OrHash).void } + attr_writer :filter + # The number of Smart Links to return. Default `50`. Must be at least 1. Must not # be greater than 1000. sig { returns(T.nilable(Integer)) } @@ -23,10 +29,6 @@ module Onlyfans sig { params(limit: Integer).void } attr_writer :limit - # Comma-separated Meta Pixel IDs to include. - sig { returns(T.nilable(String)) } - attr_accessor :meta_pixel_ids - # Filter Smart Links by name. Must not be greater than 255 characters. sig { returns(T.nilable(String)) } attr_accessor :name @@ -38,28 +40,34 @@ module Onlyfans sig { params(offset: Integer).void } attr_writer :offset + # Comma-separated ad platform Pixel IDs to include. + sig { returns(T.nilable(String)) } + attr_accessor :pixel_ids + sig do params( account_ids: T.nilable(String), + filter: Onlyfans::SmartLinkListParams::Filter::OrHash, limit: Integer, - meta_pixel_ids: T.nilable(String), name: T.nilable(String), offset: Integer, + pixel_ids: T.nilable(String), request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( # Comma-separated account prefixed IDs to include. account_ids: nil, + filter: nil, # The number of Smart Links to return. Default `50`. Must be at least 1. Must not # be greater than 1000. limit: nil, - # Comma-separated Meta Pixel IDs to include. - meta_pixel_ids: nil, # Filter Smart Links by name. Must not be greater than 255 characters. name: nil, # The offset used for pagination. Default `0`. Must be at least 0. offset: nil, + # Comma-separated ad platform Pixel IDs to include. + pixel_ids: nil, request_options: {} ) end @@ -68,16 +76,45 @@ module Onlyfans override.returns( { account_ids: T.nilable(String), + filter: Onlyfans::SmartLinkListParams::Filter, limit: Integer, - meta_pixel_ids: T.nilable(String), name: T.nilable(String), offset: Integer, + pixel_ids: T.nilable(String), request_options: Onlyfans::RequestOptions } ) end def to_hash end + + class Filter < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::SmartLinkListParams::Filter, + Onlyfans::Internal::AnyHash + ) + end + + # Must not be greater than 50 characters. + sig { returns(T.nilable(T::Array[String])) } + attr_reader :tags + + sig { params(tags: T::Array[String]).void } + attr_writer :tags + + sig { params(tags: T::Array[String]).returns(T.attached_class) } + def self.new( + # Must not be greater than 50 characters. + tags: nil + ) + end + + sig { override.returns({ tags: T::Array[String] }) } + def to_hash + end + end end end end diff --git a/rbi/onlyfans/models/smart_link_postback_create_params.rbi b/rbi/onlyfans/models/smart_link_postback_create_params.rbi index b17a6626..cfdd1792 100644 --- a/rbi/onlyfans/models/smart_link_postback_create_params.rbi +++ b/rbi/onlyfans/models/smart_link_postback_create_params.rbi @@ -27,11 +27,53 @@ module Onlyfans end attr_accessor :smart_link_scope - # The destination URL. Variables such as `{click_id}`, `{fbclid}`, `{gclid}`, and - # `{ttclid}` are replaced when the postback is dispatched. + # The destination URL. Variables such as `{external_click_id}`, `{fbclid}`, + # `{gclid}`, and `{ttclid}` are replaced when the postback is dispatched. sig { returns(String) } attr_accessor :url + # Optional request body template for POST postbacks. Variables are replaced when + # the postback is dispatched. + sig { returns(T.nilable(String)) } + attr_reader :body + + sig { params(body: String).void } + attr_writer :body + + # Optional request headers. Header values may include postback variables. + sig do + returns( + T.nilable(T::Array[Onlyfans::SmartLinkPostbackCreateParams::Header]) + ) + end + attr_reader :headers + + sig do + params( + headers: + T::Array[Onlyfans::SmartLinkPostbackCreateParams::Header::OrHash] + ).void + end + attr_writer :headers + + # HTTP method used for the postback request. Defaults to `GET` when omitted. + sig do + returns( + T.nilable( + Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod::OrSymbol + ) + ) + end + attr_reader :http_method + + sig do + params( + http_method: + Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod::OrSymbol + ).void + end + attr_writer :http_method + # Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. sig { returns(T.nilable(T::Array[String])) } attr_reader :smart_link_ids @@ -45,6 +87,11 @@ module Onlyfans smart_link_scope: Onlyfans::SmartLinkPostbackCreateParams::SmartLinkScope::OrSymbol, url: String, + body: String, + headers: + T::Array[Onlyfans::SmartLinkPostbackCreateParams::Header::OrHash], + http_method: + Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod::OrSymbol, smart_link_ids: T::Array[String], request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) @@ -55,9 +102,16 @@ module Onlyfans # `global` fires for all Smart Links. `campaign_specific` fires only for selected # Smart Links. smart_link_scope:, - # The destination URL. Variables such as `{click_id}`, `{fbclid}`, `{gclid}`, and - # `{ttclid}` are replaced when the postback is dispatched. + # The destination URL. Variables such as `{external_click_id}`, `{fbclid}`, + # `{gclid}`, and `{ttclid}` are replaced when the postback is dispatched. url:, + # Optional request body template for POST postbacks. Variables are replaced when + # the postback is dispatched. + body: nil, + # Optional request headers. Header values may include postback variables. + headers: nil, + # HTTP method used for the postback request. Defaults to `GET` when omitted. + http_method: nil, # Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. smart_link_ids: nil, request_options: {} @@ -71,6 +125,10 @@ module Onlyfans smart_link_scope: Onlyfans::SmartLinkPostbackCreateParams::SmartLinkScope::OrSymbol, url: String, + body: String, + headers: T::Array[Onlyfans::SmartLinkPostbackCreateParams::Header], + http_method: + Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod::OrSymbol, smart_link_ids: T::Array[String], request_options: Onlyfans::RequestOptions } @@ -114,6 +172,81 @@ module Onlyfans def self.values end end + + class Header < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::SmartLinkPostbackCreateParams::Header, + Onlyfans::Internal::AnyHash + ) + end + + # This field is required when headers._.value is present. Must match + # the regex /\A[A-Za-z0-9!#$%&'_+.^\_`|~-]+\z/. Must not be greater than 100 + # characters. + sig { returns(T.nilable(String)) } + attr_accessor :name + + # Must not be greater than 2000 characters. + sig { returns(T.nilable(String)) } + attr_accessor :value + + sig do + params(name: T.nilable(String), value: T.nilable(String)).returns( + T.attached_class + ) + end + def self.new( + # This field is required when headers._.value is present. Must match + # the regex /\A[A-Za-z0-9!#$%&'_+.^\_`|~-]+\z/. Must not be greater than 100 + # characters. + name: nil, + # Must not be greater than 2000 characters. + value: nil + ) + end + + sig do + override.returns( + { name: T.nilable(String), value: T.nilable(String) } + ) + end + def to_hash + end + end + + # HTTP method used for the postback request. Defaults to `GET` when omitted. + module HTTPMethod + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GET = + T.let( + :GET, + Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod::TaggedSymbol + ) + POST = + T.let( + :POST, + Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/smart_link_postback_create_response.rbi b/rbi/onlyfans/models/smart_link_postback_create_response.rbi index cb085dca..4eb91cf1 100644 --- a/rbi/onlyfans/models/smart_link_postback_create_response.rbi +++ b/rbi/onlyfans/models/smart_link_postback_create_response.rbi @@ -219,6 +219,12 @@ module Onlyfans sig { params(id: Integer).void } attr_writer :id + sig { returns(T.nilable(String)) } + attr_reader :body + + sig { params(body: String).void } + attr_writer :body + sig { returns(T.nilable(T::Array[String])) } attr_reader :conversion_types @@ -231,6 +237,33 @@ module Onlyfans sig { params(created_at: String).void } attr_writer :created_at + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header + ] + ) + ) + end + attr_reader :headers + + sig do + params( + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header::OrHash + ] + ).void + end + attr_writer :headers + + sig { returns(T.nilable(String)) } + attr_reader :http_method + + sig { params(http_method: String).void } + attr_writer :http_method + sig { returns(T.nilable(String)) } attr_accessor :latest_response @@ -267,8 +300,14 @@ module Onlyfans sig do params( id: Integer, + body: String, conversion_types: T::Array[String], created_at: String, + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header::OrHash + ], + http_method: String, latest_response: T.nilable(String), smart_link_ids: T::Array[T.anything], smart_link_scope: String, @@ -279,8 +318,11 @@ module Onlyfans end def self.new( id: nil, + body: nil, conversion_types: nil, created_at: nil, + headers: nil, + http_method: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, @@ -294,8 +336,14 @@ module Onlyfans override.returns( { id: Integer, + body: String, conversion_types: T::Array[String], created_at: String, + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header + ], + http_method: String, latest_response: T.nilable(String), smart_link_ids: T::Array[T.anything], smart_link_scope: String, @@ -307,6 +355,36 @@ module Onlyfans end def to_hash end + + class Header < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig { returns(T.nilable(String)) } + attr_reader :value + + sig { params(value: String).void } + attr_writer :value + + sig { params(name: String, value: String).returns(T.attached_class) } + def self.new(name: nil, value: nil) + end + + sig { override.returns({ name: String, value: String }) } + def to_hash + end + end end end end diff --git a/rbi/onlyfans/models/smart_link_postback_list_response.rbi b/rbi/onlyfans/models/smart_link_postback_list_response.rbi index 00ee617b..2337d7c5 100644 --- a/rbi/onlyfans/models/smart_link_postback_list_response.rbi +++ b/rbi/onlyfans/models/smart_link_postback_list_response.rbi @@ -227,6 +227,12 @@ module Onlyfans sig { params(id: Integer).void } attr_writer :id + sig { returns(T.nilable(String)) } + attr_reader :body + + sig { params(body: String).void } + attr_writer :body + sig { returns(T.nilable(T::Array[String])) } attr_reader :conversion_types @@ -239,6 +245,33 @@ module Onlyfans sig { params(created_at: String).void } attr_writer :created_at + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header + ] + ) + ) + end + attr_reader :headers + + sig do + params( + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header::OrHash + ] + ).void + end + attr_writer :headers + + sig { returns(T.nilable(String)) } + attr_reader :http_method + + sig { params(http_method: String).void } + attr_writer :http_method + sig do returns( T.nilable( @@ -304,8 +337,14 @@ module Onlyfans sig do params( id: Integer, + body: String, conversion_types: T::Array[String], created_at: String, + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header::OrHash + ], + http_method: String, latest_response: Onlyfans::Models::SmartLinkPostbackListResponse::Data::LatestResponse::OrHash, smart_link_ids: T::Array[String], @@ -320,8 +359,11 @@ module Onlyfans end def self.new( id: nil, + body: nil, conversion_types: nil, created_at: nil, + headers: nil, + http_method: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, @@ -335,8 +377,14 @@ module Onlyfans override.returns( { id: Integer, + body: String, conversion_types: T::Array[String], created_at: String, + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header + ], + http_method: String, latest_response: Onlyfans::Models::SmartLinkPostbackListResponse::Data::LatestResponse, smart_link_ids: T::Array[String], @@ -353,6 +401,36 @@ module Onlyfans def to_hash end + class Header < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig { returns(T.nilable(String)) } + attr_reader :value + + sig { params(value: String).void } + attr_writer :value + + sig { params(name: String, value: String).returns(T.attached_class) } + def self.new(name: nil, value: nil) + end + + sig { override.returns({ name: String, value: String }) } + def to_hash + end + end + class LatestResponse < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/onlyfans/models/smart_link_postback_retrieve_response.rbi b/rbi/onlyfans/models/smart_link_postback_retrieve_response.rbi index aac6f55b..2e8bd979 100644 --- a/rbi/onlyfans/models/smart_link_postback_retrieve_response.rbi +++ b/rbi/onlyfans/models/smart_link_postback_retrieve_response.rbi @@ -222,6 +222,12 @@ module Onlyfans sig { params(id: Integer).void } attr_writer :id + sig { returns(T.nilable(String)) } + attr_reader :body + + sig { params(body: String).void } + attr_writer :body + sig { returns(T.nilable(T::Array[String])) } attr_reader :conversion_types @@ -234,6 +240,33 @@ module Onlyfans sig { params(created_at: String).void } attr_writer :created_at + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header + ] + ) + ) + end + attr_reader :headers + + sig do + params( + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header::OrHash + ] + ).void + end + attr_writer :headers + + sig { returns(T.nilable(String)) } + attr_reader :http_method + + sig { params(http_method: String).void } + attr_writer :http_method + sig { returns(T.nilable(String)) } attr_accessor :latest_response @@ -285,8 +318,14 @@ module Onlyfans sig do params( id: Integer, + body: String, conversion_types: T::Array[String], created_at: String, + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header::OrHash + ], + http_method: String, latest_response: T.nilable(String), smart_link_ids: T::Array[String], smart_link_scope: String, @@ -300,8 +339,11 @@ module Onlyfans end def self.new( id: nil, + body: nil, conversion_types: nil, created_at: nil, + headers: nil, + http_method: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, @@ -315,8 +357,14 @@ module Onlyfans override.returns( { id: Integer, + body: String, conversion_types: T::Array[String], created_at: String, + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header + ], + http_method: String, latest_response: T.nilable(String), smart_link_ids: T::Array[String], smart_link_scope: String, @@ -332,6 +380,36 @@ module Onlyfans def to_hash end + class Header < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig { returns(T.nilable(String)) } + attr_reader :value + + sig { params(value: String).void } + attr_writer :value + + sig { params(name: String, value: String).returns(T.attached_class) } + def self.new(name: nil, value: nil) + end + + sig { override.returns({ name: String, value: String }) } + def to_hash + end + end + class SmartLink < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/onlyfans/models/smart_link_postback_update_params.rbi b/rbi/onlyfans/models/smart_link_postback_update_params.rbi index 0b0cf855..8e9c0780 100644 --- a/rbi/onlyfans/models/smart_link_postback_update_params.rbi +++ b/rbi/onlyfans/models/smart_link_postback_update_params.rbi @@ -33,6 +33,48 @@ module Onlyfans sig { returns(String) } attr_accessor :url + # Optional request body template for POST postbacks. Variables are replaced when + # the postback is dispatched. + sig { returns(T.nilable(String)) } + attr_reader :body + + sig { params(body: String).void } + attr_writer :body + + # Optional request headers. Header values may include postback variables. + sig do + returns( + T.nilable(T::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header]) + ) + end + attr_reader :headers + + sig do + params( + headers: + T::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header::OrHash] + ).void + end + attr_writer :headers + + # HTTP method used for the postback request. Existing value is kept when omitted. + sig do + returns( + T.nilable( + Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod::OrSymbol + ) + ) + end + attr_reader :http_method + + sig do + params( + http_method: + Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod::OrSymbol + ).void + end + attr_writer :http_method + # Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. sig { returns(T.nilable(T::Array[String])) } attr_reader :smart_link_ids @@ -47,6 +89,11 @@ module Onlyfans smart_link_scope: Onlyfans::SmartLinkPostbackUpdateParams::SmartLinkScope::OrSymbol, url: String, + body: String, + headers: + T::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header::OrHash], + http_method: + Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod::OrSymbol, smart_link_ids: T::Array[String], request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) @@ -59,6 +106,13 @@ module Onlyfans smart_link_scope:, # The destination URL. url:, + # Optional request body template for POST postbacks. Variables are replaced when + # the postback is dispatched. + body: nil, + # Optional request headers. Header values may include postback variables. + headers: nil, + # HTTP method used for the postback request. Existing value is kept when omitted. + http_method: nil, # Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. smart_link_ids: nil, request_options: {} @@ -73,6 +127,10 @@ module Onlyfans smart_link_scope: Onlyfans::SmartLinkPostbackUpdateParams::SmartLinkScope::OrSymbol, url: String, + body: String, + headers: T::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header], + http_method: + Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod::OrSymbol, smart_link_ids: T::Array[String], request_options: Onlyfans::RequestOptions } @@ -115,6 +173,81 @@ module Onlyfans def self.values end end + + class Header < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::SmartLinkPostbackUpdateParams::Header, + Onlyfans::Internal::AnyHash + ) + end + + # This field is required when headers._.value is present. Must match + # the regex /\A[A-Za-z0-9!#$%&'_+.^\_`|~-]+\z/. Must not be greater than 100 + # characters. + sig { returns(T.nilable(String)) } + attr_accessor :name + + # Must not be greater than 2000 characters. + sig { returns(T.nilable(String)) } + attr_accessor :value + + sig do + params(name: T.nilable(String), value: T.nilable(String)).returns( + T.attached_class + ) + end + def self.new( + # This field is required when headers._.value is present. Must match + # the regex /\A[A-Za-z0-9!#$%&'_+.^\_`|~-]+\z/. Must not be greater than 100 + # characters. + name: nil, + # Must not be greater than 2000 characters. + value: nil + ) + end + + sig do + override.returns( + { name: T.nilable(String), value: T.nilable(String) } + ) + end + def to_hash + end + end + + # HTTP method used for the postback request. Existing value is kept when omitted. + module HTTPMethod + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GET = + T.let( + :GET, + Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod::TaggedSymbol + ) + POST = + T.let( + :POST, + Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/smart_link_postback_update_response.rbi b/rbi/onlyfans/models/smart_link_postback_update_response.rbi index bfbb1767..151a309d 100644 --- a/rbi/onlyfans/models/smart_link_postback_update_response.rbi +++ b/rbi/onlyfans/models/smart_link_postback_update_response.rbi @@ -219,6 +219,12 @@ module Onlyfans sig { params(id: Integer).void } attr_writer :id + sig { returns(T.nilable(String)) } + attr_reader :body + + sig { params(body: String).void } + attr_writer :body + sig { returns(T.nilable(T::Array[String])) } attr_reader :conversion_types @@ -231,6 +237,33 @@ module Onlyfans sig { params(created_at: String).void } attr_writer :created_at + sig do + returns( + T.nilable( + T::Array[ + Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header + ] + ) + ) + end + attr_reader :headers + + sig do + params( + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header::OrHash + ] + ).void + end + attr_writer :headers + + sig { returns(T.nilable(String)) } + attr_reader :http_method + + sig { params(http_method: String).void } + attr_writer :http_method + sig { returns(T.nilable(String)) } attr_accessor :latest_response @@ -282,8 +315,14 @@ module Onlyfans sig do params( id: Integer, + body: String, conversion_types: T::Array[String], created_at: String, + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header::OrHash + ], + http_method: String, latest_response: T.nilable(String), smart_link_ids: T::Array[String], smart_link_scope: String, @@ -297,8 +336,11 @@ module Onlyfans end def self.new( id: nil, + body: nil, conversion_types: nil, created_at: nil, + headers: nil, + http_method: nil, latest_response: nil, smart_link_ids: nil, smart_link_scope: nil, @@ -312,8 +354,14 @@ module Onlyfans override.returns( { id: Integer, + body: String, conversion_types: T::Array[String], created_at: String, + headers: + T::Array[ + Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header + ], + http_method: String, latest_response: T.nilable(String), smart_link_ids: T::Array[String], smart_link_scope: String, @@ -329,6 +377,36 @@ module Onlyfans def to_hash end + class Header < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig { returns(T.nilable(String)) } + attr_reader :value + + sig { params(value: String).void } + attr_writer :value + + sig { params(name: String, value: String).returns(T.attached_class) } + def self.new(name: nil, value: nil) + end + + sig { override.returns({ name: String, value: String }) } + def to_hash + end + end + class SmartLink < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/onlyfans/models/statistic_calculate_total_transactions_params.rbi b/rbi/onlyfans/models/statistic_calculate_total_transactions_params.rbi index b1dde6f1..62d1b1e4 100644 --- a/rbi/onlyfans/models/statistic_calculate_total_transactions_params.rbi +++ b/rbi/onlyfans/models/statistic_calculate_total_transactions_params.rbi @@ -18,12 +18,18 @@ module Onlyfans attr_accessor :account # The end date for the period. Keep empty to calculate everything. - sig { returns(String) } - attr_accessor :end_date + sig { returns(T.nilable(String)) } + attr_reader :end_date + + sig { params(end_date: String).void } + attr_writer :end_date # The start date for the period. Keep empty to calculate everything. - sig { returns(String) } - attr_accessor :start_date + sig { returns(T.nilable(String)) } + attr_reader :start_date + + sig { params(start_date: String).void } + attr_writer :start_date sig do params( @@ -36,9 +42,9 @@ module Onlyfans def self.new( account:, # The end date for the period. Keep empty to calculate everything. - end_date:, + end_date: nil, # The start date for the period. Keep empty to calculate everything. - start_date:, + start_date: nil, request_options: {} ) end diff --git a/rbi/onlyfans/models/statistic_get_subscriber_metrics_params.rbi b/rbi/onlyfans/models/statistic_get_subscriber_metrics_params.rbi index b9f8e97f..f902b022 100644 --- a/rbi/onlyfans/models/statistic_get_subscriber_metrics_params.rbi +++ b/rbi/onlyfans/models/statistic_get_subscriber_metrics_params.rbi @@ -30,12 +30,27 @@ module Onlyfans sig { returns(T.nilable(T::Boolean)) } attr_accessor :detailed + # Use only with `detailed=true` - otherwise, it has no effect. Filter the + # subscriber statistics (default = total) + sig do + returns( + T.nilable( + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType::OrSymbol + ) + ) + end + attr_accessor :detailed_type + sig do params( account: String, end_date: String, start_date: String, detailed: T.nilable(T::Boolean), + detailed_type: + T.nilable( + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType::OrSymbol + ), request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end @@ -48,6 +63,9 @@ module Onlyfans # Include paid and free fan metrics. Will slow down the response time, and might # time out if timeframe is too large. Default = `false` detailed: nil, + # Use only with `detailed=true` - otherwise, it has no effect. Filter the + # subscriber statistics (default = total) + detailed_type: nil, request_options: {} ) end @@ -59,12 +77,57 @@ module Onlyfans end_date: String, start_date: String, detailed: T.nilable(T::Boolean), + detailed_type: + T.nilable( + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType::OrSymbol + ), request_options: Onlyfans::RequestOptions } ) end def to_hash end + + # Use only with `detailed=true` - otherwise, it has no effect. Filter the + # subscriber statistics (default = total) + module DetailedType + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + TOTAL = + T.let( + :total, + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType::TaggedSymbol + ) + RENEW = + T.let( + :renew, + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType::TaggedSymbol + ) + NEW = + T.let( + :new, + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType::TaggedSymbol + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/statistics/reach_get_profile_visitors_params.rbi b/rbi/onlyfans/models/statistics/reach_get_profile_visitors_params.rbi index a3a24637..9d8857ea 100644 --- a/rbi/onlyfans/models/statistics/reach_get_profile_visitors_params.rbi +++ b/rbi/onlyfans/models/statistics/reach_get_profile_visitors_params.rbi @@ -22,7 +22,7 @@ module Onlyfans sig { returns(String) } attr_accessor :end_date - # The start date for the period + # The start date for the period. sig { returns(String) } attr_accessor :start_date @@ -72,7 +72,7 @@ module Onlyfans account:, # The end date for the period. end_date:, - # The start date for the period + # The start date for the period. start_date:, # Optionally, filter the results by `chart` or `topCountries`. See example # responses. diff --git a/rbi/onlyfans/models/statistics/statement_get_earnings_params.rbi b/rbi/onlyfans/models/statistics/statement_get_earnings_params.rbi index 82a2f44c..e797545a 100644 --- a/rbi/onlyfans/models/statistics/statement_get_earnings_params.rbi +++ b/rbi/onlyfans/models/statistics/statement_get_earnings_params.rbi @@ -18,16 +18,13 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The start date for the period - sig { returns(String) } - attr_accessor :start_date - # The end date for the period. - sig { returns(T.nilable(String)) } - attr_reader :end_date + sig { returns(String) } + attr_accessor :end_date - sig { params(end_date: String).void } - attr_writer :end_date + # The start date for the period. + sig { returns(String) } + attr_accessor :start_date # Filter by All / Subscriptions / Tips / Posts / Messages / Streams sig do @@ -50,8 +47,8 @@ module Onlyfans sig do params( account: String, - start_date: String, end_date: String, + start_date: String, type: Onlyfans::Statistics::StatementGetEarningsParams::Type::OrSymbol, request_options: Onlyfans::RequestOptions::OrHash @@ -59,10 +56,10 @@ module Onlyfans end def self.new( account:, - # The start date for the period - start_date:, # The end date for the period. - end_date: nil, + end_date:, + # The start date for the period. + start_date:, # Filter by All / Subscriptions / Tips / Posts / Messages / Streams type: nil, request_options: {} @@ -73,8 +70,8 @@ module Onlyfans override.returns( { account: String, - start_date: String, end_date: String, + start_date: String, type: Onlyfans::Statistics::StatementGetEarningsParams::Type::OrSymbol, request_options: Onlyfans::RequestOptions diff --git a/rbi/onlyfans/models/story_create_params.rbi b/rbi/onlyfans/models/story_create_params.rbi index 6193ebe5..177181f3 100644 --- a/rbi/onlyfans/models/story_create_params.rbi +++ b/rbi/onlyfans/models/story_create_params.rbi @@ -14,23 +14,65 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # Array of media file upload prefixed_ids, or OF media IDs (required if price is - # not 0). + # Array of media file upload prefixed_ids, or OF vault media IDs. sig { returns(T::Array[String]) } attr_accessor :media_files + # Canvas height overlay positions are relative to. Default `1920`. + sig { returns(T.nilable(Integer)) } + attr_reader :canvas_height + + sig { params(canvas_height: Integer).void } + attr_writer :canvas_height + + # Canvas width overlay positions are relative to. Default `1080`. + sig { returns(T.nilable(Integer)) } + attr_reader :canvas_width + + sig { params(canvas_width: Integer).void } + attr_writer :canvas_width + + # Interactive question sticker viewers can answer. + sig { returns(T.nilable(Onlyfans::StoryCreateParams::Question)) } + attr_reader :question + + sig do + params(question: Onlyfans::StoryCreateParams::Question::OrHash).void + end + attr_writer :question + + # Text and @mention overlays. + sig { returns(T.nilable(T::Array[Onlyfans::StoryCreateParams::Text])) } + attr_reader :texts + + sig do + params(texts: T::Array[Onlyfans::StoryCreateParams::Text::OrHash]).void + end + attr_writer :texts + sig do params( account: String, media_files: T::Array[String], + canvas_height: Integer, + canvas_width: Integer, + question: Onlyfans::StoryCreateParams::Question::OrHash, + texts: T::Array[Onlyfans::StoryCreateParams::Text::OrHash], request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( account:, - # Array of media file upload prefixed_ids, or OF media IDs (required if price is - # not 0). + # Array of media file upload prefixed_ids, or OF vault media IDs. media_files:, + # Canvas height overlay positions are relative to. Default `1920`. + canvas_height: nil, + # Canvas width overlay positions are relative to. Default `1080`. + canvas_width: nil, + # Interactive question sticker viewers can answer. + question: nil, + # Text and @mention overlays. + texts: nil, request_options: {} ) end @@ -40,12 +82,514 @@ module Onlyfans { account: String, media_files: T::Array[String], + canvas_height: Integer, + canvas_width: Integer, + question: Onlyfans::StoryCreateParams::Question, + texts: T::Array[Onlyfans::StoryCreateParams::Text], request_options: Onlyfans::RequestOptions } ) end def to_hash end + + class Question < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::StoryCreateParams::Question, + Onlyfans::Internal::AnyHash + ) + end + + # Sticker accent color (hex). Default `#FF51DC`. + sig { returns(T.nilable(String)) } + attr_reader :color + + sig { params(color: String).void } + attr_writer :color + + # Sticker height in canvas px. Default `160`. + sig { returns(T.nilable(Float)) } + attr_reader :height + + sig { params(height: Float).void } + attr_writer :height + + # Horizontal position as a percentage of the canvas width (0-100). Default `25`. + sig { returns(T.nilable(Float)) } + attr_reader :left + + sig { params(left: Float).void } + attr_writer :left + + # The question to ask. + sig { returns(T.nilable(String)) } + attr_reader :text + + sig { params(text: String).void } + attr_writer :text + + # Vertical position as a percentage of the canvas height (0-100). Default `30`. + sig { returns(T.nilable(Float)) } + attr_reader :top + + sig { params(top: Float).void } + attr_writer :top + + # Sticker width in canvas px. Default `257`. + sig { returns(T.nilable(Float)) } + attr_reader :width + + sig { params(width: Float).void } + attr_writer :width + + # Interactive question sticker viewers can answer. + sig do + params( + color: String, + height: Float, + left: Float, + text: String, + top: Float, + width: Float + ).returns(T.attached_class) + end + def self.new( + # Sticker accent color (hex). Default `#FF51DC`. + color: nil, + # Sticker height in canvas px. Default `160`. + height: nil, + # Horizontal position as a percentage of the canvas width (0-100). Default `25`. + left: nil, + # The question to ask. + text: nil, + # Vertical position as a percentage of the canvas height (0-100). Default `30`. + top: nil, + # Sticker width in canvas px. Default `257`. + width: nil + ) + end + + sig do + override.returns( + { + color: String, + height: Float, + left: Float, + text: String, + top: Float, + width: Float + } + ) + end + def to_hash + end + end + + class Text < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::StoryCreateParams::Text, + Onlyfans::Internal::AnyHash + ) + end + + # The overlay text. For mentions this must be the `@username` to mention (OnlyFans + # resolves the user and adds them to the story's release forms). + sig { returns(String) } + attr_accessor :text + + # Rotation in degrees. Default `0`. + sig { returns(T.nilable(Float)) } + attr_reader :angle + + sig { params(angle: Float).void } + attr_writer :angle + + # Background color (hex, `#00000000` = transparent). Native editor palette: + # #FFFFFF #000000 #69818C #FF51DC #FF4081 #FA3240 #FF8040 #FCA800 #70CF27 #00C864 + # #00B1CC #2196F3 #7953F5 #A832BF. Default: transparent for texts, white for + # mentions. + sig { returns(T.nilable(String)) } + attr_reader :bg_color + + sig { params(bg_color: String).void } + attr_writer :bg_color + + # Text color (hex). Defaults to the native editor behavior: white on a colored + # background, black on a white background (mentions: OnlyFans blue `#0091EA` on + # white). + sig { returns(T.nilable(String)) } + attr_reader :color + + sig { params(color: String).void } + attr_writer :color + + # Font family. Families support specific weights only: Roboto (400/500/700), + # PTMono (400), ShantellSans (400), SofiaSans (400, renders uppercase), + # YanoneKaffeesatz (700), RubikMedium (500), RubikBlack (700). Default `Roboto`. + # Ignored for mentions (always Roboto 500). + sig do + returns( + T.nilable(Onlyfans::StoryCreateParams::Text::FontFamily::OrSymbol) + ) + end + attr_reader :font_family + + sig do + params( + font_family: Onlyfans::StoryCreateParams::Text::FontFamily::OrSymbol + ).void + end + attr_writer :font_family + + # Font size in canvas px (8-100). The native editor uses 9-36. Default `20`. + sig { returns(T.nilable(Float)) } + attr_reader :font_size + + sig { params(font_size: Float).void } + attr_writer :font_size + + # Font weight; must match the chosen family (see `fontFamily`). + sig do + returns( + T.nilable(Onlyfans::StoryCreateParams::Text::FontWeight::OrInteger) + ) + end + attr_reader :font_weight + + sig do + params( + font_weight: + Onlyfans::StoryCreateParams::Text::FontWeight::OrInteger + ).void + end + attr_writer :font_weight + + # Horizontal position as a percentage of the canvas width (0-100). Default `25`. + sig { returns(T.nilable(Float)) } + attr_reader :left + + sig { params(left: Float).void } + attr_writer :left + + # Scale factor. Default `1`. + sig { returns(T.nilable(Float)) } + attr_reader :scale + + sig { params(scale: Float).void } + attr_writer :scale + + # Text alignment. Default `left`. + sig do + returns( + T.nilable(Onlyfans::StoryCreateParams::Text::TextAlign::OrSymbol) + ) + end + attr_reader :text_align + + sig do + params( + text_align: Onlyfans::StoryCreateParams::Text::TextAlign::OrSymbol + ).void + end + attr_writer :text_align + + # Rendered text box height in canvas px. Estimated automatically when omitted. + sig { returns(T.nilable(Float)) } + attr_reader :text_height + + sig { params(text_height: Float).void } + attr_writer :text_height + + # Rendered text box width in canvas px. Estimated automatically when omitted. + sig { returns(T.nilable(Float)) } + attr_reader :text_width + + sig { params(text_width: Float).void } + attr_writer :text_width + + # Vertical position as a percentage of the canvas height (0-100). Defaults stagger + # each overlay below the previous one. + sig { returns(T.nilable(Float)) } + attr_reader :top + + sig { params(top: Float).void } + attr_writer :top + + # Overlay type. Default `text`. + sig do + returns(T.nilable(Onlyfans::StoryCreateParams::Text::Type::OrSymbol)) + end + attr_reader :type + + sig do + params(type: Onlyfans::StoryCreateParams::Text::Type::OrSymbol).void + end + attr_writer :type + + # Stacking order. Defaults to placement order. + sig { returns(T.nilable(Integer)) } + attr_reader :z_index + + sig { params(z_index: Integer).void } + attr_writer :z_index + + sig do + params( + text: String, + angle: Float, + bg_color: String, + color: String, + font_family: + Onlyfans::StoryCreateParams::Text::FontFamily::OrSymbol, + font_size: Float, + font_weight: + Onlyfans::StoryCreateParams::Text::FontWeight::OrInteger, + left: Float, + scale: Float, + text_align: Onlyfans::StoryCreateParams::Text::TextAlign::OrSymbol, + text_height: Float, + text_width: Float, + top: Float, + type: Onlyfans::StoryCreateParams::Text::Type::OrSymbol, + z_index: Integer + ).returns(T.attached_class) + end + def self.new( + # The overlay text. For mentions this must be the `@username` to mention (OnlyFans + # resolves the user and adds them to the story's release forms). + text:, + # Rotation in degrees. Default `0`. + angle: nil, + # Background color (hex, `#00000000` = transparent). Native editor palette: + # #FFFFFF #000000 #69818C #FF51DC #FF4081 #FA3240 #FF8040 #FCA800 #70CF27 #00C864 + # #00B1CC #2196F3 #7953F5 #A832BF. Default: transparent for texts, white for + # mentions. + bg_color: nil, + # Text color (hex). Defaults to the native editor behavior: white on a colored + # background, black on a white background (mentions: OnlyFans blue `#0091EA` on + # white). + color: nil, + # Font family. Families support specific weights only: Roboto (400/500/700), + # PTMono (400), ShantellSans (400), SofiaSans (400, renders uppercase), + # YanoneKaffeesatz (700), RubikMedium (500), RubikBlack (700). Default `Roboto`. + # Ignored for mentions (always Roboto 500). + font_family: nil, + # Font size in canvas px (8-100). The native editor uses 9-36. Default `20`. + font_size: nil, + # Font weight; must match the chosen family (see `fontFamily`). + font_weight: nil, + # Horizontal position as a percentage of the canvas width (0-100). Default `25`. + left: nil, + # Scale factor. Default `1`. + scale: nil, + # Text alignment. Default `left`. + text_align: nil, + # Rendered text box height in canvas px. Estimated automatically when omitted. + text_height: nil, + # Rendered text box width in canvas px. Estimated automatically when omitted. + text_width: nil, + # Vertical position as a percentage of the canvas height (0-100). Defaults stagger + # each overlay below the previous one. + top: nil, + # Overlay type. Default `text`. + type: nil, + # Stacking order. Defaults to placement order. + z_index: nil + ) + end + + sig do + override.returns( + { + text: String, + angle: Float, + bg_color: String, + color: String, + font_family: + Onlyfans::StoryCreateParams::Text::FontFamily::OrSymbol, + font_size: Float, + font_weight: + Onlyfans::StoryCreateParams::Text::FontWeight::OrInteger, + left: Float, + scale: Float, + text_align: + Onlyfans::StoryCreateParams::Text::TextAlign::OrSymbol, + text_height: Float, + text_width: Float, + top: Float, + type: Onlyfans::StoryCreateParams::Text::Type::OrSymbol, + z_index: Integer + } + ) + end + def to_hash + end + + # Font family. Families support specific weights only: Roboto (400/500/700), + # PTMono (400), ShantellSans (400), SofiaSans (400, renders uppercase), + # YanoneKaffeesatz (700), RubikMedium (500), RubikBlack (700). Default `Roboto`. + # Ignored for mentions (always Roboto 500). + module FontFamily + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::StoryCreateParams::Text::FontFamily) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ROBOTO = + T.let( + :Roboto, + Onlyfans::StoryCreateParams::Text::FontFamily::TaggedSymbol + ) + PT_MONO = + T.let( + :PTMono, + Onlyfans::StoryCreateParams::Text::FontFamily::TaggedSymbol + ) + SHANTELL_SANS = + T.let( + :ShantellSans, + Onlyfans::StoryCreateParams::Text::FontFamily::TaggedSymbol + ) + SOFIA_SANS = + T.let( + :SofiaSans, + Onlyfans::StoryCreateParams::Text::FontFamily::TaggedSymbol + ) + YANONE_KAFFEESATZ = + T.let( + :YanoneKaffeesatz, + Onlyfans::StoryCreateParams::Text::FontFamily::TaggedSymbol + ) + RUBIK_MEDIUM = + T.let( + :RubikMedium, + Onlyfans::StoryCreateParams::Text::FontFamily::TaggedSymbol + ) + RUBIK_BLACK = + T.let( + :RubikBlack, + Onlyfans::StoryCreateParams::Text::FontFamily::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::StoryCreateParams::Text::FontFamily::TaggedSymbol + ] + ) + end + def self.values + end + end + + # Font weight; must match the chosen family (see `fontFamily`). + module FontWeight + extend Onlyfans::Internal::Type::Enum + + TaggedInteger = + T.type_alias do + T.all(Integer, Onlyfans::StoryCreateParams::Text::FontWeight) + end + OrInteger = T.type_alias { Integer } + + FONT_WEIGHT_400 = + T.let( + 400, + Onlyfans::StoryCreateParams::Text::FontWeight::TaggedInteger + ) + FONT_WEIGHT_500 = + T.let( + 500, + Onlyfans::StoryCreateParams::Text::FontWeight::TaggedInteger + ) + FONT_WEIGHT_700 = + T.let( + 700, + Onlyfans::StoryCreateParams::Text::FontWeight::TaggedInteger + ) + + sig do + override.returns( + T::Array[ + Onlyfans::StoryCreateParams::Text::FontWeight::TaggedInteger + ] + ) + end + def self.values + end + end + + # Text alignment. Default `left`. + module TextAlign + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::StoryCreateParams::Text::TextAlign) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + LEFT = + T.let( + :left, + Onlyfans::StoryCreateParams::Text::TextAlign::TaggedSymbol + ) + CENTER = + T.let( + :center, + Onlyfans::StoryCreateParams::Text::TextAlign::TaggedSymbol + ) + RIGHT = + T.let( + :right, + Onlyfans::StoryCreateParams::Text::TextAlign::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Onlyfans::StoryCreateParams::Text::TextAlign::TaggedSymbol + ] + ) + end + def self.values + end + end + + # Overlay type. Default `text`. + module Type + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Onlyfans::StoryCreateParams::Text::Type) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + TEXT = + T.let(:text, Onlyfans::StoryCreateParams::Text::Type::TaggedSymbol) + MENTION = + T.let( + :mention, + Onlyfans::StoryCreateParams::Text::Type::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Onlyfans::StoryCreateParams::Text::Type::TaggedSymbol] + ) + end + def self.values + end + end + end end end end diff --git a/rbi/onlyfans/models/story_create_response.rbi b/rbi/onlyfans/models/story_create_response.rbi index 56262831..1a9f2b57 100644 --- a/rbi/onlyfans/models/story_create_response.rbi +++ b/rbi/onlyfans/models/story_create_response.rbi @@ -287,6 +287,18 @@ module Onlyfans sig { params(can_delete: T::Boolean).void } attr_writer :can_delete + sig { returns(T.nilable(Integer)) } + attr_reader :canvas_height + + sig { params(canvas_height: Integer).void } + attr_writer :canvas_height + + sig { returns(T.nilable(Integer)) } + attr_reader :canvas_width + + sig { params(canvas_width: Integer).void } + attr_writer :canvas_width + sig { returns(T.nilable(Integer)) } attr_reader :comments_count @@ -354,15 +366,59 @@ module Onlyfans end attr_writer :media - sig { returns(T.nilable(String)) } - attr_accessor :question + sig do + returns( + T.nilable(Onlyfans::Models::StoryCreateResponse::Data::Question) + ) + end + attr_reader :question - sig { returns(T.nilable(T::Array[T.anything])) } + sig do + params( + question: + Onlyfans::Models::StoryCreateResponse::Data::Question::OrHash + ).void + end + attr_writer :question + + sig do + returns( + T.nilable( + T::Array[Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm] + ) + ) + end attr_reader :release_forms - sig { params(release_forms: T::Array[T.anything]).void } + sig do + params( + release_forms: + T::Array[ + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::OrHash + ] + ).void + end attr_writer :release_forms + sig do + returns( + T.nilable( + T::Array[Onlyfans::Models::StoryCreateResponse::Data::Text] + ) + ) + end + attr_reader :texts + + sig do + params( + texts: + T::Array[ + Onlyfans::Models::StoryCreateResponse::Data::Text::OrHash + ] + ).void + end + attr_writer :texts + sig { returns(T.nilable(String)) } attr_reader :tips_amount @@ -403,6 +459,8 @@ module Onlyfans params( id: Integer, can_delete: T::Boolean, + canvas_height: Integer, + canvas_width: Integer, comments_count: Integer, created_at: String, has_post: T::Boolean, @@ -415,8 +473,16 @@ module Onlyfans T::Array[ Onlyfans::Models::StoryCreateResponse::Data::Media::OrHash ], - question: T.nilable(String), - release_forms: T::Array[T.anything], + question: + Onlyfans::Models::StoryCreateResponse::Data::Question::OrHash, + release_forms: + T::Array[ + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::OrHash + ], + texts: + T::Array[ + Onlyfans::Models::StoryCreateResponse::Data::Text::OrHash + ], tips_amount: String, tips_amount_raw: Integer, tips_count: Integer, @@ -428,6 +494,8 @@ module Onlyfans def self.new( id: nil, can_delete: nil, + canvas_height: nil, + canvas_width: nil, comments_count: nil, created_at: nil, has_post: nil, @@ -439,6 +507,7 @@ module Onlyfans media: nil, question: nil, release_forms: nil, + texts: nil, tips_amount: nil, tips_amount_raw: nil, tips_count: nil, @@ -453,6 +522,8 @@ module Onlyfans { id: Integer, can_delete: T::Boolean, + canvas_height: Integer, + canvas_width: Integer, comments_count: Integer, created_at: String, has_post: T::Boolean, @@ -463,8 +534,13 @@ module Onlyfans likes_count: Integer, media: T::Array[Onlyfans::Models::StoryCreateResponse::Data::Media], - question: T.nilable(String), - release_forms: T::Array[T.anything], + question: Onlyfans::Models::StoryCreateResponse::Data::Question, + release_forms: + T::Array[ + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm + ], + texts: + T::Array[Onlyfans::Models::StoryCreateResponse::Data::Text], tips_amount: String, tips_amount_raw: Integer, tips_count: Integer, @@ -742,6 +818,592 @@ module Onlyfans end end end + + class Question < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::StoryCreateResponse::Data::Question, + Onlyfans::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Onlyfans::Models::StoryCreateResponse::Data::Question::Entity + ) + ) + end + attr_reader :entity + + sig do + params( + entity: + Onlyfans::Models::StoryCreateResponse::Data::Question::Entity::OrHash + ).void + end + attr_writer :entity + + sig do + returns( + T.nilable( + Onlyfans::Models::StoryCreateResponse::Data::Question::Positions + ) + ) + end + attr_reader :positions + + sig do + params( + positions: + Onlyfans::Models::StoryCreateResponse::Data::Question::Positions::OrHash + ).void + end + attr_writer :positions + + sig { returns(T.nilable(String)) } + attr_reader :type + + sig { params(type: String).void } + attr_writer :type + + sig do + params( + entity: + Onlyfans::Models::StoryCreateResponse::Data::Question::Entity::OrHash, + positions: + Onlyfans::Models::StoryCreateResponse::Data::Question::Positions::OrHash, + type: String + ).returns(T.attached_class) + end + def self.new(entity: nil, positions: nil, type: nil) + end + + sig do + override.returns( + { + entity: + Onlyfans::Models::StoryCreateResponse::Data::Question::Entity, + positions: + Onlyfans::Models::StoryCreateResponse::Data::Question::Positions, + type: String + } + ) + end + def to_hash + end + + class Entity < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::StoryCreateResponse::Data::Question::Entity, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :id + + sig { params(id: Integer).void } + attr_writer :id + + sig { returns(T.nilable(String)) } + attr_reader :created_at + + sig { params(created_at: String).void } + attr_writer :created_at + + sig { returns(T.nilable(String)) } + attr_reader :text + + sig { params(text: String).void } + attr_writer :text + + sig do + params(id: Integer, created_at: String, text: String).returns( + T.attached_class + ) + end + def self.new(id: nil, created_at: nil, text: nil) + end + + sig do + override.returns( + { id: Integer, created_at: String, text: String } + ) + end + def to_hash + end + end + + class Positions < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::StoryCreateResponse::Data::Question::Positions, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :angle + + sig { params(angle: Integer).void } + attr_writer :angle + + sig { returns(T.nilable(String)) } + attr_reader :color + + sig { params(color: String).void } + attr_writer :color + + sig { returns(T.nilable(Integer)) } + attr_reader :height + + sig { params(height: Integer).void } + attr_writer :height + + sig { returns(T.nilable(Integer)) } + attr_reader :left + + sig { params(left: Integer).void } + attr_writer :left + + sig { returns(T.nilable(Integer)) } + attr_reader :top + + sig { params(top: Integer).void } + attr_writer :top + + sig { returns(T.nilable(Integer)) } + attr_reader :width + + sig { params(width: Integer).void } + attr_writer :width + + sig { returns(T.nilable(String)) } + attr_accessor :x + + sig { returns(T.nilable(String)) } + attr_accessor :y_ + + sig { returns(T.nilable(Integer)) } + attr_reader :z_index + + sig { params(z_index: Integer).void } + attr_writer :z_index + + sig do + params( + angle: Integer, + color: String, + height: Integer, + left: Integer, + top: Integer, + width: Integer, + x: T.nilable(String), + y_: T.nilable(String), + z_index: Integer + ).returns(T.attached_class) + end + def self.new( + angle: nil, + color: nil, + height: nil, + left: nil, + top: nil, + width: nil, + x: nil, + y_: nil, + z_index: nil + ) + end + + sig do + override.returns( + { + angle: Integer, + color: String, + height: Integer, + left: Integer, + top: Integer, + width: Integer, + x: T.nilable(String), + y_: T.nilable(String), + z_index: Integer + } + ) + end + def to_hash + end + end + end + + class ReleaseForm < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :id + + sig { params(id: Integer).void } + attr_writer :id + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig { returns(T.nilable(String)) } + attr_reader :partner_source + + sig { params(partner_source: String).void } + attr_writer :partner_source + + sig { returns(T.nilable(String)) } + attr_reader :type + + sig { params(type: String).void } + attr_writer :type + + sig do + returns( + T.nilable( + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User + ) + ) + end + attr_reader :user + + sig do + params( + user: + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User::OrHash + ).void + end + attr_writer :user + + sig do + params( + id: Integer, + name: String, + partner_source: String, + type: String, + user: + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User::OrHash + ).returns(T.attached_class) + end + def self.new( + id: nil, + name: nil, + partner_source: nil, + type: nil, + user: nil + ) + end + + sig do + override.returns( + { + id: Integer, + name: String, + partner_source: String, + type: String, + user: + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User + } + ) + end + def to_hash + end + + class User < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :id + + sig { params(id: Integer).void } + attr_writer :id + + sig { returns(T.nilable(String)) } + attr_accessor :avatar + + sig { returns(T.nilable(String)) } + attr_accessor :avatar_thumbs + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :is_from_guest + + sig { params(is_from_guest: T::Boolean).void } + attr_writer :is_from_guest + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :is_identity_verified + + sig { params(is_identity_verified: T::Boolean).void } + attr_writer :is_identity_verified + + sig { returns(T.nilable(String)) } + attr_reader :iv_status + + sig { params(iv_status: String).void } + attr_writer :iv_status + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig { returns(T.nilable(String)) } + attr_reader :username + + sig { params(username: String).void } + attr_writer :username + + sig { returns(T.nilable(String)) } + attr_reader :view + + sig { params(view: String).void } + attr_writer :view + + sig do + params( + id: Integer, + avatar: T.nilable(String), + avatar_thumbs: T.nilable(String), + is_from_guest: T::Boolean, + is_identity_verified: T::Boolean, + iv_status: String, + name: String, + username: String, + view: String + ).returns(T.attached_class) + end + def self.new( + id: nil, + avatar: nil, + avatar_thumbs: nil, + is_from_guest: nil, + is_identity_verified: nil, + iv_status: nil, + name: nil, + username: nil, + view: nil + ) + end + + sig do + override.returns( + { + id: Integer, + avatar: T.nilable(String), + avatar_thumbs: T.nilable(String), + is_from_guest: T::Boolean, + is_identity_verified: T::Boolean, + iv_status: String, + name: String, + username: String, + view: String + } + ) + end + def to_hash + end + end + end + + class Text < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::StoryCreateResponse::Data::Text, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :angle + + sig { params(angle: Integer).void } + attr_writer :angle + + sig { returns(T.nilable(String)) } + attr_reader :bg_color + + sig { params(bg_color: String).void } + attr_writer :bg_color + + sig { returns(T.nilable(String)) } + attr_reader :color + + sig { params(color: String).void } + attr_writer :color + + sig { returns(T.nilable(String)) } + attr_reader :font_family + + sig { params(font_family: String).void } + attr_writer :font_family + + sig { returns(T.nilable(String)) } + attr_reader :font_size + + sig { params(font_size: String).void } + attr_writer :font_size + + sig { returns(T.nilable(String)) } + attr_accessor :font_style + + sig { returns(T.nilable(Integer)) } + attr_reader :font_weight + + sig { params(font_weight: Integer).void } + attr_writer :font_weight + + sig { returns(T.nilable(Integer)) } + attr_reader :left + + sig { params(left: Integer).void } + attr_writer :left + + sig { returns(T.nilable(Integer)) } + attr_reader :scale + + sig { params(scale: Integer).void } + attr_writer :scale + + sig { returns(T.nilable(String)) } + attr_reader :text + + sig { params(text: String).void } + attr_writer :text + + sig { returns(T.nilable(String)) } + attr_reader :text_align + + sig { params(text_align: String).void } + attr_writer :text_align + + sig { returns(T.nilable(Float)) } + attr_reader :text_height + + sig { params(text_height: Float).void } + attr_writer :text_height + + sig { returns(T.nilable(Integer)) } + attr_reader :text_width + + sig { params(text_width: Integer).void } + attr_writer :text_width + + sig { returns(T.nilable(Integer)) } + attr_reader :top + + sig { params(top: Integer).void } + attr_writer :top + + sig { returns(T.nilable(String)) } + attr_reader :type + + sig { params(type: String).void } + attr_writer :type + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :users + + sig { params(users: T::Array[T.anything]).void } + attr_writer :users + + sig { returns(T.nilable(Integer)) } + attr_reader :z_index + + sig { params(z_index: Integer).void } + attr_writer :z_index + + sig do + params( + angle: Integer, + bg_color: String, + color: String, + font_family: String, + font_size: String, + font_style: T.nilable(String), + font_weight: Integer, + left: Integer, + scale: Integer, + text: String, + text_align: String, + text_height: Float, + text_width: Integer, + top: Integer, + type: String, + users: T::Array[T.anything], + z_index: Integer + ).returns(T.attached_class) + end + def self.new( + angle: nil, + bg_color: nil, + color: nil, + font_family: nil, + font_size: nil, + font_style: nil, + font_weight: nil, + left: nil, + scale: nil, + text: nil, + text_align: nil, + text_height: nil, + text_width: nil, + top: nil, + type: nil, + users: nil, + z_index: nil + ) + end + + sig do + override.returns( + { + angle: Integer, + bg_color: String, + color: String, + font_family: String, + font_size: String, + font_style: T.nilable(String), + font_weight: Integer, + left: Integer, + scale: Integer, + text: String, + text_align: String, + text_height: Float, + text_width: Integer, + top: Integer, + type: String, + users: T::Array[T.anything], + z_index: Integer + } + ) + end + def to_hash + end + end end end end diff --git a/rbi/onlyfans/models/tracking_link_list_params.rbi b/rbi/onlyfans/models/tracking_link_list_params.rbi index e23e1d70..9b3dc604 100644 --- a/rbi/onlyfans/models/tracking_link_list_params.rbi +++ b/rbi/onlyfans/models/tracking_link_list_params.rbi @@ -14,79 +14,126 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The end date for Tracking Links. Keep empty to get all. + # The end date for tracking links. Keep empty to get all. Must not be greater than + # 255 characters. sig { returns(T.nilable(String)) } attr_accessor :end_date - # The number of tracking links to return. Default `3` + # The number of tracking links to return. Default `10`. Must be at least 1. Must + # not be greater than 100. sig { returns(T.nilable(Integer)) } - attr_accessor :limit + attr_reader :limit - # The offset used for pagination. Default `0` + sig { params(limit: Integer).void } + attr_writer :limit + + # The offset used for pagination. Default `0`. Must be at least 0. sig { returns(T.nilable(Integer)) } - attr_accessor :offset + attr_reader :offset + + sig { params(offset: Integer).void } + attr_writer :offset + + sig do + returns( + T.nilable(Onlyfans::TrackingLinkListParams::Pagination::OrInteger) + ) + end + attr_reader :pagination + + sig do + params( + pagination: Onlyfans::TrackingLinkListParams::Pagination::OrInteger + ).void + end + attr_writer :pagination - # Sort the results. Default `desc` + # Sort direction. Default `desc`. sig do returns(T.nilable(Onlyfans::TrackingLinkListParams::Sort::OrSymbol)) end - attr_accessor :sort + attr_reader :sort - # Sort by subscriber count (claims), or creation date + sig do + params(sort: Onlyfans::TrackingLinkListParams::Sort::OrSymbol).void + end + attr_writer :sort + + # Sort by subscriber count (`claims`) or creation date (`created_date`). sig do returns(T.nilable(Onlyfans::TrackingLinkListParams::Sortby::OrSymbol)) end - attr_accessor :sortby + attr_reader :sortby + + sig do + params(sortby: Onlyfans::TrackingLinkListParams::Sortby::OrSymbol).void + end + attr_writer :sortby - # The start date for Tracking Links. Keep empty to get all. + # The start date for tracking links. Keep empty to get all. Must not be greater + # than 255 characters. sig { returns(T.nilable(String)) } attr_accessor :start_date - # Wait for the revenue data to finish processing, instead of processing in the - # background. **Will result in longer response times, use with caution**. Default - # `false` + # Wait for revenue calculation instead of processing it in the background. sig { returns(T.nilable(T::Boolean)) } - attr_accessor :synchronous + attr_reader :synchronous - # Whether or not to include deleted tracking links in the response. Default - # `false` - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :with_deleted + sig { params(synchronous: T::Boolean).void } + attr_writer :synchronous + + # Whether to include deleted tracking links. Default `true`. + sig do + returns( + T.nilable(Onlyfans::TrackingLinkListParams::WithDeleted::OrInteger) + ) + end + attr_reader :with_deleted + + sig do + params( + with_deleted: Onlyfans::TrackingLinkListParams::WithDeleted::OrInteger + ).void + end + attr_writer :with_deleted sig do params( account: String, end_date: T.nilable(String), - limit: T.nilable(Integer), - offset: T.nilable(Integer), - sort: T.nilable(Onlyfans::TrackingLinkListParams::Sort::OrSymbol), - sortby: T.nilable(Onlyfans::TrackingLinkListParams::Sortby::OrSymbol), + limit: Integer, + offset: Integer, + pagination: Onlyfans::TrackingLinkListParams::Pagination::OrInteger, + sort: Onlyfans::TrackingLinkListParams::Sort::OrSymbol, + sortby: Onlyfans::TrackingLinkListParams::Sortby::OrSymbol, start_date: T.nilable(String), - synchronous: T.nilable(T::Boolean), - with_deleted: T.nilable(T::Boolean), + synchronous: T::Boolean, + with_deleted: + Onlyfans::TrackingLinkListParams::WithDeleted::OrInteger, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( account:, - # The end date for Tracking Links. Keep empty to get all. + # The end date for tracking links. Keep empty to get all. Must not be greater than + # 255 characters. end_date: nil, - # The number of tracking links to return. Default `3` + # The number of tracking links to return. Default `10`. Must be at least 1. Must + # not be greater than 100. limit: nil, - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. offset: nil, - # Sort the results. Default `desc` + pagination: nil, + # Sort direction. Default `desc`. sort: nil, - # Sort by subscriber count (claims), or creation date + # Sort by subscriber count (`claims`) or creation date (`created_date`). sortby: nil, - # The start date for Tracking Links. Keep empty to get all. + # The start date for tracking links. Keep empty to get all. Must not be greater + # than 255 characters. start_date: nil, - # Wait for the revenue data to finish processing, instead of processing in the - # background. **Will result in longer response times, use with caution**. Default - # `false` + # Wait for revenue calculation instead of processing it in the background. synchronous: nil, - # Whether or not to include deleted tracking links in the response. Default - # `false` + # Whether to include deleted tracking links. Default `true`. with_deleted: nil, request_options: {} ) @@ -97,14 +144,15 @@ module Onlyfans { account: String, end_date: T.nilable(String), - limit: T.nilable(Integer), - offset: T.nilable(Integer), - sort: T.nilable(Onlyfans::TrackingLinkListParams::Sort::OrSymbol), - sortby: - T.nilable(Onlyfans::TrackingLinkListParams::Sortby::OrSymbol), + limit: Integer, + offset: Integer, + pagination: Onlyfans::TrackingLinkListParams::Pagination::OrInteger, + sort: Onlyfans::TrackingLinkListParams::Sort::OrSymbol, + sortby: Onlyfans::TrackingLinkListParams::Sortby::OrSymbol, start_date: T.nilable(String), - synchronous: T.nilable(T::Boolean), - with_deleted: T.nilable(T::Boolean), + synchronous: T::Boolean, + with_deleted: + Onlyfans::TrackingLinkListParams::WithDeleted::OrInteger, request_options: Onlyfans::RequestOptions } ) @@ -112,7 +160,32 @@ module Onlyfans def to_hash end - # Sort the results. Default `desc` + module Pagination + extend Onlyfans::Internal::Type::Enum + + TaggedInteger = + T.type_alias do + T.all(Integer, Onlyfans::TrackingLinkListParams::Pagination) + end + OrInteger = T.type_alias { Integer } + + PAGINATION_0 = + T.let(0, Onlyfans::TrackingLinkListParams::Pagination::TaggedInteger) + PAGINATION_1 = + T.let(1, Onlyfans::TrackingLinkListParams::Pagination::TaggedInteger) + + sig do + override.returns( + T::Array[ + Onlyfans::TrackingLinkListParams::Pagination::TaggedInteger + ] + ) + end + def self.values + end + end + + # Sort direction. Default `desc`. module Sort extend Onlyfans::Internal::Type::Enum @@ -120,9 +193,9 @@ module Onlyfans T.type_alias { T.all(Symbol, Onlyfans::TrackingLinkListParams::Sort) } OrSymbol = T.type_alias { T.any(Symbol, String) } + ASC = T.let(:asc, Onlyfans::TrackingLinkListParams::Sort::TaggedSymbol) DESC = T.let(:desc, Onlyfans::TrackingLinkListParams::Sort::TaggedSymbol) - ASC = T.let(:asc, Onlyfans::TrackingLinkListParams::Sort::TaggedSymbol) sig do override.returns( @@ -133,7 +206,7 @@ module Onlyfans end end - # Sort by subscriber count (claims), or creation date + # Sort by subscriber count (`claims`) or creation date (`created_date`). module Sortby extend Onlyfans::Internal::Type::Enum @@ -159,6 +232,32 @@ module Onlyfans def self.values end end + + # Whether to include deleted tracking links. Default `true`. + module WithDeleted + extend Onlyfans::Internal::Type::Enum + + TaggedInteger = + T.type_alias do + T.all(Integer, Onlyfans::TrackingLinkListParams::WithDeleted) + end + OrInteger = T.type_alias { Integer } + + WITH_DELETED_0 = + T.let(0, Onlyfans::TrackingLinkListParams::WithDeleted::TaggedInteger) + WITH_DELETED_1 = + T.let(1, Onlyfans::TrackingLinkListParams::WithDeleted::TaggedInteger) + + sig do + override.returns( + T::Array[ + Onlyfans::TrackingLinkListParams::WithDeleted::TaggedInteger + ] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/transaction_list_params.rbi b/rbi/onlyfans/models/transaction_list_params.rbi index c90d061c..2cc0772f 100644 --- a/rbi/onlyfans/models/transaction_list_params.rbi +++ b/rbi/onlyfans/models/transaction_list_params.rbi @@ -28,7 +28,7 @@ module Onlyfans sig { params(marker: String).void } attr_writer :marker - # The start date for transactions list. Default: `-30days` + # The start date for the transactions list. Defaults to 30 days ago. sig { returns(T.nilable(String)) } attr_reader :start_date @@ -68,7 +68,7 @@ module Onlyfans limit: nil, # The marker used for pagination. Default: `null` marker: nil, - # The start date for transactions list. Default: `-30days` + # The start date for the transactions list. Defaults to 30 days ago. start_date: nil, # Filter tips by source. Only applies when `type=tips`. Options: `profile`, # `post_all`, `chat`, `stream`, `story` diff --git a/rbi/onlyfans/models/trial_link_list_params.rbi b/rbi/onlyfans/models/trial_link_list_params.rbi index 5f819afc..1610b7a7 100644 --- a/rbi/onlyfans/models/trial_link_list_params.rbi +++ b/rbi/onlyfans/models/trial_link_list_params.rbi @@ -14,52 +14,83 @@ module Onlyfans sig { returns(String) } attr_accessor :account - # The number of trial links to return. Default `10` - sig { returns(Integer) } - attr_accessor :limit + # The end date for trial links. Keep empty to get all. Must not be greater than + # 255 characters. + sig { returns(T.nilable(String)) } + attr_accessor :end_date - # The offset used for pagination. Default `0` - sig { returns(Integer) } - attr_accessor :offset - - # Sort the results by a field. Default `create_date` + # Field to sort by. Default `create_date`. sig { returns(T.nilable(Onlyfans::TrialLinkListParams::Field::OrSymbol)) } - attr_accessor :field + attr_reader :field + + sig { params(field: Onlyfans::TrialLinkListParams::Field::OrSymbol).void } + attr_writer :field + + # The number of trial links to return. Default `10`. Must be at least 1. Must not + # be greater than 100. + sig { returns(T.nilable(Integer)) } + attr_reader :limit + + sig { params(limit: Integer).void } + attr_writer :limit + + # The offset used for pagination. Default `0`. Must be at least 0. + sig { returns(T.nilable(Integer)) } + attr_reader :offset + + sig { params(offset: Integer).void } + attr_writer :offset - # Sort the results. Default `desc` + # Sort direction. Default `desc`. sig { returns(T.nilable(Onlyfans::TrialLinkListParams::Sort::OrSymbol)) } - attr_accessor :sort + attr_reader :sort - # Wait for the revenue data to finish processing, instead of processing in the - # background. **Will result in longer response times, use with caution**. Default - # `false` + sig { params(sort: Onlyfans::TrialLinkListParams::Sort::OrSymbol).void } + attr_writer :sort + + # The start date for trial links. Keep empty to get all. Must not be greater than + # 255 characters. + sig { returns(T.nilable(String)) } + attr_accessor :start_date + + # Wait for revenue calculation instead of processing it in the background. sig { returns(T.nilable(T::Boolean)) } - attr_accessor :synchronous + attr_reader :synchronous + + sig { params(synchronous: T::Boolean).void } + attr_writer :synchronous sig do params( account: String, + end_date: T.nilable(String), + field: Onlyfans::TrialLinkListParams::Field::OrSymbol, limit: Integer, offset: Integer, - field: T.nilable(Onlyfans::TrialLinkListParams::Field::OrSymbol), - sort: T.nilable(Onlyfans::TrialLinkListParams::Sort::OrSymbol), - synchronous: T.nilable(T::Boolean), + sort: Onlyfans::TrialLinkListParams::Sort::OrSymbol, + start_date: T.nilable(String), + synchronous: T::Boolean, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( account:, - # The number of trial links to return. Default `10` - limit:, - # The offset used for pagination. Default `0` - offset:, - # Sort the results by a field. Default `create_date` + # The end date for trial links. Keep empty to get all. Must not be greater than + # 255 characters. + end_date: nil, + # Field to sort by. Default `create_date`. field: nil, - # Sort the results. Default `desc` + # The number of trial links to return. Default `10`. Must be at least 1. Must not + # be greater than 100. + limit: nil, + # The offset used for pagination. Default `0`. Must be at least 0. + offset: nil, + # Sort direction. Default `desc`. sort: nil, - # Wait for the revenue data to finish processing, instead of processing in the - # background. **Will result in longer response times, use with caution**. Default - # `false` + # The start date for trial links. Keep empty to get all. Must not be greater than + # 255 characters. + start_date: nil, + # Wait for revenue calculation instead of processing it in the background. synchronous: nil, request_options: {} ) @@ -69,11 +100,13 @@ module Onlyfans override.returns( { account: String, + end_date: T.nilable(String), + field: Onlyfans::TrialLinkListParams::Field::OrSymbol, limit: Integer, offset: Integer, - field: T.nilable(Onlyfans::TrialLinkListParams::Field::OrSymbol), - sort: T.nilable(Onlyfans::TrialLinkListParams::Sort::OrSymbol), - synchronous: T.nilable(T::Boolean), + sort: Onlyfans::TrialLinkListParams::Sort::OrSymbol, + start_date: T.nilable(String), + synchronous: T::Boolean, request_options: Onlyfans::RequestOptions } ) @@ -81,7 +114,7 @@ module Onlyfans def to_hash end - # Sort the results by a field. Default `create_date` + # Field to sort by. Default `create_date`. module Field extend Onlyfans::Internal::Type::Enum @@ -124,7 +157,7 @@ module Onlyfans end end - # Sort the results. Default `desc` + # Sort direction. Default `desc`. module Sort extend Onlyfans::Internal::Type::Enum @@ -132,8 +165,8 @@ module Onlyfans T.type_alias { T.all(Symbol, Onlyfans::TrialLinkListParams::Sort) } OrSymbol = T.type_alias { T.any(Symbol, String) } - DESC = T.let(:desc, Onlyfans::TrialLinkListParams::Sort::TaggedSymbol) ASC = T.let(:asc, Onlyfans::TrialLinkListParams::Sort::TaggedSymbol) + DESC = T.let(:desc, Onlyfans::TrialLinkListParams::Sort::TaggedSymbol) sig do override.returns( diff --git a/rbi/onlyfans/models/user_list_list_params.rbi b/rbi/onlyfans/models/user_list_list_params.rbi index 2bf23d2f..fdb8ecce 100644 --- a/rbi/onlyfans/models/user_list_list_params.rbi +++ b/rbi/onlyfans/models/user_list_list_params.rbi @@ -23,11 +23,20 @@ module Onlyfans sig { returns(T.nilable(Integer)) } attr_accessor :offset + # How to return the results. `queue` returns the user lists that are available for + # Mass-Messaging. + sig { returns(T.nilable(Onlyfans::UserListListParams::View::OrSymbol)) } + attr_reader :view + + sig { params(view: Onlyfans::UserListListParams::View::OrSymbol).void } + attr_writer :view + sig do params( account: String, limit: T.nilable(Integer), offset: T.nilable(Integer), + view: Onlyfans::UserListListParams::View::OrSymbol, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end @@ -38,6 +47,9 @@ module Onlyfans limit: nil, # Must be at least 0. offset: nil, + # How to return the results. `queue` returns the user lists that are available for + # Mass-Messaging. + view: nil, request_options: {} ) end @@ -48,12 +60,33 @@ module Onlyfans account: String, limit: T.nilable(Integer), offset: T.nilable(Integer), + view: Onlyfans::UserListListParams::View::OrSymbol, request_options: Onlyfans::RequestOptions } ) end def to_hash end + + # How to return the results. `queue` returns the user lists that are available for + # Mass-Messaging. + module View + extend Onlyfans::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Onlyfans::UserListListParams::View) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + QUEUE = T.let(:queue, Onlyfans::UserListListParams::View::TaggedSymbol) + + sig do + override.returns( + T::Array[Onlyfans::UserListListParams::View::TaggedSymbol] + ) + end + def self.values + end + end end end end diff --git a/rbi/onlyfans/models/user_lists/user_add_params.rbi b/rbi/onlyfans/models/user_lists/user_add_params.rbi index acaf9757..c4bb28bc 100644 --- a/rbi/onlyfans/models/user_lists/user_add_params.rbi +++ b/rbi/onlyfans/models/user_lists/user_add_params.rbi @@ -25,11 +25,25 @@ module Onlyfans sig { returns(T::Array[String]) } attr_accessor :ids + # Set to `true` to skip the User IDs OnlyFans refuses instead of failing the whole + # batch. We drop the rejected IDs and retry the remainder for you (up to 5 + # OnlyFans attempts, each costing 1 credit), then respond `200` with `data.added` + # (the IDs that made it in) and `data.failed` (an object mapping each rejected + # User ID to the reason OnlyFans gave). Note this changes the shape of `data` — + # see the example responses. Failures that are not about individual users (e.g. an + # invalid or inaccessible list ID) still return the regular `400`. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_invalid + + sig { params(skip_invalid: T::Boolean).void } + attr_writer :skip_invalid + sig do params( account: String, user_list_id: String, ids: T::Array[String], + skip_invalid: T::Boolean, request_options: Onlyfans::RequestOptions::OrHash ).returns(T.attached_class) end @@ -38,6 +52,14 @@ module Onlyfans user_list_id:, # Array of OnlyFans User IDs to be added into the list ids:, + # Set to `true` to skip the User IDs OnlyFans refuses instead of failing the whole + # batch. We drop the rejected IDs and retry the remainder for you (up to 5 + # OnlyFans attempts, each costing 1 credit), then respond `200` with `data.added` + # (the IDs that made it in) and `data.failed` (an object mapping each rejected + # User ID to the reason OnlyFans gave). Note this changes the shape of `data` — + # see the example responses. Failures that are not about individual users (e.g. an + # invalid or inaccessible list ID) still return the regular `400`. + skip_invalid: nil, request_options: {} ) end @@ -48,6 +70,7 @@ module Onlyfans account: String, user_list_id: String, ids: T::Array[String], + skip_invalid: T::Boolean, request_options: Onlyfans::RequestOptions } ) diff --git a/rbi/onlyfans/models/user_lists/user_add_response.rbi b/rbi/onlyfans/models/user_lists/user_add_response.rbi index 2a52bf2c..4dd56791 100644 --- a/rbi/onlyfans/models/user_lists/user_add_response.rbi +++ b/rbi/onlyfans/models/user_lists/user_add_response.rbi @@ -3,64 +3,23 @@ module Onlyfans module Models module UserLists - class UserAddResponse < Onlyfans::Internal::Type::BaseModel - OrHash = + # Default: OnlyFans accepted every User ID + module UserAddResponse + extend Onlyfans::Internal::Type::Union + + Variants = T.type_alias do T.any( - Onlyfans::Models::UserLists::UserAddResponse, - Onlyfans::Internal::AnyHash + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0, + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1 ) end - sig do - returns(T.nilable(Onlyfans::Models::UserLists::UserAddResponse::Meta)) - end - attr_reader :_meta - - sig do - params( - _meta: Onlyfans::Models::UserLists::UserAddResponse::Meta::OrHash - ).void - end - attr_writer :_meta - - sig do - returns(T.nilable(Onlyfans::Models::UserLists::UserAddResponse::Data)) - end - attr_reader :data - - sig do - params( - data: Onlyfans::Models::UserLists::UserAddResponse::Data::OrHash - ).void - end - attr_writer :data - - sig do - params( - _meta: Onlyfans::Models::UserLists::UserAddResponse::Meta::OrHash, - data: Onlyfans::Models::UserLists::UserAddResponse::Data::OrHash - ).returns(T.attached_class) - end - def self.new(_meta: nil, data: nil) - end - - sig do - override.returns( - { - _meta: Onlyfans::Models::UserLists::UserAddResponse::Meta, - data: Onlyfans::Models::UserLists::UserAddResponse::Data - } - ) - end - def to_hash - end - - class Meta < Onlyfans::Internal::Type::BaseModel + class UnionMember0 < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::UserLists::UserAddResponse::Meta, + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0, Onlyfans::Internal::AnyHash ) end @@ -68,251 +27,707 @@ module Onlyfans sig do returns( T.nilable( - Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta ) ) end - attr_reader :_cache + attr_reader :_meta sig do params( - _cache: - Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache::OrHash + _meta: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::OrHash ).void end - attr_writer :_cache + attr_writer :_meta sig do returns( T.nilable( - Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data ) ) end - attr_reader :_credits + attr_reader :data sig do params( - _credits: - Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits::OrHash + data: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data::OrHash ).void end - attr_writer :_credits - - sig do - returns( - T.nilable( - Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits - ) - ) - end - attr_reader :_rate_limits + attr_writer :data + # Default: OnlyFans accepted every User ID sig do params( - _rate_limits: - Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits::OrHash - ).void - end - attr_writer :_rate_limits - - sig do - params( - _cache: - Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache::OrHash, - _credits: - Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits::OrHash, - _rate_limits: - Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits::OrHash + _meta: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::OrHash, + data: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data::OrHash ).returns(T.attached_class) end - def self.new(_cache: nil, _credits: nil, _rate_limits: nil) + def self.new(_meta: nil, data: nil) end sig do override.returns( { - _cache: - Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache, - _credits: - Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits, - _rate_limits: - Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits + _meta: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta, + data: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data } ) end def to_hash end - class Cache < Onlyfans::Internal::Type::BaseModel + class Meta < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache, + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(T::Boolean)) } - attr_reader :is_cached + sig do + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache + ) + ) + end + attr_reader :_cache - sig { params(is_cached: T::Boolean).void } - attr_writer :is_cached + sig do + params( + _cache: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache::OrHash + ).void + end + attr_writer :_cache - sig { returns(T.nilable(String)) } - attr_reader :note + sig do + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits + ) + ) + end + attr_reader :_credits - sig { params(note: String).void } - attr_writer :note + sig do + params( + _credits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits::OrHash + ).void + end + attr_writer :_credits sig do - params(is_cached: T::Boolean, note: String).returns( - T.attached_class + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits + ) ) end - def self.new(is_cached: nil, note: nil) + attr_reader :_rate_limits + + sig do + params( + _rate_limits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits::OrHash + ).void + end + attr_writer :_rate_limits + + sig do + params( + _cache: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache::OrHash, + _credits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits::OrHash, + _rate_limits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits::OrHash + ).returns(T.attached_class) + end + def self.new(_cache: nil, _credits: nil, _rate_limits: nil) end - sig { override.returns({ is_cached: T::Boolean, note: String }) } + sig do + override.returns( + { + _cache: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache, + _credits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits, + _rate_limits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits + } + ) + end def to_hash end + + class Cache < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :is_cached + + sig { params(is_cached: T::Boolean).void } + attr_writer :is_cached + + sig { returns(T.nilable(String)) } + attr_reader :note + + sig { params(note: String).void } + attr_writer :note + + sig do + params(is_cached: T::Boolean, note: String).returns( + T.attached_class + ) + end + def self.new(is_cached: nil, note: nil) + end + + sig { override.returns({ is_cached: T::Boolean, note: String }) } + def to_hash + end + end + + class Credits < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :balance + + sig { params(balance: Integer).void } + attr_writer :balance + + sig { returns(T.nilable(String)) } + attr_reader :note + + sig { params(note: String).void } + attr_writer :note + + sig { returns(T.nilable(Integer)) } + attr_reader :used + + sig { params(used: Integer).void } + attr_writer :used + + sig do + params(balance: Integer, note: String, used: Integer).returns( + T.attached_class + ) + end + def self.new(balance: nil, note: nil, used: nil) + end + + sig do + override.returns( + { balance: Integer, note: String, used: Integer } + ) + end + def to_hash + end + end + + class RateLimits < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :limit_day + + sig { params(limit_day: Integer).void } + attr_writer :limit_day + + sig { returns(T.nilable(Integer)) } + attr_reader :limit_minute + + sig { params(limit_minute: Integer).void } + attr_writer :limit_minute + + sig { returns(T.nilable(Integer)) } + attr_reader :remaining_day + + sig { params(remaining_day: Integer).void } + attr_writer :remaining_day + + sig { returns(T.nilable(Integer)) } + attr_reader :remaining_minute + + sig { params(remaining_minute: Integer).void } + attr_writer :remaining_minute + + sig do + params( + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + ).returns(T.attached_class) + end + def self.new( + limit_day: nil, + limit_minute: nil, + remaining_day: nil, + remaining_minute: nil + ) + end + + sig do + override.returns( + { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + ) + end + def to_hash + end + end end - class Credits < Onlyfans::Internal::Type::BaseModel + class Data < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits, + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(Integer)) } - attr_reader :balance + sig { returns(T.nilable(T::Array[Integer])) } + attr_reader :number_1224114714 + + sig { params(number_1224114714: T::Array[Integer]).void } + attr_writer :number_1224114714 + + sig do + params(number_1224114714: T::Array[Integer]).returns( + T.attached_class + ) + end + def self.new(number_1224114714: nil) + end + + sig { override.returns({ number_1224114714: T::Array[Integer] }) } + def to_hash + end + end + end + + class UnionMember1 < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1, + Onlyfans::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta + ) + ) + end + attr_reader :_meta + + sig do + params( + _meta: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::OrHash + ).void + end + attr_writer :_meta + + sig do + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data + ) + ) + end + attr_reader :data - sig { params(balance: Integer).void } - attr_writer :balance + sig do + params( + data: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::OrHash + ).void + end + attr_writer :data - sig { returns(T.nilable(String)) } - attr_reader :note + # With `skip_invalid=true`: the rejected User IDs are reported instead of failing + # the batch + sig do + params( + _meta: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::OrHash, + data: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::OrHash + ).returns(T.attached_class) + end + def self.new(_meta: nil, data: nil) + end - sig { params(note: String).void } - attr_writer :note + sig do + override.returns( + { + _meta: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta, + data: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data + } + ) + end + def to_hash + end - sig { returns(T.nilable(Integer)) } - attr_reader :used + class Meta < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta, + Onlyfans::Internal::AnyHash + ) + end - sig { params(used: Integer).void } - attr_writer :used + sig do + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache + ) + ) + end + attr_reader :_cache sig do - params(balance: Integer, note: String, used: Integer).returns( - T.attached_class + params( + _cache: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache::OrHash + ).void + end + attr_writer :_cache + + sig do + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits + ) + ) + end + attr_reader :_credits + + sig do + params( + _credits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits::OrHash + ).void + end + attr_writer :_credits + + sig do + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits + ) ) end - def self.new(balance: nil, note: nil, used: nil) + attr_reader :_rate_limits + + sig do + params( + _rate_limits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits::OrHash + ).void + end + attr_writer :_rate_limits + + sig do + params( + _cache: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache::OrHash, + _credits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits::OrHash, + _rate_limits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits::OrHash + ).returns(T.attached_class) + end + def self.new(_cache: nil, _credits: nil, _rate_limits: nil) end sig do override.returns( - { balance: Integer, note: String, used: Integer } + { + _cache: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache, + _credits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits, + _rate_limits: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits + } ) end def to_hash end + + class Cache < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :is_cached + + sig { params(is_cached: T::Boolean).void } + attr_writer :is_cached + + sig { returns(T.nilable(String)) } + attr_reader :note + + sig { params(note: String).void } + attr_writer :note + + sig do + params(is_cached: T::Boolean, note: String).returns( + T.attached_class + ) + end + def self.new(is_cached: nil, note: nil) + end + + sig { override.returns({ is_cached: T::Boolean, note: String }) } + def to_hash + end + end + + class Credits < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :balance + + sig { params(balance: Integer).void } + attr_writer :balance + + sig { returns(T.nilable(String)) } + attr_reader :note + + sig { params(note: String).void } + attr_writer :note + + sig { returns(T.nilable(Integer)) } + attr_reader :used + + sig { params(used: Integer).void } + attr_writer :used + + sig do + params(balance: Integer, note: String, used: Integer).returns( + T.attached_class + ) + end + def self.new(balance: nil, note: nil, used: nil) + end + + sig do + override.returns( + { balance: Integer, note: String, used: Integer } + ) + end + def to_hash + end + end + + class RateLimits < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits, + Onlyfans::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :limit_day + + sig { params(limit_day: Integer).void } + attr_writer :limit_day + + sig { returns(T.nilable(Integer)) } + attr_reader :limit_minute + + sig { params(limit_minute: Integer).void } + attr_writer :limit_minute + + sig { returns(T.nilable(Integer)) } + attr_reader :remaining_day + + sig { params(remaining_day: Integer).void } + attr_writer :remaining_day + + sig { returns(T.nilable(Integer)) } + attr_reader :remaining_minute + + sig { params(remaining_minute: Integer).void } + attr_writer :remaining_minute + + sig do + params( + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + ).returns(T.attached_class) + end + def self.new( + limit_day: nil, + limit_minute: nil, + remaining_day: nil, + remaining_minute: nil + ) + end + + sig do + override.returns( + { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + ) + end + def to_hash + end + end end - class RateLimits < Onlyfans::Internal::Type::BaseModel + class Data < Onlyfans::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits, + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data, Onlyfans::Internal::AnyHash ) end - sig { returns(T.nilable(Integer)) } - attr_reader :limit_day + sig { returns(T.nilable(T::Array[Integer])) } + attr_reader :added - sig { params(limit_day: Integer).void } - attr_writer :limit_day + sig { params(added: T::Array[Integer]).void } + attr_writer :added - sig { returns(T.nilable(Integer)) } - attr_reader :limit_minute - - sig { params(limit_minute: Integer).void } - attr_writer :limit_minute - - sig { returns(T.nilable(Integer)) } - attr_reader :remaining_day - - sig { params(remaining_day: Integer).void } - attr_writer :remaining_day - - sig { returns(T.nilable(Integer)) } - attr_reader :remaining_minute + sig do + returns( + T.nilable( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed + ) + ) + end + attr_reader :failed - sig { params(remaining_minute: Integer).void } - attr_writer :remaining_minute + sig do + params( + failed: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed::OrHash + ).void + end + attr_writer :failed sig do params( - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer + added: T::Array[Integer], + failed: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed::OrHash ).returns(T.attached_class) end - def self.new( - limit_day: nil, - limit_minute: nil, - remaining_day: nil, - remaining_minute: nil - ) + def self.new(added: nil, failed: nil) end sig do override.returns( { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer + added: T::Array[Integer], + failed: + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed } ) end def to_hash end - end - end - class Data < Onlyfans::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Onlyfans::Models::UserLists::UserAddResponse::Data, - Onlyfans::Internal::AnyHash - ) - end + class Failed < Onlyfans::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed, + Onlyfans::Internal::AnyHash + ) + end - sig { returns(T.nilable(T::Array[Integer])) } - attr_reader :number_1224114714 + sig { returns(T.nilable(String)) } + attr_reader :number_123456 - sig { params(number_1224114714: T::Array[Integer]).void } - attr_writer :number_1224114714 + sig { params(number_123456: String).void } + attr_writer :number_123456 - sig do - params(number_1224114714: T::Array[Integer]).returns( - T.attached_class - ) - end - def self.new(number_1224114714: nil) - end + sig { params(number_123456: String).returns(T.attached_class) } + def self.new(number_123456: nil) + end - sig { override.returns({ number_1224114714: T::Array[Integer] }) } - def to_hash + sig { override.returns({ number_123456: String }) } + def to_hash + end + end end end + + sig do + override.returns( + T::Array[Onlyfans::Models::UserLists::UserAddResponse::Variants] + ) + end + def self.variants + end end end end diff --git a/rbi/onlyfans/models/webhook_create_params.rbi b/rbi/onlyfans/models/webhook_create_params.rbi index 5c1b20df..e942d2a1 100644 --- a/rbi/onlyfans/models/webhook_create_params.rbi +++ b/rbi/onlyfans/models/webhook_create_params.rbi @@ -11,8 +11,9 @@ module Onlyfans T.any(Onlyfans::WebhookCreateParams, Onlyfans::Internal::AnyHash) end - # The account scope for the webhook. Use "global" for all accounts, "inclusive" - # for only selected accounts, or "exclusive" for all except selected accounts. + # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use + # "global" for all accounts, "inclusive" for only selected accounts, or + # "exclusive" for all except selected accounts. sig { returns(String) } attr_accessor :account_scope @@ -21,12 +22,14 @@ module Onlyfans attr_accessor :endpoint_url # An array of webhook events to subscribe to. For all options, refer to our **List - # Available Events** endpoint. + # Available Events** endpoint. A webhook is single-platform: subscribe to either + # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook. sig { returns(T::Array[String]) } attr_accessor :events - # An array of account IDs to apply the scope to. Required unless account_scope is - # "global". + # An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`) + # for Fansly webhooks. Required unless account_scope is "global". sig { returns(T.nilable(T::Array[String])) } attr_reader :account_ids @@ -48,16 +51,19 @@ module Onlyfans ).returns(T.attached_class) end def self.new( - # The account scope for the webhook. Use "global" for all accounts, "inclusive" - # for only selected accounts, or "exclusive" for all except selected accounts. + # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use + # "global" for all accounts, "inclusive" for only selected accounts, or + # "exclusive" for all except selected accounts. account_scope:, # The URL of your webhook endpoint. endpoint_url:, # An array of webhook events to subscribe to. For all options, refer to our **List - # Available Events** endpoint. + # Available Events** endpoint. A webhook is single-platform: subscribe to either + # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook. events:, - # An array of account IDs to apply the scope to. Required unless account_scope is - # "global". + # An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`) + # for Fansly webhooks. Required unless account_scope is "global". account_ids: nil, # Optionally, add a signing secret to protect your webhook. signing_secret: nil, diff --git a/rbi/onlyfans/models/webhook_update_params.rbi b/rbi/onlyfans/models/webhook_update_params.rbi index 8f14e403..56378a37 100644 --- a/rbi/onlyfans/models/webhook_update_params.rbi +++ b/rbi/onlyfans/models/webhook_update_params.rbi @@ -14,8 +14,9 @@ module Onlyfans sig { returns(String) } attr_accessor :webhook_id - # The account scope for the webhook. Use "global" for all accounts, "inclusive" - # for only selected accounts, or "exclusive" for all except selected accounts. + # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use + # "global" for all accounts, "inclusive" for only selected accounts, or + # "exclusive" for all except selected accounts. sig { returns(String) } attr_accessor :account_scope @@ -24,12 +25,14 @@ module Onlyfans attr_accessor :endpoint_url # An array of webhook events to subscribe to. For all options, refer to our **List - # Available Events** endpoint. + # Available Events** endpoint. A webhook is single-platform: subscribe to either + # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook. sig { returns(T::Array[String]) } attr_accessor :events - # An array of account IDs to apply the scope to. Required unless account_scope is - # "global". + # An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`) + # for Fansly webhooks. Required unless account_scope is "global". sig { returns(T.nilable(T::Array[String])) } attr_reader :account_ids @@ -54,16 +57,19 @@ module Onlyfans end def self.new( webhook_id:, - # The account scope for the webhook. Use "global" for all accounts, "inclusive" - # for only selected accounts, or "exclusive" for all except selected accounts. + # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use + # "global" for all accounts, "inclusive" for only selected accounts, or + # "exclusive" for all except selected accounts. account_scope:, # The URL of your webhook endpoint. endpoint_url:, # An array of webhook events to subscribe to. For all options, refer to our **List - # Available Events** endpoint. + # Available Events** endpoint. A webhook is single-platform: subscribe to either + # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook. events:, - # An array of account IDs to apply the scope to. Required unless account_scope is - # "global". + # An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`) + # for Fansly webhooks. Required unless account_scope is "global". account_ids: nil, # Optionally, enabled/disable the webhook. This will stop/resume the sending of # events, without having to delete the webhook. diff --git a/rbi/onlyfans/resources/analytics/financial/profitability.rbi b/rbi/onlyfans/resources/analytics/financial/profitability.rbi index dba998f5..205f4678 100644 --- a/rbi/onlyfans/resources/analytics/financial/profitability.rbi +++ b/rbi/onlyfans/resources/analytics/financial/profitability.rbi @@ -14,9 +14,7 @@ module Onlyfans months: Integer, request_options: Onlyfans::RequestOptions::OrHash ).returns( - T::Array[ - Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem - ] + Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse ) end def get_history( @@ -40,9 +38,7 @@ module Onlyfans year: Integer, request_options: Onlyfans::RequestOptions::OrHash ).returns( - T::Array[ - Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem - ] + Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse ) end def get_profitability( diff --git a/rbi/onlyfans/resources/chats.rbi b/rbi/onlyfans/resources/chats.rbi index cb39e5e0..9c758635 100644 --- a/rbi/onlyfans/resources/chats.rbi +++ b/rbi/onlyfans/resources/chats.rbi @@ -35,7 +35,8 @@ module Onlyfans order: nil, # Search query to filter chats query: nil, - # Whether to skip user details in response (all or none). Default = all + # Whether to skip user details in the response (`all` or `none`). Defaults to + # `all`. skip_users: nil, request_options: {} ) @@ -98,8 +99,8 @@ module Onlyfans limit: nil, # Query param: Number of medias to skip for pagination offset: nil, - # Query param: Whether to skip user details in response (all or none). Default = - # all + # Query param: Whether to skip user details in the response (`all` or `none`). + # Defaults to `all`. skip_users: nil, # Query param: Filter by specific media types. Keep empty to return all. type: nil, @@ -160,8 +161,8 @@ module Onlyfans end # Calling this endpoint will show the target fan a "Model is typing..." note in - # the chat for ~4 seconds. If you want to continue showing the indicator call this - # endpoint multiple times. Free - no credits charged. + # the chat for ~4 seconds. Duplicate calls for the same account and chat are + # coalesced during that window. sig do params( chat_id: String, diff --git a/rbi/onlyfans/resources/chats/messages.rbi b/rbi/onlyfans/resources/chats/messages.rbi index bb3f2cef..69359ef0 100644 --- a/rbi/onlyfans/resources/chats/messages.rbi +++ b/rbi/onlyfans/resources/chats/messages.rbi @@ -59,7 +59,7 @@ module Onlyfans limit: nil, # Query param: Sort order for messages (desc or asc) order: nil, - # Query param: Whether to skip user details (all or none) + # Query param: Whether to skip user details (`all` or `none`). skip_users: nil, request_options: {} ) @@ -148,20 +148,47 @@ module Onlyfans end # Send a new message to a chat. + # + # **Idempotency.** Pass an `Idempotency-Key` header to make retries safe. The + # first request with a given key is executed normally and its response is stored + # for **24 hours**; any later request with the same key returns that stored + # response, plus an `Idempotent-Replayed: true` header, without contacting + # OnlyFans and without consuming credits. The replayed body is the original + # response with its `_meta._credits` block rewritten to show `used: 0` and your + # current balance. + # + # Keys are scoped to your team, this endpoint and the account in the URL, so the + # same value can be reused safely against a different account. Use a fresh, unique + # value (a UUID works well) for each message you send; it must be 1-255 printable + # ASCII characters. + # + # - `400 IDEMPOTENCY_KEY_INVALID` — the header value is empty, too long, or + # contains non-ASCII characters. + # - `409 IDEMPOTENCY_CONFLICT` — an earlier request with this key is still + # running. Retry once it finishes. + # - `422 IDEMPOTENCY_KEY_MISMATCH` — this key was already used with a different + # request body or chat. + # + # Responses with a `5xx` status (and `408`/`429`) are never stored, so a failed + # send can be retried with the same key. The header is optional: omit it and the + # endpoint behaves exactly as before. sig do params( chat_id: String, account: String, + block_banned_words: + Onlyfans::Chats::MessageSendParams::BlockBannedWords::OrSymbol, giphy_id: String, locked_text: T::Boolean, media_files: T::Array[T.anything], previews: T::Array[T.anything], - price: Integer, + price: Float, reply_to_message_id: Integer, rf_guest: String, rf_partner: String, rf_tag: String, text: String, + idempotency_key: String, request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::Chats::MessageSendResponse) end @@ -170,6 +197,11 @@ module Onlyfans chat_id, # Path param: The Account ID account:, + # Body param: Screen `text` for OnlyFans banned words and block the send if any + # are found (returns a 422 listing the offending words). `strict_ban` blocks all + # tiers, `risky` blocks Risky + Replace/soften, `replace_soften` blocks + # Replace/soften only. Omit to disable screening. + block_banned_words: nil, # Body param: The ID of the Giphy GIF to attach to the message. Get IDs from the # Giphy listing endpoints (`/giphy/trending`, `/giphy/search`). giphy_id: nil, @@ -182,8 +214,8 @@ module Onlyfans # integer indices referencing uploaded files in `mediaFiles`. Will be shown if # `price` is provided. previews: nil, - # Body param: Price for paid content (0 or between 3-200). In case this is not - # zero, **mediaFiles** is required + # Body param: Price for paid content in USD (0 or between 3-200). In case this is + # not zero, **mediaFiles** is required price: nil, # Body param: Mark this message as a reply to another (can be either your own, or # the recipient's) @@ -196,6 +228,8 @@ module Onlyfans rf_tag: nil, # Body param: The message text content. Required unless a media file is present. text: nil, + # Header param + idempotency_key: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/data_exports.rbi b/rbi/onlyfans/resources/data_exports.rbi index edce51b9..f8d625d5 100644 --- a/rbi/onlyfans/resources/data_exports.rbi +++ b/rbi/onlyfans/resources/data_exports.rbi @@ -23,15 +23,20 @@ module Onlyfans # The end date for the export (ISO 8601 format). end_date:, # The output file format. Supported formats vary by export type: `csv` or `xlsx` - # for transactions, chat_messages, trial_links, tracking_links, smart_links, - # payouts, chargebacks, public_profiles, fans, followings; `zip` for media_vault. + # for transactions, chat_messages, fansly_chat_messages, trial_links, + # tracking_links, smart_links, payouts, chargebacks, public_profiles, fans, + # followings, profile_visitors; `zip` for media_vault. file_type:, # The start date for the export (ISO 8601 format). start_date:, - # The type of data to export + # The type of data to export. Use `fansly_chat_messages` to export Fansly chat + # messages (all other types are OnlyFans). `profile_visitors` returns one row per + # account per day, scraped one day at a time so the daily numbers are not + # aggregated away by OnlyFans. type:, # Array of account prefixed IDs to export data from. Not required for - # `public_profiles` type. + # `public_profiles` type. For `fansly_chat_messages`, pass Fansly account prefixed + # IDs (`fansly_acct_...`); all other types take OnlyFans account IDs. account_ids: nil, # When true, automatically starts the export after creation. auto_start: nil, @@ -42,19 +47,23 @@ module Onlyfans # account, max 10,000,000), `maxChats` (optional per-account chat scrape limit), # `skipMassMessages` (optional, bool), `chatIds` (optional array of numeric # fan/chat IDs; filters output and can drastically reduce totals). For - # `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, `video`, - # `audio`). For `fans`: `type` (required, one of: `all`, `active`, `expired`, - # `latest`). For `followings`: `type` (required, one of: `all`, `active`, - # `expired`). For `public_profiles`: `query` (optional, full-text search), - # `gender` (optional, filter: male, female, trans, couple), `minSubscribePrice` - # (optional, USD), `maxSubscribePrice` (optional, USD), `location` (optional), - # `minPostsCount` (optional, minimum posts), `minPhotosCount` (optional, minimum - # photos), `minVideosCount` (optional, minimum videos), `minSubscribersCount` - # (optional, minimum subscribers), `minJoinDate` (optional, ISO 8601 date), - # `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` (optional, ISO 8601 - # date, profile added to DB after), `createdAtTo` (optional, ISO 8601 date, - # profile added to DB before), `instagram` (optional), `twitter` (optional), - # `tiktok` (optional), `maxResults` (optional, limit results). + # `fansly_chat_messages`: `maxMessages` (required per account, max 10,000,000), + # `maxChats` (optional per-account chat scrape limit), `chatIds` (optional array + # of Fansly group ID strings; filters output and can drastically reduce totals). + # For `media_vault`: `mediaType` (required, one of: `all`, `photo`, `gif`, + # `video`, `audio`). For `fans`: `type` (required, one of: `all`, `active`, + # `expired`, `latest`). For `followings`: `type` (required, one of: `all`, + # `active`, `expired`). For `public_profiles`: `query` (optional, full-text + # search), `gender` (optional, filter: male, female, trans, couple), + # `minSubscribePrice` (optional, USD), `maxSubscribePrice` (optional, USD), + # `location` (optional), `minPostsCount` (optional, minimum posts), + # `minPhotosCount` (optional, minimum photos), `minVideosCount` (optional, minimum + # videos), `minSubscribersCount` (optional, minimum subscribers), + # `maxSubscribersCount` (optional, maximum subscribers), `minJoinDate` (optional, + # ISO 8601 date), `minLastSeenAt` (optional, ISO 8601 date), `createdAtFrom` + # (optional, ISO 8601 date, profile added to DB after), `createdAtTo` (optional, + # ISO 8601 date, profile added to DB before), `instagram` (optional), `twitter` + # (optional), `tiktok` (optional), `maxResults` (optional, limit results). options: nil, request_options: {} ) diff --git a/rbi/onlyfans/resources/engagement/messages.rbi b/rbi/onlyfans/resources/engagement/messages.rbi index d3bf1655..a9c34154 100644 --- a/rbi/onlyfans/resources/engagement/messages.rbi +++ b/rbi/onlyfans/resources/engagement/messages.rbi @@ -38,7 +38,7 @@ module Onlyfans marker: nil, # Query param: Offset for pagination (default = 0) offset: nil, - # Query param: Optional flag for subsequent pages (example: all) + # Query param: Optional flag for subsequent pages (example: all). skip_users: nil, # Query param: Skip duplicate users in results (0/1). Default = 1 skip_users_dups: nil, @@ -58,8 +58,8 @@ module Onlyfans def get_top_message( # The Account ID account, - # The end date for the period. Keep empty to retrieve until now. MUST BE DATE - # AFTER `startDate`. + # The end date for the period. Keep empty to retrieve until now. It must be after + # `startDate`. end_date: nil, # The start date for the period. Keep empty to retrieve from the model start date. start_date: nil, diff --git a/rbi/onlyfans/resources/engagement/messages/direct_messages.rbi b/rbi/onlyfans/resources/engagement/messages/direct_messages.rbi index 4d71bc51..21e97073 100644 --- a/rbi/onlyfans/resources/engagement/messages/direct_messages.rbi +++ b/rbi/onlyfans/resources/engagement/messages/direct_messages.rbi @@ -22,8 +22,8 @@ module Onlyfans def list( # The Account ID account, - # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. end_date: nil, # Number of messages to return (default = 10) limit: nil, @@ -53,7 +53,7 @@ module Onlyfans def chart( # The Account ID account, - # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. end_date: nil, # Start of the chart window in `Y-m-d H:i:s` format. start_date: nil, diff --git a/rbi/onlyfans/resources/engagement/messages/mass_messages.rbi b/rbi/onlyfans/resources/engagement/messages/mass_messages.rbi index 0651b749..6987ee03 100644 --- a/rbi/onlyfans/resources/engagement/messages/mass_messages.rbi +++ b/rbi/onlyfans/resources/engagement/messages/mass_messages.rbi @@ -21,8 +21,8 @@ module Onlyfans def list( # The Account ID account, - # The latest message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. end_date: nil, # Number of messages to return (default = 10) limit: nil, @@ -50,7 +50,7 @@ module Onlyfans def chart( # The Account ID account, - # End of the chart window in `Y-m-d H:i:s` format. Must be after `startDate`. + # End of the chart window in `Y-m-d H:i:s` format. It must be after `startDate`. end_date: nil, # Start of the chart window in `Y-m-d H:i:s` format. start_date: nil, diff --git a/rbi/onlyfans/resources/fans.rbi b/rbi/onlyfans/resources/fans.rbi index 1e4907b1..b3e276f3 100644 --- a/rbi/onlyfans/resources/fans.rbi +++ b/rbi/onlyfans/resources/fans.rbi @@ -30,7 +30,19 @@ module Onlyfans ) end - # Get a paginated list of fans for an Account. Newest fans are first. + # Get a paginated list of fans for an Account. Newest fans are first. Paginate by + # following `_pagination.next_page` until it is null (`data.hasMore` is the + # authoritative flag). Do NOT use the page's item count to detect the last page — + # OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for limit=20) on + # a non-final page because it filters entries server-side; no fans are skipped. To + # track progress, GET `/{account}/me` returns data.subscribersCount (the current + # active-subscriber count) as a total. + # + # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans + # who have never spent), which OnlyFans itself cannot do. Those requests are + # answered from OnlyFansAPI's own fan index rather than proxied, so the page is + # limited to fans we have already indexed for this account — see `data._source` in + # the response. sig do params( account: String, @@ -46,8 +58,8 @@ module Onlyfans # The Account ID account, filter: nil, - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. limit: nil, # Number of fans to skip. Must be at least 0. offset: nil, @@ -59,7 +71,17 @@ module Onlyfans ) end - # Get a paginated list of fans for an Account. Newest fans are first. + # Get a paginated list of fans for an Account. Newest fans are first. Paginate by + # following `_pagination.next_page` until it is null (`data.hasMore` is the + # authoritative flag). Do NOT use the page's item count to detect the last page — + # OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for limit=20) on + # a non-final page because it filters entries server-side; no fans are skipped. + # + # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans + # who have never spent), which OnlyFans itself cannot do. Those requests are + # answered from OnlyFansAPI's own fan index rather than proxied, so the page is + # limited to fans we have already indexed for this account — see `data._source` in + # the response. sig do params( account: String, @@ -75,8 +97,8 @@ module Onlyfans # The Account ID account, filter: nil, - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. limit: nil, # Number of fans to skip. Must be at least 0. offset: nil, @@ -89,6 +111,17 @@ module Onlyfans end # Get a paginated list of expired fans for an Account. Newest fans are first. + # Paginate by following `_pagination.next_page` until it is null (`data.hasMore` + # is the authoritative flag). Do NOT use the page's item count to detect the last + # page — OnlyFans occasionally returns fewer than `limit` items (e.g. 19 for + # limit=20) on a non-final page because it filters entries server-side; no fans + # are skipped. + # + # Supports `filter[max_total_spent]` (e.g. `filter[max_total_spent]=0` for fans + # who have never spent), which OnlyFans itself cannot do. Those requests are + # answered from OnlyFansAPI's own fan index rather than proxied, so the page is + # limited to fans we have already indexed for this account — see `data._source` in + # the response. sig do params( account: String, @@ -104,8 +137,8 @@ module Onlyfans # The Account ID account, filter: nil, - # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 20. + # Number of fans to return (1-20). OnlyFans does not allow more than 20 per page. + # Must be at least 1. Must not be greater than 20. limit: nil, # Number of fans to skip. Must be at least 0. offset: nil, @@ -133,16 +166,16 @@ module Onlyfans def list_latest( # The Account ID account, - # End date for filtering (required with start_date). This field is required when - # start_date is present. + # End date for filtering (required with start_date). Must be a valid date. Must + # not be greater than 255 characters. end_date: nil, # Number of fans to return (1-50). Must be at least 1. Must not be greater - # than 100. + # than 50. limit: nil, # Number of fans to skip. Must be at least 0. offset: nil, - # Start date for filtering (required with end_date). This field is required when - # end_date is present. + # Start date for filtering (required with end_date). Must be a valid date. Must + # not be greater than 255 characters. start_date: nil, # Filter by type: total, renew, or new. type: nil, @@ -166,11 +199,11 @@ module Onlyfans account, # Sort by: total (default), subscribes, tips, messages, post, streams. by: nil, - # End date for filtering (required with start_date). This field is required when - # start_date is present. + # End date for filtering (required with start_date). Must be a valid date. Must + # not be greater than 255 characters. end_date: nil, - # Start date for filtering (required with end_date). This field is required when - # end_date is present. + # Start date for filtering (required with end_date). Must be a valid date. Must + # not be greater than 255 characters. start_date: nil, request_options: {} ) diff --git a/rbi/onlyfans/resources/following.rbi b/rbi/onlyfans/resources/following.rbi index afbbb6fd..806ff4ec 100644 --- a/rbi/onlyfans/resources/following.rbi +++ b/rbi/onlyfans/resources/following.rbi @@ -4,7 +4,16 @@ module Onlyfans module Resources # APIs for managing OnlyFans followings (people you're subscribed to) class Following - # Get a paginated list of followings for an Account. Newest followings are first. + # Get a paginated list of followings for an Account. By default OnlyFans returns + # this list newest-first, sorted by `subscribedByData.subscribeAt` descending. The + # expired list does not share this order, so do not assume it applies there. Pass + # `sort` (optionally with `sortDirection`) to reorder the list — see the parameter + # description for the caveat that OnlyFans persists the chosen order account-wide. + # An empty page is not the end of the list: OnlyFans applies `offset` to the whole + # following collection before filtering it down to the requested list, so a page + # can come back empty while more results follow. Keep following + # `_pagination.next_page` until it is `null` instead of stopping at the first + # empty page. sig do params( account: String, @@ -12,6 +21,11 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: T.nilable(Onlyfans::FollowingListActiveParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListActiveParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::FollowingListActiveResponse) end @@ -26,11 +40,43 @@ module Onlyfans offset: nil, # Search within following name/username. query: nil, + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sort: nil, + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sort_direction: nil, request_options: {} ) end - # Get a paginated list of followings for an Account. Newest followings are first. + # Get a paginated list of followings for an Account. By default OnlyFans returns + # this list newest-first, sorted by `subscribedByData.subscribeAt` descending. The + # expired list does not share this order, so do not assume it applies there. Pass + # `sort` (optionally with `sortDirection`) to reorder the list — see the parameter + # description for the caveat that OnlyFans persists the chosen order account-wide. + # An empty page is not the end of the list: OnlyFans applies `offset` to the whole + # following collection before filtering it down to the requested list, so a page + # can come back empty while more results follow. Keep following + # `_pagination.next_page` until it is `null` instead of stopping at the first + # empty page. sig do params( account: String, @@ -38,6 +84,11 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: T.nilable(Onlyfans::FollowingListAllParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListAllParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::FollowingListAllResponse) end @@ -52,12 +103,51 @@ module Onlyfans offset: nil, # Search within following name/username. query: nil, + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sort: nil, + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sort_direction: nil, request_options: {} ) end - # Get a paginated list of expired followings for an Account. Newest followings are - # first. + # Get a paginated list of expired followings for an Account. This list has no + # order guarantee. Unlike the all and active lists, it is sorted by neither + # `subscribedByData.subscribeAt` nor `subscribedByData.expiredAt`. To poll for new + # expirations, page through the full list each cycle (`limit=50`, follow + # `_pagination.next_page` until it is null) and diff it against your own store + # using `subscribedByData.expiredAt`. Do NOT stop early at the first entry you + # have already seen, as that can silently skip real expirations. An empty page is + # not the end of the list either: OnlyFans applies `offset` to the whole following + # collection and only then filters that window down to expired subscriptions, so + # early pages can come back empty while hundreds of expired rows still follow. + # Keep following `_pagination.next_page` until it is `null` instead of stopping at + # the first empty page. Pass `sort=expire_date` (optionally with `sortDirection`) + # to get a deterministic order instead — see the parameter description for the + # caveat that OnlyFans persists the chosen order account-wide. Ordering by expiry + # descending puts the still-active subscriptions first and moves the expired rows + # to the tail of the collection, so prefer `sortDirection=asc` or + # `sort=is_expired` for expired-first results; for that reason `sort=expire_date` + # defaults to `asc` on this list when no `sortDirection` is given. sig do params( account: String, @@ -65,6 +155,11 @@ module Onlyfans limit: Integer, offset: Integer, query: T.nilable(String), + sort: T.nilable(Onlyfans::FollowingListExpiredParams::Sort::OrSymbol), + sort_direction: + T.nilable( + Onlyfans::FollowingListExpiredParams::SortDirection::OrSymbol + ), request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::FollowingListExpiredResponse) end @@ -79,6 +174,29 @@ module Onlyfans offset: nil, # Search within following name/username. query: nil, + # Order the list by `last_activity` (the followed creator's last activity), + # `expire_date` (subscription expiry), `subscribe_date` (subscription start) or + # `is_expired` (expired first — OnlyFans only offers this one on the expired + # list). Omit it to keep whichever order is currently stored for the account. + # **Note:** OnlyFans persists this order account-wide, so it also applies to later + # requests that omit `sort` and to the creator's own onlyfans.com UI, until it is + # changed again. **Expired list:** OnlyFans applies `offset` to the whole + # following collection and only then filters it down to expired subscriptions, so + # ordering by expiry descending puts the still-active subscriptions first and + # moves the expired rows to the tail of the collection — the first several hundred + # offsets then come back empty. Use `sortDirection=asc` or `sort=is_expired` to + # get expired-first results. For that reason `sort=expire_date` on the expired + # list defaults to `asc` instead of `desc` when you do not pass `sortDirection`. + # Whatever order you pick, an empty page is **not** the end of the list: keep + # following `_pagination.next_page` until it is `null` rather than stopping at the + # first empty page. This field is required when sortDirection is + # present. + sort: nil, + # Direction for `sort`: `desc` (default) or `asc`. Requires `sort` to be set. + # Exception: `sort=expire_date` on the expired list defaults to `asc`, because + # `desc` moves the expired rows to the tail of the underlying collection and + # leaves the early pages empty. Passing `sortDirection` explicitly always wins. + sort_direction: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/link_tags.rbi b/rbi/onlyfans/resources/link_tags.rbi index 2d33463f..da708996 100644 --- a/rbi/onlyfans/resources/link_tags.rbi +++ b/rbi/onlyfans/resources/link_tags.rbi @@ -2,10 +2,10 @@ module Onlyfans module Resources - # APIs for managing tags on free trial links and tracking links + # APIs for managing tags on free trial links, tracking links, and Smart Links class LinkTags - # Get all existing tags that have been used on free trial links and/or tracking - # links for this account. This is a free endpoint. + # Get all existing tags that have been used on free trial links, tracking links, + # and/or Smart Links for this account. This is a free endpoint. sig do params( type: Onlyfans::LinkTagListParams::Type::OrSymbol, @@ -13,7 +13,7 @@ module Onlyfans ).returns(Onlyfans::Models::LinkTagListResponse) end def list( - # Filter by link type. If not provided, returns tags for both types. + # Filter by link type. If not provided, returns tags for all types. type: nil, request_options: {} ) diff --git a/rbi/onlyfans/resources/mass_messaging.rbi b/rbi/onlyfans/resources/mass_messaging.rbi index 58747fcc..57d0eac1 100644 --- a/rbi/onlyfans/resources/mass_messaging.rbi +++ b/rbi/onlyfans/resources/mass_messaging.rbi @@ -3,7 +3,8 @@ module Onlyfans module Resources class MassMessaging - # Get the content of a mass message. + # Get the content and settings of a mass message, including a message scheduled + # for later. sig do params( id: String, @@ -21,17 +22,20 @@ module Onlyfans ) end - # Update a mass message. + # Update the content, recipients, media, price, or scheduled send time of an + # existing mass message. sig do params( id: String, account: String, text: String, + block_banned_words: + Onlyfans::MassMessagingUpdateParams::BlockBannedWords::OrSymbol, giphy_id: String, locked_text: T::Boolean, media_files: T::Array[String], previews: T::Array[String], - price: Integer, + price: Float, scheduled_date: String, user_ids: T::Array[String], user_lists: T::Array[String], @@ -46,6 +50,11 @@ module Onlyfans account:, # Body param: The message text content text:, + # Body param: Screen `text` for OnlyFans banned words and block the update if any + # are found (returns a 422 listing the offending words). `strict_ban` blocks all + # tiers, `risky` blocks Risky + Replace/soften, `replace_soften` blocks + # Replace/soften only. Omit to disable screening. + block_banned_words: nil, # Body param: The ID of the Giphy GIF to attach to the message. Get IDs from the # Giphy listing endpoints (`/giphy/trending`, `/giphy/search`). giphy_id: nil, @@ -58,8 +67,8 @@ module Onlyfans # if price is not 0). Will be shown if `price` is provided. All `previews` values # must also exist in the `mediaFiles` array. previews: nil, - # Body param: Price for paid content (0 or between 3-200). In case this is not - # zero, **mediaFiles** is required + # Body param: Price for paid content in USD (0 or between 3-200). In case this is + # not zero, **mediaFiles** is required price: nil, # Body param: Schedule the chat message in the future (UTC timezone). scheduled_date: nil, @@ -71,7 +80,8 @@ module Onlyfans ) end - # List the pending or recently sent mass messages in the message queue. + # List pending, scheduled, and recently sent mass messages. Use an item ID to + # retrieve, update, reschedule, delete, or unsend the message. sig do params( account: String, @@ -118,8 +128,8 @@ module Onlyfans def retrieve_overview( # The Account ID account, - # The latest mass message to retrieve. Keep empty to get all. MUST BE DATE AFTER - # `startDate`. This is also used for pagination. + # The latest mass message to retrieve. Keep empty to get all. It must be after + # `startDate` and is also used for pagination. end_date: nil, # Number of mass messages to return (default = 10) limit: nil, @@ -138,12 +148,14 @@ module Onlyfans params( account: String, text: String, + block_banned_words: + Onlyfans::MassMessagingSendParams::BlockBannedWords::OrSymbol, excluded_lists: T::Array[String], giphy_id: String, locked_text: T::Boolean, media_files: T::Array[T.anything], previews: T::Array[T.anything], - price: Integer, + price: Float, rf_guest: String, rf_partner: String, rf_tag: String, @@ -159,6 +171,11 @@ module Onlyfans account, # The message text content text:, + # Screen `text` for OnlyFans banned words and block the send if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + block_banned_words: nil, # Array of user list IDs that the mass message will NOT be sent to. excluded_lists: nil, # The ID of the Giphy GIF to attach to the message. Get IDs from the Giphy listing @@ -173,7 +190,7 @@ module Onlyfans # referencing uploaded files in `mediaFiles`. Will be shown if `price` is # provided. previews: nil, - # Price for paid content (0 or between 3-200). In case this is not zero, + # Price for paid content in USD (0 or between 3-200). In case this is not zero, # **mediaFiles** is required price: nil, # Array of OnlyFans Release Form Guest IDs to tag in your mass message diff --git a/rbi/onlyfans/resources/media.rbi b/rbi/onlyfans/resources/media.rbi index b5785915..63f57e76 100644 --- a/rbi/onlyfans/resources/media.rbi +++ b/rbi/onlyfans/resources/media.rbi @@ -12,14 +12,15 @@ module Onlyfans # Downloads a file directly from a `https://cdn*.onlyfans.com/*` URL. When the # file is already cached on our CDN, this endpoint returns a `302` redirect to a # `https://cdn.fansapi.com/*` URL. Most HTTP clients follow redirects - # automatically (`curl` requires `-L`). Otherwise, the file is streamed through - # our proxies and queued for caching. + # automatically (`curl` requires `-L`). Otherwise, the file is redirected to + # `dl.fansapi.com`, which streams it through the account proxy and reports billing + # back to the API. sig do params( cdn_url: String, account: String, request_options: Onlyfans::RequestOptions::OrHash - ).returns(String) + ).void end def download( # Optional parameter. The CDN URL to scrape. **Keep in mind that these URLs expire @@ -84,7 +85,9 @@ module Onlyfans # The Account ID account, # Set to `true` to process uploads in the background. Returns a `polling_url` to - # check status. Recommended for large files. + # check status. Recommended for large files. Instead of polling, you can subscribe + # to the `media_uploads.completed` and `media_uploads.failed` webhook events — + # they only fire for async uploads. async: nil, # The file to upload. Required if `file_url` is not provided. Maximum file size: # 100 MB (limited by Cloudflare). diff --git a/rbi/onlyfans/resources/media/uploads.rbi b/rbi/onlyfans/resources/media/uploads.rbi index 2b3abd87..53aa7bae 100644 --- a/rbi/onlyfans/resources/media/uploads.rbi +++ b/rbi/onlyfans/resources/media/uploads.rbi @@ -13,6 +13,11 @@ module Onlyfans # - `processing` — Download/upload in progress # - `completed` — Upload finished, `media` and `credits_used` are included # - `failed` — Upload failed, `error` is included + # + # Instead of polling, you can subscribe to the `media_uploads.completed` and + # `media_uploads.failed` webhook events. They carry the same fields as this + # endpoint and are only sent for async (`async=true`) uploads — synchronous + # uploads return their result directly. sig do params( upload: String, diff --git a/rbi/onlyfans/resources/media/vault.rbi b/rbi/onlyfans/resources/media/vault.rbi index b89eeeae..859b77a1 100644 --- a/rbi/onlyfans/resources/media/vault.rbi +++ b/rbi/onlyfans/resources/media/vault.rbi @@ -92,7 +92,9 @@ module Onlyfans # The Account ID account, # Set to `true` to process uploads in the background. Returns a `polling_url` to - # check status. Recommended for large files. + # check status. Recommended for large files. Instead of polling, you can subscribe + # to the `media_uploads.completed` and `media_uploads.failed` webhook events — + # they only fire for async uploads. async: nil, # The file to upload. Required if `file_url` is not provided. Maximum file size: # 100 MB (limited by Cloudflare). diff --git a/rbi/onlyfans/resources/media/vault/lists.rbi b/rbi/onlyfans/resources/media/vault/lists.rbi index 35ba99a4..193947b5 100644 --- a/rbi/onlyfans/resources/media/vault/lists.rbi +++ b/rbi/onlyfans/resources/media/vault/lists.rbi @@ -47,31 +47,56 @@ module Onlyfans params( list_id: String, account: String, + name: String, request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::Media::Vault::ListUpdateResponse) end def update( - # The ID of the list + # Path param: The ID of the list list_id, - # The Account ID + # Path param: The Account ID account:, + # Body param: The new name for the vault list. Must not be greater than 255 + # characters. + name:, request_options: {} ) end # List your Vault lists (categories). + # + # Every response carries an `ETag` computed over the `data` payload. Send it back + # as `If-None-Match` on your next call and you will get a `304 Not Modified` with + # an empty body when nothing changed, so you can keep serving your cached copy + # instead of re-parsing the full list. Credits are debited either way — we still + # have to ask OnlyFans for the current state to know whether it changed. + # + # The `ETag` covers `data` only, never `_meta` — your credits balance changes on + # every call, so including it would mean the `ETag` never matches. Because a `304` + # has no body, it also has no `_meta`: read the current credits and rate-limit + # counters from the `X-OFAPI-Credits-Used`, `X-OFAPI-Credits-Balance`, + # `X-Rate-Limit-Limit-Minute` and `X-Rate-Limit-Remaining-Minute` response + # headers, which are sent on `304` responses too. The `_meta` inside a body you + # cached earlier is stale by definition. sig do params( account: String, + lightweight: T::Boolean, limit: Integer, offset: Integer, query: String, request_options: Onlyfans::RequestOptions::OrHash - ).returns(Onlyfans::Models::Media::Vault::ListListResponse) + ).returns( + Onlyfans::Models::Media::Vault::ListListResponse::Variants + ) end def list( # The Account ID account, + # Set to `true` to return only `id`, `name`, `type`, `canUpdate` and a rolled-up + # `mediaCount` per list, dropping the `medias` previews. Much smaller payload — + # ideal for rendering a folder picker. Default: `false` + lightweight: nil, # Number of media to return per page. Default: `24` limit: nil, # The offset used for pagination. Default `0` diff --git a/rbi/onlyfans/resources/messages.rbi b/rbi/onlyfans/resources/messages.rbi index d3acbbd4..2fa40e6e 100644 --- a/rbi/onlyfans/resources/messages.rbi +++ b/rbi/onlyfans/resources/messages.rbi @@ -3,35 +3,6 @@ module Onlyfans module Resources class Messages - # Attach Tags (Release Forms) to a message that has already been sent. Please - # note, that this is a "sync" operation - for example, if you provide empty - # `rfTag` it will remove all existing tags already attached to the message. - sig do - params( - message_id: String, - account: String, - rf_guest: String, - rf_partner: String, - rf_tag: String, - request_options: Onlyfans::RequestOptions::OrHash - ).returns(Onlyfans::Models::MessageAttachTagsResponse) - end - def attach_tags( - # Path param: The ID of the message to attach the release forms to. This can be - # ONLY a message sent by the creator. - message_id, - # Path param: The Account ID - account:, - # Body param: Array of OnlyFans Release Form Guest IDs to tag in your message - rf_guest: nil, - # Body param: Array of OnlyFans Release Form Partners IDs to tag in your message - rf_partner: nil, - # Body param: Array of OnlyFans Creator User IDs to tag in your message - rf_tag: nil, - request_options: {} - ) - end - # @api private sig { params(client: Onlyfans::Client).returns(T.attached_class) } def self.new(client:) diff --git a/rbi/onlyfans/resources/notifications.rbi b/rbi/onlyfans/resources/notifications.rbi index 6f778d3c..87e27a5e 100644 --- a/rbi/onlyfans/resources/notifications.rbi +++ b/rbi/onlyfans/resources/notifications.rbi @@ -27,7 +27,7 @@ module Onlyfans from_id: nil, # The number of notifications. Default `10` limit: nil, - # Whether to skip user details. Default `all` + # Whether to skip user details. Defaults to `all`. skip_users: nil, # Filter notifications by a specific type type: nil, diff --git a/rbi/onlyfans/resources/posts.rbi b/rbi/onlyfans/resources/posts.rbi index 4dd736dd..2b5d8db3 100644 --- a/rbi/onlyfans/resources/posts.rbi +++ b/rbi/onlyfans/resources/posts.rbi @@ -16,6 +16,8 @@ module Onlyfans params( account: String, text: String, + block_banned_words: + Onlyfans::PostCreateParams::BlockBannedWords::OrSymbol, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: T::Array[String], @@ -37,6 +39,11 @@ module Onlyfans account, # The post text content text:, + # Screen `text` for OnlyFans banned words and block the post if any are found + # (returns a 422 listing the offending words). `strict_ban` blocks all tiers, + # `risky` blocks Risky + Replace/soften, `replace_soften` blocks Replace/soften + # only. Omit to disable screening. + block_banned_words: nil, # Number of days after which the post will expire. Between 1 and 30 days. Keep # empty for no expiration. expire_days: nil, @@ -97,6 +104,8 @@ module Onlyfans post_id: Integer, account: String, text: String, + block_banned_words: + Onlyfans::PostUpdateParams::BlockBannedWords::OrSymbol, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: T::Array[String], @@ -120,6 +129,11 @@ module Onlyfans account:, # Body param: The post text content text:, + # Body param: Screen `text` for OnlyFans banned words and block the update if any + # are found (returns a 422 listing the offending words). `strict_ban` blocks all + # tiers, `risky` blocks Risky + Replace/soften, `replace_soften` blocks + # Replace/soften only. Omit to disable screening. + block_banned_words: nil, # Body param: Number of days after which the post will expire. Between 1 and 30 # days. Keep empty for no expiration. expire_days: nil, diff --git a/rbi/onlyfans/resources/queue.rbi b/rbi/onlyfans/resources/queue.rbi index 07311726..16afbea6 100644 --- a/rbi/onlyfans/resources/queue.rbi +++ b/rbi/onlyfans/resources/queue.rbi @@ -3,29 +3,36 @@ module Onlyfans module Resources class Queue - # List posts and messages in the queue. + # List scheduled posts and mass messages for a date range. Use the type filter to + # return only posts, messages, or both. sig do params( account: String, - limit: Integer, publish_date_end: String, publish_date_start: String, timezone: String, + limit: Integer, + type: T::Array[Onlyfans::QueueListParams::Type::OrSymbol], request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::QueueListResponse) end def list( # The Account ID account, - # Maximum number of queue items to return (default = 20) - limit:, - # Latest publish date to return + # Latest publish date to return. Must be a valid date. Must be a valid date. Must + # be a date after or equal to publishDateStart. publish_date_end:, - # Earliest publish date to return (must be at least today) + # Earliest publish date to return (must be at least today). Must be a valid date. + # Must be a valid date. Must be a date after or equal to today. publish_date_start:, - # Time timezone of the provided dates. - # [View available timezone values](https://www.php.net/manual/en/timezones.php) + # Timezone of the provided dates. + # [View available timezone values](https://www.php.net/manual/en/timezones.php). + # Must be a valid time zone, such as Africa/Accra. timezone:, + # Maximum number of queue items to return (default 20). Must be at least 1. Must + # not be greater than 100. + limit: nil, + type: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/release_forms.rbi b/rbi/onlyfans/resources/release_forms.rbi index f6208e3f..26c84d0b 100644 --- a/rbi/onlyfans/resources/release_forms.rbi +++ b/rbi/onlyfans/resources/release_forms.rbi @@ -40,7 +40,8 @@ module Onlyfans # Get a paginated list of users that can be tagged in release forms. These are # verified creators who have signed release forms to appear in your content. Use - # `offset` and `limit` for pagination. + # `offset` and `limit` for pagination, following `_pagination.next_page` until it + # is `null`. sig do params( account: String, diff --git a/rbi/onlyfans/resources/shared_tracking_links.rbi b/rbi/onlyfans/resources/shared_tracking_links.rbi index f8d97030..925c6465 100644 --- a/rbi/onlyfans/resources/shared_tracking_links.rbi +++ b/rbi/onlyfans/resources/shared_tracking_links.rbi @@ -17,20 +17,36 @@ module Onlyfans account: String, limit: Integer, offset: Integer, - synchronous: T.nilable(T::Boolean), + pagination: + Onlyfans::SharedTrackingLinkListParams::Pagination::OrInteger, + sorting_deleted: + Onlyfans::SharedTrackingLinkListParams::SortingDeleted::OrInteger, + stats: String, + synchronous: T::Boolean, + with_deleted: + Onlyfans::SharedTrackingLinkListParams::WithDeleted::OrInteger, request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::SharedTrackingLinkListResponse) end def list( # The Account ID account, - # The number of shared tracking links to return. Default `10` + # The number of shared tracking links to return. Default `10`. Must be at least 1. + # Must not be greater than 100. limit: nil, - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. offset: nil, - # Wait for the database sync to finish, instead of running it in the background. - # **Will result in longer response times, use with caution**. Default `false` + # Whether pagination metadata is enabled. Default `1`. + pagination: nil, + # Whether deleted links participate in sorting. Default `1`. + sorting_deleted: nil, + # Whether statistics are included. Default `true`. Must not be greater than 10 + # characters. + stats: nil, + # Wait for the database sync instead of processing it in the background. synchronous: nil, + # Whether to include deleted shared tracking links. Default `1`. + with_deleted: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/shared_trial_links.rbi b/rbi/onlyfans/resources/shared_trial_links.rbi index 7a1a1d15..bc37c189 100644 --- a/rbi/onlyfans/resources/shared_trial_links.rbi +++ b/rbi/onlyfans/resources/shared_trial_links.rbi @@ -17,19 +17,22 @@ module Onlyfans account: String, limit: Integer, offset: Integer, - synchronous: T.nilable(T::Boolean), + pagination: + Onlyfans::SharedTrialLinkListParams::Pagination::OrInteger, + synchronous: T::Boolean, request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::SharedTrialLinkListResponse) end def list( # The Account ID account, - # The number of shared trial links to return. Default `10` + # The number of shared trial links to return. Default `10`. Must be at least 1. + # Must not be greater than 100. limit: nil, - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. offset: nil, - # Wait for the database sync to finish, instead of running it in the background. - # **Will result in longer response times, use with caution**. Default `false` + pagination: nil, + # Wait for the database sync instead of processing it in the background. synchronous: nil, request_options: {} ) diff --git a/rbi/onlyfans/resources/smart_link_postbacks.rbi b/rbi/onlyfans/resources/smart_link_postbacks.rbi index bec33b83..779f1ee8 100644 --- a/rbi/onlyfans/resources/smart_link_postbacks.rbi +++ b/rbi/onlyfans/resources/smart_link_postbacks.rbi @@ -11,6 +11,11 @@ module Onlyfans smart_link_scope: Onlyfans::SmartLinkPostbackCreateParams::SmartLinkScope::OrSymbol, url: String, + body: String, + headers: + T::Array[Onlyfans::SmartLinkPostbackCreateParams::Header::OrHash], + http_method: + Onlyfans::SmartLinkPostbackCreateParams::HTTPMethod::OrSymbol, smart_link_ids: T::Array[String], request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::SmartLinkPostbackCreateResponse) @@ -21,9 +26,16 @@ module Onlyfans # `global` fires for all Smart Links. `campaign_specific` fires only for selected # Smart Links. smart_link_scope:, - # The destination URL. Variables such as `{click_id}`, `{fbclid}`, `{gclid}`, and - # `{ttclid}` are replaced when the postback is dispatched. + # The destination URL. Variables such as `{external_click_id}`, `{fbclid}`, + # `{gclid}`, and `{ttclid}` are replaced when the postback is dispatched. url:, + # Optional request body template for POST postbacks. Variables are replaced when + # the postback is dispatched. + body: nil, + # Optional request headers. Header values may include postback variables. + headers: nil, + # HTTP method used for the postback request. Defaults to `GET` when omitted. + http_method: nil, # Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. smart_link_ids: nil, request_options: {} @@ -52,6 +64,11 @@ module Onlyfans smart_link_scope: Onlyfans::SmartLinkPostbackUpdateParams::SmartLinkScope::OrSymbol, url: String, + body: String, + headers: + T::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header::OrHash], + http_method: + Onlyfans::SmartLinkPostbackUpdateParams::HTTPMethod::OrSymbol, smart_link_ids: T::Array[String], request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::SmartLinkPostbackUpdateResponse) @@ -65,6 +82,13 @@ module Onlyfans smart_link_scope:, # The destination URL. url:, + # Optional request body template for POST postbacks. Variables are replaced when + # the postback is dispatched. + body: nil, + # Optional request headers. Header values may include postback variables. + headers: nil, + # HTTP method used for the postback request. Existing value is kept when omitted. + http_method: nil, # Smart Link ULIDs. Required when `smart_link_scope` is `campaign_specific`. smart_link_ids: nil, request_options: {} diff --git a/rbi/onlyfans/resources/smart_links.rbi b/rbi/onlyfans/resources/smart_links.rbi index 2d123172..ea741b43 100644 --- a/rbi/onlyfans/resources/smart_links.rbi +++ b/rbi/onlyfans/resources/smart_links.rbi @@ -48,25 +48,27 @@ module Onlyfans sig do params( account_ids: T.nilable(String), + filter: Onlyfans::SmartLinkListParams::Filter::OrHash, limit: Integer, - meta_pixel_ids: T.nilable(String), name: T.nilable(String), offset: Integer, + pixel_ids: T.nilable(String), request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::SmartLinkListResponse) end def list( # Comma-separated account prefixed IDs to include. account_ids: nil, + filter: nil, # The number of Smart Links to return. Default `50`. Must be at least 1. Must not # be greater than 1000. limit: nil, - # Comma-separated Meta Pixel IDs to include. - meta_pixel_ids: nil, # Filter Smart Links by name. Must not be greater than 255 characters. name: nil, # The offset used for pagination. Default `0`. Must be at least 0. offset: nil, + # Comma-separated ad platform Pixel IDs to include. + pixel_ids: nil, request_options: {} ) end @@ -168,7 +170,9 @@ module Onlyfans min_revenue_net: Float, min_tips_net: Float, offset: Integer, + previously_subscribed: T::Boolean, sort: Onlyfans::SmartLinkListFansParams::Sort::OrSymbol, + subscribed_using_promo: T::Boolean, request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::SmartLinkListFansResponse) end @@ -187,8 +191,13 @@ module Onlyfans min_tips_net: nil, # Offset for pagination. Default `0` offset: nil, + # Optional - Filter to returning subscribers (fans previously subscribed before + # this subscription) + previously_subscribed: nil, # Optional sort field. Default `-revenue_net` sort: nil, + # Optional - Filter to fans who subscribed via a promotion/offer + subscribed_using_promo: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/statistics.rbi b/rbi/onlyfans/resources/statistics.rbi index 6d9aee49..e8ac700c 100644 --- a/rbi/onlyfans/resources/statistics.rbi +++ b/rbi/onlyfans/resources/statistics.rbi @@ -22,9 +22,9 @@ module Onlyfans # The Account ID account, # The end date for the period. Keep empty to calculate everything. - end_date:, + end_date: nil, # The start date for the period. Keep empty to calculate everything. - start_date:, + start_date: nil, request_options: {} ) end @@ -62,6 +62,10 @@ module Onlyfans end_date: String, start_date: String, detailed: T.nilable(T::Boolean), + detailed_type: + T.nilable( + Onlyfans::StatisticGetSubscriberMetricsParams::DetailedType::OrSymbol + ), request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::StatisticGetSubscriberMetricsResponse) end @@ -75,6 +79,9 @@ module Onlyfans # Include paid and free fan metrics. Will slow down the response time, and might # time out if timeframe is too large. Default = `false` detailed: nil, + # Use only with `detailed=true` - otherwise, it has no effect. Filter the + # subscriber statistics (default = total) + detailed_type: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/statistics/reach.rbi b/rbi/onlyfans/resources/statistics/reach.rbi index f2481eab..27887e4a 100644 --- a/rbi/onlyfans/resources/statistics/reach.rbi +++ b/rbi/onlyfans/resources/statistics/reach.rbi @@ -29,7 +29,7 @@ module Onlyfans account, # The end date for the period. end_date:, - # The start date for the period + # The start date for the period. start_date:, # Optionally, filter the results by `chart` or `topCountries`. See example # responses. diff --git a/rbi/onlyfans/resources/statistics/statements.rbi b/rbi/onlyfans/resources/statistics/statements.rbi index 7e1e0694..a1daaa7e 100644 --- a/rbi/onlyfans/resources/statistics/statements.rbi +++ b/rbi/onlyfans/resources/statistics/statements.rbi @@ -8,8 +8,8 @@ module Onlyfans sig do params( account: String, - start_date: String, end_date: String, + start_date: String, type: Onlyfans::Statistics::StatementGetEarningsParams::Type::OrSymbol, request_options: Onlyfans::RequestOptions::OrHash @@ -18,10 +18,10 @@ module Onlyfans def get_earnings( # The Account ID account, - # The start date for the period - start_date:, # The end date for the period. - end_date: nil, + end_date:, + # The start date for the period. + start_date:, # Filter by All / Subscriptions / Tips / Posts / Messages / Streams type: nil, request_options: {} diff --git a/rbi/onlyfans/resources/stories.rbi b/rbi/onlyfans/resources/stories.rbi index 0dc44300..436fc899 100644 --- a/rbi/onlyfans/resources/stories.rbi +++ b/rbi/onlyfans/resources/stories.rbi @@ -8,20 +8,33 @@ module Onlyfans sig { returns(Onlyfans::Resources::Stories::Highlights) } attr_reader :highlights - # Post a new media or vault file to your story. + # Post a new media or vault file to your story, optionally with text overlays, + # @mentions, and a question sticker. Overlay elements are rendered by OnlyFans on + # top of your story media at view time. sig do params( account: String, media_files: T::Array[String], + canvas_height: Integer, + canvas_width: Integer, + question: Onlyfans::StoryCreateParams::Question::OrHash, + texts: T::Array[Onlyfans::StoryCreateParams::Text::OrHash], request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::StoryCreateResponse) end def create( # The Account ID account, - # Array of media file upload prefixed_ids, or OF media IDs (required if price is - # not 0). + # Array of media file upload prefixed_ids, or OF vault media IDs. media_files:, + # Canvas height overlay positions are relative to. Default `1920`. + canvas_height: nil, + # Canvas width overlay positions are relative to. Default `1080`. + canvas_width: nil, + # Interactive question sticker viewers can answer. + question: nil, + # Text and @mention overlays. + texts: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/tracking_links.rbi b/rbi/onlyfans/resources/tracking_links.rbi index 4fcdc041..4b2afb0f 100644 --- a/rbi/onlyfans/resources/tracking_links.rbi +++ b/rbi/onlyfans/resources/tracking_links.rbi @@ -50,37 +50,40 @@ module Onlyfans params( account: String, end_date: T.nilable(String), - limit: T.nilable(Integer), - offset: T.nilable(Integer), - sort: T.nilable(Onlyfans::TrackingLinkListParams::Sort::OrSymbol), - sortby: T.nilable(Onlyfans::TrackingLinkListParams::Sortby::OrSymbol), + limit: Integer, + offset: Integer, + pagination: Onlyfans::TrackingLinkListParams::Pagination::OrInteger, + sort: Onlyfans::TrackingLinkListParams::Sort::OrSymbol, + sortby: Onlyfans::TrackingLinkListParams::Sortby::OrSymbol, start_date: T.nilable(String), - synchronous: T.nilable(T::Boolean), - with_deleted: T.nilable(T::Boolean), + synchronous: T::Boolean, + with_deleted: + Onlyfans::TrackingLinkListParams::WithDeleted::OrInteger, request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::TrackingLinkListResponse) end def list( # The Account ID account, - # The end date for Tracking Links. Keep empty to get all. + # The end date for tracking links. Keep empty to get all. Must not be greater than + # 255 characters. end_date: nil, - # The number of tracking links to return. Default `3` + # The number of tracking links to return. Default `10`. Must be at least 1. Must + # not be greater than 100. limit: nil, - # The offset used for pagination. Default `0` + # The offset used for pagination. Default `0`. Must be at least 0. offset: nil, - # Sort the results. Default `desc` + pagination: nil, + # Sort direction. Default `desc`. sort: nil, - # Sort by subscriber count (claims), or creation date + # Sort by subscriber count (`claims`) or creation date (`created_date`). sortby: nil, - # The start date for Tracking Links. Keep empty to get all. + # The start date for tracking links. Keep empty to get all. Must not be greater + # than 255 characters. start_date: nil, - # Wait for the revenue data to finish processing, instead of processing in the - # background. **Will result in longer response times, use with caution**. Default - # `false` + # Wait for revenue calculation instead of processing it in the background. synchronous: nil, - # Whether or not to include deleted tracking links in the response. Default - # `false` + # Whether to include deleted tracking links. Default `true`. with_deleted: nil, request_options: {} ) diff --git a/rbi/onlyfans/resources/transactions.rbi b/rbi/onlyfans/resources/transactions.rbi index 5ffe5663..0ed12bed 100644 --- a/rbi/onlyfans/resources/transactions.rbi +++ b/rbi/onlyfans/resources/transactions.rbi @@ -24,7 +24,7 @@ module Onlyfans limit: nil, # The marker used for pagination. Default: `null` marker: nil, - # The start date for transactions list. Default: `-30days` + # The start date for the transactions list. Defaults to 30 days ago. start_date: nil, # Filter tips by source. Only applies when `type=tips`. Options: `profile`, # `post_all`, `chat`, `stream`, `story` diff --git a/rbi/onlyfans/resources/trial_links.rbi b/rbi/onlyfans/resources/trial_links.rbi index e145beb2..aeffae9a 100644 --- a/rbi/onlyfans/resources/trial_links.rbi +++ b/rbi/onlyfans/resources/trial_links.rbi @@ -61,28 +61,35 @@ module Onlyfans sig do params( account: String, + end_date: T.nilable(String), + field: Onlyfans::TrialLinkListParams::Field::OrSymbol, limit: Integer, offset: Integer, - field: T.nilable(Onlyfans::TrialLinkListParams::Field::OrSymbol), - sort: T.nilable(Onlyfans::TrialLinkListParams::Sort::OrSymbol), - synchronous: T.nilable(T::Boolean), + sort: Onlyfans::TrialLinkListParams::Sort::OrSymbol, + start_date: T.nilable(String), + synchronous: T::Boolean, request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::TrialLinkListResponse) end def list( # The Account ID account, - # The number of trial links to return. Default `10` - limit:, - # The offset used for pagination. Default `0` - offset:, - # Sort the results by a field. Default `create_date` + # The end date for trial links. Keep empty to get all. Must not be greater than + # 255 characters. + end_date: nil, + # Field to sort by. Default `create_date`. field: nil, - # Sort the results. Default `desc` + # The number of trial links to return. Default `10`. Must be at least 1. Must not + # be greater than 100. + limit: nil, + # The offset used for pagination. Default `0`. Must be at least 0. + offset: nil, + # Sort direction. Default `desc`. sort: nil, - # Wait for the revenue data to finish processing, instead of processing in the - # background. **Will result in longer response times, use with caution**. Default - # `false` + # The start date for trial links. Keep empty to get all. Must not be greater than + # 255 characters. + start_date: nil, + # Wait for revenue calculation instead of processing it in the background. synchronous: nil, request_options: {} ) diff --git a/rbi/onlyfans/resources/user_lists.rbi b/rbi/onlyfans/resources/user_lists.rbi index fd8846fd..0a11886c 100644 --- a/rbi/onlyfans/resources/user_lists.rbi +++ b/rbi/onlyfans/resources/user_lists.rbi @@ -64,12 +64,14 @@ module Onlyfans ) end - # Get a list of OnlyFans Collections - User Lists + # Get a list of OnlyFans Collections - User Lists. If you only want to get User + # Lists available for sending a Mass-Message, use `?view=queue` sig do params( account: String, limit: T.nilable(Integer), offset: T.nilable(Integer), + view: Onlyfans::UserListListParams::View::OrSymbol, request_options: Onlyfans::RequestOptions::OrHash ).returns(Onlyfans::Models::UserListListResponse) end @@ -81,6 +83,9 @@ module Onlyfans limit: nil, # Must be at least 0. offset: nil, + # How to return the results. `queue` returns the user lists that are available for + # Mass-Messaging. + view: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/user_lists/users.rbi b/rbi/onlyfans/resources/user_lists/users.rbi index 9ba600d3..4b1e9ab7 100644 --- a/rbi/onlyfans/resources/user_lists/users.rbi +++ b/rbi/onlyfans/resources/user_lists/users.rbi @@ -33,8 +33,9 @@ module Onlyfans user_list_id: String, account: String, ids: T::Array[String], + skip_invalid: T::Boolean, request_options: Onlyfans::RequestOptions::OrHash - ).returns(Onlyfans::Models::UserLists::UserAddResponse) + ).returns(Onlyfans::Models::UserLists::UserAddResponse::Variants) end def add( # Path param: OnlyFans User List ID, or a default list name like `tagged` @@ -43,6 +44,14 @@ module Onlyfans account:, # Body param: Array of OnlyFans User IDs to be added into the list ids:, + # Body param: Set to `true` to skip the User IDs OnlyFans refuses instead of + # failing the whole batch. We drop the rejected IDs and retry the remainder for + # you (up to 5 OnlyFans attempts, each costing 1 credit), then respond `200` with + # `data.added` (the IDs that made it in) and `data.failed` (an object mapping each + # rejected User ID to the reason OnlyFans gave). Note this changes the shape of + # `data` — see the example responses. Failures that are not about individual users + # (e.g. an invalid or inaccessible list ID) still return the regular `400`. + skip_invalid: nil, request_options: {} ) end diff --git a/rbi/onlyfans/resources/webhooks.rbi b/rbi/onlyfans/resources/webhooks.rbi index 6ef2fe10..5ee294f9 100644 --- a/rbi/onlyfans/resources/webhooks.rbi +++ b/rbi/onlyfans/resources/webhooks.rbi @@ -15,16 +15,19 @@ module Onlyfans ).returns(Onlyfans::Models::WebhookCreateResponse) end def create( - # The account scope for the webhook. Use "global" for all accounts, "inclusive" - # for only selected accounts, or "exclusive" for all except selected accounts. + # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use + # "global" for all accounts, "inclusive" for only selected accounts, or + # "exclusive" for all except selected accounts. account_scope:, # The URL of your webhook endpoint. endpoint_url:, # An array of webhook events to subscribe to. For all options, refer to our **List - # Available Events** endpoint. + # Available Events** endpoint. A webhook is single-platform: subscribe to either + # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook. events:, - # An array of account IDs to apply the scope to. Required unless account_scope is - # "global". + # An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`) + # for Fansly webhooks. Required unless account_scope is "global". account_ids: nil, # Optionally, add a signing secret to protect your webhook. signing_secret: nil, @@ -61,16 +64,19 @@ module Onlyfans def update( # The ID of the webhook webhook_id, - # The account scope for the webhook. Use "global" for all accounts, "inclusive" - # for only selected accounts, or "exclusive" for all except selected accounts. + # The account scope for the webhook (OnlyFans and Fansly webhooks alike). Use + # "global" for all accounts, "inclusive" for only selected accounts, or + # "exclusive" for all except selected accounts. account_scope:, # The URL of your webhook endpoint. endpoint_url:, # An array of webhook events to subscribe to. For all options, refer to our **List - # Available Events** endpoint. + # Available Events** endpoint. A webhook is single-platform: subscribe to either + # OnlyFans events or Fansly (`fansly.*`) events, never both in one webhook. events:, - # An array of account IDs to apply the scope to. Required unless account_scope is - # "global". + # An array of account IDs to apply the scope to. Use OnlyFans account IDs + # (`acct_...`) for OnlyFans webhooks and Fansly account IDs (`fansly_acct_...`) + # for Fansly webhooks. Required unless account_scope is "global". account_ids: nil, # Optionally, enabled/disable the webhook. This will stop/resume the sending of # events, without having to delete the webhook. diff --git a/sig/onlyfans/models.rbs b/sig/onlyfans/models.rbs index aab57f68..0ec05136 100644 --- a/sig/onlyfans/models.rbs +++ b/sig/onlyfans/models.rbs @@ -123,8 +123,6 @@ module Onlyfans class MeRetrieveParams = Onlyfans::Models::MeRetrieveParams - class MessageAttachTagsParams = Onlyfans::Models::MessageAttachTagsParams - class NotificationGetCountsParams = Onlyfans::Models::NotificationGetCountsParams class NotificationListParams = Onlyfans::Models::NotificationListParams diff --git a/sig/onlyfans/models/analytics/financial/profitability_get_history_response.rbs b/sig/onlyfans/models/analytics/financial/profitability_get_history_response.rbs index 7523b0a6..363e7b8a 100644 --- a/sig/onlyfans/models/analytics/financial/profitability_get_history_response.rbs +++ b/sig/onlyfans/models/analytics/financial/profitability_get_history_response.rbs @@ -2,64 +2,153 @@ module Onlyfans module Models module Analytics module Financial - type profitability_get_history_response_item = + type profitability_get_history_response = { - gross_revenue: Float, - margin: Float, - month: Integer, - net_revenue: Float, - profit: Float, - year: Integer + data: ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data] } - class ProfitabilityGetHistoryResponseItem < Onlyfans::Internal::Type::BaseModel - attr_reader gross_revenue: Float? + class ProfitabilityGetHistoryResponse < Onlyfans::Internal::Type::BaseModel + attr_reader data: ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data]? - def gross_revenue=: (Float) -> Float + def data=: ( + ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data] + ) -> ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data] - attr_reader margin: Float? + def initialize: ( + ?data: ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data] + ) -> void - def margin=: (Float) -> Float + def to_hash: -> { + data: ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data] + } - attr_reader month: Integer? + type data = + { + active_milestones: String?, + agency_earnings: String, + commission_amount: String, + commission_rate: String, + costs: ::Array[top], + creator_name: String, + has_commission_for_period: bool, + has_costs_for_period: bool, + margin_percentage: String, + month: Integer, + only_fans_user_id: Integer, + profit: String, + projected_net: String, + rate_periods: ::Array[top], + referral_note: String?, + total_costs: String, + year: Integer + } - def month=: (Integer) -> Integer + class Data < Onlyfans::Internal::Type::BaseModel + attr_accessor active_milestones: String? - attr_reader net_revenue: Float? + attr_reader agency_earnings: String? - def net_revenue=: (Float) -> Float + def agency_earnings=: (String) -> String - attr_reader profit: Float? + attr_reader commission_amount: String? - def profit=: (Float) -> Float + def commission_amount=: (String) -> String - attr_reader year: Integer? + attr_reader commission_rate: String? - def year=: (Integer) -> Integer + def commission_rate=: (String) -> String - def initialize: ( - ?gross_revenue: Float, - ?margin: Float, - ?month: Integer, - ?net_revenue: Float, - ?profit: Float, - ?year: Integer - ) -> void + attr_reader costs: ::Array[top]? - def to_hash: -> { - gross_revenue: Float, - margin: Float, - month: Integer, - net_revenue: Float, - profit: Float, - year: Integer - } - end + def costs=: (::Array[top]) -> ::Array[top] - type profitability_get_history_response = - ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem] + attr_reader creator_name: String? + + def creator_name=: (String) -> String + + attr_reader has_commission_for_period: bool? + + def has_commission_for_period=: (bool) -> bool + + attr_reader has_costs_for_period: bool? + + def has_costs_for_period=: (bool) -> bool + + attr_reader margin_percentage: String? + + def margin_percentage=: (String) -> String - ProfitabilityGetHistoryResponse: Onlyfans::Internal::Type::Converter + attr_reader month: Integer? + + def month=: (Integer) -> Integer + + attr_reader only_fans_user_id: Integer? + + def only_fans_user_id=: (Integer) -> Integer + + attr_reader profit: String? + + def profit=: (String) -> String + + attr_reader projected_net: String? + + def projected_net=: (String) -> String + + attr_reader rate_periods: ::Array[top]? + + def rate_periods=: (::Array[top]) -> ::Array[top] + + attr_accessor referral_note: String? + + attr_reader total_costs: String? + + def total_costs=: (String) -> String + + attr_reader year: Integer? + + def year=: (Integer) -> Integer + + def initialize: ( + ?active_milestones: String?, + ?agency_earnings: String, + ?commission_amount: String, + ?commission_rate: String, + ?costs: ::Array[top], + ?creator_name: String, + ?has_commission_for_period: bool, + ?has_costs_for_period: bool, + ?margin_percentage: String, + ?month: Integer, + ?only_fans_user_id: Integer, + ?profit: String, + ?projected_net: String, + ?rate_periods: ::Array[top], + ?referral_note: String?, + ?total_costs: String, + ?year: Integer + ) -> void + + def to_hash: -> { + active_milestones: String?, + agency_earnings: String, + commission_amount: String, + commission_rate: String, + costs: ::Array[top], + creator_name: String, + has_commission_for_period: bool, + has_costs_for_period: bool, + margin_percentage: String, + month: Integer, + only_fans_user_id: Integer, + profit: String, + projected_net: String, + rate_periods: ::Array[top], + referral_note: String?, + total_costs: String, + year: Integer + } + end + end end end end diff --git a/sig/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbs b/sig/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbs index 3779bdbf..4b1ccc64 100644 --- a/sig/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbs +++ b/sig/onlyfans/models/analytics/financial/profitability_get_profitability_response.rbs @@ -2,78 +2,153 @@ module Onlyfans module Models module Analytics module Financial - type profitability_get_profitability_response_item = + type profitability_get_profitability_response = { - commission: Float, - creator_id: Integer, - gross_revenue: Float, - margin: Float, - name: String, - net_revenue: Float, - profit: Float, - total_costs: Float + data: ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data] } - class ProfitabilityGetProfitabilityResponseItem < Onlyfans::Internal::Type::BaseModel - attr_reader commission: Float? + class ProfitabilityGetProfitabilityResponse < Onlyfans::Internal::Type::BaseModel + attr_reader data: ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data]? - def commission=: (Float) -> Float + def data=: ( + ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data] + ) -> ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data] - attr_reader creator_id: Integer? + def initialize: ( + ?data: ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data] + ) -> void - def creator_id=: (Integer) -> Integer + def to_hash: -> { + data: ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data] + } - attr_reader gross_revenue: Float? + type data = + { + active_milestones: String?, + agency_earnings: String, + commission_amount: String, + commission_rate: String, + costs: ::Array[top], + creator_name: String, + has_commission_for_period: bool, + has_costs_for_period: bool, + margin_percentage: String, + month: Integer, + only_fans_user_id: Integer, + profit: String, + projected_net: String, + rate_periods: ::Array[top], + referral_note: String?, + total_costs: String, + year: Integer + } - def gross_revenue=: (Float) -> Float + class Data < Onlyfans::Internal::Type::BaseModel + attr_accessor active_milestones: String? - attr_reader margin: Float? + attr_reader agency_earnings: String? - def margin=: (Float) -> Float + def agency_earnings=: (String) -> String - attr_reader name: String? + attr_reader commission_amount: String? - def name=: (String) -> String + def commission_amount=: (String) -> String - attr_reader net_revenue: Float? + attr_reader commission_rate: String? - def net_revenue=: (Float) -> Float + def commission_rate=: (String) -> String - attr_reader profit: Float? + attr_reader costs: ::Array[top]? - def profit=: (Float) -> Float + def costs=: (::Array[top]) -> ::Array[top] - attr_reader total_costs: Float? + attr_reader creator_name: String? - def total_costs=: (Float) -> Float + def creator_name=: (String) -> String - def initialize: ( - ?commission: Float, - ?creator_id: Integer, - ?gross_revenue: Float, - ?margin: Float, - ?name: String, - ?net_revenue: Float, - ?profit: Float, - ?total_costs: Float - ) -> void + attr_reader has_commission_for_period: bool? - def to_hash: -> { - commission: Float, - creator_id: Integer, - gross_revenue: Float, - margin: Float, - name: String, - net_revenue: Float, - profit: Float, - total_costs: Float - } - end + def has_commission_for_period=: (bool) -> bool - type profitability_get_profitability_response = - ::Array[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem] + attr_reader has_costs_for_period: bool? + + def has_costs_for_period=: (bool) -> bool + + attr_reader margin_percentage: String? + + def margin_percentage=: (String) -> String + + attr_reader month: Integer? + + def month=: (Integer) -> Integer - ProfitabilityGetProfitabilityResponse: Onlyfans::Internal::Type::Converter + attr_reader only_fans_user_id: Integer? + + def only_fans_user_id=: (Integer) -> Integer + + attr_reader profit: String? + + def profit=: (String) -> String + + attr_reader projected_net: String? + + def projected_net=: (String) -> String + + attr_reader rate_periods: ::Array[top]? + + def rate_periods=: (::Array[top]) -> ::Array[top] + + attr_accessor referral_note: String? + + attr_reader total_costs: String? + + def total_costs=: (String) -> String + + attr_reader year: Integer? + + def year=: (Integer) -> Integer + + def initialize: ( + ?active_milestones: String?, + ?agency_earnings: String, + ?commission_amount: String, + ?commission_rate: String, + ?costs: ::Array[top], + ?creator_name: String, + ?has_commission_for_period: bool, + ?has_costs_for_period: bool, + ?margin_percentage: String, + ?month: Integer, + ?only_fans_user_id: Integer, + ?profit: String, + ?projected_net: String, + ?rate_periods: ::Array[top], + ?referral_note: String?, + ?total_costs: String, + ?year: Integer + ) -> void + + def to_hash: -> { + active_milestones: String?, + agency_earnings: String, + commission_amount: String, + commission_rate: String, + costs: ::Array[top], + creator_name: String, + has_commission_for_period: bool, + has_costs_for_period: bool, + margin_percentage: String, + month: Integer, + only_fans_user_id: Integer, + profit: String, + projected_net: String, + rate_periods: ::Array[top], + referral_note: String?, + total_costs: String, + year: Integer + } + end + end end end end diff --git a/sig/onlyfans/models/authenticate_start_params.rbs b/sig/onlyfans/models/authenticate_start_params.rbs index 4e499171..f9840cce 100644 --- a/sig/onlyfans/models/authenticate_start_params.rbs +++ b/sig/onlyfans/models/authenticate_start_params.rbs @@ -147,13 +147,14 @@ module Onlyfans } end - type proxy_country = :us | :uk + type proxy_country = :us | :uk | :gb module ProxyCountry extend Onlyfans::Internal::Type::Enum US: :us UK: :uk + GB: :gb def self?.values: -> ::Array[Onlyfans::Models::AuthenticateStartParams::proxy_country] end diff --git a/sig/onlyfans/models/chats/message_send_params.rbs b/sig/onlyfans/models/chats/message_send_params.rbs index 9bd091d4..5ac640bb 100644 --- a/sig/onlyfans/models/chats/message_send_params.rbs +++ b/sig/onlyfans/models/chats/message_send_params.rbs @@ -5,16 +5,18 @@ module Onlyfans { account: String, chat_id: String, + block_banned_words: Onlyfans::Models::Chats::MessageSendParams::block_banned_words, giphy_id: String, locked_text: bool, media_files: ::Array[top], previews: ::Array[top], - price: Integer, + price: Float, reply_to_message_id: Integer, rf_guest: String, rf_partner: String, rf_tag: String, - text: String + text: String, + idempotency_key: String } & Onlyfans::Internal::Type::request_parameters @@ -26,6 +28,12 @@ module Onlyfans attr_accessor chat_id: String + attr_reader block_banned_words: Onlyfans::Models::Chats::MessageSendParams::block_banned_words? + + def block_banned_words=: ( + Onlyfans::Models::Chats::MessageSendParams::block_banned_words + ) -> Onlyfans::Models::Chats::MessageSendParams::block_banned_words + attr_reader giphy_id: String? def giphy_id=: (String) -> String @@ -42,9 +50,9 @@ module Onlyfans def previews=: (::Array[top]) -> ::Array[top] - attr_reader price: Integer? + attr_reader price: Float? - def price=: (Integer) -> Integer + def price=: (Float) -> Float attr_reader reply_to_message_id: Integer? @@ -66,37 +74,57 @@ module Onlyfans def text=: (String) -> String + attr_reader idempotency_key: String? + + def idempotency_key=: (String) -> String + def initialize: ( account: String, chat_id: String, + ?block_banned_words: Onlyfans::Models::Chats::MessageSendParams::block_banned_words, ?giphy_id: String, ?locked_text: bool, ?media_files: ::Array[top], ?previews: ::Array[top], - ?price: Integer, + ?price: Float, ?reply_to_message_id: Integer, ?rf_guest: String, ?rf_partner: String, ?rf_tag: String, ?text: String, + ?idempotency_key: String, ?request_options: Onlyfans::request_opts ) -> void def to_hash: -> { account: String, chat_id: String, + block_banned_words: Onlyfans::Models::Chats::MessageSendParams::block_banned_words, giphy_id: String, locked_text: bool, media_files: ::Array[top], previews: ::Array[top], - price: Integer, + price: Float, reply_to_message_id: Integer, rf_guest: String, rf_partner: String, rf_tag: String, text: String, + idempotency_key: String, request_options: Onlyfans::RequestOptions } + + type block_banned_words = :strict_ban | :risky | :replace_soften + + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN: :strict_ban + RISKY: :risky + REPLACE_SOFTEN: :replace_soften + + def self?.values: -> ::Array[Onlyfans::Models::Chats::MessageSendParams::block_banned_words] + end end end end diff --git a/sig/onlyfans/models/client_session_create_params.rbs b/sig/onlyfans/models/client_session_create_params.rbs index 18feb0f7..942cb29c 100644 --- a/sig/onlyfans/models/client_session_create_params.rbs +++ b/sig/onlyfans/models/client_session_create_params.rbs @@ -34,13 +34,14 @@ module Onlyfans request_options: Onlyfans::RequestOptions } - type proxy_country = :us | :uk + type proxy_country = :us | :uk | :gb module ProxyCountry extend Onlyfans::Internal::Type::Enum US: :us UK: :uk + GB: :gb def self?.values: -> ::Array[Onlyfans::Models::ClientSessionCreateParams::proxy_country] end diff --git a/sig/onlyfans/models/data_export_create_params.rbs b/sig/onlyfans/models/data_export_create_params.rbs index 95b83f0c..90495d5b 100644 --- a/sig/onlyfans/models/data_export_create_params.rbs +++ b/sig/onlyfans/models/data_export_create_params.rbs @@ -89,6 +89,8 @@ module Onlyfans | :public_profiles | :fans | :followings + | :profile_visitors + | :fansly_chat_messages module Type extend Onlyfans::Internal::Type::Enum @@ -104,6 +106,8 @@ module Onlyfans PUBLIC_PROFILES: :public_profiles FANS: :fans FOLLOWINGS: :followings + PROFILE_VISITORS: :profile_visitors + FANSLY_CHAT_MESSAGES: :fansly_chat_messages def self?.values: -> ::Array[Onlyfans::Models::DataExportCreateParams::type_] end diff --git a/sig/onlyfans/models/data_export_list_params.rbs b/sig/onlyfans/models/data_export_list_params.rbs index 5685bb7d..5189b915 100644 --- a/sig/onlyfans/models/data_export_list_params.rbs +++ b/sig/onlyfans/models/data_export_list_params.rbs @@ -85,9 +85,14 @@ module Onlyfans | :media_vault | :trial_links | :tracking_links + | :smart_links | :payouts | :chargebacks | :public_profiles + | :fans + | :followings + | :profile_visitors + | :fansly_chat_messages module Type extend Onlyfans::Internal::Type::Enum @@ -97,9 +102,14 @@ module Onlyfans MEDIA_VAULT: :media_vault TRIAL_LINKS: :trial_links TRACKING_LINKS: :tracking_links + SMART_LINKS: :smart_links PAYOUTS: :payouts CHARGEBACKS: :chargebacks PUBLIC_PROFILES: :public_profiles + FANS: :fans + FOLLOWINGS: :followings + PROFILE_VISITORS: :profile_visitors + FANSLY_CHAT_MESSAGES: :fansly_chat_messages def self?.values: -> ::Array[Onlyfans::Models::DataExportListParams::type_] end diff --git a/sig/onlyfans/models/data_export_list_response.rbs b/sig/onlyfans/models/data_export_list_response.rbs index a40a3d88..e5a02360 100644 --- a/sig/onlyfans/models/data_export_list_response.rbs +++ b/sig/onlyfans/models/data_export_list_response.rbs @@ -192,6 +192,7 @@ module Onlyfans end_date: String, export_columns: ::Array[String], failed_at: String?, + failed_downloads: Integer, failed_reason: String?, file_type: String, progress_percentage: Integer, @@ -243,6 +244,10 @@ module Onlyfans attr_accessor failed_at: String? + attr_reader failed_downloads: Integer? + + def failed_downloads=: (Integer) -> Integer + attr_accessor failed_reason: String? attr_reader file_type: String? @@ -284,6 +289,7 @@ module Onlyfans ?end_date: String, ?export_columns: ::Array[String], ?failed_at: String?, + ?failed_downloads: Integer, ?failed_reason: String?, ?file_type: String, ?progress_percentage: Integer, @@ -305,6 +311,7 @@ module Onlyfans end_date: String, export_columns: ::Array[String], failed_at: String?, + failed_downloads: Integer, failed_reason: String?, file_type: String, progress_percentage: Integer, diff --git a/sig/onlyfans/models/data_export_retrieve_response.rbs b/sig/onlyfans/models/data_export_retrieve_response.rbs index eafcffc3..4468efed 100644 --- a/sig/onlyfans/models/data_export_retrieve_response.rbs +++ b/sig/onlyfans/models/data_export_retrieve_response.rbs @@ -161,6 +161,7 @@ module Onlyfans end_date: String, export_columns: ::Array[String], failed_at: String?, + failed_downloads: Integer, failed_reason: String?, file_type: String, progress_percentage: Integer, @@ -202,6 +203,10 @@ module Onlyfans attr_accessor failed_at: String? + attr_reader failed_downloads: Integer? + + def failed_downloads=: (Integer) -> Integer + attr_accessor failed_reason: String? attr_reader file_type: String? @@ -241,6 +246,7 @@ module Onlyfans ?end_date: String, ?export_columns: ::Array[String], ?failed_at: String?, + ?failed_downloads: Integer, ?failed_reason: String?, ?file_type: String, ?progress_percentage: Integer, @@ -260,6 +266,7 @@ module Onlyfans end_date: String, export_columns: ::Array[String], failed_at: String?, + failed_downloads: Integer, failed_reason: String?, file_type: String, progress_percentage: Integer, diff --git a/sig/onlyfans/models/fan_list_active_params.rbs b/sig/onlyfans/models/fan_list_active_params.rbs index 6a19cea5..a6cd286e 100644 --- a/sig/onlyfans/models/fan_list_active_params.rbs +++ b/sig/onlyfans/models/fan_list_active_params.rbs @@ -62,6 +62,7 @@ module Onlyfans type filter = { duration: Integer, + max_total_spent: Float, online: Onlyfans::Models::FanListActiveParams::Filter::online?, tips: Integer, total_spent: Integer @@ -72,6 +73,10 @@ module Onlyfans def duration=: (Integer) -> Integer + attr_reader max_total_spent: Float? + + def max_total_spent=: (Float) -> Float + attr_accessor online: Onlyfans::Models::FanListActiveParams::Filter::online? attr_reader tips: Integer? @@ -84,6 +89,7 @@ module Onlyfans def initialize: ( ?duration: Integer, + ?max_total_spent: Float, ?online: Onlyfans::Models::FanListActiveParams::Filter::online?, ?tips: Integer, ?total_spent: Integer @@ -91,6 +97,7 @@ module Onlyfans def to_hash: -> { duration: Integer, + max_total_spent: Float, online: Onlyfans::Models::FanListActiveParams::Filter::online?, tips: Integer, total_spent: Integer diff --git a/sig/onlyfans/models/fan_list_all_params.rbs b/sig/onlyfans/models/fan_list_all_params.rbs index 0e2f9bc2..20e479fd 100644 --- a/sig/onlyfans/models/fan_list_all_params.rbs +++ b/sig/onlyfans/models/fan_list_all_params.rbs @@ -62,6 +62,7 @@ module Onlyfans type filter = { duration: Integer, + max_total_spent: Float, online: Onlyfans::Models::FanListAllParams::Filter::online?, tips: Integer, total_spent: Integer @@ -72,6 +73,10 @@ module Onlyfans def duration=: (Integer) -> Integer + attr_reader max_total_spent: Float? + + def max_total_spent=: (Float) -> Float + attr_accessor online: Onlyfans::Models::FanListAllParams::Filter::online? attr_reader tips: Integer? @@ -84,6 +89,7 @@ module Onlyfans def initialize: ( ?duration: Integer, + ?max_total_spent: Float, ?online: Onlyfans::Models::FanListAllParams::Filter::online?, ?tips: Integer, ?total_spent: Integer @@ -91,6 +97,7 @@ module Onlyfans def to_hash: -> { duration: Integer, + max_total_spent: Float, online: Onlyfans::Models::FanListAllParams::Filter::online?, tips: Integer, total_spent: Integer diff --git a/sig/onlyfans/models/fan_list_expired_params.rbs b/sig/onlyfans/models/fan_list_expired_params.rbs index 4e133bf5..2ca11efe 100644 --- a/sig/onlyfans/models/fan_list_expired_params.rbs +++ b/sig/onlyfans/models/fan_list_expired_params.rbs @@ -62,6 +62,7 @@ module Onlyfans type filter = { duration: Integer, + max_total_spent: Float, online: Onlyfans::Models::FanListExpiredParams::Filter::online?, tips: Integer, total_spent: Integer @@ -72,6 +73,10 @@ module Onlyfans def duration=: (Integer) -> Integer + attr_reader max_total_spent: Float? + + def max_total_spent=: (Float) -> Float + attr_accessor online: Onlyfans::Models::FanListExpiredParams::Filter::online? attr_reader tips: Integer? @@ -84,6 +89,7 @@ module Onlyfans def initialize: ( ?duration: Integer, + ?max_total_spent: Float, ?online: Onlyfans::Models::FanListExpiredParams::Filter::online?, ?tips: Integer, ?total_spent: Integer @@ -91,6 +97,7 @@ module Onlyfans def to_hash: -> { duration: Integer, + max_total_spent: Float, online: Onlyfans::Models::FanListExpiredParams::Filter::online?, tips: Integer, total_spent: Integer diff --git a/sig/onlyfans/models/fans/summary_get_summary_response.rbs b/sig/onlyfans/models/fans/summary_get_summary_response.rbs index 2173aaed..08d7e8a3 100644 --- a/sig/onlyfans/models/fans/summary_get_summary_response.rbs +++ b/sig/onlyfans/models/fans/summary_get_summary_response.rbs @@ -4,8 +4,10 @@ module Onlyfans type summary_get_summary_response = { analyzed_message_count: Integer, + custom_fields: ::Array[Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField], error_message: String?, last_analyzed_at: String, + last_buy_date: String, status: String, summary_data: Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData } @@ -15,12 +17,22 @@ module Onlyfans def analyzed_message_count=: (Integer) -> Integer + attr_reader custom_fields: ::Array[Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField]? + + def custom_fields=: ( + ::Array[Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField] + ) -> ::Array[Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField] + attr_accessor error_message: String? attr_reader last_analyzed_at: String? def last_analyzed_at=: (String) -> String + attr_reader last_buy_date: String? + + def last_buy_date=: (String) -> String + attr_reader status: String? def status=: (String) -> String @@ -33,23 +45,45 @@ module Onlyfans def initialize: ( ?analyzed_message_count: Integer, + ?custom_fields: ::Array[Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField], ?error_message: String?, ?last_analyzed_at: String, + ?last_buy_date: String, ?status: String, ?summary_data: Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData ) -> void def to_hash: -> { analyzed_message_count: Integer, + custom_fields: ::Array[Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField], error_message: String?, last_analyzed_at: String, + last_buy_date: String, status: String, summary_data: Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData } + type custom_field = { key: String, label: String } + + class CustomField < Onlyfans::Internal::Type::BaseModel + attr_reader key: String? + + def key=: (String) -> String + + attr_reader label: String? + + def label=: (String) -> String + + def initialize: (?key: String, ?label: String) -> void + + def to_hash: -> { key: String, label: String } + end + type summary_data = { + content_dislikes: String, content_preferences: String, + dos_and_donts: String, family_pets: String, hobbies: String, interests: String, @@ -58,15 +92,24 @@ module Onlyfans other_notes: String, preferred_name: String, requests: String, + spend_cadence: String, themes: String, travel_plans: String } class SummaryData < Onlyfans::Internal::Type::BaseModel + attr_reader content_dislikes: String? + + def content_dislikes=: (String) -> String + attr_reader content_preferences: String? def content_preferences=: (String) -> String + attr_reader dos_and_donts: String? + + def dos_and_donts=: (String) -> String + attr_reader family_pets: String? def family_pets=: (String) -> String @@ -99,6 +142,10 @@ module Onlyfans def requests=: (String) -> String + attr_reader spend_cadence: String? + + def spend_cadence=: (String) -> String + attr_reader themes: String? def themes=: (String) -> String @@ -108,7 +155,9 @@ module Onlyfans def travel_plans=: (String) -> String def initialize: ( + ?content_dislikes: String, ?content_preferences: String, + ?dos_and_donts: String, ?family_pets: String, ?hobbies: String, ?interests: String, @@ -117,12 +166,15 @@ module Onlyfans ?other_notes: String, ?preferred_name: String, ?requests: String, + ?spend_cadence: String, ?themes: String, ?travel_plans: String ) -> void def to_hash: -> { + content_dislikes: String, content_preferences: String, + dos_and_donts: String, family_pets: String, hobbies: String, interests: String, @@ -131,6 +183,7 @@ module Onlyfans other_notes: String, preferred_name: String, requests: String, + spend_cadence: String, themes: String, travel_plans: String } diff --git a/sig/onlyfans/models/following_list_active_params.rbs b/sig/onlyfans/models/following_list_active_params.rbs index 9b58b71f..467e1ebe 100644 --- a/sig/onlyfans/models/following_list_active_params.rbs +++ b/sig/onlyfans/models/following_list_active_params.rbs @@ -6,7 +6,9 @@ module Onlyfans filter: Onlyfans::FollowingListActiveParams::Filter, limit: Integer, offset: Integer, - query: String? + query: String?, + sort: Onlyfans::Models::FollowingListActiveParams::sort?, + sort_direction: Onlyfans::Models::FollowingListActiveParams::sort_direction? } & Onlyfans::Internal::Type::request_parameters @@ -32,12 +34,18 @@ module Onlyfans attr_accessor query: String? + attr_accessor sort: Onlyfans::Models::FollowingListActiveParams::sort? + + attr_accessor sort_direction: Onlyfans::Models::FollowingListActiveParams::sort_direction? + def initialize: ( account: String, ?filter: Onlyfans::FollowingListActiveParams::Filter, ?limit: Integer, ?offset: Integer, ?query: String?, + ?sort: Onlyfans::Models::FollowingListActiveParams::sort?, + ?sort_direction: Onlyfans::Models::FollowingListActiveParams::sort_direction?, ?request_options: Onlyfans::request_opts ) -> void @@ -47,6 +55,8 @@ module Onlyfans limit: Integer, offset: Integer, query: String?, + sort: Onlyfans::Models::FollowingListActiveParams::sort?, + sort_direction: Onlyfans::Models::FollowingListActiveParams::sort_direction?, request_options: Onlyfans::RequestOptions } @@ -93,6 +103,30 @@ module Onlyfans def self?.values: -> ::Array[Onlyfans::Models::FollowingListActiveParams::Filter::paid] end end + + type sort = :last_activity | :expire_date | :subscribe_date | :is_expired + + module Sort + extend Onlyfans::Internal::Type::Enum + + LAST_ACTIVITY: :last_activity + EXPIRE_DATE: :expire_date + SUBSCRIBE_DATE: :subscribe_date + IS_EXPIRED: :is_expired + + def self?.values: -> ::Array[Onlyfans::Models::FollowingListActiveParams::sort] + end + + type sort_direction = :asc | :desc + + module SortDirection + extend Onlyfans::Internal::Type::Enum + + ASC: :asc + DESC: :desc + + def self?.values: -> ::Array[Onlyfans::Models::FollowingListActiveParams::sort_direction] + end end end end diff --git a/sig/onlyfans/models/following_list_all_params.rbs b/sig/onlyfans/models/following_list_all_params.rbs index 53b1f833..6be7aa0e 100644 --- a/sig/onlyfans/models/following_list_all_params.rbs +++ b/sig/onlyfans/models/following_list_all_params.rbs @@ -6,7 +6,9 @@ module Onlyfans filter: Onlyfans::FollowingListAllParams::Filter, limit: Integer, offset: Integer, - query: String? + query: String?, + sort: Onlyfans::Models::FollowingListAllParams::sort?, + sort_direction: Onlyfans::Models::FollowingListAllParams::sort_direction? } & Onlyfans::Internal::Type::request_parameters @@ -32,12 +34,18 @@ module Onlyfans attr_accessor query: String? + attr_accessor sort: Onlyfans::Models::FollowingListAllParams::sort? + + attr_accessor sort_direction: Onlyfans::Models::FollowingListAllParams::sort_direction? + def initialize: ( account: String, ?filter: Onlyfans::FollowingListAllParams::Filter, ?limit: Integer, ?offset: Integer, ?query: String?, + ?sort: Onlyfans::Models::FollowingListAllParams::sort?, + ?sort_direction: Onlyfans::Models::FollowingListAllParams::sort_direction?, ?request_options: Onlyfans::request_opts ) -> void @@ -47,6 +55,8 @@ module Onlyfans limit: Integer, offset: Integer, query: String?, + sort: Onlyfans::Models::FollowingListAllParams::sort?, + sort_direction: Onlyfans::Models::FollowingListAllParams::sort_direction?, request_options: Onlyfans::RequestOptions } @@ -93,6 +103,30 @@ module Onlyfans def self?.values: -> ::Array[Onlyfans::Models::FollowingListAllParams::Filter::paid] end end + + type sort = :last_activity | :expire_date | :subscribe_date | :is_expired + + module Sort + extend Onlyfans::Internal::Type::Enum + + LAST_ACTIVITY: :last_activity + EXPIRE_DATE: :expire_date + SUBSCRIBE_DATE: :subscribe_date + IS_EXPIRED: :is_expired + + def self?.values: -> ::Array[Onlyfans::Models::FollowingListAllParams::sort] + end + + type sort_direction = :asc | :desc + + module SortDirection + extend Onlyfans::Internal::Type::Enum + + ASC: :asc + DESC: :desc + + def self?.values: -> ::Array[Onlyfans::Models::FollowingListAllParams::sort_direction] + end end end end diff --git a/sig/onlyfans/models/following_list_expired_params.rbs b/sig/onlyfans/models/following_list_expired_params.rbs index f6d33e91..4db8cc5f 100644 --- a/sig/onlyfans/models/following_list_expired_params.rbs +++ b/sig/onlyfans/models/following_list_expired_params.rbs @@ -6,7 +6,9 @@ module Onlyfans filter: Onlyfans::FollowingListExpiredParams::Filter, limit: Integer, offset: Integer, - query: String? + query: String?, + sort: Onlyfans::Models::FollowingListExpiredParams::sort?, + sort_direction: Onlyfans::Models::FollowingListExpiredParams::sort_direction? } & Onlyfans::Internal::Type::request_parameters @@ -32,12 +34,18 @@ module Onlyfans attr_accessor query: String? + attr_accessor sort: Onlyfans::Models::FollowingListExpiredParams::sort? + + attr_accessor sort_direction: Onlyfans::Models::FollowingListExpiredParams::sort_direction? + def initialize: ( account: String, ?filter: Onlyfans::FollowingListExpiredParams::Filter, ?limit: Integer, ?offset: Integer, ?query: String?, + ?sort: Onlyfans::Models::FollowingListExpiredParams::sort?, + ?sort_direction: Onlyfans::Models::FollowingListExpiredParams::sort_direction?, ?request_options: Onlyfans::request_opts ) -> void @@ -47,6 +55,8 @@ module Onlyfans limit: Integer, offset: Integer, query: String?, + sort: Onlyfans::Models::FollowingListExpiredParams::sort?, + sort_direction: Onlyfans::Models::FollowingListExpiredParams::sort_direction?, request_options: Onlyfans::RequestOptions } @@ -93,6 +103,30 @@ module Onlyfans def self?.values: -> ::Array[Onlyfans::Models::FollowingListExpiredParams::Filter::paid] end end + + type sort = :last_activity | :expire_date | :subscribe_date | :is_expired + + module Sort + extend Onlyfans::Internal::Type::Enum + + LAST_ACTIVITY: :last_activity + EXPIRE_DATE: :expire_date + SUBSCRIBE_DATE: :subscribe_date + IS_EXPIRED: :is_expired + + def self?.values: -> ::Array[Onlyfans::Models::FollowingListExpiredParams::sort] + end + + type sort_direction = :asc | :desc + + module SortDirection + extend Onlyfans::Internal::Type::Enum + + ASC: :asc + DESC: :desc + + def self?.values: -> ::Array[Onlyfans::Models::FollowingListExpiredParams::sort_direction] + end end end end diff --git a/sig/onlyfans/models/link_tag_list_params.rbs b/sig/onlyfans/models/link_tag_list_params.rbs index a1c0d2a8..34bf7b3a 100644 --- a/sig/onlyfans/models/link_tag_list_params.rbs +++ b/sig/onlyfans/models/link_tag_list_params.rbs @@ -24,13 +24,14 @@ module Onlyfans request_options: Onlyfans::RequestOptions } - type type_ = :trial_links | :tracking_links + type type_ = :trial_links | :tracking_links | :smart_links module Type extend Onlyfans::Internal::Type::Enum TRIAL_LINKS: :trial_links TRACKING_LINKS: :tracking_links + SMART_LINKS: :smart_links def self?.values: -> ::Array[Onlyfans::Models::LinkTagListParams::type_] end diff --git a/sig/onlyfans/models/mass_messaging_send_params.rbs b/sig/onlyfans/models/mass_messaging_send_params.rbs index c9000124..78b2da75 100644 --- a/sig/onlyfans/models/mass_messaging_send_params.rbs +++ b/sig/onlyfans/models/mass_messaging_send_params.rbs @@ -4,12 +4,13 @@ module Onlyfans { account: String, text: String, + block_banned_words: Onlyfans::Models::MassMessagingSendParams::block_banned_words, excluded_lists: ::Array[String], giphy_id: String, locked_text: bool, media_files: ::Array[top], previews: ::Array[top], - price: Integer, + price: Float, rf_guest: String, rf_partner: String, rf_tag: String, @@ -28,6 +29,12 @@ module Onlyfans attr_accessor text: String + attr_reader block_banned_words: Onlyfans::Models::MassMessagingSendParams::block_banned_words? + + def block_banned_words=: ( + Onlyfans::Models::MassMessagingSendParams::block_banned_words + ) -> Onlyfans::Models::MassMessagingSendParams::block_banned_words + attr_reader excluded_lists: ::Array[String]? def excluded_lists=: (::Array[String]) -> ::Array[String] @@ -48,9 +55,9 @@ module Onlyfans def previews=: (::Array[top]) -> ::Array[top] - attr_reader price: Integer? + attr_reader price: Float? - def price=: (Integer) -> Integer + def price=: (Float) -> Float attr_reader rf_guest: String? @@ -83,12 +90,13 @@ module Onlyfans def initialize: ( account: String, text: String, + ?block_banned_words: Onlyfans::Models::MassMessagingSendParams::block_banned_words, ?excluded_lists: ::Array[String], ?giphy_id: String, ?locked_text: bool, ?media_files: ::Array[top], ?previews: ::Array[top], - ?price: Integer, + ?price: Float, ?rf_guest: String, ?rf_partner: String, ?rf_tag: String, @@ -102,12 +110,13 @@ module Onlyfans def to_hash: -> { account: String, text: String, + block_banned_words: Onlyfans::Models::MassMessagingSendParams::block_banned_words, excluded_lists: ::Array[String], giphy_id: String, locked_text: bool, media_files: ::Array[top], previews: ::Array[top], - price: Integer, + price: Float, rf_guest: String, rf_partner: String, rf_tag: String, @@ -117,6 +126,18 @@ module Onlyfans user_lists: ::Array[String], request_options: Onlyfans::RequestOptions } + + type block_banned_words = :strict_ban | :risky | :replace_soften + + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN: :strict_ban + RISKY: :risky + REPLACE_SOFTEN: :replace_soften + + def self?.values: -> ::Array[Onlyfans::Models::MassMessagingSendParams::block_banned_words] + end end end end diff --git a/sig/onlyfans/models/mass_messaging_update_params.rbs b/sig/onlyfans/models/mass_messaging_update_params.rbs index 98bc6fda..5452a4ff 100644 --- a/sig/onlyfans/models/mass_messaging_update_params.rbs +++ b/sig/onlyfans/models/mass_messaging_update_params.rbs @@ -5,11 +5,12 @@ module Onlyfans account: String, id: String, text: String, + block_banned_words: Onlyfans::Models::MassMessagingUpdateParams::block_banned_words, giphy_id: String, locked_text: bool, media_files: ::Array[String], previews: ::Array[String], - price: Integer, + price: Float, scheduled_date: String, user_ids: ::Array[String], user_lists: ::Array[String] @@ -26,6 +27,12 @@ module Onlyfans attr_accessor text: String + attr_reader block_banned_words: Onlyfans::Models::MassMessagingUpdateParams::block_banned_words? + + def block_banned_words=: ( + Onlyfans::Models::MassMessagingUpdateParams::block_banned_words + ) -> Onlyfans::Models::MassMessagingUpdateParams::block_banned_words + attr_reader giphy_id: String? def giphy_id=: (String) -> String @@ -42,9 +49,9 @@ module Onlyfans def previews=: (::Array[String]) -> ::Array[String] - attr_reader price: Integer? + attr_reader price: Float? - def price=: (Integer) -> Integer + def price=: (Float) -> Float attr_reader scheduled_date: String? @@ -62,11 +69,12 @@ module Onlyfans account: String, id: String, text: String, + ?block_banned_words: Onlyfans::Models::MassMessagingUpdateParams::block_banned_words, ?giphy_id: String, ?locked_text: bool, ?media_files: ::Array[String], ?previews: ::Array[String], - ?price: Integer, + ?price: Float, ?scheduled_date: String, ?user_ids: ::Array[String], ?user_lists: ::Array[String], @@ -77,16 +85,29 @@ module Onlyfans account: String, id: String, text: String, + block_banned_words: Onlyfans::Models::MassMessagingUpdateParams::block_banned_words, giphy_id: String, locked_text: bool, media_files: ::Array[String], previews: ::Array[String], - price: Integer, + price: Float, scheduled_date: String, user_ids: ::Array[String], user_lists: ::Array[String], request_options: Onlyfans::RequestOptions } + + type block_banned_words = :strict_ban | :risky | :replace_soften + + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN: :strict_ban + RISKY: :risky + REPLACE_SOFTEN: :replace_soften + + def self?.values: -> ::Array[Onlyfans::Models::MassMessagingUpdateParams::block_banned_words] + end end end end diff --git a/sig/onlyfans/models/media/vault/list_list_params.rbs b/sig/onlyfans/models/media/vault/list_list_params.rbs index f690a0ae..17eb76ef 100644 --- a/sig/onlyfans/models/media/vault/list_list_params.rbs +++ b/sig/onlyfans/models/media/vault/list_list_params.rbs @@ -3,7 +3,13 @@ module Onlyfans module Media module Vault type list_list_params = - { account: String, limit: Integer, offset: Integer, query: String } + { + account: String, + lightweight: bool, + limit: Integer, + offset: Integer, + query: String + } & Onlyfans::Internal::Type::request_parameters class ListListParams < Onlyfans::Internal::Type::BaseModel @@ -12,6 +18,10 @@ module Onlyfans attr_accessor account: String + attr_reader lightweight: bool? + + def lightweight=: (bool) -> bool + attr_reader limit: Integer? def limit=: (Integer) -> Integer @@ -26,6 +36,7 @@ module Onlyfans def initialize: ( account: String, + ?lightweight: bool, ?limit: Integer, ?offset: Integer, ?query: String, @@ -34,6 +45,7 @@ module Onlyfans def to_hash: -> { account: String, + lightweight: bool, limit: Integer, offset: Integer, query: String, diff --git a/sig/onlyfans/models/media/vault/list_list_response.rbs b/sig/onlyfans/models/media/vault/list_list_response.rbs index 2d44dc94..f65923b2 100644 --- a/sig/onlyfans/models/media/vault/list_list_response.rbs +++ b/sig/onlyfans/models/media/vault/list_list_response.rbs @@ -3,364 +3,648 @@ module Onlyfans module Media module Vault type list_list_response = - { - _meta: Onlyfans::Models::Media::Vault::ListListResponse::Meta, - data: Onlyfans::Models::Media::Vault::ListListResponse::Data - } + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0 + | Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1 - class ListListResponse < Onlyfans::Internal::Type::BaseModel - attr_reader _meta: Onlyfans::Models::Media::Vault::ListListResponse::Meta? + module ListListResponse + extend Onlyfans::Internal::Type::Union - def _meta=: ( - Onlyfans::Models::Media::Vault::ListListResponse::Meta - ) -> Onlyfans::Models::Media::Vault::ListListResponse::Meta + type union_member0 = + { + _meta: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta, + data: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data + } - attr_reader data: Onlyfans::Models::Media::Vault::ListListResponse::Data? + class UnionMember0 < Onlyfans::Internal::Type::BaseModel + attr_reader _meta: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta? - def data=: ( - Onlyfans::Models::Media::Vault::ListListResponse::Data - ) -> Onlyfans::Models::Media::Vault::ListListResponse::Data + def _meta=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta - def initialize: ( - ?_meta: Onlyfans::Models::Media::Vault::ListListResponse::Meta, - ?data: Onlyfans::Models::Media::Vault::ListListResponse::Data - ) -> void + attr_reader data: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data? - def to_hash: -> { - _meta: Onlyfans::Models::Media::Vault::ListListResponse::Meta, - data: Onlyfans::Models::Media::Vault::ListListResponse::Data - } + def data=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data - type meta = - { - _cache: Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache, - _credits: Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits, - _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits + def initialize: ( + ?_meta: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta, + ?data: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data + ) -> void + + def to_hash: -> { + _meta: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta, + data: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data } - class Meta < Onlyfans::Internal::Type::BaseModel - attr_reader _cache: Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache? + type meta = + { + _cache: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache, + _credits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits, + _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits + } - def _cache=: ( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache - ) -> Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache + class Meta < Onlyfans::Internal::Type::BaseModel + attr_reader _cache: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache? - attr_reader _credits: Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits? + def _cache=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache - def _credits=: ( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits - ) -> Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits + attr_reader _credits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits? - attr_reader _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits? + def _credits=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits - def _rate_limits=: ( - Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits - ) -> Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits + attr_reader _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits? - def initialize: ( - ?_cache: Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache, - ?_credits: Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits, - ?_rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits - ) -> void + def _rate_limits=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits - def to_hash: -> { - _cache: Onlyfans::Models::Media::Vault::ListListResponse::Meta::Cache, - _credits: Onlyfans::Models::Media::Vault::ListListResponse::Meta::Credits, - _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::Meta::RateLimits - } + def initialize: ( + ?_cache: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache, + ?_credits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits, + ?_rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits + ) -> void - type cache = { is_cached: bool, note: String } + def to_hash: -> { + _cache: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Cache, + _credits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::Credits, + _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Meta::RateLimits + } - class Cache < Onlyfans::Internal::Type::BaseModel - attr_reader is_cached: bool? + type cache = { is_cached: bool, note: String } - def is_cached=: (bool) -> bool + class Cache < Onlyfans::Internal::Type::BaseModel + attr_reader is_cached: bool? - attr_reader note: String? + def is_cached=: (bool) -> bool - def note=: (String) -> String + attr_reader note: String? - def initialize: (?is_cached: bool, ?note: String) -> void + def note=: (String) -> String - def to_hash: -> { is_cached: bool, note: String } - end + def initialize: (?is_cached: bool, ?note: String) -> void - type credits = { balance: Integer, note: String, used: Integer } + def to_hash: -> { is_cached: bool, note: String } + end - class Credits < Onlyfans::Internal::Type::BaseModel - attr_reader balance: Integer? + type credits = { balance: Integer, note: String, used: Integer } - def balance=: (Integer) -> Integer + class Credits < Onlyfans::Internal::Type::BaseModel + attr_reader balance: Integer? - attr_reader note: String? + def balance=: (Integer) -> Integer - def note=: (String) -> String + attr_reader note: String? - attr_reader used: Integer? + def note=: (String) -> String - def used=: (Integer) -> Integer + attr_reader used: Integer? - def initialize: ( - ?balance: Integer, - ?note: String, - ?used: Integer - ) -> void + def used=: (Integer) -> Integer + + def initialize: ( + ?balance: Integer, + ?note: String, + ?used: Integer + ) -> void + + def to_hash: -> { + balance: Integer, + note: String, + used: Integer + } + end + + type rate_limits = + { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + + class RateLimits < Onlyfans::Internal::Type::BaseModel + attr_reader limit_day: Integer? + + def limit_day=: (Integer) -> Integer + + attr_reader limit_minute: Integer? + + def limit_minute=: (Integer) -> Integer + + attr_reader remaining_day: Integer? + + def remaining_day=: (Integer) -> Integer + + attr_reader remaining_minute: Integer? + + def remaining_minute=: (Integer) -> Integer - def to_hash: -> { balance: Integer, note: String, used: Integer } + def initialize: ( + ?limit_day: Integer, + ?limit_minute: Integer, + ?remaining_day: Integer, + ?remaining_minute: Integer + ) -> void + + def to_hash: -> { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + end end - type rate_limits = + type data = { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer + all: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All, + can_create_vault_lists: bool, + has_more: bool, + list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List], + order: String, + sort: String } - class RateLimits < Onlyfans::Internal::Type::BaseModel - attr_reader limit_day: Integer? + class Data < Onlyfans::Internal::Type::BaseModel + attr_reader all: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All? + + def all=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All + + attr_reader can_create_vault_lists: bool? + + def can_create_vault_lists=: (bool) -> bool - def limit_day=: (Integer) -> Integer + attr_reader has_more: bool? - attr_reader limit_minute: Integer? + def has_more=: (bool) -> bool - def limit_minute=: (Integer) -> Integer + attr_reader list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List]? - attr_reader remaining_day: Integer? + def list=: ( + ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List] + ) -> ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List] - def remaining_day=: (Integer) -> Integer + attr_reader order: String? - attr_reader remaining_minute: Integer? + def order=: (String) -> String - def remaining_minute=: (Integer) -> Integer + attr_reader sort: String? + + def sort=: (String) -> String def initialize: ( - ?limit_day: Integer, - ?limit_minute: Integer, - ?remaining_day: Integer, - ?remaining_minute: Integer + ?all: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All, + ?can_create_vault_lists: bool, + ?has_more: bool, + ?list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List], + ?order: String, + ?sort: String ) -> void def to_hash: -> { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer + all: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All, + can_create_vault_lists: bool, + has_more: bool, + list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::List], + order: String, + sort: String } - end - end - type data = - { - all: Onlyfans::Models::Media::Vault::ListListResponse::Data::All, - can_create_vault_lists: bool, - has_more: bool, - list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::List], - order: String, - sort: String - } + type all = + { + audios_count: Integer, + gifs_count: Integer, + medias: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media], + photos_count: Integer, + videos_count: Integer + } + + class All < Onlyfans::Internal::Type::BaseModel + attr_reader audios_count: Integer? + + def audios_count=: (Integer) -> Integer + + attr_reader gifs_count: Integer? + + def gifs_count=: (Integer) -> Integer + + attr_reader medias: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media]? + + def medias=: ( + ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media] + ) -> ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media] + + attr_reader photos_count: Integer? + + def photos_count=: (Integer) -> Integer + + attr_reader videos_count: Integer? + + def videos_count=: (Integer) -> Integer + + def initialize: ( + ?audios_count: Integer, + ?gifs_count: Integer, + ?medias: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media], + ?photos_count: Integer, + ?videos_count: Integer + ) -> void + + def to_hash: -> { + audios_count: Integer, + gifs_count: Integer, + medias: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0::Data::All::Media], + photos_count: Integer, + videos_count: Integer + } + + type media = { type: String, url: String } + + class Media < Onlyfans::Internal::Type::BaseModel + attr_reader type: String? + + def type=: (String) -> String + + attr_reader url: String? + + def url=: (String) -> String + + def initialize: (?type: String, ?url: String) -> void + + def to_hash: -> { type: String, url: String } + end + end + + type list = + { + id: Integer, + audios_count: Integer, + can_delete: bool, + can_update: bool, + gifs_count: Integer, + has_media: bool, + medias: ::Array[top], + name: String, + photos_count: Integer, + type: String, + videos_count: Integer + } + + class List < Onlyfans::Internal::Type::BaseModel + attr_reader id: Integer? + + def id=: (Integer) -> Integer - class Data < Onlyfans::Internal::Type::BaseModel - attr_reader all: Onlyfans::Models::Media::Vault::ListListResponse::Data::All? + attr_reader audios_count: Integer? - def all=: ( - Onlyfans::Models::Media::Vault::ListListResponse::Data::All - ) -> Onlyfans::Models::Media::Vault::ListListResponse::Data::All + def audios_count=: (Integer) -> Integer - attr_reader can_create_vault_lists: bool? + attr_reader can_delete: bool? - def can_create_vault_lists=: (bool) -> bool + def can_delete=: (bool) -> bool - attr_reader has_more: bool? + attr_reader can_update: bool? - def has_more=: (bool) -> bool + def can_update=: (bool) -> bool - attr_reader list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::List]? + attr_reader gifs_count: Integer? - def list=: ( - ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::List] - ) -> ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::List] + def gifs_count=: (Integer) -> Integer - attr_reader order: String? + attr_reader has_media: bool? - def order=: (String) -> String + def has_media=: (bool) -> bool - attr_reader sort: String? + attr_reader medias: ::Array[top]? - def sort=: (String) -> String + def medias=: (::Array[top]) -> ::Array[top] + + attr_reader name: String? + + def name=: (String) -> String + + attr_reader photos_count: Integer? + + def photos_count=: (Integer) -> Integer + + attr_reader type: String? + + def type=: (String) -> String + + attr_reader videos_count: Integer? + + def videos_count=: (Integer) -> Integer + + def initialize: ( + ?id: Integer, + ?audios_count: Integer, + ?can_delete: bool, + ?can_update: bool, + ?gifs_count: Integer, + ?has_media: bool, + ?medias: ::Array[top], + ?name: String, + ?photos_count: Integer, + ?type: String, + ?videos_count: Integer + ) -> void + + def to_hash: -> { + id: Integer, + audios_count: Integer, + can_delete: bool, + can_update: bool, + gifs_count: Integer, + has_media: bool, + medias: ::Array[top], + name: String, + photos_count: Integer, + type: String, + videos_count: Integer + } + end + end + end + + type union_member1 = + { + _meta: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta, + data: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data + } + + class UnionMember1 < Onlyfans::Internal::Type::BaseModel + attr_reader _meta: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta? + + def _meta=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta + + attr_reader data: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data? + + def data=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data def initialize: ( - ?all: Onlyfans::Models::Media::Vault::ListListResponse::Data::All, - ?can_create_vault_lists: bool, - ?has_more: bool, - ?list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::List], - ?order: String, - ?sort: String + ?_meta: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta, + ?data: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data ) -> void def to_hash: -> { - all: Onlyfans::Models::Media::Vault::ListListResponse::Data::All, - can_create_vault_lists: bool, - has_more: bool, - list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::List], - order: String, - sort: String + _meta: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta, + data: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data } - type all = + type meta = { - audios_count: Integer, - gifs_count: Integer, - medias: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media], - photos_count: Integer, - videos_count: Integer + _cache: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache, + _credits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits, + _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits } - class All < Onlyfans::Internal::Type::BaseModel - attr_reader audios_count: Integer? - - def audios_count=: (Integer) -> Integer - - attr_reader gifs_count: Integer? + class Meta < Onlyfans::Internal::Type::BaseModel + attr_reader _cache: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache? - def gifs_count=: (Integer) -> Integer + def _cache=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache - attr_reader medias: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media]? + attr_reader _credits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits? - def medias=: ( - ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media] - ) -> ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media] + def _credits=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits - attr_reader photos_count: Integer? + attr_reader _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits? - def photos_count=: (Integer) -> Integer - - attr_reader videos_count: Integer? - - def videos_count=: (Integer) -> Integer + def _rate_limits=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits def initialize: ( - ?audios_count: Integer, - ?gifs_count: Integer, - ?medias: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media], - ?photos_count: Integer, - ?videos_count: Integer + ?_cache: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache, + ?_credits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits, + ?_rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits ) -> void def to_hash: -> { - audios_count: Integer, - gifs_count: Integer, - medias: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::Data::All::Media], - photos_count: Integer, - videos_count: Integer + _cache: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Cache, + _credits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::Credits, + _rate_limits: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Meta::RateLimits } - type media = { type: String, url: String } + type cache = { is_cached: bool, note: String } - class Media < Onlyfans::Internal::Type::BaseModel - attr_reader type: String? + class Cache < Onlyfans::Internal::Type::BaseModel + attr_reader is_cached: bool? - def type=: (String) -> String + def is_cached=: (bool) -> bool - attr_reader url: String? + attr_reader note: String? - def url=: (String) -> String + def note=: (String) -> String - def initialize: (?type: String, ?url: String) -> void + def initialize: (?is_cached: bool, ?note: String) -> void - def to_hash: -> { type: String, url: String } + def to_hash: -> { is_cached: bool, note: String } end - end - type list = - { - id: Integer, - audios_count: Integer, - can_delete: bool, - can_update: bool, - gifs_count: Integer, - has_media: bool, - medias: ::Array[top], - name: String, - photos_count: Integer, - type: String, - videos_count: Integer - } + type credits = { balance: Integer, note: String, used: Integer } - class List < Onlyfans::Internal::Type::BaseModel - attr_reader id: Integer? + class Credits < Onlyfans::Internal::Type::BaseModel + attr_reader balance: Integer? - def id=: (Integer) -> Integer + def balance=: (Integer) -> Integer - attr_reader audios_count: Integer? + attr_reader note: String? - def audios_count=: (Integer) -> Integer + def note=: (String) -> String - attr_reader can_delete: bool? + attr_reader used: Integer? - def can_delete=: (bool) -> bool + def used=: (Integer) -> Integer - attr_reader can_update: bool? + def initialize: ( + ?balance: Integer, + ?note: String, + ?used: Integer + ) -> void - def can_update=: (bool) -> bool + def to_hash: -> { + balance: Integer, + note: String, + used: Integer + } + end - attr_reader gifs_count: Integer? + type rate_limits = + { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } - def gifs_count=: (Integer) -> Integer + class RateLimits < Onlyfans::Internal::Type::BaseModel + attr_reader limit_day: Integer? - attr_reader has_media: bool? + def limit_day=: (Integer) -> Integer - def has_media=: (bool) -> bool + attr_reader limit_minute: Integer? - attr_reader medias: ::Array[top]? + def limit_minute=: (Integer) -> Integer - def medias=: (::Array[top]) -> ::Array[top] + attr_reader remaining_day: Integer? - attr_reader name: String? + def remaining_day=: (Integer) -> Integer - def name=: (String) -> String + attr_reader remaining_minute: Integer? - attr_reader photos_count: Integer? + def remaining_minute=: (Integer) -> Integer - def photos_count=: (Integer) -> Integer + def initialize: ( + ?limit_day: Integer, + ?limit_minute: Integer, + ?remaining_day: Integer, + ?remaining_minute: Integer + ) -> void - attr_reader type: String? + def to_hash: -> { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + end + end - def type=: (String) -> String + type data = + { + all: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All, + can_create_vault_lists: bool, + has_more: bool, + list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List], + order: String, + sort: String + } - attr_reader videos_count: Integer? + class Data < Onlyfans::Internal::Type::BaseModel + attr_reader all: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All? - def videos_count=: (Integer) -> Integer + def all=: ( + Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All + ) -> Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All + + attr_reader can_create_vault_lists: bool? + + def can_create_vault_lists=: (bool) -> bool + + attr_reader has_more: bool? + + def has_more=: (bool) -> bool + + attr_reader list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List]? + + def list=: ( + ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List] + ) -> ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List] + + attr_reader order: String? + + def order=: (String) -> String + + attr_reader sort: String? + + def sort=: (String) -> String def initialize: ( - ?id: Integer, - ?audios_count: Integer, - ?can_delete: bool, - ?can_update: bool, - ?gifs_count: Integer, - ?has_media: bool, - ?medias: ::Array[top], - ?name: String, - ?photos_count: Integer, - ?type: String, - ?videos_count: Integer + ?all: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All, + ?can_create_vault_lists: bool, + ?has_more: bool, + ?list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List], + ?order: String, + ?sort: String ) -> void def to_hash: -> { - id: Integer, - audios_count: Integer, - can_delete: bool, - can_update: bool, - gifs_count: Integer, - has_media: bool, - medias: ::Array[top], - name: String, - photos_count: Integer, - type: String, - videos_count: Integer + all: Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::All, + can_create_vault_lists: bool, + has_more: bool, + list: ::Array[Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1::Data::List], + order: String, + sort: String } + + type all = { media_count: Integer } + + class All < Onlyfans::Internal::Type::BaseModel + attr_reader media_count: Integer? + + def media_count=: (Integer) -> Integer + + def initialize: (?media_count: Integer) -> void + + def to_hash: -> { media_count: Integer } + end + + type list = + { + id: Integer, + can_update: bool, + media_count: Integer, + name: String, + type: String + } + + class List < Onlyfans::Internal::Type::BaseModel + attr_reader id: Integer? + + def id=: (Integer) -> Integer + + attr_reader can_update: bool? + + def can_update=: (bool) -> bool + + attr_reader media_count: Integer? + + def media_count=: (Integer) -> Integer + + attr_reader name: String? + + def name=: (String) -> String + + attr_reader type: String? + + def type=: (String) -> String + + def initialize: ( + ?id: Integer, + ?can_update: bool, + ?media_count: Integer, + ?name: String, + ?type: String + ) -> void + + def to_hash: -> { + id: Integer, + can_update: bool, + media_count: Integer, + name: String, + type: String + } + end end end + + def self?.variants: -> ::Array[Onlyfans::Models::Media::Vault::list_list_response] end end end diff --git a/sig/onlyfans/models/media/vault/list_update_params.rbs b/sig/onlyfans/models/media/vault/list_update_params.rbs index a8030205..a32ee870 100644 --- a/sig/onlyfans/models/media/vault/list_update_params.rbs +++ b/sig/onlyfans/models/media/vault/list_update_params.rbs @@ -3,7 +3,7 @@ module Onlyfans module Media module Vault type list_update_params = - { account: String, list_id: String } + { account: String, list_id: String, name: String } & Onlyfans::Internal::Type::request_parameters class ListUpdateParams < Onlyfans::Internal::Type::BaseModel @@ -14,15 +14,19 @@ module Onlyfans attr_accessor list_id: String + attr_accessor name: String + def initialize: ( account: String, list_id: String, + name: String, ?request_options: Onlyfans::request_opts ) -> void def to_hash: -> { account: String, list_id: String, + name: String, request_options: Onlyfans::RequestOptions } end diff --git a/sig/onlyfans/models/media_download_response.rbs b/sig/onlyfans/models/media_download_response.rbs deleted file mode 100644 index 9cfc4f2a..00000000 --- a/sig/onlyfans/models/media_download_response.rbs +++ /dev/null @@ -1,5 +0,0 @@ -module Onlyfans - module Models - class MediaDownloadResponse = String - end -end diff --git a/sig/onlyfans/models/message_attach_tags_params.rbs b/sig/onlyfans/models/message_attach_tags_params.rbs deleted file mode 100644 index 67a7933d..00000000 --- a/sig/onlyfans/models/message_attach_tags_params.rbs +++ /dev/null @@ -1,52 +0,0 @@ -module Onlyfans - module Models - type message_attach_tags_params = - { - account: String, - message_id: String, - rf_guest: String, - rf_partner: String, - rf_tag: String - } - & Onlyfans::Internal::Type::request_parameters - - class MessageAttachTagsParams < Onlyfans::Internal::Type::BaseModel - extend Onlyfans::Internal::Type::RequestParameters::Converter - include Onlyfans::Internal::Type::RequestParameters - - attr_accessor account: String - - attr_accessor message_id: String - - attr_reader rf_guest: String? - - def rf_guest=: (String) -> String - - attr_reader rf_partner: String? - - def rf_partner=: (String) -> String - - attr_reader rf_tag: String? - - def rf_tag=: (String) -> String - - def initialize: ( - account: String, - message_id: String, - ?rf_guest: String, - ?rf_partner: String, - ?rf_tag: String, - ?request_options: Onlyfans::request_opts - ) -> void - - def to_hash: -> { - account: String, - message_id: String, - rf_guest: String, - rf_partner: String, - rf_tag: String, - request_options: Onlyfans::RequestOptions - } - end - end -end diff --git a/sig/onlyfans/models/message_attach_tags_response.rbs b/sig/onlyfans/models/message_attach_tags_response.rbs deleted file mode 100644 index b18da0c0..00000000 --- a/sig/onlyfans/models/message_attach_tags_response.rbs +++ /dev/null @@ -1,164 +0,0 @@ -module Onlyfans - module Models - type message_attach_tags_response = - { - _meta: Onlyfans::Models::MessageAttachTagsResponse::Meta, - data: Onlyfans::Models::MessageAttachTagsResponse::Data - } - - class MessageAttachTagsResponse < Onlyfans::Internal::Type::BaseModel - attr_reader _meta: Onlyfans::Models::MessageAttachTagsResponse::Meta? - - def _meta=: ( - Onlyfans::Models::MessageAttachTagsResponse::Meta - ) -> Onlyfans::Models::MessageAttachTagsResponse::Meta - - attr_reader data: Onlyfans::Models::MessageAttachTagsResponse::Data? - - def data=: ( - Onlyfans::Models::MessageAttachTagsResponse::Data - ) -> Onlyfans::Models::MessageAttachTagsResponse::Data - - def initialize: ( - ?_meta: Onlyfans::Models::MessageAttachTagsResponse::Meta, - ?data: Onlyfans::Models::MessageAttachTagsResponse::Data - ) -> void - - def to_hash: -> { - _meta: Onlyfans::Models::MessageAttachTagsResponse::Meta, - data: Onlyfans::Models::MessageAttachTagsResponse::Data - } - - type meta = - { - _cache: Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache, - _credits: Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits, - _rate_limits: Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits - } - - class Meta < Onlyfans::Internal::Type::BaseModel - attr_reader _cache: Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache? - - def _cache=: ( - Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache - ) -> Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache - - attr_reader _credits: Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits? - - def _credits=: ( - Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits - ) -> Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits - - attr_reader _rate_limits: Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits? - - def _rate_limits=: ( - Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits - ) -> Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits - - def initialize: ( - ?_cache: Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache, - ?_credits: Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits, - ?_rate_limits: Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits - ) -> void - - def to_hash: -> { - _cache: Onlyfans::Models::MessageAttachTagsResponse::Meta::Cache, - _credits: Onlyfans::Models::MessageAttachTagsResponse::Meta::Credits, - _rate_limits: Onlyfans::Models::MessageAttachTagsResponse::Meta::RateLimits - } - - type cache = { is_cached: bool, note: String } - - class Cache < Onlyfans::Internal::Type::BaseModel - attr_reader is_cached: bool? - - def is_cached=: (bool) -> bool - - attr_reader note: String? - - def note=: (String) -> String - - def initialize: (?is_cached: bool, ?note: String) -> void - - def to_hash: -> { is_cached: bool, note: String } - end - - type credits = { balance: Integer, note: String, used: Integer } - - class Credits < Onlyfans::Internal::Type::BaseModel - attr_reader balance: Integer? - - def balance=: (Integer) -> Integer - - attr_reader note: String? - - def note=: (String) -> String - - attr_reader used: Integer? - - def used=: (Integer) -> Integer - - def initialize: ( - ?balance: Integer, - ?note: String, - ?used: Integer - ) -> void - - def to_hash: -> { balance: Integer, note: String, used: Integer } - end - - type rate_limits = - { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer - } - - class RateLimits < Onlyfans::Internal::Type::BaseModel - attr_reader limit_day: Integer? - - def limit_day=: (Integer) -> Integer - - attr_reader limit_minute: Integer? - - def limit_minute=: (Integer) -> Integer - - attr_reader remaining_day: Integer? - - def remaining_day=: (Integer) -> Integer - - attr_reader remaining_minute: Integer? - - def remaining_minute=: (Integer) -> Integer - - def initialize: ( - ?limit_day: Integer, - ?limit_minute: Integer, - ?remaining_day: Integer, - ?remaining_minute: Integer - ) -> void - - def to_hash: -> { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer - } - end - end - - type data = { success: bool } - - class Data < Onlyfans::Internal::Type::BaseModel - attr_reader success: bool? - - def success=: (bool) -> bool - - def initialize: (?success: bool) -> void - - def to_hash: -> { success: bool } - end - end - end -end diff --git a/sig/onlyfans/models/post_create_params.rbs b/sig/onlyfans/models/post_create_params.rbs index 936cee19..bc4502b6 100644 --- a/sig/onlyfans/models/post_create_params.rbs +++ b/sig/onlyfans/models/post_create_params.rbs @@ -4,6 +4,7 @@ module Onlyfans { account: String, text: String, + block_banned_words: Onlyfans::Models::PostCreateParams::block_banned_words, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: ::Array[String], @@ -28,6 +29,12 @@ module Onlyfans attr_accessor text: String + attr_reader block_banned_words: Onlyfans::Models::PostCreateParams::block_banned_words? + + def block_banned_words=: ( + Onlyfans::Models::PostCreateParams::block_banned_words + ) -> Onlyfans::Models::PostCreateParams::block_banned_words + attr_reader expire_days: Integer? def expire_days=: (Integer) -> Integer @@ -85,6 +92,7 @@ module Onlyfans def initialize: ( account: String, text: String, + ?block_banned_words: Onlyfans::Models::PostCreateParams::block_banned_words, ?expire_days: Integer, ?fund_raising_target_amount: Integer, ?fund_raising_tips_presets: ::Array[String], @@ -104,6 +112,7 @@ module Onlyfans def to_hash: -> { account: String, text: String, + block_banned_words: Onlyfans::Models::PostCreateParams::block_banned_words, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: ::Array[String], @@ -120,6 +129,18 @@ module Onlyfans request_options: Onlyfans::RequestOptions } + type block_banned_words = :strict_ban | :risky | :replace_soften + + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN: :strict_ban + RISKY: :risky + REPLACE_SOFTEN: :replace_soften + + def self?.values: -> ::Array[Onlyfans::Models::PostCreateParams::block_banned_words] + end + type voting_type = :poll | :quiz module VotingType diff --git a/sig/onlyfans/models/post_update_params.rbs b/sig/onlyfans/models/post_update_params.rbs index acc28ac2..95faed4d 100644 --- a/sig/onlyfans/models/post_update_params.rbs +++ b/sig/onlyfans/models/post_update_params.rbs @@ -5,6 +5,7 @@ module Onlyfans account: String, post_id: Integer, text: String, + block_banned_words: Onlyfans::Models::PostUpdateParams::block_banned_words, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: ::Array[String], @@ -31,6 +32,12 @@ module Onlyfans attr_accessor text: String + attr_reader block_banned_words: Onlyfans::Models::PostUpdateParams::block_banned_words? + + def block_banned_words=: ( + Onlyfans::Models::PostUpdateParams::block_banned_words + ) -> Onlyfans::Models::PostUpdateParams::block_banned_words + attr_reader expire_days: Integer? def expire_days=: (Integer) -> Integer @@ -89,6 +96,7 @@ module Onlyfans account: String, post_id: Integer, text: String, + ?block_banned_words: Onlyfans::Models::PostUpdateParams::block_banned_words, ?expire_days: Integer, ?fund_raising_target_amount: Integer, ?fund_raising_tips_presets: ::Array[String], @@ -109,6 +117,7 @@ module Onlyfans account: String, post_id: Integer, text: String, + block_banned_words: Onlyfans::Models::PostUpdateParams::block_banned_words, expire_days: Integer, fund_raising_target_amount: Integer, fund_raising_tips_presets: ::Array[String], @@ -125,6 +134,18 @@ module Onlyfans request_options: Onlyfans::RequestOptions } + type block_banned_words = :strict_ban | :risky | :replace_soften + + module BlockBannedWords + extend Onlyfans::Internal::Type::Enum + + STRICT_BAN: :strict_ban + RISKY: :risky + REPLACE_SOFTEN: :replace_soften + + def self?.values: -> ::Array[Onlyfans::Models::PostUpdateParams::block_banned_words] + end + type voting_type = :poll | :quiz module VotingType diff --git a/sig/onlyfans/models/queue_list_params.rbs b/sig/onlyfans/models/queue_list_params.rbs index 1b682c96..fe904740 100644 --- a/sig/onlyfans/models/queue_list_params.rbs +++ b/sig/onlyfans/models/queue_list_params.rbs @@ -3,10 +3,11 @@ module Onlyfans type queue_list_params = { account: String, - limit: Integer, publish_date_end: String, publish_date_start: String, - timezone: String + timezone: String, + limit: Integer, + type: ::Array[Onlyfans::Models::QueueListParams::type_] } & Onlyfans::Internal::Type::request_parameters @@ -16,31 +17,52 @@ module Onlyfans attr_accessor account: String - attr_accessor limit: Integer - attr_accessor publish_date_end: String attr_accessor publish_date_start: String attr_accessor timezone: String + attr_reader limit: Integer? + + def limit=: (Integer) -> Integer + + attr_reader type: ::Array[Onlyfans::Models::QueueListParams::type_]? + + def type=: ( + ::Array[Onlyfans::Models::QueueListParams::type_] + ) -> ::Array[Onlyfans::Models::QueueListParams::type_] + def initialize: ( account: String, - limit: Integer, publish_date_end: String, publish_date_start: String, timezone: String, + ?limit: Integer, + ?type: ::Array[Onlyfans::Models::QueueListParams::type_], ?request_options: Onlyfans::request_opts ) -> void def to_hash: -> { account: String, - limit: Integer, publish_date_end: String, publish_date_start: String, timezone: String, + limit: Integer, + type: ::Array[Onlyfans::Models::QueueListParams::type_], request_options: Onlyfans::RequestOptions } + + type type_ = :chat | :post + + module Type + extend Onlyfans::Internal::Type::Enum + + CHAT: :chat + POST: :post + + def self?.values: -> ::Array[Onlyfans::Models::QueueListParams::type_] + end end end end diff --git a/sig/onlyfans/models/release_form_list_taggable_users_response.rbs b/sig/onlyfans/models/release_form_list_taggable_users_response.rbs index f3e2ac26..73d3ffcc 100644 --- a/sig/onlyfans/models/release_form_list_taggable_users_response.rbs +++ b/sig/onlyfans/models/release_form_list_taggable_users_response.rbs @@ -157,29 +157,28 @@ module Onlyfans end end - type pagination = { next_page: String } + type pagination = { next_page: String, notice: String } class Pagination < Onlyfans::Internal::Type::BaseModel attr_reader next_page: String? def next_page=: (String) -> String - def initialize: (?next_page: String) -> void + attr_reader notice: String? - def to_hash: -> { next_page: String } + def notice=: (String) -> String + + def initialize: (?next_page: String, ?notice: String) -> void + + def to_hash: -> { next_page: String, notice: String } end type data = { - has_more: bool, items: ::Array[Onlyfans::Models::ReleaseFormListTaggableUsersResponse::Data::Item] } class Data < Onlyfans::Internal::Type::BaseModel - attr_reader has_more: bool? - - def has_more=: (bool) -> bool - attr_reader items: ::Array[Onlyfans::Models::ReleaseFormListTaggableUsersResponse::Data::Item]? def items=: ( @@ -187,12 +186,10 @@ module Onlyfans ) -> ::Array[Onlyfans::Models::ReleaseFormListTaggableUsersResponse::Data::Item] def initialize: ( - ?has_more: bool, ?items: ::Array[Onlyfans::Models::ReleaseFormListTaggableUsersResponse::Data::Item] ) -> void def to_hash: -> { - has_more: bool, items: ::Array[Onlyfans::Models::ReleaseFormListTaggableUsersResponse::Data::Item] } diff --git a/sig/onlyfans/models/shared_tracking_link_list_params.rbs b/sig/onlyfans/models/shared_tracking_link_list_params.rbs index 552eb359..be468d8e 100644 --- a/sig/onlyfans/models/shared_tracking_link_list_params.rbs +++ b/sig/onlyfans/models/shared_tracking_link_list_params.rbs @@ -1,7 +1,16 @@ module Onlyfans module Models type shared_tracking_link_list_params = - { account: String, limit: Integer, offset: Integer, synchronous: bool? } + { + account: String, + limit: Integer, + offset: Integer, + pagination: Onlyfans::Models::SharedTrackingLinkListParams::pagination, + sorting_deleted: Onlyfans::Models::SharedTrackingLinkListParams::sorting_deleted, + stats: String, + synchronous: bool, + with_deleted: Onlyfans::Models::SharedTrackingLinkListParams::with_deleted + } & Onlyfans::Internal::Type::request_parameters class SharedTrackingLinkListParams < Onlyfans::Internal::Type::BaseModel @@ -18,13 +27,41 @@ module Onlyfans def offset=: (Integer) -> Integer - attr_accessor synchronous: bool? + attr_reader pagination: Onlyfans::Models::SharedTrackingLinkListParams::pagination? + + def pagination=: ( + Onlyfans::Models::SharedTrackingLinkListParams::pagination + ) -> Onlyfans::Models::SharedTrackingLinkListParams::pagination + + attr_reader sorting_deleted: Onlyfans::Models::SharedTrackingLinkListParams::sorting_deleted? + + def sorting_deleted=: ( + Onlyfans::Models::SharedTrackingLinkListParams::sorting_deleted + ) -> Onlyfans::Models::SharedTrackingLinkListParams::sorting_deleted + + attr_reader stats: String? + + def stats=: (String) -> String + + attr_reader synchronous: bool? + + def synchronous=: (bool) -> bool + + attr_reader with_deleted: Onlyfans::Models::SharedTrackingLinkListParams::with_deleted? + + def with_deleted=: ( + Onlyfans::Models::SharedTrackingLinkListParams::with_deleted + ) -> Onlyfans::Models::SharedTrackingLinkListParams::with_deleted def initialize: ( account: String, ?limit: Integer, ?offset: Integer, - ?synchronous: bool?, + ?pagination: Onlyfans::Models::SharedTrackingLinkListParams::pagination, + ?sorting_deleted: Onlyfans::Models::SharedTrackingLinkListParams::sorting_deleted, + ?stats: String, + ?synchronous: bool, + ?with_deleted: Onlyfans::Models::SharedTrackingLinkListParams::with_deleted, ?request_options: Onlyfans::request_opts ) -> void @@ -32,9 +69,46 @@ module Onlyfans account: String, limit: Integer, offset: Integer, - synchronous: bool?, + pagination: Onlyfans::Models::SharedTrackingLinkListParams::pagination, + sorting_deleted: Onlyfans::Models::SharedTrackingLinkListParams::sorting_deleted, + stats: String, + synchronous: bool, + with_deleted: Onlyfans::Models::SharedTrackingLinkListParams::with_deleted, request_options: Onlyfans::RequestOptions } + + type pagination = 0 | 1 + + module Pagination + extend Onlyfans::Internal::Type::Enum + + PAGINATION_0: 0 + PAGINATION_1: 1 + + def self?.values: -> ::Array[Onlyfans::Models::SharedTrackingLinkListParams::pagination] + end + + type sorting_deleted = 0 | 1 + + module SortingDeleted + extend Onlyfans::Internal::Type::Enum + + SORTING_DELETED_0: 0 + SORTING_DELETED_1: 1 + + def self?.values: -> ::Array[Onlyfans::Models::SharedTrackingLinkListParams::sorting_deleted] + end + + type with_deleted = 0 | 1 + + module WithDeleted + extend Onlyfans::Internal::Type::Enum + + WITH_DELETED_0: 0 + WITH_DELETED_1: 1 + + def self?.values: -> ::Array[Onlyfans::Models::SharedTrackingLinkListParams::with_deleted] + end end end end diff --git a/sig/onlyfans/models/shared_trial_link_list_params.rbs b/sig/onlyfans/models/shared_trial_link_list_params.rbs index 800bd061..ffde2770 100644 --- a/sig/onlyfans/models/shared_trial_link_list_params.rbs +++ b/sig/onlyfans/models/shared_trial_link_list_params.rbs @@ -1,7 +1,13 @@ module Onlyfans module Models type shared_trial_link_list_params = - { account: String, limit: Integer, offset: Integer, synchronous: bool? } + { + account: String, + limit: Integer, + offset: Integer, + pagination: Onlyfans::Models::SharedTrialLinkListParams::pagination, + synchronous: bool + } & Onlyfans::Internal::Type::request_parameters class SharedTrialLinkListParams < Onlyfans::Internal::Type::BaseModel @@ -18,13 +24,22 @@ module Onlyfans def offset=: (Integer) -> Integer - attr_accessor synchronous: bool? + attr_reader pagination: Onlyfans::Models::SharedTrialLinkListParams::pagination? + + def pagination=: ( + Onlyfans::Models::SharedTrialLinkListParams::pagination + ) -> Onlyfans::Models::SharedTrialLinkListParams::pagination + + attr_reader synchronous: bool? + + def synchronous=: (bool) -> bool def initialize: ( account: String, ?limit: Integer, ?offset: Integer, - ?synchronous: bool?, + ?pagination: Onlyfans::Models::SharedTrialLinkListParams::pagination, + ?synchronous: bool, ?request_options: Onlyfans::request_opts ) -> void @@ -32,9 +47,21 @@ module Onlyfans account: String, limit: Integer, offset: Integer, - synchronous: bool?, + pagination: Onlyfans::Models::SharedTrialLinkListParams::pagination, + synchronous: bool, request_options: Onlyfans::RequestOptions } + + type pagination = 0 | 1 + + module Pagination + extend Onlyfans::Internal::Type::Enum + + PAGINATION_0: 0 + PAGINATION_1: 1 + + def self?.values: -> ::Array[Onlyfans::Models::SharedTrialLinkListParams::pagination] + end end end end diff --git a/sig/onlyfans/models/smart_link_create_response.rbs b/sig/onlyfans/models/smart_link_create_response.rbs index dedac674..f8658ef6 100644 --- a/sig/onlyfans/models/smart_link_create_response.rbs +++ b/sig/onlyfans/models/smart_link_create_response.rbs @@ -159,7 +159,7 @@ module Onlyfans free_trial_days: Integer, link_type: String, name: String, - revenue: String?, + revenue: String, subscribers_count: Integer, traffic_redirect_url: String, updated_at: String @@ -206,7 +206,9 @@ module Onlyfans def name=: (String) -> String - attr_accessor revenue: String? + attr_reader revenue: String? + + def revenue=: (String) -> String attr_reader subscribers_count: Integer? @@ -230,7 +232,7 @@ module Onlyfans ?free_trial_days: Integer, ?link_type: String, ?name: String, - ?revenue: String?, + ?revenue: String, ?subscribers_count: Integer, ?traffic_redirect_url: String, ?updated_at: String @@ -246,7 +248,7 @@ module Onlyfans free_trial_days: Integer, link_type: String, name: String, - revenue: String?, + revenue: String, subscribers_count: Integer, traffic_redirect_url: String, updated_at: String diff --git a/sig/onlyfans/models/smart_link_list_conversions_params.rbs b/sig/onlyfans/models/smart_link_list_conversions_params.rbs index a567d841..1704ccbc 100644 --- a/sig/onlyfans/models/smart_link_list_conversions_params.rbs +++ b/sig/onlyfans/models/smart_link_list_conversions_params.rbs @@ -84,6 +84,7 @@ module Onlyfans :new_subscriber | :new_transaction | :message_received + | :fan_sent_1_message | :fan_sent_3_messages module ConversionType @@ -92,6 +93,7 @@ module Onlyfans NEW_SUBSCRIBER: :new_subscriber NEW_TRANSACTION: :new_transaction MESSAGE_RECEIVED: :message_received + FAN_SENT_1_MESSAGE: :fan_sent_1_message FAN_SENT_3_MESSAGES: :fan_sent_3_messages def self?.values: -> ::Array[Onlyfans::Models::SmartLinkListConversionsParams::conversion_type] diff --git a/sig/onlyfans/models/smart_link_list_fans_params.rbs b/sig/onlyfans/models/smart_link_list_fans_params.rbs index 69971ec6..447b1e3d 100644 --- a/sig/onlyfans/models/smart_link_list_fans_params.rbs +++ b/sig/onlyfans/models/smart_link_list_fans_params.rbs @@ -9,7 +9,9 @@ module Onlyfans min_revenue_net: Float, min_tips_net: Float, offset: Integer, - sort: Onlyfans::Models::SmartLinkListFansParams::sort + previously_subscribed: bool, + sort: Onlyfans::Models::SmartLinkListFansParams::sort, + subscribed_using_promo: bool } & Onlyfans::Internal::Type::request_parameters @@ -43,12 +45,20 @@ module Onlyfans def offset=: (Integer) -> Integer + attr_reader previously_subscribed: bool? + + def previously_subscribed=: (bool) -> bool + attr_reader sort: Onlyfans::Models::SmartLinkListFansParams::sort? def sort=: ( Onlyfans::Models::SmartLinkListFansParams::sort ) -> Onlyfans::Models::SmartLinkListFansParams::sort + attr_reader subscribed_using_promo: bool? + + def subscribed_using_promo=: (bool) -> bool + def initialize: ( smart_link_id: String, ?has_messages: bool, @@ -57,7 +67,9 @@ module Onlyfans ?min_revenue_net: Float, ?min_tips_net: Float, ?offset: Integer, + ?previously_subscribed: bool, ?sort: Onlyfans::Models::SmartLinkListFansParams::sort, + ?subscribed_using_promo: bool, ?request_options: Onlyfans::request_opts ) -> void @@ -69,7 +81,9 @@ module Onlyfans min_revenue_net: Float, min_tips_net: Float, offset: Integer, + previously_subscribed: bool, sort: Onlyfans::Models::SmartLinkListFansParams::sort, + subscribed_using_promo: bool, request_options: Onlyfans::RequestOptions } diff --git a/sig/onlyfans/models/smart_link_list_fans_response.rbs b/sig/onlyfans/models/smart_link_list_fans_response.rbs index d2f31753..7e3bf042 100644 --- a/sig/onlyfans/models/smart_link_list_fans_response.rbs +++ b/sig/onlyfans/models/smart_link_list_fans_response.rbs @@ -145,7 +145,9 @@ module Onlyfans min_revenue_net: String?, min_tips_net: String?, offset: Integer, - sort: String + previously_subscribed: String?, + sort: String, + subscribed_using_promo: String? } class Filters < Onlyfans::Internal::Type::BaseModel @@ -165,10 +167,14 @@ module Onlyfans def offset=: (Integer) -> Integer + attr_accessor previously_subscribed: String? + attr_reader sort: String? def sort=: (String) -> String + attr_accessor subscribed_using_promo: String? + def initialize: ( ?has_messages: String?, ?limit: Integer, @@ -176,7 +182,9 @@ module Onlyfans ?min_revenue_net: String?, ?min_tips_net: String?, ?offset: Integer, - ?sort: String + ?previously_subscribed: String?, + ?sort: String, + ?subscribed_using_promo: String? ) -> void def to_hash: -> { @@ -186,7 +194,9 @@ module Onlyfans min_revenue_net: String?, min_tips_net: String?, offset: Integer, - sort: String + previously_subscribed: String?, + sort: String, + subscribed_using_promo: String? } end @@ -202,6 +212,7 @@ module Onlyfans name: String, onlyfans_id: String, revenue_net: Integer, + subscription_insights: Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights, tips_net: Integer, username: String } @@ -247,6 +258,12 @@ module Onlyfans def revenue_net=: (Integer) -> Integer + attr_reader subscription_insights: Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights? + + def subscription_insights=: ( + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights + ) -> Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights + attr_reader tips_net: Integer? def tips_net=: (Integer) -> Integer @@ -266,6 +283,7 @@ module Onlyfans ?name: String, ?onlyfans_id: String, ?revenue_net: Integer, + ?subscription_insights: Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights, ?tips_net: Integer, ?username: String ) -> void @@ -281,14 +299,112 @@ module Onlyfans name: String, onlyfans_id: String, revenue_net: Integer, + subscription_insights: Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights, tips_net: Integer, username: String } + + type subscription_insights = + { + current_subscription: Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription, + current_subscription_from_smart_link: bool, + has_subscription_data: bool, + previously_subscribed: bool, + subscribed_using_promo: bool + } + + class SubscriptionInsights < Onlyfans::Internal::Type::BaseModel + attr_reader current_subscription: Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription? + + def current_subscription=: ( + Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription + ) -> Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription + + attr_reader current_subscription_from_smart_link: bool? + + def current_subscription_from_smart_link=: (bool) -> bool + + attr_reader has_subscription_data: bool? + + def has_subscription_data=: (bool) -> bool + + attr_reader previously_subscribed: bool? + + def previously_subscribed=: (bool) -> bool + + attr_reader subscribed_using_promo: bool? + + def subscribed_using_promo=: (bool) -> bool + + def initialize: ( + ?current_subscription: Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription, + ?current_subscription_from_smart_link: bool, + ?has_subscription_data: bool, + ?previously_subscribed: bool, + ?subscribed_using_promo: bool + ) -> void + + def to_hash: -> { + current_subscription: Onlyfans::Models::SmartLinkListFansResponse::Data::Row::SubscriptionInsights::CurrentSubscription, + current_subscription_from_smart_link: bool, + has_subscription_data: bool, + previously_subscribed: bool, + subscribed_using_promo: bool + } + + type current_subscription = + { + action: String, + is_free: bool, + price: Integer, + regular_price: Integer, + type: String + } + + class CurrentSubscription < Onlyfans::Internal::Type::BaseModel + attr_reader action: String? + + def action=: (String) -> String + + attr_reader is_free: bool? + + def is_free=: (bool) -> bool + + attr_reader price: Integer? + + def price=: (Integer) -> Integer + + attr_reader regular_price: Integer? + + def regular_price=: (Integer) -> Integer + + attr_reader type: String? + + def type=: (String) -> String + + def initialize: ( + ?action: String, + ?is_free: bool, + ?price: Integer, + ?regular_price: Integer, + ?type: String + ) -> void + + def to_hash: -> { + action: String, + is_free: bool, + price: Integer, + regular_price: Integer, + type: String + } + end + end end type summary = { fans_total: Integer, + :fans_with_1_plus_messages_total => Integer, :fans_with_3_plus_messages_total => Integer, revenue_net_total: Integer, tips_net_total: Integer @@ -299,6 +415,10 @@ module Onlyfans def fans_total=: (Integer) -> Integer + attr_reader fans_with_1_plus_messages_total: Integer? + + def fans_with_1_plus_messages_total=: (Integer) -> Integer + attr_reader fans_with_3_plus_messages_total: Integer? def fans_with_3_plus_messages_total=: (Integer) -> Integer @@ -313,6 +433,7 @@ module Onlyfans def initialize: ( ?fans_total: Integer, + ?fans_with_1_plus_messages_total: Integer, ?fans_with_3_plus_messages_total: Integer, ?revenue_net_total: Integer, ?tips_net_total: Integer @@ -320,6 +441,7 @@ module Onlyfans def to_hash: -> { fans_total: Integer, + :fans_with_1_plus_messages_total => Integer, :fans_with_3_plus_messages_total => Integer, revenue_net_total: Integer, tips_net_total: Integer diff --git a/sig/onlyfans/models/smart_link_list_params.rbs b/sig/onlyfans/models/smart_link_list_params.rbs index 3acabc96..023b5cfc 100644 --- a/sig/onlyfans/models/smart_link_list_params.rbs +++ b/sig/onlyfans/models/smart_link_list_params.rbs @@ -3,10 +3,11 @@ module Onlyfans type smart_link_list_params = { account_ids: String?, + filter: Onlyfans::SmartLinkListParams::Filter, limit: Integer, - meta_pixel_ids: String?, name: String?, - offset: Integer + offset: Integer, + pixel_ids: String? } & Onlyfans::Internal::Type::request_parameters @@ -16,35 +17,55 @@ module Onlyfans attr_accessor account_ids: String? + attr_reader filter: Onlyfans::SmartLinkListParams::Filter? + + def filter=: ( + Onlyfans::SmartLinkListParams::Filter + ) -> Onlyfans::SmartLinkListParams::Filter + attr_reader limit: Integer? def limit=: (Integer) -> Integer - attr_accessor meta_pixel_ids: String? - attr_accessor name: String? attr_reader offset: Integer? def offset=: (Integer) -> Integer + attr_accessor pixel_ids: String? + def initialize: ( ?account_ids: String?, + ?filter: Onlyfans::SmartLinkListParams::Filter, ?limit: Integer, - ?meta_pixel_ids: String?, ?name: String?, ?offset: Integer, + ?pixel_ids: String?, ?request_options: Onlyfans::request_opts ) -> void def to_hash: -> { account_ids: String?, + filter: Onlyfans::SmartLinkListParams::Filter, limit: Integer, - meta_pixel_ids: String?, name: String?, offset: Integer, + pixel_ids: String?, request_options: Onlyfans::RequestOptions } + + type filter = { tags: ::Array[String] } + + class Filter < Onlyfans::Internal::Type::BaseModel + attr_reader tags: ::Array[String]? + + def tags=: (::Array[String]) -> ::Array[String] + + def initialize: (?tags: ::Array[String]) -> void + + def to_hash: -> { tags: ::Array[String] } + end end end end diff --git a/sig/onlyfans/models/smart_link_postback_create_params.rbs b/sig/onlyfans/models/smart_link_postback_create_params.rbs index dea64c8e..73cb97cb 100644 --- a/sig/onlyfans/models/smart_link_postback_create_params.rbs +++ b/sig/onlyfans/models/smart_link_postback_create_params.rbs @@ -5,6 +5,9 @@ module Onlyfans conversion_types: ::Array[String], smart_link_scope: Onlyfans::Models::SmartLinkPostbackCreateParams::smart_link_scope, url: String, + body: String, + headers: ::Array[Onlyfans::SmartLinkPostbackCreateParams::Header], + http_method: Onlyfans::Models::SmartLinkPostbackCreateParams::http_method, smart_link_ids: ::Array[String] } & Onlyfans::Internal::Type::request_parameters @@ -19,6 +22,22 @@ module Onlyfans attr_accessor url: String + attr_reader body: String? + + def body=: (String) -> String + + attr_reader headers: ::Array[Onlyfans::SmartLinkPostbackCreateParams::Header]? + + def headers=: ( + ::Array[Onlyfans::SmartLinkPostbackCreateParams::Header] + ) -> ::Array[Onlyfans::SmartLinkPostbackCreateParams::Header] + + attr_reader http_method: Onlyfans::Models::SmartLinkPostbackCreateParams::http_method? + + def http_method=: ( + Onlyfans::Models::SmartLinkPostbackCreateParams::http_method + ) -> Onlyfans::Models::SmartLinkPostbackCreateParams::http_method + attr_reader smart_link_ids: ::Array[String]? def smart_link_ids=: (::Array[String]) -> ::Array[String] @@ -27,6 +46,9 @@ module Onlyfans conversion_types: ::Array[String], smart_link_scope: Onlyfans::Models::SmartLinkPostbackCreateParams::smart_link_scope, url: String, + ?body: String, + ?headers: ::Array[Onlyfans::SmartLinkPostbackCreateParams::Header], + ?http_method: Onlyfans::Models::SmartLinkPostbackCreateParams::http_method, ?smart_link_ids: ::Array[String], ?request_options: Onlyfans::request_opts ) -> void @@ -35,6 +57,9 @@ module Onlyfans conversion_types: ::Array[String], smart_link_scope: Onlyfans::Models::SmartLinkPostbackCreateParams::smart_link_scope, url: String, + body: String, + headers: ::Array[Onlyfans::SmartLinkPostbackCreateParams::Header], + http_method: Onlyfans::Models::SmartLinkPostbackCreateParams::http_method, smart_link_ids: ::Array[String], request_options: Onlyfans::RequestOptions } @@ -49,6 +74,29 @@ module Onlyfans def self?.values: -> ::Array[Onlyfans::Models::SmartLinkPostbackCreateParams::smart_link_scope] end + + type header = { name: String?, value: String? } + + class Header < Onlyfans::Internal::Type::BaseModel + attr_accessor name: String? + + attr_accessor value: String? + + def initialize: (?name: String?, ?value: String?) -> void + + def to_hash: -> { name: String?, value: String? } + end + + type http_method = :GET | :POST + + module HTTPMethod + extend Onlyfans::Internal::Type::Enum + + GET: :GET + POST: :POST + + def self?.values: -> ::Array[Onlyfans::Models::SmartLinkPostbackCreateParams::http_method] + end end end end diff --git a/sig/onlyfans/models/smart_link_postback_create_response.rbs b/sig/onlyfans/models/smart_link_postback_create_response.rbs index cda7bef7..c9865ccb 100644 --- a/sig/onlyfans/models/smart_link_postback_create_response.rbs +++ b/sig/onlyfans/models/smart_link_postback_create_response.rbs @@ -102,8 +102,11 @@ module Onlyfans type data = { id: Integer, + body: String, conversion_types: ::Array[String], created_at: String, + headers: ::Array[Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header], + http_method: String, latest_response: String?, smart_link_ids: ::Array[top], smart_link_scope: String, @@ -117,6 +120,10 @@ module Onlyfans def id=: (Integer) -> Integer + attr_reader body: String? + + def body=: (String) -> String + attr_reader conversion_types: ::Array[String]? def conversion_types=: (::Array[String]) -> ::Array[String] @@ -125,6 +132,16 @@ module Onlyfans def created_at=: (String) -> String + attr_reader headers: ::Array[Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header]? + + def headers=: ( + ::Array[Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header] + ) -> ::Array[Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header] + + attr_reader http_method: String? + + def http_method=: (String) -> String + attr_accessor latest_response: String? attr_reader smart_link_ids: ::Array[top]? @@ -149,8 +166,11 @@ module Onlyfans def initialize: ( ?id: Integer, + ?body: String, ?conversion_types: ::Array[String], ?created_at: String, + ?headers: ::Array[Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header], + ?http_method: String, ?latest_response: String?, ?smart_link_ids: ::Array[top], ?smart_link_scope: String, @@ -161,8 +181,11 @@ module Onlyfans def to_hash: -> { id: Integer, + body: String, conversion_types: ::Array[String], created_at: String, + headers: ::Array[Onlyfans::Models::SmartLinkPostbackCreateResponse::Data::Header], + http_method: String, latest_response: String?, smart_link_ids: ::Array[top], smart_link_scope: String, @@ -170,6 +193,22 @@ module Onlyfans updated_at: String, url: String } + + type header = { name: String, value: String } + + class Header < Onlyfans::Internal::Type::BaseModel + attr_reader name: String? + + def name=: (String) -> String + + attr_reader value: String? + + def value=: (String) -> String + + def initialize: (?name: String, ?value: String) -> void + + def to_hash: -> { name: String, value: String } + end end end end diff --git a/sig/onlyfans/models/smart_link_postback_list_response.rbs b/sig/onlyfans/models/smart_link_postback_list_response.rbs index 5fcae5df..fafffe05 100644 --- a/sig/onlyfans/models/smart_link_postback_list_response.rbs +++ b/sig/onlyfans/models/smart_link_postback_list_response.rbs @@ -102,8 +102,11 @@ module Onlyfans type data = { id: Integer, + body: String, conversion_types: ::Array[String], created_at: String, + headers: ::Array[Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header], + http_method: String, latest_response: Onlyfans::Models::SmartLinkPostbackListResponse::Data::LatestResponse, smart_link_ids: ::Array[String], smart_link_scope: String, @@ -117,6 +120,10 @@ module Onlyfans def id=: (Integer) -> Integer + attr_reader body: String? + + def body=: (String) -> String + attr_reader conversion_types: ::Array[String]? def conversion_types=: (::Array[String]) -> ::Array[String] @@ -125,6 +132,16 @@ module Onlyfans def created_at=: (String) -> String + attr_reader headers: ::Array[Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header]? + + def headers=: ( + ::Array[Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header] + ) -> ::Array[Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header] + + attr_reader http_method: String? + + def http_method=: (String) -> String + attr_reader latest_response: Onlyfans::Models::SmartLinkPostbackListResponse::Data::LatestResponse? def latest_response=: ( @@ -155,8 +172,11 @@ module Onlyfans def initialize: ( ?id: Integer, + ?body: String, ?conversion_types: ::Array[String], ?created_at: String, + ?headers: ::Array[Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header], + ?http_method: String, ?latest_response: Onlyfans::Models::SmartLinkPostbackListResponse::Data::LatestResponse, ?smart_link_ids: ::Array[String], ?smart_link_scope: String, @@ -167,8 +187,11 @@ module Onlyfans def to_hash: -> { id: Integer, + body: String, conversion_types: ::Array[String], created_at: String, + headers: ::Array[Onlyfans::Models::SmartLinkPostbackListResponse::Data::Header], + http_method: String, latest_response: Onlyfans::Models::SmartLinkPostbackListResponse::Data::LatestResponse, smart_link_ids: ::Array[String], smart_link_scope: String, @@ -177,6 +200,22 @@ module Onlyfans url: String } + type header = { name: String, value: String } + + class Header < Onlyfans::Internal::Type::BaseModel + attr_reader name: String? + + def name=: (String) -> String + + attr_reader value: String? + + def value=: (String) -> String + + def initialize: (?name: String, ?value: String) -> void + + def to_hash: -> { name: String, value: String } + end + type latest_response = { id: Integer, diff --git a/sig/onlyfans/models/smart_link_postback_retrieve_response.rbs b/sig/onlyfans/models/smart_link_postback_retrieve_response.rbs index 806b0a27..bc7467cd 100644 --- a/sig/onlyfans/models/smart_link_postback_retrieve_response.rbs +++ b/sig/onlyfans/models/smart_link_postback_retrieve_response.rbs @@ -102,8 +102,11 @@ module Onlyfans type data = { id: Integer, + body: String, conversion_types: ::Array[String], created_at: String, + headers: ::Array[Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header], + http_method: String, latest_response: String?, smart_link_ids: ::Array[String], smart_link_scope: String, @@ -117,6 +120,10 @@ module Onlyfans def id=: (Integer) -> Integer + attr_reader body: String? + + def body=: (String) -> String + attr_reader conversion_types: ::Array[String]? def conversion_types=: (::Array[String]) -> ::Array[String] @@ -125,6 +132,16 @@ module Onlyfans def created_at=: (String) -> String + attr_reader headers: ::Array[Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header]? + + def headers=: ( + ::Array[Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header] + ) -> ::Array[Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header] + + attr_reader http_method: String? + + def http_method=: (String) -> String + attr_accessor latest_response: String? attr_reader smart_link_ids: ::Array[String]? @@ -151,8 +168,11 @@ module Onlyfans def initialize: ( ?id: Integer, + ?body: String, ?conversion_types: ::Array[String], ?created_at: String, + ?headers: ::Array[Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header], + ?http_method: String, ?latest_response: String?, ?smart_link_ids: ::Array[String], ?smart_link_scope: String, @@ -163,8 +183,11 @@ module Onlyfans def to_hash: -> { id: Integer, + body: String, conversion_types: ::Array[String], created_at: String, + headers: ::Array[Onlyfans::Models::SmartLinkPostbackRetrieveResponse::Data::Header], + http_method: String, latest_response: String?, smart_link_ids: ::Array[String], smart_link_scope: String, @@ -173,6 +196,22 @@ module Onlyfans url: String } + type header = { name: String, value: String } + + class Header < Onlyfans::Internal::Type::BaseModel + attr_reader name: String? + + def name=: (String) -> String + + attr_reader value: String? + + def value=: (String) -> String + + def initialize: (?name: String, ?value: String) -> void + + def to_hash: -> { name: String, value: String } + end + type smart_link = { account_display_name: String, diff --git a/sig/onlyfans/models/smart_link_postback_update_params.rbs b/sig/onlyfans/models/smart_link_postback_update_params.rbs index 844fc175..46920a81 100644 --- a/sig/onlyfans/models/smart_link_postback_update_params.rbs +++ b/sig/onlyfans/models/smart_link_postback_update_params.rbs @@ -6,6 +6,9 @@ module Onlyfans conversion_types: ::Array[String], smart_link_scope: Onlyfans::Models::SmartLinkPostbackUpdateParams::smart_link_scope, url: String, + body: String, + headers: ::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header], + http_method: Onlyfans::Models::SmartLinkPostbackUpdateParams::http_method, smart_link_ids: ::Array[String] } & Onlyfans::Internal::Type::request_parameters @@ -22,6 +25,22 @@ module Onlyfans attr_accessor url: String + attr_reader body: String? + + def body=: (String) -> String + + attr_reader headers: ::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header]? + + def headers=: ( + ::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header] + ) -> ::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header] + + attr_reader http_method: Onlyfans::Models::SmartLinkPostbackUpdateParams::http_method? + + def http_method=: ( + Onlyfans::Models::SmartLinkPostbackUpdateParams::http_method + ) -> Onlyfans::Models::SmartLinkPostbackUpdateParams::http_method + attr_reader smart_link_ids: ::Array[String]? def smart_link_ids=: (::Array[String]) -> ::Array[String] @@ -31,6 +50,9 @@ module Onlyfans conversion_types: ::Array[String], smart_link_scope: Onlyfans::Models::SmartLinkPostbackUpdateParams::smart_link_scope, url: String, + ?body: String, + ?headers: ::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header], + ?http_method: Onlyfans::Models::SmartLinkPostbackUpdateParams::http_method, ?smart_link_ids: ::Array[String], ?request_options: Onlyfans::request_opts ) -> void @@ -40,6 +62,9 @@ module Onlyfans conversion_types: ::Array[String], smart_link_scope: Onlyfans::Models::SmartLinkPostbackUpdateParams::smart_link_scope, url: String, + body: String, + headers: ::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header], + http_method: Onlyfans::Models::SmartLinkPostbackUpdateParams::http_method, smart_link_ids: ::Array[String], request_options: Onlyfans::RequestOptions } @@ -54,6 +79,29 @@ module Onlyfans def self?.values: -> ::Array[Onlyfans::Models::SmartLinkPostbackUpdateParams::smart_link_scope] end + + type header = { name: String?, value: String? } + + class Header < Onlyfans::Internal::Type::BaseModel + attr_accessor name: String? + + attr_accessor value: String? + + def initialize: (?name: String?, ?value: String?) -> void + + def to_hash: -> { name: String?, value: String? } + end + + type http_method = :GET | :POST + + module HTTPMethod + extend Onlyfans::Internal::Type::Enum + + GET: :GET + POST: :POST + + def self?.values: -> ::Array[Onlyfans::Models::SmartLinkPostbackUpdateParams::http_method] + end end end end diff --git a/sig/onlyfans/models/smart_link_postback_update_response.rbs b/sig/onlyfans/models/smart_link_postback_update_response.rbs index ba71e618..9a997c82 100644 --- a/sig/onlyfans/models/smart_link_postback_update_response.rbs +++ b/sig/onlyfans/models/smart_link_postback_update_response.rbs @@ -102,8 +102,11 @@ module Onlyfans type data = { id: Integer, + body: String, conversion_types: ::Array[String], created_at: String, + headers: ::Array[Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header], + http_method: String, latest_response: String?, smart_link_ids: ::Array[String], smart_link_scope: String, @@ -117,6 +120,10 @@ module Onlyfans def id=: (Integer) -> Integer + attr_reader body: String? + + def body=: (String) -> String + attr_reader conversion_types: ::Array[String]? def conversion_types=: (::Array[String]) -> ::Array[String] @@ -125,6 +132,16 @@ module Onlyfans def created_at=: (String) -> String + attr_reader headers: ::Array[Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header]? + + def headers=: ( + ::Array[Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header] + ) -> ::Array[Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header] + + attr_reader http_method: String? + + def http_method=: (String) -> String + attr_accessor latest_response: String? attr_reader smart_link_ids: ::Array[String]? @@ -151,8 +168,11 @@ module Onlyfans def initialize: ( ?id: Integer, + ?body: String, ?conversion_types: ::Array[String], ?created_at: String, + ?headers: ::Array[Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header], + ?http_method: String, ?latest_response: String?, ?smart_link_ids: ::Array[String], ?smart_link_scope: String, @@ -163,8 +183,11 @@ module Onlyfans def to_hash: -> { id: Integer, + body: String, conversion_types: ::Array[String], created_at: String, + headers: ::Array[Onlyfans::Models::SmartLinkPostbackUpdateResponse::Data::Header], + http_method: String, latest_response: String?, smart_link_ids: ::Array[String], smart_link_scope: String, @@ -173,6 +196,22 @@ module Onlyfans url: String } + type header = { name: String, value: String } + + class Header < Onlyfans::Internal::Type::BaseModel + attr_reader name: String? + + def name=: (String) -> String + + attr_reader value: String? + + def value=: (String) -> String + + def initialize: (?name: String, ?value: String) -> void + + def to_hash: -> { name: String, value: String } + end + type smart_link = { account_display_name: String, diff --git a/sig/onlyfans/models/statistic_calculate_total_transactions_params.rbs b/sig/onlyfans/models/statistic_calculate_total_transactions_params.rbs index 9e663625..99e3b8d1 100644 --- a/sig/onlyfans/models/statistic_calculate_total_transactions_params.rbs +++ b/sig/onlyfans/models/statistic_calculate_total_transactions_params.rbs @@ -10,14 +10,18 @@ module Onlyfans attr_accessor account: String - attr_accessor end_date: String + attr_reader end_date: String? - attr_accessor start_date: String + def end_date=: (String) -> String + + attr_reader start_date: String? + + def start_date=: (String) -> String def initialize: ( account: String, - end_date: String, - start_date: String, + ?end_date: String, + ?start_date: String, ?request_options: Onlyfans::request_opts ) -> void diff --git a/sig/onlyfans/models/statistic_get_subscriber_metrics_params.rbs b/sig/onlyfans/models/statistic_get_subscriber_metrics_params.rbs index b0d00d3b..a0068c4a 100644 --- a/sig/onlyfans/models/statistic_get_subscriber_metrics_params.rbs +++ b/sig/onlyfans/models/statistic_get_subscriber_metrics_params.rbs @@ -1,7 +1,13 @@ module Onlyfans module Models type statistic_get_subscriber_metrics_params = - { account: String, end_date: String, start_date: String, detailed: bool? } + { + account: String, + end_date: String, + start_date: String, + detailed: bool?, + detailed_type: Onlyfans::Models::StatisticGetSubscriberMetricsParams::detailed_type? + } & Onlyfans::Internal::Type::request_parameters class StatisticGetSubscriberMetricsParams < Onlyfans::Internal::Type::BaseModel @@ -16,11 +22,14 @@ module Onlyfans attr_accessor detailed: bool? + attr_accessor detailed_type: Onlyfans::Models::StatisticGetSubscriberMetricsParams::detailed_type? + def initialize: ( account: String, end_date: String, start_date: String, ?detailed: bool?, + ?detailed_type: Onlyfans::Models::StatisticGetSubscriberMetricsParams::detailed_type?, ?request_options: Onlyfans::request_opts ) -> void @@ -29,8 +38,21 @@ module Onlyfans end_date: String, start_date: String, detailed: bool?, + detailed_type: Onlyfans::Models::StatisticGetSubscriberMetricsParams::detailed_type?, request_options: Onlyfans::RequestOptions } + + type detailed_type = :total | :renew | :new + + module DetailedType + extend Onlyfans::Internal::Type::Enum + + TOTAL: :total + RENEW: :renew + NEW: :new + + def self?.values: -> ::Array[Onlyfans::Models::StatisticGetSubscriberMetricsParams::detailed_type] + end end end end diff --git a/sig/onlyfans/models/statistics/statement_get_earnings_params.rbs b/sig/onlyfans/models/statistics/statement_get_earnings_params.rbs index 4e5b4ccf..ebd3eed8 100644 --- a/sig/onlyfans/models/statistics/statement_get_earnings_params.rbs +++ b/sig/onlyfans/models/statistics/statement_get_earnings_params.rbs @@ -4,8 +4,8 @@ module Onlyfans type statement_get_earnings_params = { account: String, - start_date: String, end_date: String, + start_date: String, type: Onlyfans::Models::Statistics::StatementGetEarningsParams::type_ } & Onlyfans::Internal::Type::request_parameters @@ -16,11 +16,9 @@ module Onlyfans attr_accessor account: String - attr_accessor start_date: String - - attr_reader end_date: String? + attr_accessor end_date: String - def end_date=: (String) -> String + attr_accessor start_date: String attr_reader type: Onlyfans::Models::Statistics::StatementGetEarningsParams::type_? @@ -30,16 +28,16 @@ module Onlyfans def initialize: ( account: String, + end_date: String, start_date: String, - ?end_date: String, ?type: Onlyfans::Models::Statistics::StatementGetEarningsParams::type_, ?request_options: Onlyfans::request_opts ) -> void def to_hash: -> { account: String, - start_date: String, end_date: String, + start_date: String, type: Onlyfans::Models::Statistics::StatementGetEarningsParams::type_, request_options: Onlyfans::RequestOptions } diff --git a/sig/onlyfans/models/story_create_params.rbs b/sig/onlyfans/models/story_create_params.rbs index eb583793..06d73b21 100644 --- a/sig/onlyfans/models/story_create_params.rbs +++ b/sig/onlyfans/models/story_create_params.rbs @@ -1,7 +1,14 @@ module Onlyfans module Models type story_create_params = - { account: String, media_files: ::Array[String] } + { + account: String, + media_files: ::Array[String], + canvas_height: Integer, + canvas_width: Integer, + question: Onlyfans::StoryCreateParams::Question, + texts: ::Array[Onlyfans::StoryCreateParams::Text] + } & Onlyfans::Internal::Type::request_parameters class StoryCreateParams < Onlyfans::Internal::Type::BaseModel @@ -12,17 +19,280 @@ module Onlyfans attr_accessor media_files: ::Array[String] + attr_reader canvas_height: Integer? + + def canvas_height=: (Integer) -> Integer + + attr_reader canvas_width: Integer? + + def canvas_width=: (Integer) -> Integer + + attr_reader question: Onlyfans::StoryCreateParams::Question? + + def question=: ( + Onlyfans::StoryCreateParams::Question + ) -> Onlyfans::StoryCreateParams::Question + + attr_reader texts: ::Array[Onlyfans::StoryCreateParams::Text]? + + def texts=: ( + ::Array[Onlyfans::StoryCreateParams::Text] + ) -> ::Array[Onlyfans::StoryCreateParams::Text] + def initialize: ( account: String, media_files: ::Array[String], + ?canvas_height: Integer, + ?canvas_width: Integer, + ?question: Onlyfans::StoryCreateParams::Question, + ?texts: ::Array[Onlyfans::StoryCreateParams::Text], ?request_options: Onlyfans::request_opts ) -> void def to_hash: -> { account: String, media_files: ::Array[String], + canvas_height: Integer, + canvas_width: Integer, + question: Onlyfans::StoryCreateParams::Question, + texts: ::Array[Onlyfans::StoryCreateParams::Text], request_options: Onlyfans::RequestOptions } + + type question = + { + color: String, + height: Float, + left: Float, + text: String, + top: Float, + width: Float + } + + class Question < Onlyfans::Internal::Type::BaseModel + attr_reader color: String? + + def color=: (String) -> String + + attr_reader height: Float? + + def height=: (Float) -> Float + + attr_reader left: Float? + + def left=: (Float) -> Float + + attr_reader text: String? + + def text=: (String) -> String + + attr_reader top: Float? + + def top=: (Float) -> Float + + attr_reader width: Float? + + def width=: (Float) -> Float + + def initialize: ( + ?color: String, + ?height: Float, + ?left: Float, + ?text: String, + ?top: Float, + ?width: Float + ) -> void + + def to_hash: -> { + color: String, + height: Float, + left: Float, + text: String, + top: Float, + width: Float + } + end + + type text = + { + text: String, + angle: Float, + bg_color: String, + color: String, + font_family: Onlyfans::Models::StoryCreateParams::Text::font_family, + font_size: Float, + font_weight: Onlyfans::Models::StoryCreateParams::Text::font_weight, + left: Float, + scale: Float, + text_align: Onlyfans::Models::StoryCreateParams::Text::text_align, + text_height: Float, + text_width: Float, + top: Float, + type: Onlyfans::Models::StoryCreateParams::Text::type_, + z_index: Integer + } + + class Text < Onlyfans::Internal::Type::BaseModel + attr_accessor text: String + + attr_reader angle: Float? + + def angle=: (Float) -> Float + + attr_reader bg_color: String? + + def bg_color=: (String) -> String + + attr_reader color: String? + + def color=: (String) -> String + + attr_reader font_family: Onlyfans::Models::StoryCreateParams::Text::font_family? + + def font_family=: ( + Onlyfans::Models::StoryCreateParams::Text::font_family + ) -> Onlyfans::Models::StoryCreateParams::Text::font_family + + attr_reader font_size: Float? + + def font_size=: (Float) -> Float + + attr_reader font_weight: Onlyfans::Models::StoryCreateParams::Text::font_weight? + + def font_weight=: ( + Onlyfans::Models::StoryCreateParams::Text::font_weight + ) -> Onlyfans::Models::StoryCreateParams::Text::font_weight + + attr_reader left: Float? + + def left=: (Float) -> Float + + attr_reader scale: Float? + + def scale=: (Float) -> Float + + attr_reader text_align: Onlyfans::Models::StoryCreateParams::Text::text_align? + + def text_align=: ( + Onlyfans::Models::StoryCreateParams::Text::text_align + ) -> Onlyfans::Models::StoryCreateParams::Text::text_align + + attr_reader text_height: Float? + + def text_height=: (Float) -> Float + + attr_reader text_width: Float? + + def text_width=: (Float) -> Float + + attr_reader top: Float? + + def top=: (Float) -> Float + + attr_reader type: Onlyfans::Models::StoryCreateParams::Text::type_? + + def type=: ( + Onlyfans::Models::StoryCreateParams::Text::type_ + ) -> Onlyfans::Models::StoryCreateParams::Text::type_ + + attr_reader z_index: Integer? + + def z_index=: (Integer) -> Integer + + def initialize: ( + text: String, + ?angle: Float, + ?bg_color: String, + ?color: String, + ?font_family: Onlyfans::Models::StoryCreateParams::Text::font_family, + ?font_size: Float, + ?font_weight: Onlyfans::Models::StoryCreateParams::Text::font_weight, + ?left: Float, + ?scale: Float, + ?text_align: Onlyfans::Models::StoryCreateParams::Text::text_align, + ?text_height: Float, + ?text_width: Float, + ?top: Float, + ?type: Onlyfans::Models::StoryCreateParams::Text::type_, + ?z_index: Integer + ) -> void + + def to_hash: -> { + text: String, + angle: Float, + bg_color: String, + color: String, + font_family: Onlyfans::Models::StoryCreateParams::Text::font_family, + font_size: Float, + font_weight: Onlyfans::Models::StoryCreateParams::Text::font_weight, + left: Float, + scale: Float, + text_align: Onlyfans::Models::StoryCreateParams::Text::text_align, + text_height: Float, + text_width: Float, + top: Float, + type: Onlyfans::Models::StoryCreateParams::Text::type_, + z_index: Integer + } + + type font_family = + :Roboto + | :PTMono + | :ShantellSans + | :SofiaSans + | :YanoneKaffeesatz + | :RubikMedium + | :RubikBlack + + module FontFamily + extend Onlyfans::Internal::Type::Enum + + ROBOTO: :Roboto + PT_MONO: :PTMono + SHANTELL_SANS: :ShantellSans + SOFIA_SANS: :SofiaSans + YANONE_KAFFEESATZ: :YanoneKaffeesatz + RUBIK_MEDIUM: :RubikMedium + RUBIK_BLACK: :RubikBlack + + def self?.values: -> ::Array[Onlyfans::Models::StoryCreateParams::Text::font_family] + end + + type font_weight = 400 | 500 | 700 + + module FontWeight + extend Onlyfans::Internal::Type::Enum + + FONT_WEIGHT_400: 400 + FONT_WEIGHT_500: 500 + FONT_WEIGHT_700: 700 + + def self?.values: -> ::Array[Onlyfans::Models::StoryCreateParams::Text::font_weight] + end + + type text_align = :left | :center | :right + + module TextAlign + extend Onlyfans::Internal::Type::Enum + + LEFT: :left + CENTER: :center + RIGHT: :right + + def self?.values: -> ::Array[Onlyfans::Models::StoryCreateParams::Text::text_align] + end + + type type_ = :text | :mention + + module Type + extend Onlyfans::Internal::Type::Enum + + TEXT: :text + MENTION: :mention + + def self?.values: -> ::Array[Onlyfans::Models::StoryCreateParams::Text::type_] + end + end end end end diff --git a/sig/onlyfans/models/story_create_response.rbs b/sig/onlyfans/models/story_create_response.rbs index f36e984e..39cd6ce3 100644 --- a/sig/onlyfans/models/story_create_response.rbs +++ b/sig/onlyfans/models/story_create_response.rbs @@ -155,6 +155,8 @@ module Onlyfans { id: Integer, can_delete: bool, + canvas_height: Integer, + canvas_width: Integer, comments_count: Integer, created_at: String, has_post: bool, @@ -164,8 +166,9 @@ module Onlyfans is_watched: bool, likes_count: Integer, media: ::Array[Onlyfans::Models::StoryCreateResponse::Data::Media], - question: String?, - release_forms: ::Array[top], + question: Onlyfans::Models::StoryCreateResponse::Data::Question, + release_forms: ::Array[Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm], + texts: ::Array[Onlyfans::Models::StoryCreateResponse::Data::Text], tips_amount: String, tips_amount_raw: Integer, tips_count: Integer, @@ -183,6 +186,14 @@ module Onlyfans def can_delete=: (bool) -> bool + attr_reader canvas_height: Integer? + + def canvas_height=: (Integer) -> Integer + + attr_reader canvas_width: Integer? + + def canvas_width=: (Integer) -> Integer + attr_reader comments_count: Integer? def comments_count=: (Integer) -> Integer @@ -221,11 +232,23 @@ module Onlyfans ::Array[Onlyfans::Models::StoryCreateResponse::Data::Media] ) -> ::Array[Onlyfans::Models::StoryCreateResponse::Data::Media] - attr_accessor question: String? + attr_reader question: Onlyfans::Models::StoryCreateResponse::Data::Question? + + def question=: ( + Onlyfans::Models::StoryCreateResponse::Data::Question + ) -> Onlyfans::Models::StoryCreateResponse::Data::Question + + attr_reader release_forms: ::Array[Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm]? - attr_reader release_forms: ::Array[top]? + def release_forms=: ( + ::Array[Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm] + ) -> ::Array[Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm] - def release_forms=: (::Array[top]) -> ::Array[top] + attr_reader texts: ::Array[Onlyfans::Models::StoryCreateResponse::Data::Text]? + + def texts=: ( + ::Array[Onlyfans::Models::StoryCreateResponse::Data::Text] + ) -> ::Array[Onlyfans::Models::StoryCreateResponse::Data::Text] attr_reader tips_amount: String? @@ -254,6 +277,8 @@ module Onlyfans def initialize: ( ?id: Integer, ?can_delete: bool, + ?canvas_height: Integer, + ?canvas_width: Integer, ?comments_count: Integer, ?created_at: String, ?has_post: bool, @@ -263,8 +288,9 @@ module Onlyfans ?is_watched: bool, ?likes_count: Integer, ?media: ::Array[Onlyfans::Models::StoryCreateResponse::Data::Media], - ?question: String?, - ?release_forms: ::Array[top], + ?question: Onlyfans::Models::StoryCreateResponse::Data::Question, + ?release_forms: ::Array[Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm], + ?texts: ::Array[Onlyfans::Models::StoryCreateResponse::Data::Text], ?tips_amount: String, ?tips_amount_raw: Integer, ?tips_count: Integer, @@ -276,6 +302,8 @@ module Onlyfans def to_hash: -> { id: Integer, can_delete: bool, + canvas_height: Integer, + canvas_width: Integer, comments_count: Integer, created_at: String, has_post: bool, @@ -285,8 +313,9 @@ module Onlyfans is_watched: bool, likes_count: Integer, media: ::Array[Onlyfans::Models::StoryCreateResponse::Data::Media], - question: String?, - release_forms: ::Array[top], + question: Onlyfans::Models::StoryCreateResponse::Data::Question, + release_forms: ::Array[Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm], + texts: ::Array[Onlyfans::Models::StoryCreateResponse::Data::Text], tips_amount: String, tips_amount_raw: Integer, tips_count: Integer, @@ -459,6 +488,387 @@ module Onlyfans end end end + + type question = + { + entity: Onlyfans::Models::StoryCreateResponse::Data::Question::Entity, + positions: Onlyfans::Models::StoryCreateResponse::Data::Question::Positions, + type: String + } + + class Question < Onlyfans::Internal::Type::BaseModel + attr_reader entity: Onlyfans::Models::StoryCreateResponse::Data::Question::Entity? + + def entity=: ( + Onlyfans::Models::StoryCreateResponse::Data::Question::Entity + ) -> Onlyfans::Models::StoryCreateResponse::Data::Question::Entity + + attr_reader positions: Onlyfans::Models::StoryCreateResponse::Data::Question::Positions? + + def positions=: ( + Onlyfans::Models::StoryCreateResponse::Data::Question::Positions + ) -> Onlyfans::Models::StoryCreateResponse::Data::Question::Positions + + attr_reader type: String? + + def type=: (String) -> String + + def initialize: ( + ?entity: Onlyfans::Models::StoryCreateResponse::Data::Question::Entity, + ?positions: Onlyfans::Models::StoryCreateResponse::Data::Question::Positions, + ?type: String + ) -> void + + def to_hash: -> { + entity: Onlyfans::Models::StoryCreateResponse::Data::Question::Entity, + positions: Onlyfans::Models::StoryCreateResponse::Data::Question::Positions, + type: String + } + + type entity = { id: Integer, created_at: String, text: String } + + class Entity < Onlyfans::Internal::Type::BaseModel + attr_reader id: Integer? + + def id=: (Integer) -> Integer + + attr_reader created_at: String? + + def created_at=: (String) -> String + + attr_reader text: String? + + def text=: (String) -> String + + def initialize: ( + ?id: Integer, + ?created_at: String, + ?text: String + ) -> void + + def to_hash: -> { id: Integer, created_at: String, text: String } + end + + type positions = + { + angle: Integer, + color: String, + height: Integer, + left: Integer, + top: Integer, + width: Integer, + x: String?, + y_: String?, + z_index: Integer + } + + class Positions < Onlyfans::Internal::Type::BaseModel + attr_reader angle: Integer? + + def angle=: (Integer) -> Integer + + attr_reader color: String? + + def color=: (String) -> String + + attr_reader height: Integer? + + def height=: (Integer) -> Integer + + attr_reader left: Integer? + + def left=: (Integer) -> Integer + + attr_reader top: Integer? + + def top=: (Integer) -> Integer + + attr_reader width: Integer? + + def width=: (Integer) -> Integer + + attr_accessor x: String? + + attr_accessor y_: String? + + attr_reader z_index: Integer? + + def z_index=: (Integer) -> Integer + + def initialize: ( + ?angle: Integer, + ?color: String, + ?height: Integer, + ?left: Integer, + ?top: Integer, + ?width: Integer, + ?x: String?, + ?y_: String?, + ?z_index: Integer + ) -> void + + def to_hash: -> { + angle: Integer, + color: String, + height: Integer, + left: Integer, + top: Integer, + width: Integer, + x: String?, + y_: String?, + z_index: Integer + } + end + end + + type release_form = + { + id: Integer, + name: String, + partner_source: String, + type: String, + user: Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User + } + + class ReleaseForm < Onlyfans::Internal::Type::BaseModel + attr_reader id: Integer? + + def id=: (Integer) -> Integer + + attr_reader name: String? + + def name=: (String) -> String + + attr_reader partner_source: String? + + def partner_source=: (String) -> String + + attr_reader type: String? + + def type=: (String) -> String + + attr_reader user: Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User? + + def user=: ( + Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User + ) -> Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User + + def initialize: ( + ?id: Integer, + ?name: String, + ?partner_source: String, + ?type: String, + ?user: Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User + ) -> void + + def to_hash: -> { + id: Integer, + name: String, + partner_source: String, + type: String, + user: Onlyfans::Models::StoryCreateResponse::Data::ReleaseForm::User + } + + type user = + { + id: Integer, + avatar: String?, + avatar_thumbs: String?, + is_from_guest: bool, + is_identity_verified: bool, + iv_status: String, + name: String, + username: String, + view: String + } + + class User < Onlyfans::Internal::Type::BaseModel + attr_reader id: Integer? + + def id=: (Integer) -> Integer + + attr_accessor avatar: String? + + attr_accessor avatar_thumbs: String? + + attr_reader is_from_guest: bool? + + def is_from_guest=: (bool) -> bool + + attr_reader is_identity_verified: bool? + + def is_identity_verified=: (bool) -> bool + + attr_reader iv_status: String? + + def iv_status=: (String) -> String + + attr_reader name: String? + + def name=: (String) -> String + + attr_reader username: String? + + def username=: (String) -> String + + attr_reader view: String? + + def view=: (String) -> String + + def initialize: ( + ?id: Integer, + ?avatar: String?, + ?avatar_thumbs: String?, + ?is_from_guest: bool, + ?is_identity_verified: bool, + ?iv_status: String, + ?name: String, + ?username: String, + ?view: String + ) -> void + + def to_hash: -> { + id: Integer, + avatar: String?, + avatar_thumbs: String?, + is_from_guest: bool, + is_identity_verified: bool, + iv_status: String, + name: String, + username: String, + view: String + } + end + end + + type text = + { + angle: Integer, + bg_color: String, + color: String, + font_family: String, + font_size: String, + font_style: String?, + font_weight: Integer, + left: Integer, + scale: Integer, + text: String, + text_align: String, + text_height: Float, + text_width: Integer, + top: Integer, + type: String, + users: ::Array[top], + z_index: Integer + } + + class Text < Onlyfans::Internal::Type::BaseModel + attr_reader angle: Integer? + + def angle=: (Integer) -> Integer + + attr_reader bg_color: String? + + def bg_color=: (String) -> String + + attr_reader color: String? + + def color=: (String) -> String + + attr_reader font_family: String? + + def font_family=: (String) -> String + + attr_reader font_size: String? + + def font_size=: (String) -> String + + attr_accessor font_style: String? + + attr_reader font_weight: Integer? + + def font_weight=: (Integer) -> Integer + + attr_reader left: Integer? + + def left=: (Integer) -> Integer + + attr_reader scale: Integer? + + def scale=: (Integer) -> Integer + + attr_reader text: String? + + def text=: (String) -> String + + attr_reader text_align: String? + + def text_align=: (String) -> String + + attr_reader text_height: Float? + + def text_height=: (Float) -> Float + + attr_reader text_width: Integer? + + def text_width=: (Integer) -> Integer + + attr_reader top: Integer? + + def top=: (Integer) -> Integer + + attr_reader type: String? + + def type=: (String) -> String + + attr_reader users: ::Array[top]? + + def users=: (::Array[top]) -> ::Array[top] + + attr_reader z_index: Integer? + + def z_index=: (Integer) -> Integer + + def initialize: ( + ?angle: Integer, + ?bg_color: String, + ?color: String, + ?font_family: String, + ?font_size: String, + ?font_style: String?, + ?font_weight: Integer, + ?left: Integer, + ?scale: Integer, + ?text: String, + ?text_align: String, + ?text_height: Float, + ?text_width: Integer, + ?top: Integer, + ?type: String, + ?users: ::Array[top], + ?z_index: Integer + ) -> void + + def to_hash: -> { + angle: Integer, + bg_color: String, + color: String, + font_family: String, + font_size: String, + font_style: String?, + font_weight: Integer, + left: Integer, + scale: Integer, + text: String, + text_align: String, + text_height: Float, + text_width: Integer, + top: Integer, + type: String, + users: ::Array[top], + z_index: Integer + } + end end end end diff --git a/sig/onlyfans/models/tracking_link_list_params.rbs b/sig/onlyfans/models/tracking_link_list_params.rbs index dcf60133..7dbcfe8b 100644 --- a/sig/onlyfans/models/tracking_link_list_params.rbs +++ b/sig/onlyfans/models/tracking_link_list_params.rbs @@ -4,13 +4,14 @@ module Onlyfans { account: String, end_date: String?, - limit: Integer?, - offset: Integer?, - sort: Onlyfans::Models::TrackingLinkListParams::sort?, - sortby: Onlyfans::Models::TrackingLinkListParams::sortby?, + limit: Integer, + offset: Integer, + pagination: Onlyfans::Models::TrackingLinkListParams::pagination, + sort: Onlyfans::Models::TrackingLinkListParams::sort, + sortby: Onlyfans::Models::TrackingLinkListParams::sortby, start_date: String?, - synchronous: bool?, - with_deleted: bool? + synchronous: bool, + with_deleted: Onlyfans::Models::TrackingLinkListParams::with_deleted } & Onlyfans::Internal::Type::request_parameters @@ -22,53 +23,90 @@ module Onlyfans attr_accessor end_date: String? - attr_accessor limit: Integer? + attr_reader limit: Integer? - attr_accessor offset: Integer? + def limit=: (Integer) -> Integer - attr_accessor sort: Onlyfans::Models::TrackingLinkListParams::sort? + attr_reader offset: Integer? - attr_accessor sortby: Onlyfans::Models::TrackingLinkListParams::sortby? + def offset=: (Integer) -> Integer + + attr_reader pagination: Onlyfans::Models::TrackingLinkListParams::pagination? + + def pagination=: ( + Onlyfans::Models::TrackingLinkListParams::pagination + ) -> Onlyfans::Models::TrackingLinkListParams::pagination + + attr_reader sort: Onlyfans::Models::TrackingLinkListParams::sort? + + def sort=: ( + Onlyfans::Models::TrackingLinkListParams::sort + ) -> Onlyfans::Models::TrackingLinkListParams::sort + + attr_reader sortby: Onlyfans::Models::TrackingLinkListParams::sortby? + + def sortby=: ( + Onlyfans::Models::TrackingLinkListParams::sortby + ) -> Onlyfans::Models::TrackingLinkListParams::sortby attr_accessor start_date: String? - attr_accessor synchronous: bool? + attr_reader synchronous: bool? - attr_accessor with_deleted: bool? + def synchronous=: (bool) -> bool + + attr_reader with_deleted: Onlyfans::Models::TrackingLinkListParams::with_deleted? + + def with_deleted=: ( + Onlyfans::Models::TrackingLinkListParams::with_deleted + ) -> Onlyfans::Models::TrackingLinkListParams::with_deleted def initialize: ( account: String, ?end_date: String?, - ?limit: Integer?, - ?offset: Integer?, - ?sort: Onlyfans::Models::TrackingLinkListParams::sort?, - ?sortby: Onlyfans::Models::TrackingLinkListParams::sortby?, + ?limit: Integer, + ?offset: Integer, + ?pagination: Onlyfans::Models::TrackingLinkListParams::pagination, + ?sort: Onlyfans::Models::TrackingLinkListParams::sort, + ?sortby: Onlyfans::Models::TrackingLinkListParams::sortby, ?start_date: String?, - ?synchronous: bool?, - ?with_deleted: bool?, + ?synchronous: bool, + ?with_deleted: Onlyfans::Models::TrackingLinkListParams::with_deleted, ?request_options: Onlyfans::request_opts ) -> void def to_hash: -> { account: String, end_date: String?, - limit: Integer?, - offset: Integer?, - sort: Onlyfans::Models::TrackingLinkListParams::sort?, - sortby: Onlyfans::Models::TrackingLinkListParams::sortby?, + limit: Integer, + offset: Integer, + pagination: Onlyfans::Models::TrackingLinkListParams::pagination, + sort: Onlyfans::Models::TrackingLinkListParams::sort, + sortby: Onlyfans::Models::TrackingLinkListParams::sortby, start_date: String?, - synchronous: bool?, - with_deleted: bool?, + synchronous: bool, + with_deleted: Onlyfans::Models::TrackingLinkListParams::with_deleted, request_options: Onlyfans::RequestOptions } - type sort = :desc | :asc + type pagination = 0 | 1 + + module Pagination + extend Onlyfans::Internal::Type::Enum + + PAGINATION_0: 0 + PAGINATION_1: 1 + + def self?.values: -> ::Array[Onlyfans::Models::TrackingLinkListParams::pagination] + end + + type sort = :asc | :desc module Sort extend Onlyfans::Internal::Type::Enum - DESC: :desc ASC: :asc + DESC: :desc def self?.values: -> ::Array[Onlyfans::Models::TrackingLinkListParams::sort] end @@ -83,6 +121,17 @@ module Onlyfans def self?.values: -> ::Array[Onlyfans::Models::TrackingLinkListParams::sortby] end + + type with_deleted = 0 | 1 + + module WithDeleted + extend Onlyfans::Internal::Type::Enum + + WITH_DELETED_0: 0 + WITH_DELETED_1: 1 + + def self?.values: -> ::Array[Onlyfans::Models::TrackingLinkListParams::with_deleted] + end end end end diff --git a/sig/onlyfans/models/trial_link_list_params.rbs b/sig/onlyfans/models/trial_link_list_params.rbs index 3dd83c5a..f8280031 100644 --- a/sig/onlyfans/models/trial_link_list_params.rbs +++ b/sig/onlyfans/models/trial_link_list_params.rbs @@ -3,11 +3,13 @@ module Onlyfans type trial_link_list_params = { account: String, + end_date: String?, + field: Onlyfans::Models::TrialLinkListParams::field, limit: Integer, offset: Integer, - field: Onlyfans::Models::TrialLinkListParams::field?, - sort: Onlyfans::Models::TrialLinkListParams::sort?, - synchronous: bool? + sort: Onlyfans::Models::TrialLinkListParams::sort, + start_date: String?, + synchronous: bool } & Onlyfans::Internal::Type::request_parameters @@ -17,33 +19,55 @@ module Onlyfans attr_accessor account: String - attr_accessor limit: Integer + attr_accessor end_date: String? - attr_accessor offset: Integer + attr_reader field: Onlyfans::Models::TrialLinkListParams::field? - attr_accessor field: Onlyfans::Models::TrialLinkListParams::field? + def field=: ( + Onlyfans::Models::TrialLinkListParams::field + ) -> Onlyfans::Models::TrialLinkListParams::field - attr_accessor sort: Onlyfans::Models::TrialLinkListParams::sort? + attr_reader limit: Integer? - attr_accessor synchronous: bool? + def limit=: (Integer) -> Integer + + attr_reader offset: Integer? + + def offset=: (Integer) -> Integer + + attr_reader sort: Onlyfans::Models::TrialLinkListParams::sort? + + def sort=: ( + Onlyfans::Models::TrialLinkListParams::sort + ) -> Onlyfans::Models::TrialLinkListParams::sort + + attr_accessor start_date: String? + + attr_reader synchronous: bool? + + def synchronous=: (bool) -> bool def initialize: ( account: String, - limit: Integer, - offset: Integer, - ?field: Onlyfans::Models::TrialLinkListParams::field?, - ?sort: Onlyfans::Models::TrialLinkListParams::sort?, - ?synchronous: bool?, + ?end_date: String?, + ?field: Onlyfans::Models::TrialLinkListParams::field, + ?limit: Integer, + ?offset: Integer, + ?sort: Onlyfans::Models::TrialLinkListParams::sort, + ?start_date: String?, + ?synchronous: bool, ?request_options: Onlyfans::request_opts ) -> void def to_hash: -> { account: String, + end_date: String?, + field: Onlyfans::Models::TrialLinkListParams::field, limit: Integer, offset: Integer, - field: Onlyfans::Models::TrialLinkListParams::field?, - sort: Onlyfans::Models::TrialLinkListParams::sort?, - synchronous: bool?, + sort: Onlyfans::Models::TrialLinkListParams::sort, + start_date: String?, + synchronous: bool, request_options: Onlyfans::RequestOptions } @@ -66,13 +90,13 @@ module Onlyfans def self?.values: -> ::Array[Onlyfans::Models::TrialLinkListParams::field] end - type sort = :desc | :asc + type sort = :asc | :desc module Sort extend Onlyfans::Internal::Type::Enum - DESC: :desc ASC: :asc + DESC: :desc def self?.values: -> ::Array[Onlyfans::Models::TrialLinkListParams::sort] end diff --git a/sig/onlyfans/models/user_list_list_params.rbs b/sig/onlyfans/models/user_list_list_params.rbs index ae591e24..d1ae6d20 100644 --- a/sig/onlyfans/models/user_list_list_params.rbs +++ b/sig/onlyfans/models/user_list_list_params.rbs @@ -1,7 +1,12 @@ module Onlyfans module Models type user_list_list_params = - { account: String, limit: Integer?, offset: Integer? } + { + account: String, + limit: Integer?, + offset: Integer?, + view: Onlyfans::Models::UserListListParams::view + } & Onlyfans::Internal::Type::request_parameters class UserListListParams < Onlyfans::Internal::Type::BaseModel @@ -14,10 +19,17 @@ module Onlyfans attr_accessor offset: Integer? + attr_reader view: Onlyfans::Models::UserListListParams::view? + + def view=: ( + Onlyfans::Models::UserListListParams::view + ) -> Onlyfans::Models::UserListListParams::view + def initialize: ( account: String, ?limit: Integer?, ?offset: Integer?, + ?view: Onlyfans::Models::UserListListParams::view, ?request_options: Onlyfans::request_opts ) -> void @@ -25,8 +37,19 @@ module Onlyfans account: String, limit: Integer?, offset: Integer?, + view: Onlyfans::Models::UserListListParams::view, request_options: Onlyfans::RequestOptions } + + type view = :queue + + module View + extend Onlyfans::Internal::Type::Enum + + QUEUE: :queue + + def self?.values: -> ::Array[Onlyfans::Models::UserListListParams::view] + end end end end diff --git a/sig/onlyfans/models/user_lists/user_add_params.rbs b/sig/onlyfans/models/user_lists/user_add_params.rbs index ec72fb6f..1a2c1855 100644 --- a/sig/onlyfans/models/user_lists/user_add_params.rbs +++ b/sig/onlyfans/models/user_lists/user_add_params.rbs @@ -2,7 +2,12 @@ module Onlyfans module Models module UserLists type user_add_params = - { account: String, user_list_id: String, ids: ::Array[String] } + { + account: String, + user_list_id: String, + ids: ::Array[String], + skip_invalid: bool + } & Onlyfans::Internal::Type::request_parameters class UserAddParams < Onlyfans::Internal::Type::BaseModel @@ -15,10 +20,15 @@ module Onlyfans attr_accessor ids: ::Array[String] + attr_reader skip_invalid: bool? + + def skip_invalid=: (bool) -> bool + def initialize: ( account: String, user_list_id: String, ids: ::Array[String], + ?skip_invalid: bool, ?request_options: Onlyfans::request_opts ) -> void @@ -26,6 +36,7 @@ module Onlyfans account: String, user_list_id: String, ids: ::Array[String], + skip_invalid: bool, request_options: Onlyfans::RequestOptions } end diff --git a/sig/onlyfans/models/user_lists/user_add_response.rbs b/sig/onlyfans/models/user_lists/user_add_response.rbs index 06c34d84..9fad36da 100644 --- a/sig/onlyfans/models/user_lists/user_add_response.rbs +++ b/sig/onlyfans/models/user_lists/user_add_response.rbs @@ -2,164 +2,363 @@ module Onlyfans module Models module UserLists type user_add_response = - { - _meta: Onlyfans::Models::UserLists::UserAddResponse::Meta, - data: Onlyfans::Models::UserLists::UserAddResponse::Data - } + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0 + | Onlyfans::Models::UserLists::UserAddResponse::UnionMember1 - class UserAddResponse < Onlyfans::Internal::Type::BaseModel - attr_reader _meta: Onlyfans::Models::UserLists::UserAddResponse::Meta? + module UserAddResponse + extend Onlyfans::Internal::Type::Union - def _meta=: ( - Onlyfans::Models::UserLists::UserAddResponse::Meta - ) -> Onlyfans::Models::UserLists::UserAddResponse::Meta + type union_member0 = + { + _meta: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta, + data: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data + } - attr_reader data: Onlyfans::Models::UserLists::UserAddResponse::Data? + class UnionMember0 < Onlyfans::Internal::Type::BaseModel + attr_reader _meta: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta? - def data=: ( - Onlyfans::Models::UserLists::UserAddResponse::Data - ) -> Onlyfans::Models::UserLists::UserAddResponse::Data + def _meta=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta - def initialize: ( - ?_meta: Onlyfans::Models::UserLists::UserAddResponse::Meta, - ?data: Onlyfans::Models::UserLists::UserAddResponse::Data - ) -> void + attr_reader data: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data? - def to_hash: -> { - _meta: Onlyfans::Models::UserLists::UserAddResponse::Meta, - data: Onlyfans::Models::UserLists::UserAddResponse::Data - } + def data=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data - type meta = - { - _cache: Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache, - _credits: Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits, - _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits + def initialize: ( + ?_meta: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta, + ?data: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data + ) -> void + + def to_hash: -> { + _meta: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta, + data: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Data } - class Meta < Onlyfans::Internal::Type::BaseModel - attr_reader _cache: Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache? + type meta = + { + _cache: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache, + _credits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits, + _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits + } + + class Meta < Onlyfans::Internal::Type::BaseModel + attr_reader _cache: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache? + + def _cache=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache + + attr_reader _credits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits? + + def _credits=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits + + attr_reader _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits? + + def _rate_limits=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits + + def initialize: ( + ?_cache: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache, + ?_credits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits, + ?_rate_limits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits + ) -> void + + def to_hash: -> { + _cache: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Cache, + _credits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::Credits, + _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember0::Meta::RateLimits + } + + type cache = { is_cached: bool, note: String } + + class Cache < Onlyfans::Internal::Type::BaseModel + attr_reader is_cached: bool? + + def is_cached=: (bool) -> bool - def _cache=: ( - Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache - ) -> Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache + attr_reader note: String? - attr_reader _credits: Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits? + def note=: (String) -> String + + def initialize: (?is_cached: bool, ?note: String) -> void + + def to_hash: -> { is_cached: bool, note: String } + end + + type credits = { balance: Integer, note: String, used: Integer } + + class Credits < Onlyfans::Internal::Type::BaseModel + attr_reader balance: Integer? + + def balance=: (Integer) -> Integer + + attr_reader note: String? + + def note=: (String) -> String + + attr_reader used: Integer? + + def used=: (Integer) -> Integer + + def initialize: ( + ?balance: Integer, + ?note: String, + ?used: Integer + ) -> void + + def to_hash: -> { balance: Integer, note: String, used: Integer } + end + + type rate_limits = + { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + + class RateLimits < Onlyfans::Internal::Type::BaseModel + attr_reader limit_day: Integer? + + def limit_day=: (Integer) -> Integer + + attr_reader limit_minute: Integer? + + def limit_minute=: (Integer) -> Integer + + attr_reader remaining_day: Integer? + + def remaining_day=: (Integer) -> Integer + + attr_reader remaining_minute: Integer? + + def remaining_minute=: (Integer) -> Integer + + def initialize: ( + ?limit_day: Integer, + ?limit_minute: Integer, + ?remaining_day: Integer, + ?remaining_minute: Integer + ) -> void + + def to_hash: -> { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + end + end - def _credits=: ( - Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits - ) -> Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits + type data = { :number_1224114714 => ::Array[Integer] } - attr_reader _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits? + class Data < Onlyfans::Internal::Type::BaseModel + attr_reader number_1224114714: ::Array[Integer]? - def _rate_limits=: ( - Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits - ) -> Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits + def number_1224114714=: (::Array[Integer]) -> ::Array[Integer] + + def initialize: (?number_1224114714: ::Array[Integer]) -> void + + def to_hash: -> { :number_1224114714 => ::Array[Integer] } + end + end + + type union_member1 = + { + _meta: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta, + data: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data + } + + class UnionMember1 < Onlyfans::Internal::Type::BaseModel + attr_reader _meta: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta? + + def _meta=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta + + attr_reader data: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data? + + def data=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data def initialize: ( - ?_cache: Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache, - ?_credits: Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits, - ?_rate_limits: Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits + ?_meta: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta, + ?data: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data ) -> void def to_hash: -> { - _cache: Onlyfans::Models::UserLists::UserAddResponse::Meta::Cache, - _credits: Onlyfans::Models::UserLists::UserAddResponse::Meta::Credits, - _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::Meta::RateLimits + _meta: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta, + data: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data } - type cache = { is_cached: bool, note: String } + type meta = + { + _cache: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache, + _credits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits, + _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits + } - class Cache < Onlyfans::Internal::Type::BaseModel - attr_reader is_cached: bool? + class Meta < Onlyfans::Internal::Type::BaseModel + attr_reader _cache: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache? - def is_cached=: (bool) -> bool + def _cache=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache - attr_reader note: String? + attr_reader _credits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits? - def note=: (String) -> String + def _credits=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits - def initialize: (?is_cached: bool, ?note: String) -> void + attr_reader _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits? - def to_hash: -> { is_cached: bool, note: String } - end + def _rate_limits=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits - type credits = { balance: Integer, note: String, used: Integer } + def initialize: ( + ?_cache: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache, + ?_credits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits, + ?_rate_limits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits + ) -> void - class Credits < Onlyfans::Internal::Type::BaseModel - attr_reader balance: Integer? + def to_hash: -> { + _cache: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Cache, + _credits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::Credits, + _rate_limits: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Meta::RateLimits + } - def balance=: (Integer) -> Integer + type cache = { is_cached: bool, note: String } - attr_reader note: String? + class Cache < Onlyfans::Internal::Type::BaseModel + attr_reader is_cached: bool? - def note=: (String) -> String + def is_cached=: (bool) -> bool - attr_reader used: Integer? + attr_reader note: String? - def used=: (Integer) -> Integer + def note=: (String) -> String - def initialize: ( - ?balance: Integer, - ?note: String, - ?used: Integer - ) -> void + def initialize: (?is_cached: bool, ?note: String) -> void - def to_hash: -> { balance: Integer, note: String, used: Integer } - end + def to_hash: -> { is_cached: bool, note: String } + end - type rate_limits = - { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer - } + type credits = { balance: Integer, note: String, used: Integer } - class RateLimits < Onlyfans::Internal::Type::BaseModel - attr_reader limit_day: Integer? + class Credits < Onlyfans::Internal::Type::BaseModel + attr_reader balance: Integer? - def limit_day=: (Integer) -> Integer + def balance=: (Integer) -> Integer - attr_reader limit_minute: Integer? + attr_reader note: String? - def limit_minute=: (Integer) -> Integer + def note=: (String) -> String - attr_reader remaining_day: Integer? + attr_reader used: Integer? - def remaining_day=: (Integer) -> Integer + def used=: (Integer) -> Integer - attr_reader remaining_minute: Integer? + def initialize: ( + ?balance: Integer, + ?note: String, + ?used: Integer + ) -> void - def remaining_minute=: (Integer) -> Integer + def to_hash: -> { balance: Integer, note: String, used: Integer } + end + + type rate_limits = + { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + + class RateLimits < Onlyfans::Internal::Type::BaseModel + attr_reader limit_day: Integer? + + def limit_day=: (Integer) -> Integer + + attr_reader limit_minute: Integer? + + def limit_minute=: (Integer) -> Integer + + attr_reader remaining_day: Integer? + + def remaining_day=: (Integer) -> Integer + + attr_reader remaining_minute: Integer? + + def remaining_minute=: (Integer) -> Integer + + def initialize: ( + ?limit_day: Integer, + ?limit_minute: Integer, + ?remaining_day: Integer, + ?remaining_minute: Integer + ) -> void + + def to_hash: -> { + limit_day: Integer, + limit_minute: Integer, + remaining_day: Integer, + remaining_minute: Integer + } + end + end + + type data = + { + added: ::Array[Integer], + failed: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed + } + + class Data < Onlyfans::Internal::Type::BaseModel + attr_reader added: ::Array[Integer]? + + def added=: (::Array[Integer]) -> ::Array[Integer] + + attr_reader failed: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed? + + def failed=: ( + Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed + ) -> Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed def initialize: ( - ?limit_day: Integer, - ?limit_minute: Integer, - ?remaining_day: Integer, - ?remaining_minute: Integer + ?added: ::Array[Integer], + ?failed: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed ) -> void def to_hash: -> { - limit_day: Integer, - limit_minute: Integer, - remaining_day: Integer, - remaining_minute: Integer + added: ::Array[Integer], + failed: Onlyfans::Models::UserLists::UserAddResponse::UnionMember1::Data::Failed } - end - end - type data = { :number_1224114714 => ::Array[Integer] } + type failed = { :number_123456 => String } - class Data < Onlyfans::Internal::Type::BaseModel - attr_reader number_1224114714: ::Array[Integer]? + class Failed < Onlyfans::Internal::Type::BaseModel + attr_reader number_123456: String? - def number_1224114714=: (::Array[Integer]) -> ::Array[Integer] + def number_123456=: (String) -> String - def initialize: (?number_1224114714: ::Array[Integer]) -> void + def initialize: (?number_123456: String) -> void - def to_hash: -> { :number_1224114714 => ::Array[Integer] } + def to_hash: -> { :number_123456 => String } + end + end end + + def self?.variants: -> ::Array[Onlyfans::Models::UserLists::user_add_response] end end end diff --git a/sig/onlyfans/resources/analytics/financial/profitability.rbs b/sig/onlyfans/resources/analytics/financial/profitability.rbs index 34a4a56c..890b749d 100644 --- a/sig/onlyfans/resources/analytics/financial/profitability.rbs +++ b/sig/onlyfans/resources/analytics/financial/profitability.rbs @@ -8,14 +8,14 @@ module Onlyfans account_prefixed_id: String, ?months: Integer, ?request_options: Onlyfans::request_opts - ) -> Onlyfans::Models::Analytics::Financial::profitability_get_history_response + ) -> Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse def get_profitability: ( account_ids: ::Array[String], month: Integer, year: Integer, ?request_options: Onlyfans::request_opts - ) -> Onlyfans::Models::Analytics::Financial::profitability_get_profitability_response + ) -> Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse def initialize: (client: Onlyfans::Client) -> void end diff --git a/sig/onlyfans/resources/chats/messages.rbs b/sig/onlyfans/resources/chats/messages.rbs index c954ccad..2af4c0d4 100644 --- a/sig/onlyfans/resources/chats/messages.rbs +++ b/sig/onlyfans/resources/chats/messages.rbs @@ -52,16 +52,18 @@ module Onlyfans def send_: ( String chat_id, account: String, + ?block_banned_words: Onlyfans::Models::Chats::MessageSendParams::block_banned_words, ?giphy_id: String, ?locked_text: bool, ?media_files: ::Array[top], ?previews: ::Array[top], - ?price: Integer, + ?price: Float, ?reply_to_message_id: Integer, ?rf_guest: String, ?rf_partner: String, ?rf_tag: String, ?text: String, + ?idempotency_key: String, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::Chats::MessageSendResponse diff --git a/sig/onlyfans/resources/following.rbs b/sig/onlyfans/resources/following.rbs index a7eecca4..c44e29a9 100644 --- a/sig/onlyfans/resources/following.rbs +++ b/sig/onlyfans/resources/following.rbs @@ -7,6 +7,8 @@ module Onlyfans ?limit: Integer, ?offset: Integer, ?query: String?, + ?sort: Onlyfans::Models::FollowingListActiveParams::sort?, + ?sort_direction: Onlyfans::Models::FollowingListActiveParams::sort_direction?, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::FollowingListActiveResponse @@ -16,6 +18,8 @@ module Onlyfans ?limit: Integer, ?offset: Integer, ?query: String?, + ?sort: Onlyfans::Models::FollowingListAllParams::sort?, + ?sort_direction: Onlyfans::Models::FollowingListAllParams::sort_direction?, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::FollowingListAllResponse @@ -25,6 +29,8 @@ module Onlyfans ?limit: Integer, ?offset: Integer, ?query: String?, + ?sort: Onlyfans::Models::FollowingListExpiredParams::sort?, + ?sort_direction: Onlyfans::Models::FollowingListExpiredParams::sort_direction?, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::FollowingListExpiredResponse diff --git a/sig/onlyfans/resources/mass_messaging.rbs b/sig/onlyfans/resources/mass_messaging.rbs index e9c225d2..864c933b 100644 --- a/sig/onlyfans/resources/mass_messaging.rbs +++ b/sig/onlyfans/resources/mass_messaging.rbs @@ -11,11 +11,12 @@ module Onlyfans String id, account: String, text: String, + ?block_banned_words: Onlyfans::Models::MassMessagingUpdateParams::block_banned_words, ?giphy_id: String, ?locked_text: bool, ?media_files: ::Array[String], ?previews: ::Array[String], - ?price: Integer, + ?price: Float, ?scheduled_date: String, ?user_ids: ::Array[String], ?user_lists: ::Array[String], @@ -45,12 +46,13 @@ module Onlyfans def send_: ( String account, text: String, + ?block_banned_words: Onlyfans::Models::MassMessagingSendParams::block_banned_words, ?excluded_lists: ::Array[String], ?giphy_id: String, ?locked_text: bool, ?media_files: ::Array[top], ?previews: ::Array[top], - ?price: Integer, + ?price: Float, ?rf_guest: String, ?rf_partner: String, ?rf_tag: String, diff --git a/sig/onlyfans/resources/media.rbs b/sig/onlyfans/resources/media.rbs index 1aa220c5..ae49a530 100644 --- a/sig/onlyfans/resources/media.rbs +++ b/sig/onlyfans/resources/media.rbs @@ -9,7 +9,7 @@ module Onlyfans String cdn_url, account: String, ?request_options: Onlyfans::request_opts - ) -> String + ) -> nil def scrape: ( String account, diff --git a/sig/onlyfans/resources/media/vault/lists.rbs b/sig/onlyfans/resources/media/vault/lists.rbs index f63104ea..def0895c 100644 --- a/sig/onlyfans/resources/media/vault/lists.rbs +++ b/sig/onlyfans/resources/media/vault/lists.rbs @@ -20,16 +20,18 @@ module Onlyfans def update: ( String list_id, account: String, + name: String, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::Media::Vault::ListUpdateResponse def list: ( String account, + ?lightweight: bool, ?limit: Integer, ?offset: Integer, ?query: String, ?request_options: Onlyfans::request_opts - ) -> Onlyfans::Models::Media::Vault::ListListResponse + ) -> Onlyfans::Models::Media::Vault::list_list_response def delete: ( String list_id, diff --git a/sig/onlyfans/resources/messages.rbs b/sig/onlyfans/resources/messages.rbs index 285ea880..a69bae8d 100644 --- a/sig/onlyfans/resources/messages.rbs +++ b/sig/onlyfans/resources/messages.rbs @@ -1,15 +1,6 @@ module Onlyfans module Resources class Messages - def attach_tags: ( - String message_id, - account: String, - ?rf_guest: String, - ?rf_partner: String, - ?rf_tag: String, - ?request_options: Onlyfans::request_opts - ) -> Onlyfans::Models::MessageAttachTagsResponse - def initialize: (client: Onlyfans::Client) -> void end end diff --git a/sig/onlyfans/resources/posts.rbs b/sig/onlyfans/resources/posts.rbs index 50c6963c..8244fc1e 100644 --- a/sig/onlyfans/resources/posts.rbs +++ b/sig/onlyfans/resources/posts.rbs @@ -8,6 +8,7 @@ module Onlyfans def create: ( String account, text: String, + ?block_banned_words: Onlyfans::Models::PostCreateParams::block_banned_words, ?expire_days: Integer, ?fund_raising_target_amount: Integer, ?fund_raising_tips_presets: ::Array[String], @@ -34,6 +35,7 @@ module Onlyfans Integer post_id, account: String, text: String, + ?block_banned_words: Onlyfans::Models::PostUpdateParams::block_banned_words, ?expire_days: Integer, ?fund_raising_target_amount: Integer, ?fund_raising_tips_presets: ::Array[String], diff --git a/sig/onlyfans/resources/queue.rbs b/sig/onlyfans/resources/queue.rbs index 4ab777f7..2db1bf57 100644 --- a/sig/onlyfans/resources/queue.rbs +++ b/sig/onlyfans/resources/queue.rbs @@ -3,10 +3,11 @@ module Onlyfans class Queue def list: ( String account, - limit: Integer, publish_date_end: String, publish_date_start: String, timezone: String, + ?limit: Integer, + ?type: ::Array[Onlyfans::Models::QueueListParams::type_], ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::QueueListResponse diff --git a/sig/onlyfans/resources/shared_tracking_links.rbs b/sig/onlyfans/resources/shared_tracking_links.rbs index 406db6f9..585e1b17 100644 --- a/sig/onlyfans/resources/shared_tracking_links.rbs +++ b/sig/onlyfans/resources/shared_tracking_links.rbs @@ -7,7 +7,11 @@ module Onlyfans String account, ?limit: Integer, ?offset: Integer, - ?synchronous: bool?, + ?pagination: Onlyfans::Models::SharedTrackingLinkListParams::pagination, + ?sorting_deleted: Onlyfans::Models::SharedTrackingLinkListParams::sorting_deleted, + ?stats: String, + ?synchronous: bool, + ?with_deleted: Onlyfans::Models::SharedTrackingLinkListParams::with_deleted, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::SharedTrackingLinkListResponse diff --git a/sig/onlyfans/resources/shared_trial_links.rbs b/sig/onlyfans/resources/shared_trial_links.rbs index 78f95d91..ed7eb3ef 100644 --- a/sig/onlyfans/resources/shared_trial_links.rbs +++ b/sig/onlyfans/resources/shared_trial_links.rbs @@ -7,7 +7,8 @@ module Onlyfans String account, ?limit: Integer, ?offset: Integer, - ?synchronous: bool?, + ?pagination: Onlyfans::Models::SharedTrialLinkListParams::pagination, + ?synchronous: bool, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::SharedTrialLinkListResponse diff --git a/sig/onlyfans/resources/smart_link_postbacks.rbs b/sig/onlyfans/resources/smart_link_postbacks.rbs index 2546d3cd..0f715fed 100644 --- a/sig/onlyfans/resources/smart_link_postbacks.rbs +++ b/sig/onlyfans/resources/smart_link_postbacks.rbs @@ -5,6 +5,9 @@ module Onlyfans conversion_types: ::Array[String], smart_link_scope: Onlyfans::Models::SmartLinkPostbackCreateParams::smart_link_scope, url: String, + ?body: String, + ?headers: ::Array[Onlyfans::SmartLinkPostbackCreateParams::Header], + ?http_method: Onlyfans::Models::SmartLinkPostbackCreateParams::http_method, ?smart_link_ids: ::Array[String], ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::SmartLinkPostbackCreateResponse @@ -19,6 +22,9 @@ module Onlyfans conversion_types: ::Array[String], smart_link_scope: Onlyfans::Models::SmartLinkPostbackUpdateParams::smart_link_scope, url: String, + ?body: String, + ?headers: ::Array[Onlyfans::SmartLinkPostbackUpdateParams::Header], + ?http_method: Onlyfans::Models::SmartLinkPostbackUpdateParams::http_method, ?smart_link_ids: ::Array[String], ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::SmartLinkPostbackUpdateResponse diff --git a/sig/onlyfans/resources/smart_links.rbs b/sig/onlyfans/resources/smart_links.rbs index 9674570f..7a07b745 100644 --- a/sig/onlyfans/resources/smart_links.rbs +++ b/sig/onlyfans/resources/smart_links.rbs @@ -16,10 +16,11 @@ module Onlyfans def list: ( ?account_ids: String?, + ?filter: Onlyfans::SmartLinkListParams::Filter, ?limit: Integer, - ?meta_pixel_ids: String?, ?name: String?, ?offset: Integer, + ?pixel_ids: String?, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::SmartLinkListResponse @@ -60,7 +61,9 @@ module Onlyfans ?min_revenue_net: Float, ?min_tips_net: Float, ?offset: Integer, + ?previously_subscribed: bool, ?sort: Onlyfans::Models::SmartLinkListFansParams::sort, + ?subscribed_using_promo: bool, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::SmartLinkListFansResponse diff --git a/sig/onlyfans/resources/statistics.rbs b/sig/onlyfans/resources/statistics.rbs index 9822be3e..735c4cdc 100644 --- a/sig/onlyfans/resources/statistics.rbs +++ b/sig/onlyfans/resources/statistics.rbs @@ -7,8 +7,8 @@ module Onlyfans def calculate_total_transactions: ( String account, - end_date: String, - start_date: String, + ?end_date: String, + ?start_date: String, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::StatisticCalculateTotalTransactionsResponse @@ -25,6 +25,7 @@ module Onlyfans end_date: String, start_date: String, ?detailed: bool?, + ?detailed_type: Onlyfans::Models::StatisticGetSubscriberMetricsParams::detailed_type?, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::StatisticGetSubscriberMetricsResponse diff --git a/sig/onlyfans/resources/statistics/statements.rbs b/sig/onlyfans/resources/statistics/statements.rbs index 509837d1..dd22f9d3 100644 --- a/sig/onlyfans/resources/statistics/statements.rbs +++ b/sig/onlyfans/resources/statistics/statements.rbs @@ -4,8 +4,8 @@ module Onlyfans class Statements def get_earnings: ( String account, + end_date: String, start_date: String, - ?end_date: String, ?type: Onlyfans::Models::Statistics::StatementGetEarningsParams::type_, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::Statistics::StatementGetEarningsResponse diff --git a/sig/onlyfans/resources/stories.rbs b/sig/onlyfans/resources/stories.rbs index 7c377a1b..59ea634c 100644 --- a/sig/onlyfans/resources/stories.rbs +++ b/sig/onlyfans/resources/stories.rbs @@ -6,6 +6,10 @@ module Onlyfans def create: ( String account, media_files: ::Array[String], + ?canvas_height: Integer, + ?canvas_width: Integer, + ?question: Onlyfans::StoryCreateParams::Question, + ?texts: ::Array[Onlyfans::StoryCreateParams::Text], ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::StoryCreateResponse diff --git a/sig/onlyfans/resources/tracking_links.rbs b/sig/onlyfans/resources/tracking_links.rbs index 98233345..39d972ed 100644 --- a/sig/onlyfans/resources/tracking_links.rbs +++ b/sig/onlyfans/resources/tracking_links.rbs @@ -19,13 +19,14 @@ module Onlyfans def list: ( String account, ?end_date: String?, - ?limit: Integer?, - ?offset: Integer?, - ?sort: Onlyfans::Models::TrackingLinkListParams::sort?, - ?sortby: Onlyfans::Models::TrackingLinkListParams::sortby?, + ?limit: Integer, + ?offset: Integer, + ?pagination: Onlyfans::Models::TrackingLinkListParams::pagination, + ?sort: Onlyfans::Models::TrackingLinkListParams::sort, + ?sortby: Onlyfans::Models::TrackingLinkListParams::sortby, ?start_date: String?, - ?synchronous: bool?, - ?with_deleted: bool?, + ?synchronous: bool, + ?with_deleted: Onlyfans::Models::TrackingLinkListParams::with_deleted, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::TrackingLinkListResponse diff --git a/sig/onlyfans/resources/trial_links.rbs b/sig/onlyfans/resources/trial_links.rbs index a217fdb8..8a753b3e 100644 --- a/sig/onlyfans/resources/trial_links.rbs +++ b/sig/onlyfans/resources/trial_links.rbs @@ -21,11 +21,13 @@ module Onlyfans def list: ( String account, - limit: Integer, - offset: Integer, - ?field: Onlyfans::Models::TrialLinkListParams::field?, - ?sort: Onlyfans::Models::TrialLinkListParams::sort?, - ?synchronous: bool?, + ?end_date: String?, + ?field: Onlyfans::Models::TrialLinkListParams::field, + ?limit: Integer, + ?offset: Integer, + ?sort: Onlyfans::Models::TrialLinkListParams::sort, + ?start_date: String?, + ?synchronous: bool, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::TrialLinkListResponse diff --git a/sig/onlyfans/resources/user_lists.rbs b/sig/onlyfans/resources/user_lists.rbs index a7500bef..93d3353d 100644 --- a/sig/onlyfans/resources/user_lists.rbs +++ b/sig/onlyfans/resources/user_lists.rbs @@ -27,6 +27,7 @@ module Onlyfans String account, ?limit: Integer?, ?offset: Integer?, + ?view: Onlyfans::Models::UserListListParams::view, ?request_options: Onlyfans::request_opts ) -> Onlyfans::Models::UserListListResponse diff --git a/sig/onlyfans/resources/user_lists/users.rbs b/sig/onlyfans/resources/user_lists/users.rbs index fcdad3c6..fbf08405 100644 --- a/sig/onlyfans/resources/user_lists/users.rbs +++ b/sig/onlyfans/resources/user_lists/users.rbs @@ -14,8 +14,9 @@ module Onlyfans String user_list_id, account: String, ids: ::Array[String], + ?skip_invalid: bool, ?request_options: Onlyfans::request_opts - ) -> Onlyfans::Models::UserLists::UserAddResponse + ) -> Onlyfans::Models::UserLists::user_add_response def clear: ( String user_list_id, diff --git a/test/onlyfans/resources/accounts_test.rb b/test/onlyfans/resources/accounts_test.rb index 71b692d9..3cea6015 100644 --- a/test/onlyfans/resources/accounts_test.rb +++ b/test/onlyfans/resources/accounts_test.rb @@ -16,7 +16,7 @@ def test_list def test_disconnect skip("Mock server tests are disabled") - response = @only_fans_api.accounts.disconnect("molestiae") + response = @only_fans_api.accounts.disconnect("in") assert_pattern do response => ^(Onlyfans::Internal::Type::HashOf[Onlyfans::Internal::Type::Unknown]) diff --git a/test/onlyfans/resources/analytics/financial/profitability_test.rb b/test/onlyfans/resources/analytics/financial/profitability_test.rb index 4c10e4a0..a5a36d64 100644 --- a/test/onlyfans/resources/analytics/financial/profitability_test.rb +++ b/test/onlyfans/resources/analytics/financial/profitability_test.rb @@ -13,7 +13,13 @@ def test_get_history_required_params ) assert_pattern do - response => ^(Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponseItem]) + response => Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse + end + + assert_pattern do + response => { + data: ^(Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetHistoryResponse::Data]) | nil + } end end @@ -28,7 +34,13 @@ def test_get_profitability_required_params ) assert_pattern do - response => ^(Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponseItem]) + response => Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse + end + + assert_pattern do + response => { + data: ^(Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Analytics::Financial::ProfitabilityGetProfitabilityResponse::Data]) | nil + } end end end diff --git a/test/onlyfans/resources/engagement/messages_test.rb b/test/onlyfans/resources/engagement/messages_test.rb index 1f629bba..2eb72b7a 100644 --- a/test/onlyfans/resources/engagement/messages_test.rb +++ b/test/onlyfans/resources/engagement/messages_test.rb @@ -6,7 +6,7 @@ class Onlyfans::Test::Resources::Engagement::MessagesTest < Onlyfans::Test::Reso def test_get_message_buyers_required_params skip("Mock server tests are disabled") - response = @only_fans_api.engagement.messages.get_message_buyers("et", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.engagement.messages.get_message_buyers("ipsa", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::Engagement::MessageGetMessageBuyersResponse diff --git a/test/onlyfans/resources/fans/summary_test.rb b/test/onlyfans/resources/fans/summary_test.rb index 7ba49b72..271bbec3 100644 --- a/test/onlyfans/resources/fans/summary_test.rb +++ b/test/onlyfans/resources/fans/summary_test.rb @@ -32,8 +32,10 @@ def test_get_summary_required_params assert_pattern do response => { analyzed_message_count: Integer | nil, + custom_fields: ^(Onlyfans::Internal::Type::ArrayOf[Onlyfans::Models::Fans::SummaryGetSummaryResponse::CustomField]) | nil, error_message: String | nil, last_analyzed_at: String | nil, + last_buy_date: String | nil, status: String | nil, summary_data: Onlyfans::Models::Fans::SummaryGetSummaryResponse::SummaryData | nil } diff --git a/test/onlyfans/resources/media/vault/lists/media_test.rb b/test/onlyfans/resources/media/vault/lists/media_test.rb index 96bf4a82..5e2f9670 100644 --- a/test/onlyfans/resources/media/vault/lists/media_test.rb +++ b/test/onlyfans/resources/media/vault/lists/media_test.rb @@ -8,7 +8,7 @@ def test_add_required_params response = @only_fans_api.media.vault.lists.media.add( - "quo", + "qui", account: "acct_XXXXXXXXXXXXXXX", media_ids: ["string"] ) @@ -30,7 +30,7 @@ def test_remove_required_params response = @only_fans_api.media.vault.lists.media.remove( - "quo", + "qui", account: "acct_XXXXXXXXXXXXXXX", media_ids: ["string"] ) diff --git a/test/onlyfans/resources/media/vault/lists_test.rb b/test/onlyfans/resources/media/vault/lists_test.rb index 561bea1c..e1dfc7a4 100644 --- a/test/onlyfans/resources/media/vault/lists_test.rb +++ b/test/onlyfans/resources/media/vault/lists_test.rb @@ -40,7 +40,8 @@ def test_retrieve_required_params def test_update_required_params skip("Mock server tests are disabled") - response = @only_fans_api.media.vault.lists.update("123", account: "acct_XXXXXXXXXXXXXXX") + response = + @only_fans_api.media.vault.lists.update("123", account: "acct_XXXXXXXXXXXXXXX", name: "My renamed list") assert_pattern do response => Onlyfans::Models::Media::Vault::ListUpdateResponse @@ -64,10 +65,10 @@ def test_list end assert_pattern do - response => { - _meta: Onlyfans::Models::Media::Vault::ListListResponse::Meta | nil, - data: Onlyfans::Models::Media::Vault::ListListResponse::Data | nil - } + case response + in Onlyfans::Models::Media::Vault::ListListResponse::UnionMember0 + in Onlyfans::Models::Media::Vault::ListListResponse::UnionMember1 + end end end diff --git a/test/onlyfans/resources/media_test.rb b/test/onlyfans/resources/media_test.rb index feeb7982..f7430c1b 100644 --- a/test/onlyfans/resources/media_test.rb +++ b/test/onlyfans/resources/media_test.rb @@ -9,7 +9,7 @@ def test_download_required_params response = @only_fans_api.media.download("cdnUrl", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do - response => String + response => nil end end diff --git a/test/onlyfans/resources/messages_test.rb b/test/onlyfans/resources/messages_test.rb index 561c465a..c052b70d 100644 --- a/test/onlyfans/resources/messages_test.rb +++ b/test/onlyfans/resources/messages_test.rb @@ -3,20 +3,4 @@ require_relative "../test_helper" class Onlyfans::Test::Resources::MessagesTest < Onlyfans::Test::ResourceTest - def test_attach_tags_required_params - skip("Mock server tests are disabled") - - response = @only_fans_api.messages.attach_tags("123456789", account: "acct_XXXXXXXXXXXXXXX") - - assert_pattern do - response => Onlyfans::Models::MessageAttachTagsResponse - end - - assert_pattern do - response => { - _meta: Onlyfans::Models::MessageAttachTagsResponse::Meta | nil, - data: Onlyfans::Models::MessageAttachTagsResponse::Data | nil - } - end - end end diff --git a/test/onlyfans/resources/posts/comments_test.rb b/test/onlyfans/resources/posts/comments_test.rb index cb50d46a..c447a7ff 100644 --- a/test/onlyfans/resources/posts/comments_test.rb +++ b/test/onlyfans/resources/posts/comments_test.rb @@ -8,7 +8,7 @@ def test_create_required_params response = @only_fans_api.posts.comments.create( - "dicta", + "quis", account: "acct_XXXXXXXXXXXXXXX", text: "This is a comment." ) @@ -28,7 +28,7 @@ def test_create_required_params def test_list_required_params skip("Mock server tests are disabled") - response = @only_fans_api.posts.comments.list("dicta", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.posts.comments.list("quis", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::Posts::CommentListResponse diff --git a/test/onlyfans/resources/queue_test.rb b/test/onlyfans/resources/queue_test.rb index 51496703..9eb9d623 100644 --- a/test/onlyfans/resources/queue_test.rb +++ b/test/onlyfans/resources/queue_test.rb @@ -9,7 +9,6 @@ def test_list_required_params response = @only_fans_api.queue.list( "acct_XXXXXXXXXXXXXXX", - limit: 20, publish_date_end: "2025-01-01", publish_date_start: "2025-01-01", timezone: "Europe/Prague" diff --git a/test/onlyfans/resources/saved_for_later/messages/settings_test.rb b/test/onlyfans/resources/saved_for_later/messages/settings_test.rb index fe0c262b..12088c28 100644 --- a/test/onlyfans/resources/saved_for_later/messages/settings_test.rb +++ b/test/onlyfans/resources/saved_for_later/messages/settings_test.rb @@ -44,7 +44,7 @@ def test_enable_or_update_automatic_messaging_required_params response = @only_fans_api.saved_for_later.messages.settings.enable_or_update_automatic_messaging( "acct_XXXXXXXXXXXXXXX", - period: 24 + period: 48 ) assert_pattern do diff --git a/test/onlyfans/resources/saved_for_later/posts/settings_test.rb b/test/onlyfans/resources/saved_for_later/posts/settings_test.rb index 80141521..df900757 100644 --- a/test/onlyfans/resources/saved_for_later/posts/settings_test.rb +++ b/test/onlyfans/resources/saved_for_later/posts/settings_test.rb @@ -44,7 +44,7 @@ def test_enable_or_update_automatic_posting_required_params response = @only_fans_api.saved_for_later.posts.settings.enable_or_update_automatic_posting( "acct_XXXXXXXXXXXXXXX", - period: 48 + period: 6 ) assert_pattern do diff --git a/test/onlyfans/resources/smart_link_postbacks_test.rb b/test/onlyfans/resources/smart_link_postbacks_test.rb index 5c88fd00..b6383bfe 100644 --- a/test/onlyfans/resources/smart_link_postbacks_test.rb +++ b/test/onlyfans/resources/smart_link_postbacks_test.rb @@ -10,7 +10,7 @@ def test_create_required_params @only_fans_api.smart_link_postbacks.create( conversion_types: %w[new_subscriber new_transaction], smart_link_scope: :campaign_specific, - url: "https://example.com/postback?click={click_id}&type={conversion_type}&gclid={gclid}" + url: "https://example.com/postback?click={external_click_id}&type={conversion_type}&gclid={gclid}" ) assert_pattern do @@ -50,7 +50,7 @@ def test_update_required_params 123, conversion_types: ["new_subscriber"], smart_link_scope: :global, - url: "https://example.com/postback?click={click_id}&type={conversion_type}" + url: "https://example.com/postback?click={external_click_id}&type={conversion_type}" ) assert_pattern do diff --git a/test/onlyfans/resources/smart_links_test.rb b/test/onlyfans/resources/smart_links_test.rb index 7fcaf893..de3e8d1f 100644 --- a/test/onlyfans/resources/smart_links_test.rb +++ b/test/onlyfans/resources/smart_links_test.rb @@ -79,7 +79,7 @@ def test_delete def test_list_clicks skip("Mock server tests are disabled") - response = @only_fans_api.smart_links.list_clicks("aperiam") + response = @only_fans_api.smart_links.list_clicks("eum") assert_pattern do response => Onlyfans::Models::SmartLinkListClicksResponse @@ -96,7 +96,7 @@ def test_list_clicks def test_list_conversions skip("Mock server tests are disabled") - response = @only_fans_api.smart_links.list_conversions("sint") + response = @only_fans_api.smart_links.list_conversions("quia") assert_pattern do response => Onlyfans::Models::SmartLinkListConversionsResponse @@ -113,7 +113,7 @@ def test_list_conversions def test_list_fans skip("Mock server tests are disabled") - response = @only_fans_api.smart_links.list_fans("dolores") + response = @only_fans_api.smart_links.list_fans("totam") assert_pattern do response => Onlyfans::Models::SmartLinkListFansResponse @@ -130,7 +130,7 @@ def test_list_fans def test_list_spenders skip("Mock server tests are disabled") - response = @only_fans_api.smart_links.list_spenders("et") + response = @only_fans_api.smart_links.list_spenders("enim") assert_pattern do response => Onlyfans::Models::SmartLinkListSpendersResponse @@ -147,7 +147,7 @@ def test_list_spenders def test_retrieve_cohort_arps skip("Mock server tests are disabled") - response = @only_fans_api.smart_links.retrieve_cohort_arps("laborum") + response = @only_fans_api.smart_links.retrieve_cohort_arps("beatae") assert_pattern do response => nil @@ -157,7 +157,7 @@ def test_retrieve_cohort_arps def test_retrieve_stats skip("Mock server tests are disabled") - response = @only_fans_api.smart_links.retrieve_stats("minus") + response = @only_fans_api.smart_links.retrieve_stats("nisi") assert_pattern do response => Onlyfans::Models::SmartLinkRetrieveStatsResponse diff --git a/test/onlyfans/resources/statistics/statements_test.rb b/test/onlyfans/resources/statistics/statements_test.rb index d009ec5d..abf851d4 100644 --- a/test/onlyfans/resources/statistics/statements_test.rb +++ b/test/onlyfans/resources/statistics/statements_test.rb @@ -9,6 +9,7 @@ def test_get_earnings_required_params response = @only_fans_api.statistics.statements.get_earnings( "acct_XXXXXXXXXXXXXXX", + end_date: "2025-03-31 23:59:59", start_date: "2025-01-01 00:00:00" ) diff --git a/test/onlyfans/resources/statistics_test.rb b/test/onlyfans/resources/statistics_test.rb index 9fd4e789..89295f18 100644 --- a/test/onlyfans/resources/statistics_test.rb +++ b/test/onlyfans/resources/statistics_test.rb @@ -3,15 +3,10 @@ require_relative "../test_helper" class Onlyfans::Test::Resources::StatisticsTest < Onlyfans::Test::ResourceTest - def test_calculate_total_transactions_required_params + def test_calculate_total_transactions skip("Mock server tests are disabled") - response = - @only_fans_api.statistics.calculate_total_transactions( - "acct_XXXXXXXXXXXXXXX", - end_date: "2025-03-31 23:59:59", - start_date: "2025-01-01 00:00:00" - ) + response = @only_fans_api.statistics.calculate_total_transactions("acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::StatisticCalculateTotalTransactionsResponse diff --git a/test/onlyfans/resources/stories/highlights_test.rb b/test/onlyfans/resources/stories/highlights_test.rb index 2e05b0ce..80837bac 100644 --- a/test/onlyfans/resources/stories/highlights_test.rb +++ b/test/onlyfans/resources/stories/highlights_test.rb @@ -106,7 +106,7 @@ def test_add_story_required_params response = @only_fans_api.stories.highlights.add_story( - "dolorum", + "saepe", account: "acct_XXXXXXXXXXXXXXX", highlight_id: 1_234_567_890, body_story_id: 2_345_678_901 @@ -129,7 +129,7 @@ def test_remove_story_required_params response = @only_fans_api.stories.highlights.remove_story( - "dolorum", + "saepe", account: "acct_XXXXXXXXXXXXXXX", highlight_id: 1_234_567_890 ) diff --git a/test/onlyfans/resources/tracking_links_test.rb b/test/onlyfans/resources/tracking_links_test.rb index 001f52f8..3ff29553 100644 --- a/test/onlyfans/resources/tracking_links_test.rb +++ b/test/onlyfans/resources/tracking_links_test.rb @@ -23,7 +23,7 @@ def test_create_required_params def test_retrieve_required_params skip("Mock server tests are disabled") - response = @only_fans_api.tracking_links.retrieve("magnam", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.tracking_links.retrieve("quidem", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::TrackingLinkRetrieveResponse @@ -58,7 +58,7 @@ def test_list def test_delete_required_params skip("Mock server tests are disabled") - response = @only_fans_api.tracking_links.delete("magnam", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.tracking_links.delete("quidem", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::TrackingLinkDeleteResponse @@ -75,7 +75,7 @@ def test_delete_required_params def test_get_cohort_arps_required_params skip("Mock server tests are disabled") - response = @only_fans_api.tracking_links.get_cohort_arps("aspernatur", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.tracking_links.get_cohort_arps("quasi", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => nil @@ -85,7 +85,7 @@ def test_get_cohort_arps_required_params def test_get_stats_required_params skip("Mock server tests are disabled") - response = @only_fans_api.tracking_links.get_stats("sapiente", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.tracking_links.get_stats("ut", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::TrackingLinkGetStatsResponse diff --git a/test/onlyfans/resources/trial_links_test.rb b/test/onlyfans/resources/trial_links_test.rb index 9b079ce4..94e2ad6e 100644 --- a/test/onlyfans/resources/trial_links_test.rb +++ b/test/onlyfans/resources/trial_links_test.rb @@ -30,7 +30,7 @@ def test_create_required_params def test_retrieve_required_params skip("Mock server tests are disabled") - response = @only_fans_api.trial_links.retrieve("non", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.trial_links.retrieve("veniam", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::TrialLinkRetrieveResponse @@ -44,10 +44,10 @@ def test_retrieve_required_params end end - def test_list_required_params + def test_list skip("Mock server tests are disabled") - response = @only_fans_api.trial_links.list("acct_XXXXXXXXXXXXXXX", limit: 10, offset: 0) + response = @only_fans_api.trial_links.list("acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::TrialLinkListResponse @@ -65,7 +65,7 @@ def test_list_required_params def test_delete_required_params skip("Mock server tests are disabled") - response = @only_fans_api.trial_links.delete("non", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.trial_links.delete("veniam", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::TrialLinkDeleteResponse @@ -100,7 +100,12 @@ def test_list_subscribers_required_params skip("Mock server tests are disabled") response = - @only_fans_api.trial_links.list_subscribers("et", account: "acct_XXXXXXXXXXXXXXX", limit: 10, offset: 0) + @only_fans_api.trial_links.list_subscribers( + "quaerat", + account: "acct_XXXXXXXXXXXXXXX", + limit: 10, + offset: 0 + ) assert_pattern do response => Onlyfans::Models::TrialLinkListSubscribersResponse @@ -117,8 +122,7 @@ def test_list_subscribers_required_params def test_retrieve_cohort_arps_required_params skip("Mock server tests are disabled") - response = - @only_fans_api.trial_links.retrieve_cohort_arps("necessitatibus", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.trial_links.retrieve_cohort_arps("deleniti", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => nil @@ -128,7 +132,7 @@ def test_retrieve_cohort_arps_required_params def test_retrieve_stats_required_params skip("Mock server tests are disabled") - response = @only_fans_api.trial_links.retrieve_stats("accusantium", account: "acct_XXXXXXXXXXXXXXX") + response = @only_fans_api.trial_links.retrieve_stats("quis", account: "acct_XXXXXXXXXXXXXXX") assert_pattern do response => Onlyfans::Models::TrialLinkRetrieveStatsResponse diff --git a/test/onlyfans/resources/user_lists/users_test.rb b/test/onlyfans/resources/user_lists/users_test.rb index 2ce5360b..f3d91937 100644 --- a/test/onlyfans/resources/user_lists/users_test.rb +++ b/test/onlyfans/resources/user_lists/users_test.rb @@ -35,10 +35,10 @@ def test_add_required_params end assert_pattern do - response => { - _meta: Onlyfans::Models::UserLists::UserAddResponse::Meta | nil, - data: Onlyfans::Models::UserLists::UserAddResponse::Data | nil - } + case response + in Onlyfans::Models::UserLists::UserAddResponse::UnionMember0 + in Onlyfans::Models::UserLists::UserAddResponse::UnionMember1 + end end end diff --git a/test/onlyfans/resources/user_lists_test.rb b/test/onlyfans/resources/user_lists_test.rb index d1586d12..8cb81304 100644 --- a/test/onlyfans/resources/user_lists_test.rb +++ b/test/onlyfans/resources/user_lists_test.rb @@ -6,7 +6,7 @@ class Onlyfans::Test::Resources::UserListsTest < Onlyfans::Test::ResourceTest def test_create_required_params skip("Mock server tests are disabled") - response = @only_fans_api.user_lists.create("acct_XXXXXXXXXXXXXXX", name: "xiu") + response = @only_fans_api.user_lists.create("acct_XXXXXXXXXXXXXXX", name: "llscmhd") assert_pattern do response => Onlyfans::Models::UserListCreateResponse