ofscraper 3.13.dev10__tar.gz → 3.13.dev12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. ofscraper-3.13.dev12/.dockerignore +28 -0
  2. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/workflows/commit_bundler.yml +1 -1
  3. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/workflows/docker-daily.yml +20 -14
  4. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/workflows/package-builder-release.yml +1 -2
  5. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/workflows/publish-release-dockers.yml +4 -9
  6. ofscraper-3.13.dev12/.gitignore +69 -0
  7. ofscraper-3.13.dev12/Dockerfile +70 -0
  8. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/PKG-INFO +1 -1
  9. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/docker-compose.yml +13 -2
  10. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/sessionmanager/sessionmanager.py +2 -2
  11. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/utils/keyhelpers.py +4 -101
  12. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/general.py +1 -1
  13. ofscraper-3.13.dev12/ofscraper/const/values/url/other_url.py +6 -0
  14. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/main/open/load.py +0 -4
  15. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_groups/auth.py +62 -61
  16. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_groups/config.py +0 -7
  17. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/advanced_program.py +0 -9
  18. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/advanced_program.py +0 -2
  19. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/file.py +39 -10
  20. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/make.py +5 -6
  21. ofscraper-3.13.dev12/ofscraper/utils/auth/utils/error.py +76 -0
  22. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/checkers.py +0 -11
  23. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/config/data.py +0 -12
  24. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/config/schema.py +2 -3
  25. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/settings.py +0 -1
  26. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/pyproject.toml +0 -4
  27. ofscraper-3.13.dev12/scripts/entry/entrypoint.sh +54 -0
  28. ofscraper-3.13.dev12/scripts/entry/lib_paths.sh +38 -0
  29. ofscraper-3.13.dev12/scripts/entry/lib_permissions.sh +48 -0
  30. ofscraper-3.13.dev12/scripts/entry/lib_user_setup.sh +159 -0
  31. ofscraper-3.13.dev12/specs/onedir.spec +56 -0
  32. ofscraper-3.13.dev12/specs/onefile.spec +57 -0
  33. ofscraper-3.13.dev10/.gitignore +0 -156
  34. ofscraper-3.13.dev10/Dockerfile +0 -65
  35. ofscraper-3.13.dev10/ofscraper/__version__.pye +0 -23
  36. ofscraper-3.13.dev10/ofscraper/const/values/url/other_url.py +0 -12
  37. ofscraper-3.13.dev10/ofscraper/utils/auth/utils/context.py +0 -52
  38. ofscraper-3.13.dev10/scripts/entrypoint.sh +0 -17
  39. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.gitattributes +0 -0
  40. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  41. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  42. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/actions/retry-artifact-operation/action.yml +0 -0
  43. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/dependabot.yml +0 -0
  44. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/workflows/codecov.yml +0 -0
  45. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/workflows/docker-purge.yml +0 -0
  46. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/workflows/package-delete.yml +0 -0
  47. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.github/workflows/publish-release-binaries.yml +0 -0
  48. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/.gitmodules +0 -0
  49. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/CHANGES.md +0 -0
  50. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/LICENSE +0 -0
  51. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/README.md +0 -0
  52. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/cosign.pub +0 -0
  53. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/crypto +0 -0
  54. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/donate/btc +0 -0
  55. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/donate/eth +0 -0
  56. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/browser_tools_open.png +0 -0
  57. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/dp.png +0 -0
  58. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/example.png +0 -0
  59. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/headers.png +0 -0
  60. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/icon.png +0 -0
  61. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/init.png +0 -0
  62. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/list_or_username.png +0 -0
  63. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/main_menu.png +0 -0
  64. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/network_tab.png +0 -0
  65. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/request_headers.png +0 -0
  66. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/media/xhr_tab.png +0 -0
  67. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/__main__.py +0 -0
  68. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/__version__.py +0 -0
  69. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/labels.py +0 -0
  70. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/of/base.py +0 -0
  71. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/of/media.py +0 -0
  72. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/of/posts.py +0 -0
  73. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/placeholder.py +0 -0
  74. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/sessionmanager/download.py +0 -0
  75. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/sessionmanager/ofsession.py +0 -0
  76. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/app.py +0 -0
  77. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/compose.py +0 -0
  78. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/const.py +0 -0
  79. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/css.py +0 -0
  80. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/boolfield.py +0 -0
  81. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/datefield.py +0 -0
  82. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/downloadfield.py +0 -0
  83. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/mediafield.py +0 -0
  84. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/numfield.py +0 -0
  85. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/pricefield.py +0 -0
  86. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/responsefield.py +0 -0
  87. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/selectfield.py +0 -0
  88. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/sizefield.py +0 -0
  89. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/textsearch.py +0 -0
  90. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/fields/timefield.py +0 -0
  91. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/inputs/filterinput.py +0 -0
  92. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/inputs/intergerinput.py +0 -0
  93. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/inputs/strinput.py +0 -0
  94. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/sections/sidebar.py +0 -0
  95. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/sections/table.py +0 -0
  96. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/sections/table_console.py +0 -0
  97. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/utils/lock.py +0 -0
  98. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/classes/table/utils/names.py +0 -0
  99. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/check.py +0 -0
  100. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/db.py +0 -0
  101. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/manual.py +0 -0
  102. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/metadata/consumer.py +0 -0
  103. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/metadata/desc.py +0 -0
  104. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/metadata/manager.py +0 -0
  105. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/metadata/metadata.py +0 -0
  106. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/download.py +0 -0
  107. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/managers/alt_download.py +0 -0
  108. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/managers/downloadmanager.py +0 -0
  109. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/managers/main_download.py +0 -0
  110. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/run.py +0 -0
  111. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/utils/chunk.py +0 -0
  112. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/utils/desc.py +0 -0
  113. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/utils/ffmpeg.py +0 -0
  114. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/utils/leaky.py +0 -0
  115. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/utils/retries.py +0 -0
  116. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/download/utils/text.py +0 -0
  117. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/like/like.py +0 -0
  118. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/buffer.py +0 -0
  119. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/general.py +0 -0
  120. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/globals.py +0 -0
  121. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/log.py +0 -0
  122. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/params.py +0 -0
  123. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/paths/media.py +0 -0
  124. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/paths/paths.py +0 -0
  125. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/progress/convert.py +0 -0
  126. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/progress/update.py +0 -0
  127. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/retries.py +0 -0
  128. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/send/chunk.py +0 -0
  129. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/send/message.py +0 -0
  130. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/threads.py +0 -0
  131. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/actions/utils/workers.py +0 -0
  132. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/scraper.py +0 -0
  133. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/utils/daemon.py +0 -0
  134. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/utils/jobqueue.py +0 -0
  135. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/utils/prepare.py +0 -0
  136. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/utils/print.py +0 -0
  137. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/scraper/utils/schedule.py +0 -0
  138. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/utils/command.py +0 -0
  139. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/utils/scrape_context.py +0 -0
  140. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/commands/utils/strings.py +0 -0
  141. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/constants.py +0 -0
  142. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/action/download.py +0 -0
  143. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/action/like.py +0 -0
  144. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/action/metadata.py +0 -0
  145. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/config.py +0 -0
  146. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/date.py +0 -0
  147. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/download.py +0 -0
  148. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/dynamic.py +0 -0
  149. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/list.py +0 -0
  150. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/live.py +0 -0
  151. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/logger.py +0 -0
  152. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/path/bytes.py +0 -0
  153. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/path/files.py +0 -0
  154. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/path/general.py +0 -0
  155. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/path/path.py +0 -0
  156. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/prompts.py +0 -0
  157. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/req/anon.py +0 -0
  158. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/req/api.py +0 -0
  159. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/req/cdm.py +0 -0
  160. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/req/discord.py +0 -0
  161. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/req/git.py +0 -0
  162. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/req/like.py +0 -0
  163. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/req/mpd.py +0 -0
  164. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/req/req.py +0 -0
  165. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/rich.py +0 -0
  166. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/system.py +0 -0
  167. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/table.py +0 -0
  168. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/test/test_constants.py +0 -0
  169. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/time.py +0 -0
  170. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/const/values/url/url.py +0 -0
  171. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/archive.py +0 -0
  172. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/common/after.py +0 -0
  173. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/common/cache/read.py +0 -0
  174. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/common/cache/write.py +0 -0
  175. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/common/check.py +0 -0
  176. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/common/logs/logs.py +0 -0
  177. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/common/logs/strings.py +0 -0
  178. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/common/timeline.py +0 -0
  179. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/highlights.py +0 -0
  180. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/init.py +0 -0
  181. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/labels.py +0 -0
  182. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/me.py +0 -0
  183. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/messages.py +0 -0
  184. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/paid.py +0 -0
  185. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/pinned.py +0 -0
  186. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/profile.py +0 -0
  187. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/streams.py +0 -0
  188. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/subscriptions/common.py +0 -0
  189. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/subscriptions/individual.py +0 -0
  190. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/subscriptions/lists.py +0 -0
  191. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/subscriptions/subscriptions.py +0 -0
  192. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/api/timeline.py +0 -0
  193. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/models/manager.py +0 -0
  194. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/models/models.py +0 -0
  195. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/models/utils/retriver.py +0 -0
  196. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/posts/post.py +0 -0
  197. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/data/posts/scrape_paid.py +0 -0
  198. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/__init__.py +0 -0
  199. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/backup.py +0 -0
  200. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/difference.py +0 -0
  201. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/merge.py +0 -0
  202. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations.py +0 -0
  203. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/empty.py +0 -0
  204. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/labels.py +0 -0
  205. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/media.py +0 -0
  206. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/messages.py +0 -0
  207. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/others.py +0 -0
  208. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/posts.py +0 -0
  209. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/profile.py +0 -0
  210. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/stories.py +0 -0
  211. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/operations_/wrapper.py +0 -0
  212. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/transition.py +0 -0
  213. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/db/utils/convert.py +0 -0
  214. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/media/filters.py +0 -0
  215. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/media/main.py +0 -0
  216. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/models/date.py +0 -0
  217. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/models/flags.py +0 -0
  218. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/models/other.py +0 -0
  219. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/models/price.py +0 -0
  220. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/models/sort.py +0 -0
  221. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/models/subtype.py +0 -0
  222. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/filters/models/utils/logs.py +0 -0
  223. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/main/close/exit.py +0 -0
  224. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/main/close/final/final.py +0 -0
  225. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/main/close/final/final_log.py +0 -0
  226. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/main/close/final/final_script.py +0 -0
  227. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/main/close/final/final_user.py +0 -0
  228. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/main/manager.py +0 -0
  229. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/main/open/run.py +0 -0
  230. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/keybindings.py +0 -0
  231. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/promptConvert.py +0 -0
  232. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_groups/actions.py +0 -0
  233. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_groups/area.py +0 -0
  234. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_groups/menu.py +0 -0
  235. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_groups/merge.py +0 -0
  236. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_groups/model.py +0 -0
  237. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_groups/profile.py +0 -0
  238. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_strings.py +0 -0
  239. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompt_validators.py +0 -0
  240. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/prompts.py +0 -0
  241. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/utils/model_helpers.py +0 -0
  242. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/prompts/utils/prompt_helpers.py +0 -0
  243. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/__init__.py +0 -0
  244. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/actions.py +0 -0
  245. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/ads.py +0 -0
  246. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/accessors/actions.py +0 -0
  247. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/accessors/areas.py +0 -0
  248. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/accessors/output.py +0 -0
  249. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/accessors/quality.py +0 -0
  250. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/accessors/read.py +0 -0
  251. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/accessors/time.py +0 -0
  252. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/callbacks/arguments/post.py +0 -0
  253. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/callbacks/arguments/username.py +0 -0
  254. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/callbacks/parse/choice.py +0 -0
  255. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/callbacks/parse/file.py +0 -0
  256. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/callbacks/parse/string.py +0 -0
  257. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/callbacks/parse/username.py +0 -0
  258. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/globals.py +0 -0
  259. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/helpers/hide_args.py +0 -0
  260. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/main.py +0 -0
  261. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/mutators/before.py +0 -0
  262. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/mutators/change.py +0 -0
  263. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/mutators/user.py +0 -0
  264. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/mutators/write.py +0 -0
  265. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/advanced_processing.py +0 -0
  266. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/advanced_user_filter.py +0 -0
  267. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/automatic.py +0 -0
  268. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/check.py +0 -0
  269. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/download.py +0 -0
  270. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/file.py +0 -0
  271. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/logging.py +0 -0
  272. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/media_content.py +0 -0
  273. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/metadata_filters.py +0 -0
  274. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/post_content.py +0 -0
  275. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/program.py +0 -0
  276. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/shared.py +0 -0
  277. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/user_list.py +0 -0
  278. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/user_select.py +0 -0
  279. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/user_sort.py +0 -0
  280. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/utils/date.py +0 -0
  281. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/arguments/utils/retry.py +0 -0
  282. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/commands/db.py +0 -0
  283. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/commands/main.py +0 -0
  284. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/commands/manual.py +0 -0
  285. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/commands/message.py +0 -0
  286. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/commands/metadata.py +0 -0
  287. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/commands/paid.py +0 -0
  288. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/commands/post.py +0 -0
  289. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/commands/story.py +0 -0
  290. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/advanced_common.py +0 -0
  291. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/check.py +0 -0
  292. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/common.py +0 -0
  293. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/db.py +0 -0
  294. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/main.py +0 -0
  295. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/manual.py +0 -0
  296. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/message_check.py +0 -0
  297. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/metadata.py +0 -0
  298. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/paid_check.py +0 -0
  299. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/post_check.py +0 -0
  300. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/story_check.py +0 -0
  301. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/group_bundles/utils/check.py +0 -0
  302. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/advanced_processing.py +0 -0
  303. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/advanced_user_filter.py +0 -0
  304. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/automatic.py +0 -0
  305. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/check_content.py +0 -0
  306. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/download.py +0 -0
  307. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/file.py +0 -0
  308. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/logging.py +0 -0
  309. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/media_filter.py +0 -0
  310. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/post_filter.py +0 -0
  311. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/program.py +0 -0
  312. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/user_list.py +0 -0
  313. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/user_select.py +0 -0
  314. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/parse/groups/user_sort.py +0 -0
  315. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/types/arrow.py +0 -0
  316. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/args/types/choice.py +0 -0
  317. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/data.py +0 -0
  318. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/request.py +0 -0
  319. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/schema.py +0 -0
  320. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/utils/dict.py +0 -0
  321. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/utils/prompt.py +0 -0
  322. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/utils/warning/check.py +0 -0
  323. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/utils/warning/print.py +0 -0
  324. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/auth/utils/warning/warning.py +0 -0
  325. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/cache.py +0 -0
  326. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/config/config.py +0 -0
  327. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/config/custom.py +0 -0
  328. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/config/file.py +0 -0
  329. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/config/menu.py +0 -0
  330. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/config/utils/context.py +0 -0
  331. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/config/utils/wrapper.py +0 -0
  332. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/console.py +0 -0
  333. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/constants.py +0 -0
  334. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/context/exit.py +0 -0
  335. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/context/run_async.py +0 -0
  336. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/context/stdout.py +0 -0
  337. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/dates.py +0 -0
  338. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/encoding.py +0 -0
  339. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/hash.py +0 -0
  340. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/classes/progress.py +0 -0
  341. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/classes/task.py +0 -0
  342. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/classes/transfercol.py +0 -0
  343. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/clear.py +0 -0
  344. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/empty.py +0 -0
  345. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/groups.py +0 -0
  346. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/live.py +0 -0
  347. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/panel.py +0 -0
  348. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/progress.py +0 -0
  349. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/screens.py +0 -0
  350. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/tasks.py +0 -0
  351. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/live/updater.py +0 -0
  352. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/classes/classes.py +0 -0
  353. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/classes/handlers/discord.py +0 -0
  354. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/classes/handlers/file.py +0 -0
  355. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/classes/handlers/text.py +0 -0
  356. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/close.py +0 -0
  357. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/globals.py +0 -0
  358. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/handle.py +0 -0
  359. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/logger.py +0 -0
  360. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/logs.py +0 -0
  361. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/other.py +0 -0
  362. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/stdout.py +0 -0
  363. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/utils/level.py +0 -0
  364. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/logs/utils/trace.py +0 -0
  365. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/manager.py +0 -0
  366. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/me.py +0 -0
  367. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/menu.py +0 -0
  368. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/merge.py +0 -0
  369. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/paths/common.py +0 -0
  370. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/paths/db.py +0 -0
  371. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/paths/manage.py +0 -0
  372. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/paths/paths.py +0 -0
  373. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/profiles/data.py +0 -0
  374. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/profiles/manage.py +0 -0
  375. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/profiles/tools.py +0 -0
  376. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/sems.py +0 -0
  377. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/separate.py +0 -0
  378. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/string.py +0 -0
  379. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/system/free.py +0 -0
  380. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/system/network.py +0 -0
  381. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/system/priority.py +0 -0
  382. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/system/speed.py +0 -0
  383. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/system/subprocess.py +0 -0
  384. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/system/system.py +0 -0
  385. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/ofscraper/utils/text.py +0 -0
  386. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/scripts/commit_version.sh +0 -0
  387. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/scripts/determine_docker_stable_dev_tags.py +0 -0
  388. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/scripts/release_version.sh +0 -0
  389. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/scripts/retry_action.sh +0 -0
  390. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/calls/example.py +0 -0
  391. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/calls/utils_test.py +0 -0
  392. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/db/archive_test.py +0 -0
  393. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/db/highlights_test.py +0 -0
  394. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/db/media_test.py +0 -0
  395. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/db/message_test.py +0 -0
  396. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/db/pinned_test.py +0 -0
  397. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/db/post_test.py +0 -0
  398. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/db/profile_test.py +0 -0
  399. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/db/stories_test.py +0 -0
  400. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/auth_test.py +0 -0
  401. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/config_test.py +0 -0
  402. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/filter_test.py +0 -0
  403. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/like_test.py +0 -0
  404. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/misc_test.py +0 -0
  405. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/path_test.py +0 -0
  406. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/profile_folder_test.py +0 -0
  407. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/profile_scrape_test.py +0 -0
  408. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/general/validator_test.py +0 -0
  409. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/post/archived_post_test.py +0 -0
  410. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/post/highlight_post_test.py +0 -0
  411. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/post/messages_post_test.py +0 -0
  412. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/post/paid_post_test.py +0 -0
  413. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/post/pinned_post_test.py +0 -0
  414. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/post/stories_post_test.py +0 -0
  415. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/test/post/timeline_post_test.py +0 -0
  416. {ofscraper-3.13.dev10 → ofscraper-3.13.dev12}/uv.lock +0 -0
@@ -0,0 +1,28 @@
1
+ # Ignore Python's virtual environment directory (your 'info' folder)
2
+ info/
3
+ .venv/
4
+ venv/
5
+ env/
6
+
7
+ # Ignore Python cache and artifacts
8
+ __pycache__/
9
+ *.pyc
10
+ *.pyo
11
+ *.pyd
12
+ dist/
13
+ build/
14
+ wiki/
15
+ *.egg-info/
16
+
17
+ # Ignore editor and OS-specific files
18
+ .vscode/
19
+ .idea/
20
+ *.DS_Store
21
+
22
+ # Ignore test files if they aren't needed in the final image
23
+ test/
24
+
25
+ # Ignore local secrets or temp files
26
+ .env
27
+ .tempmedia/
28
+ *.log
@@ -197,7 +197,7 @@ jobs:
197
197
  with:
198
198
  artifacts: artifacts/*/* # Attach any downloaded artifacts (will include only those that were built successfully)
199
199
  # Combined tag for uniqueness and chronological sorting
200
- tag: "${{ needs.generate_version.outputs.base_version }}-${{ needs.generate_version.outputs.short_hash }}-${{ needs.generate_version.outputs.commit_timestamp }}"
200
+ tag: "${{ needs.generate_version.outputs.base_version }}+${{ needs.generate_version.outputs.short_hash }}.${{ needs.generate_version.outputs.commit_timestamp }}"
201
201
  # Human-readable name with all key details
202
202
  name: "Dev Build ${{ needs.generate_version.outputs.base_version }} (Commit ${{ needs.generate_version.outputs.short_hash }}) - ${{ needs.generate_version.outputs.commit_timestamp }}"
203
203
 
@@ -6,7 +6,6 @@ on:
6
6
  - '**'
7
7
  tags-ignore:
8
8
  - '**'
9
-
10
9
  permissions:
11
10
  contents: read
12
11
  packages: write
@@ -28,7 +27,7 @@ jobs:
28
27
  with:
29
28
  fetch-depth: 0
30
29
  fetch-tags: true
31
-
30
+
32
31
  - name: Make script executable
33
32
  run: chmod +x ./scripts/commit_version.sh
34
33
  - name: Generate Version and Git Info
@@ -36,7 +35,7 @@ jobs:
36
35
  env:
37
36
  GH_TOKEN: ${{ github.token }}
38
37
  GITHUB_REPOSITORY: ${{ github.repository }}
39
- GITHUB_WORKFLOW_REF: ${{ github.workflow_ref }} # Still pass for general info, but not for WORKFLOW_ID now
38
+ GITHUB_WORKFLOW_REF: ${{ github.workflow_ref }}
40
39
  GITHUB_REF: ${{ github.ref }}
41
40
  GITHUB_EVENT_BEFORE: ${{ github.event.before }}
42
41
  run: ./scripts/commit_version.sh
@@ -59,7 +58,7 @@ jobs:
59
58
 
60
59
  steps:
61
60
  - name: Checkout repository
62
- uses: actions/checkout@v4
61
+ uses: actions/checkout@v4
63
62
 
64
63
  - name: Set up QEMU
65
64
  uses: docker/setup-qemu-action@v3
@@ -73,8 +72,8 @@ jobs:
73
72
  username: ${{ matrix.registry.id == 'ghcr' && github.actor || secrets.DOCKERHUB_USERNAME }}
74
73
  password: ${{ matrix.registry.id == 'ghcr' && secrets.GITHUB_TOKEN || secrets.DOCKERHUB_TOKEN }}
75
74
 
76
- - name: Extract Docker metadata
77
- id: meta
75
+ - name: Extract Docker metadata (Normal Image)
76
+ id: meta_normal
78
77
  uses: docker/metadata-action@v5
79
78
  with:
80
79
  images: ${{ matrix.registry.id == 'ghcr' && format('ghcr.io/{0}', github.repository) || 'datawhores/of-scraper' }}
@@ -83,23 +82,23 @@ jobs:
83
82
  type=raw,value=${{ needs.generate_version.outputs.base_version }}-${{ needs.generate_version.outputs.short_hash }}-${{ needs.generate_version.outputs.commit_timestamp }}
84
83
  type=raw,value=${{ needs.generate_version.outputs.base_version }}-${{ needs.generate_version.outputs.short_hash }}
85
84
  type=raw,value=latest,enable=${{ needs.generate_version.outputs.is_newer_than_last_successful_run }}
86
-
87
85
 
88
- - name: Build and push Docker image
89
- id: build-and-push
86
+ - name: Build and push Normal Docker image
87
+ id: build-and-push-normal
90
88
  uses: docker/build-push-action@v5
91
89
  with:
92
90
  context: .
91
+ file: ./Dockerfile
93
92
  push: true
94
- tags: ${{ steps.meta.outputs.tags }}
95
- labels: ${{ steps.meta.outputs.labels }}
93
+ tags: ${{ steps.meta_normal.outputs.tags }}
94
+ labels: ${{ steps.meta_normal.outputs.labels }}
96
95
  cache-from: type=gha
97
96
  cache-to: type=gha,mode=max
98
97
  platforms: linux/amd64,linux/arm64
99
98
  build-args: |
100
99
  BUILD_VERSION=${{ needs.generate_version.outputs.version }}
101
- INSTALL_FFMPEG=true
102
100
 
101
+ # This part needs adjustment to sign both images.
103
102
  - name: Install Cosign
104
103
  if: matrix.registry.sign == true
105
104
  uses: sigstore/cosign-installer@v3.5.0
@@ -109,9 +108,16 @@ jobs:
109
108
  run: echo "${{ secrets.COSIGN_PRIVATE_KEY }}" > cosign.key
110
109
  shell: bash
111
110
 
112
- - name: Sign the published Docker image
111
+ - name: Sign the published Docker images
113
112
  if: matrix.registry.sign == true
114
113
  env:
115
114
  COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
116
115
  COSIGN_EXPERIMENTAL: "true"
117
- run: echo "${{ steps.meta.outputs.tags }}" | xargs -I {} cosign sign --yes --key cosign.key {}@${{ steps.build-and-push.outputs.digest }}
116
+ run: |
117
+ # Get all tags for the normal image
118
+ NORMAL_IMAGE_TAGS="${{ steps.meta_normal.outputs.tags }}"
119
+ # Get the digest of the normal image
120
+ NORMAL_IMAGE_DIGEST="${{ steps.build-and-push-normal.outputs.digest }}"
121
+
122
+ echo "Signing Normal Image: ${NORMAL_IMAGE_TAGS} @ ${NORMAL_IMAGE_DIGEST}"
123
+ echo "$NORMAL_IMAGE_TAGS" | xargs -I {} cosign sign --yes --key cosign.key {}@$NORMAL_IMAGE_DIGEST
@@ -141,9 +141,8 @@ jobs:
141
141
  - name: Build Package with Hatch
142
142
  run: |
143
143
  source .venv/bin/activate
144
- echo "HATCH_VCS_PRETEND_VERSION=$PACKAGE_VERSION" >> "$GITHUB_ENV"
144
+ echo "HATCH_VCS_PRETEND_VERSION=$PACKAGE_VERSION=${{ needs.determine_tags_and_versions.outputs.package_version }}" >> $GITHUB_ENV
145
145
  echo "SETUPTOOLS_SCM_PRETEND_VERSION=${{ needs.determine_tags_and_versions.outputs.package_version }}" >> $GITHUB_ENV
146
-
147
146
  hatch build
148
147
  shell: bash
149
148
 
@@ -90,9 +90,7 @@ jobs:
90
90
  context: .
91
91
  platforms: linux/amd64,linux/arm64
92
92
  build-args: |
93
- SETUPTOOLS_SCM_PRETEND_VERSION=${{ inputs.package_version }}
94
- HATCH_VCS_PRETEND_VERSION=${{ inputs.package_version }}
95
- INSTALL_FFMPEG=true
93
+ BUILD_VERSION=${{ inputs.package_version }}
96
94
  tags: ${{ steps.meta_hub_stable.outputs.tags }}
97
95
  labels: ${{ steps.meta_hub_stable.outputs.labels }}
98
96
  cache-from: type=gha
@@ -163,8 +161,7 @@ jobs:
163
161
  platforms: linux/amd64,linux/arm64
164
162
  #pass enviroment variables as input
165
163
  build-args: |
166
- SETUPTOOLS_SCM_PRETEND_VERSION=${{ inputs.package_version }}
167
- HATCH_VCS_PRETEND_VERSION=${{ inputs.package_version }}
164
+ BUILD_VERSION=${{ inputs.package_version }}
168
165
  tags: ${{ steps.meta_hub_dev.outputs.tags }}
169
166
  labels: ${{ steps.meta_hub_dev.outputs.labels }}
170
167
  cache-from: type=gha
@@ -235,8 +232,7 @@ jobs:
235
232
  context: .
236
233
  platforms: linux/amd64,linux/arm64
237
234
  build-args: |
238
- SETUPTOOLS_SCM_PRETEND_VERSION=${{ inputs.package_version }}
239
- HATCH_VCS_PRETEND_VERSION=${{ inputs.package_version }}
235
+ BUILD_VERSION=${{ inputs.package_version }}
240
236
  tags: ${{ steps.meta_ghcr_stable.outputs.tags }}
241
237
  labels: ${{ steps.meta_ghcr_stable.outputs.labels }}
242
238
  cache-from: type=gha
@@ -304,8 +300,7 @@ jobs:
304
300
  context: .
305
301
  platforms: linux/amd64,linux/arm64
306
302
  build-args: |
307
- SETUPTOOLS_SCM_PRETEND_VERSION=${{ inputs.package_version }}
308
- HATCH_VCS_PRETEND_VERSION=${{ inputs.package_version }}
303
+ BUILD_VERSION=${{ inputs.package_version }}
309
304
  tags: ${{ steps.meta_ghcr_dev.outputs.tags }}
310
305
  labels: ${{ steps.meta_ghcr_dev.outputs.labels }}
311
306
  cache-from: type=gha
@@ -0,0 +1,69 @@
1
+ # --- Standard Python Artifacts ---
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+
7
+ # Distribution / packaging / Build artifacts
8
+ build/
9
+ dist/
10
+ sdist/
11
+ wheels/
12
+ *.egg-info/
13
+ *.egg
14
+ MANIFEST
15
+ *.spec # Keep .spec files if they are manually edited, ignore if auto-generated.
16
+ # Yours look like configuration, so I've commented this out.
17
+ # *.spec
18
+
19
+ # PyInstaller temporary files
20
+ # *.manifest # Already covered by standard rules if needed
21
+
22
+ # Installer logs & Test reports
23
+ pip-log.txt
24
+ pip-delete-this-directory.txt
25
+ htmlcov/
26
+ .tox/
27
+ .nox/
28
+ .coverage
29
+ .coverage.*
30
+ .cache
31
+ nosetests.xml
32
+ coverage.xml
33
+ *.cover
34
+ .hypothesis/
35
+ .pytest_cache/
36
+
37
+ # This is the 'info/' directory in your project
38
+ /info/
39
+ # Also include other common venv names
40
+ .venv/
41
+ venv/
42
+ env/
43
+ ENV/
44
+
45
+ # Editor & IDE-specific files
46
+ .vscode/
47
+ .idea/
48
+ .spyderproject
49
+ .ropeproject
50
+
51
+ # mypy cache
52
+ .mypy_cache/
53
+
54
+ # Custom generated files or logs
55
+ *.log
56
+ # Ignoring a custom compiled/encrypted version file
57
+ ofscraper/__version__.pye
58
+
59
+ /crypto/
60
+
61
+ # Ignore specific generated files if they appear
62
+ # dupe.json
63
+ .tempmedia/
64
+
65
+ #trunk
66
+ .trunk
67
+ #documentation
68
+ wiki/
69
+ docs/
@@ -0,0 +1,70 @@
1
+ # syntax=docker/dockerfile:1.7-labs
2
+ # Stage 1: Build the application artifact
3
+ FROM ghcr.io/astral-sh/uv:0.7.13-python3.11-bookworm-slim AS builder
4
+
5
+ ARG BUILD_VERSION
6
+ WORKDIR /app
7
+
8
+ # --- This is the ABSOLUTE ONLY essential change to fix the psutil/gcc error ---
9
+ # It installs the necessary compiler (gcc via build-essential) and Python development headers
10
+ # needed to compile Python packages like psutil, especially for non-AMD64 platforms.
11
+ RUN apt-get update && apt-get install -y --no-install-recommends \
12
+ build-essential\
13
+ python3-dev \
14
+ git \
15
+ && rm -rf /var/lib/apt/lists/*
16
+ COPY --parents pyproject.toml uv.lock README.md .git ofscraper .
17
+
18
+ RUN \
19
+ if [ -n "$BUILD_VERSION" ]; then \
20
+ VERSION="$BUILD_VERSION"; \
21
+ else \
22
+ SHORT_HASH=$(git rev-parse --short HEAD 2>/dev/null || echo "0000000"); \
23
+ HIGHEST_TAG=$(git tag --sort=-committerdate | grep -E '^v?[0-9]+\.[0-9]+(\.[0-9]+)?([-.][a-zA-Z0-9.]+)?$' | head -n 1); \
24
+ if [ -z "$HIGHEST_TAG" ]; then BASE_VERSION="0.0.0"; else BASE_VERSION=$(echo "$HIGHEST_TAG" | sed 's/^v//'); fi; \
25
+ VERSION="${BASE_VERSION}+g${SHORT_HASH}"; \
26
+ fi && \
27
+ export HATCH_VCS_PRETEND_VERSION=$VERSION && \
28
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$VERSION && \
29
+ echo "Build OF-SCRAPER with ${VERSION}" && \
30
+
31
+ python3 -m pip install --no-cache-dir hatch hatch-vcs && \
32
+ uv sync --locked && \
33
+ hatch build
34
+
35
+
36
+ # Stage 2: Create the final, minimal production image
37
+ FROM ghcr.io/astral-sh/uv:0.7.13-python3.11-bookworm-slim
38
+ WORKDIR /app
39
+
40
+ # Configure uv's venv and cache location.
41
+ ENV VIRTUAL_ENV="/app/.venv"
42
+ ENV UV_CACHE_DIR="/app/.uv_cache"
43
+ ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
44
+
45
+ # STEP 1: Create venv, install pyffmpeg and force static
46
+ # timestamps for venv & cache to avoid unnecessary layer updates.
47
+ RUN uv venv && uv pip install pyffmpeg==2.4.2.20 && \
48
+ find "${VIRTUAL_ENV}" -print0 | xargs -0 touch -h -d '2025-01-01T00:00:00Z' && \
49
+ find "${UV_CACHE_DIR}" -print0 | xargs -0 touch -h -d '2025-01-01T00:00:00Z'
50
+
51
+ # STEP 2: Install all OS-level dependencies in a single layer.
52
+ RUN apt-get update && apt-get install -y --no-install-recommends \
53
+ gosu \
54
+ && rm -rf /var/lib/apt/lists/*
55
+
56
+ # STEP 3: Copy entrypoint scripts and make them executable.
57
+ COPY --chmod=755 ./scripts/entry/. /usr/local/bin/entry/
58
+
59
+ # STEP 4: Copy and install the ofscraper wheels into the venv.
60
+ COPY --from=builder /app/dist/*.whl .
61
+ RUN apt-get update && apt-get install -y --no-install-recommends \
62
+ build-essential && \
63
+ uv pip install *.whl -v && \
64
+ rm *.whl && \
65
+ apt-get purge -y --auto-remove build-essential && \
66
+ rm -rf /var/lib/apt/lists/*
67
+
68
+ USER root
69
+ ENTRYPOINT ["/usr/local/bin/entry/entrypoint.sh"]
70
+ CMD ["ofscraper"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ofscraper
3
- Version: 3.13.dev10
3
+ Version: 3.13.dev12
4
4
  Summary: automatically scrape onlyfans
5
5
  Project-URL: Homepage, https://github.com/datawhores/OF-Scraper
6
6
  Author-email: datawhores <datawhores@riseup.net>
@@ -1,10 +1,10 @@
1
1
  version: "3.8" # Recommended to use a recent version for new features
2
2
  services:
3
+ #latest
3
4
  of-scraper:
4
5
  stdin_open: true # Keeps STDIN open for interactive processes
5
6
  tty: true # Allocates a pseudo-TTY for a terminal-like interface
6
7
  container_name: ofscraper
7
-
8
8
  environment: # Optional environment variables
9
9
  # These are recommended for correct file permissions on mounted volumes.
10
10
  # Default UID/GID is 1000:1000 if not specified via environment variables in your shell.
@@ -37,4 +37,15 @@ services:
37
37
  # command: "ofscraper --username ALL --posts all"
38
38
 
39
39
  # Optional: Configure restart policy.
40
- # restart: "unless-stopped" # Ensures the container restarts automatically unless explicitly stopped.
40
+ # restart: "unless-stopped" # Ensures the container restarts automatically unless explicitly stopped.
41
+
42
+ #local
43
+ #comment out this and comment out the first of-scraper example to run locally
44
+ # of-scraper:
45
+ # stdin_open: true # Keeps STDIN open for interactive processes
46
+ # tty: true # Allocates a pseudo-TTY for a terminal-like interface
47
+ # container_name: ofscraper
48
+
49
+ # build:
50
+ # context: .
51
+ # dockerfile: Dockerfile
@@ -321,7 +321,7 @@ class sessionManager:
321
321
  exceptions = exceptions or []
322
322
  actions = actions or []
323
323
  for _ in Retrying(
324
- retry=retry_if_not_exception_type((KeyboardInterrupt)),
324
+ retry=retry_if_not_exception_type((KeyboardInterrupt,SystemExit)),
325
325
  stop=tenacity.stop.stop_after_attempt(retries),
326
326
  wait=tenacity.wait.wait_random(min=min, max=max),
327
327
  before=lambda x: (
@@ -424,7 +424,7 @@ class sessionManager:
424
424
  wait_exponential=tenacity.wait.wait_exponential(
425
425
  multiplier=2, min=wait_min_exponential, max=wait_max_exponential
426
426
  ),
427
- retry=retry_if_not_exception_type((KeyboardInterrupt)),
427
+ retry=retry_if_not_exception_type((KeyboardInterrupt,SystemExit)),
428
428
  wait_random=tenacity.wait_random(min=wait_min, max=wait_max),
429
429
  stop=tenacity.stop.stop_after_attempt(retries),
430
430
  before=lambda x: (
@@ -48,12 +48,8 @@ async def un_encrypt(item, c, ele, input_=None):
48
48
  log.debug(f"{get_medialog(ele)} got key from cache")
49
49
  elif keymode == "manual":
50
50
  key = await key_helper_manual(c, item["pssh"], ele.license, ele.id)
51
- elif keymode == "keydb":
52
- key = await key_helper_keydb(c, item["pssh"], ele.license, ele.id)
53
51
  elif keymode == "cdrm":
54
52
  key = await key_helper_cdrm(c, item["pssh"], ele.license, ele.id)
55
- elif keymode == "cdrm2":
56
- key = await key_helper_cdrm2(c, item["pssh"], ele.license, ele.id)
57
53
  if not key:
58
54
  raise Exception(f"{get_medialog(ele)} Could not get key")
59
55
  key = key.strip()
@@ -118,101 +114,14 @@ async def key_helper_cdrm(c, pssh, licence_url, id):
118
114
  headers["cookie"] = auth_requests.get_cookies_str()
119
115
  auth_requests.create_sign(licence_url, headers)
120
116
  json_data = {
121
- "License URL": licence_url,
122
- "Headers": json.dumps(headers),
123
- "PSSH": pssh,
124
- "JSON": "{}",
125
- "Cookies": "{}",
126
- "Data": "{}",
127
- "Proxy": "",
128
- }
129
- async with c.requests_async(
130
- url=constants.getattr("CDRM"),
131
- method="post",
132
- json=json_data,
133
- retries=get_cmd_download_req_retries(),
134
- wait_min=constants.getattr("OF_MIN_WAIT_API"),
135
- wait_max=constants.getattr("OF_MAX_WAIT_API"),
136
- total_timeout=constants.getattr("CDM_TIMEOUT"),
137
- skip_expection_check=True,
138
- ) as r:
139
- data = await r.json_()
140
- log.debug(f"keydb json {data}")
141
- key = data["Message"]
142
- return key
143
- except Exception as E:
144
- log.traceback_(E)
145
- log.traceback_(traceback.format_exc())
146
- raise E
147
-
148
-
149
- async def key_helper_cdrm2(c, pssh, licence_url, id):
150
- key = None
151
- log.debug(f"ID:{id} using cdrm2 auto key helper")
152
- try:
153
- log.debug(f"ID:{id} pssh: {pssh is not None}")
154
- log.debug(f"ID:{id} licence: {licence_url}")
155
- headers = auth_requests.make_headers()
156
- headers["cookie"] = auth_requests.get_cookies_str()
157
- auth_requests.create_sign(licence_url, headers)
158
- json_data = {
159
- "license": licence_url,
117
+ "licurl": licence_url,
160
118
  "headers": json.dumps(headers),
161
119
  "pssh": pssh,
162
- "buildInfo": "google/sdk_gphone_x86/generic_x86:8.1.0/OSM1.180201.037/6739391:userdebug/dev-keys",
163
- "proxy": "",
164
- "cache": True,
165
120
  }
166
121
  async with c.requests_async(
167
- url=constants.getattr("CDRM2"),
168
- method="post",
169
- json=json_data,
170
- retries=get_cmd_download_req_retries(),
171
- wait_min=constants.getattr("OF_MIN_WAIT_API"),
172
- wait_max=constants.getattr("OF_MAX_WAIT_API"),
173
- total_timeout=constants.getattr("CDM_TIMEOUT"),
174
- skip_expection_check=True,
175
- ) as r:
176
- httpcontent = await r.text_()
177
- log.debug(f"ID:{id} key_response: {httpcontent}")
178
- soup = BeautifulSoup(httpcontent, "html.parser")
179
- key = soup.find("li").contents[0]
180
- return key
181
- except Exception as E:
182
- log.traceback_(E)
183
- log.traceback_(traceback.format_exc())
184
- raise E
185
-
186
-
187
- async def key_helper_keydb(c, pssh, licence_url, id):
188
- key = None
189
- log.debug(f"ID:{id} using keydb auto key helper")
190
- try:
191
- log.debug(f"ID:{id} pssh: {pssh is not None}")
192
- log.debug(f"ID:{id} licence: {licence_url}")
193
- headers = auth_requests.make_headers()
194
- headers["cookie"] = auth_requests.get_cookies_str()
195
- auth_requests.create_sign(licence_url, headers)
196
- json_data = {
197
- "license_url": licence_url,
198
- "headers": json.dumps(headers),
199
- "pssh": pssh,
200
- "buildInfo": "",
201
- "proxy": "",
202
- "cache": True,
203
- }
204
-
205
- headers = {
206
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Ktesttemp, like Gecko) Chrome/90.0.4430.85 Safari/537.36",
207
- "Content-Type": "application/json",
208
- "X-API-Key": settings.get_keydb_api(),
209
- }
210
-
211
- async with c.requests_async(
212
- url=constants.getattr("KEYDB"),
122
+ url=constants.getattr("CDRM"),
213
123
  method="post",
214
124
  json=json_data,
215
- headers=headers,
216
125
  retries=get_cmd_download_req_retries(),
217
126
  wait_min=constants.getattr("OF_MIN_WAIT_API"),
218
127
  wait_max=constants.getattr("OF_MAX_WAIT_API"),
@@ -220,20 +129,14 @@ async def key_helper_keydb(c, pssh, licence_url, id):
220
129
  skip_expection_check=True,
221
130
  ) as r:
222
131
  data = await r.json_()
223
- log.debug(f"keydb json {data}")
224
- if isinstance(data, str):
225
- key = data
226
- elif isinstance(data["keys"][0], str):
227
- key = data["keys"][0]
228
- elif isinstance(data["keys"][0], object):
229
- key = data["keys"][0]["key"]
132
+ log.debug(f"cdrm json {data}")
133
+ key = data["message"]
230
134
  return key
231
135
  except Exception as E:
232
136
  log.traceback_(E)
233
137
  log.traceback_(traceback.format_exc())
234
138
  raise E
235
139
 
236
-
237
140
  async def key_helper_manual(c, pssh, licence_url, id):
238
141
  key = None
239
142
  log.debug(f"ID:{id} manual key helper")
@@ -1,5 +1,5 @@
1
1
  SUPRESS_OUTPUTS = {"CRITICAL", "ERROR", "WARNING", "OFF", "LOW", "PROMPT"}
2
- KEY_OPTIONS = ["cdrm", "cdrm2", "manual", "keydb"]
2
+ KEY_OPTIONS = ["cdrm", "manual"]
3
3
  refreshScreen = 50
4
4
  NUMBER_REGEX = "[0-9]"
5
5
  USERNAME_REGEX = "[^/]"
@@ -0,0 +1,6 @@
1
+ CDRM = "https://cdrm-project.com/api/decrypt"
2
+ BAD_URL_HOST = {
3
+ ".*\.upload.onlyfans.com",
4
+ "of2transcoder.s3-accelerate.amazonaws.com",
5
+ ".*\.convert.onlyfans.com",
6
+ }
@@ -23,7 +23,6 @@ def main():
23
23
  readConfig()
24
24
  setLogger()
25
25
  make_folder()
26
- check()
27
26
  run.main()
28
27
  except Exception as E:
29
28
  print(E)
@@ -64,6 +63,3 @@ def readConfig():
64
63
  def make_folder():
65
64
  paths_manage.make_folders()
66
65
 
67
-
68
- def check():
69
- checkers.check_config_key_mode()