ofscraper 3.13.dev4__tar.gz → 3.13.dev6__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 (351) hide show
  1. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/PKG-INFO +4 -4
  2. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/sessionmanager/download.py +11 -22
  3. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/sessionmanager/ofsession.py +1 -2
  4. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/sessionmanager/sessionmanager.py +186 -104
  5. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/check.py +5 -5
  6. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/manual.py +1 -1
  7. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/metadata/metadata.py +1 -4
  8. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/download.py +1 -5
  9. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/managers/alt_download.py +58 -23
  10. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/managers/downloadmanager.py +3 -1
  11. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/managers/main_download.py +60 -26
  12. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/run.py +0 -2
  13. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/utils/chunk.py +4 -0
  14. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/like/like.py +3 -3
  15. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/globals.py +1 -37
  16. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/scraper.py +4 -1
  17. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/utils/schedule.py +2 -2
  18. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/utils/command.py +6 -6
  19. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/action/download.py +1 -1
  20. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/config.py +1 -2
  21. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/req/req.py +4 -3
  22. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/system.py +1 -1
  23. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/common/timeline.py +1 -1
  24. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/highlights.py +1 -1
  25. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/me.py +2 -2
  26. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/messages.py +1 -1
  27. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/profile.py +2 -2
  28. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/posts/scrape_paid.py +1 -1
  29. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/media/filters.py +0 -1
  30. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/media/main.py +6 -4
  31. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/main/close/final/final_log.py +0 -2
  32. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/main/open/load.py +0 -1
  33. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/config.py +8 -26
  34. ofscraper-3.13.dev6/ofscraper/utils/args/accessors/actions.py +0 -0
  35. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/logging.py +2 -2
  36. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/make.py +1 -0
  37. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/request.py +7 -7
  38. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/config/data.py +6 -33
  39. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/config/schema.py +1 -3
  40. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/updater.py +11 -15
  41. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/logs/classes/classes.py +0 -14
  42. ofscraper-3.13.dev6/ofscraper/utils/logs/classes/handlers/discord.py +146 -0
  43. ofscraper-3.13.dev6/ofscraper/utils/logs/classes/handlers/file.py +47 -0
  44. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/logs/close.py +0 -22
  45. ofscraper-3.13.dev6/ofscraper/utils/logs/logger.py +49 -0
  46. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/logs/logs.py +2 -2
  47. ofscraper-3.13.dev6/ofscraper/utils/logs/other.py +49 -0
  48. ofscraper-3.13.dev6/ofscraper/utils/logs/stdout.py +53 -0
  49. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/logs/utils/level.py +0 -4
  50. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/paths/common.py +1 -1
  51. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/paths/manage.py +5 -3
  52. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/settings.py +0 -1
  53. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/system/network.py +1 -1
  54. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/system/subprocess.py +2 -2
  55. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/text.py +1 -0
  56. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/pyproject.toml +4 -4
  57. ofscraper-3.13.dev4/ofscraper/commands/scraper/actions/utils/buffer.py +0 -21
  58. ofscraper-3.13.dev4/ofscraper/utils/logs/classes/handlers/discord.py +0 -242
  59. ofscraper-3.13.dev4/ofscraper/utils/logs/classes/handlers/file.py +0 -18
  60. ofscraper-3.13.dev4/ofscraper/utils/logs/classes/handlers/pipe.py +0 -72
  61. ofscraper-3.13.dev4/ofscraper/utils/logs/classes/handlers/rich.py +0 -136
  62. ofscraper-3.13.dev4/ofscraper/utils/logs/classes/handlers/zmq.py +0 -72
  63. ofscraper-3.13.dev4/ofscraper/utils/logs/logger.py +0 -42
  64. ofscraper-3.13.dev4/ofscraper/utils/logs/other.py +0 -241
  65. ofscraper-3.13.dev4/ofscraper/utils/logs/stdout.py +0 -277
  66. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/LICENSE +0 -0
  67. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/README.md +0 -0
  68. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/__main__.py +0 -0
  69. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/__version__.py +0 -0
  70. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/__version__.pye +0 -0
  71. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/labels.py +0 -0
  72. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/of/base.py +0 -0
  73. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/of/media.py +0 -0
  74. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/of/posts.py +0 -0
  75. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/placeholder.py +0 -0
  76. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/app.py +0 -0
  77. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/compose.py +0 -0
  78. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/const.py +0 -0
  79. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/css.py +0 -0
  80. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/boolfield.py +0 -0
  81. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/datefield.py +0 -0
  82. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/downloadfield.py +0 -0
  83. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/mediafield.py +0 -0
  84. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/numfield.py +0 -0
  85. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/pricefield.py +0 -0
  86. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/responsefield.py +0 -0
  87. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/selectfield.py +0 -0
  88. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/sizefield.py +0 -0
  89. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/textsearch.py +0 -0
  90. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/fields/timefield.py +0 -0
  91. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/inputs/filterinput.py +0 -0
  92. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/inputs/intergerinput.py +0 -0
  93. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/inputs/strinput.py +0 -0
  94. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/sections/sidebar.py +0 -0
  95. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/sections/table.py +0 -0
  96. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/sections/table_console.py +0 -0
  97. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/utils/lock.py +0 -0
  98. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/classes/table/utils/names.py +0 -0
  99. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/db.py +0 -0
  100. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/metadata/consumer.py +0 -0
  101. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/metadata/desc.py +0 -0
  102. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/metadata/manager.py +0 -0
  103. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/utils/desc.py +0 -0
  104. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/utils/keyhelpers.py +0 -0
  105. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/utils/leaky.py +0 -0
  106. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/utils/retries.py +0 -0
  107. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/download/utils/text.py +0 -0
  108. /ofscraper-3.13.dev4/ofscraper/commands/scraper/utils/daemon.py → /ofscraper-3.13.dev6/ofscraper/commands/scraper/actions/utils/buffer.py +0 -0
  109. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/general.py +0 -0
  110. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/log.py +0 -0
  111. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/params.py +0 -0
  112. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/paths/media.py +0 -0
  113. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/paths/paths.py +0 -0
  114. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/progress/convert.py +0 -0
  115. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/progress/update.py +0 -0
  116. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/retries.py +0 -0
  117. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/send/chunk.py +0 -0
  118. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/send/message.py +0 -0
  119. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/threads.py +0 -0
  120. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/actions/utils/workers.py +0 -0
  121. /ofscraper-3.13.dev4/ofscraper/const/values/req/like.py → /ofscraper-3.13.dev6/ofscraper/commands/scraper/utils/daemon.py +0 -0
  122. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/utils/jobqueue.py +0 -0
  123. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/utils/prepare.py +0 -0
  124. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/scraper/utils/print.py +0 -0
  125. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/utils/scrape_context.py +0 -0
  126. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/commands/utils/strings.py +0 -0
  127. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/constants.py +0 -0
  128. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/action/like.py +0 -0
  129. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/action/metadata.py +0 -0
  130. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/binary.py +0 -0
  131. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/date.py +0 -0
  132. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/download.py +0 -0
  133. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/dynamic.py +0 -0
  134. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/general.py +0 -0
  135. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/list.py +0 -0
  136. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/live.py +0 -0
  137. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/logger.py +0 -0
  138. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/path/bytes.py +0 -0
  139. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/path/files.py +0 -0
  140. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/path/general.py +0 -0
  141. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/path/path.py +0 -0
  142. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/prompts.py +0 -0
  143. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/req/anon.py +0 -0
  144. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/req/api.py +0 -0
  145. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/req/cdm.py +0 -0
  146. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/req/discord.py +0 -0
  147. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/req/git.py +0 -0
  148. /ofscraper-3.13.dev4/ofscraper/utils/args/accessors/actions.py → /ofscraper-3.13.dev6/ofscraper/const/values/req/like.py +0 -0
  149. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/req/mpd.py +0 -0
  150. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/rich.py +0 -0
  151. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/table.py +0 -0
  152. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/test/test_constants.py +0 -0
  153. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/time.py +0 -0
  154. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/url/other_url.py +0 -0
  155. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/const/values/url/url.py +0 -0
  156. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/archive.py +0 -0
  157. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/common/after.py +0 -0
  158. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/common/cache/read.py +0 -0
  159. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/common/cache/write.py +0 -0
  160. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/common/check.py +0 -0
  161. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/common/logs/logs.py +0 -0
  162. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/common/logs/strings.py +0 -0
  163. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/init.py +0 -0
  164. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/labels.py +0 -0
  165. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/paid.py +0 -0
  166. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/pinned.py +0 -0
  167. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/streams.py +0 -0
  168. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/subscriptions/common.py +0 -0
  169. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/subscriptions/individual.py +0 -0
  170. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/subscriptions/lists.py +0 -0
  171. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/subscriptions/subscriptions.py +0 -0
  172. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/api/timeline.py +0 -0
  173. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/models/manager.py +0 -0
  174. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/models/models.py +0 -0
  175. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/models/utils/retriver.py +0 -0
  176. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/data/posts/post.py +0 -0
  177. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/__init__.py +0 -0
  178. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/backup.py +0 -0
  179. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/difference.py +0 -0
  180. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/merge.py +0 -0
  181. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations.py +0 -0
  182. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/empty.py +0 -0
  183. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/labels.py +0 -0
  184. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/media.py +0 -0
  185. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/messages.py +0 -0
  186. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/others.py +0 -0
  187. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/posts.py +0 -0
  188. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/profile.py +0 -0
  189. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/stories.py +0 -0
  190. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/operations_/wrapper.py +0 -0
  191. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/transition.py +0 -0
  192. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/db/utils/convert.py +0 -0
  193. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/models/date.py +0 -0
  194. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/models/flags.py +0 -0
  195. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/models/other.py +0 -0
  196. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/models/price.py +0 -0
  197. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/models/sort.py +0 -0
  198. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/models/subtype.py +0 -0
  199. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/filters/models/utils/logs.py +0 -0
  200. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/main/close/exit.py +0 -0
  201. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/main/close/final/final.py +0 -0
  202. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/main/close/final/final_script.py +0 -0
  203. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/main/close/final/final_user.py +0 -0
  204. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/main/manager.py +0 -0
  205. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/main/open/run.py +0 -0
  206. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/keybindings.py +0 -0
  207. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/promptConvert.py +0 -0
  208. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/actions.py +0 -0
  209. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/area.py +0 -0
  210. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/auth.py +0 -0
  211. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/binary.py +0 -0
  212. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/menu.py +0 -0
  213. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/merge.py +0 -0
  214. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/model.py +0 -0
  215. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_groups/profile.py +0 -0
  216. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_strings.py +0 -0
  217. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompt_validators.py +0 -0
  218. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/prompts.py +0 -0
  219. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/utils/model_helpers.py +0 -0
  220. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/prompts/utils/prompt_helpers.py +0 -0
  221. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/__init__.py +0 -0
  222. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/actions.py +0 -0
  223. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/ads.py +0 -0
  224. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/accessors/areas.py +0 -0
  225. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/accessors/output.py +0 -0
  226. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/accessors/quality.py +0 -0
  227. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/accessors/read.py +0 -0
  228. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/accessors/time.py +0 -0
  229. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/callbacks/choice.py +0 -0
  230. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/callbacks/file.py +0 -0
  231. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/callbacks/string.py +0 -0
  232. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/callbacks/username.py +0 -0
  233. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/globals.py +0 -0
  234. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/helpers/hide_args.py +0 -0
  235. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/main.py +0 -0
  236. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/mutators/before.py +0 -0
  237. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/mutators/change.py +0 -0
  238. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/mutators/user.py +0 -0
  239. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/mutators/write.py +0 -0
  240. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/advanced_processing.py +0 -0
  241. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/advanced_program.py +0 -0
  242. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/advanced_user_filter.py +0 -0
  243. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/automatic.py +0 -0
  244. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/check.py +0 -0
  245. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/db.py +0 -0
  246. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/download.py +0 -0
  247. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/file.py +0 -0
  248. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/media_content.py +0 -0
  249. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/metadata_filters.py +0 -0
  250. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/post_content.py +0 -0
  251. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/program.py +0 -0
  252. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/shared.py +0 -0
  253. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/user_list.py +0 -0
  254. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/user_select.py +0 -0
  255. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/user_sort.py +0 -0
  256. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/utils/date.py +0 -0
  257. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/arguments/utils/retry.py +0 -0
  258. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/commands/db.py +0 -0
  259. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/commands/main.py +0 -0
  260. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/commands/manual.py +0 -0
  261. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/commands/message.py +0 -0
  262. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/commands/metadata.py +0 -0
  263. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/commands/paid.py +0 -0
  264. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/commands/post.py +0 -0
  265. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/commands/story.py +0 -0
  266. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/advanced_common.py +0 -0
  267. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/check.py +0 -0
  268. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/common.py +0 -0
  269. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/db.py +0 -0
  270. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/main.py +0 -0
  271. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/manual.py +0 -0
  272. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/message_check.py +0 -0
  273. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/metadata.py +0 -0
  274. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/paid_check.py +0 -0
  275. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/post_check.py +0 -0
  276. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/story_check.py +0 -0
  277. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/group_bundles/utils/check.py +0 -0
  278. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/advanced_processing.py +0 -0
  279. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/advanced_program.py +0 -0
  280. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/advanced_user_filter.py +0 -0
  281. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/automatic.py +0 -0
  282. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/check_content.py +0 -0
  283. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/download.py +0 -0
  284. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/file.py +0 -0
  285. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/logging.py +0 -0
  286. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/media_filter.py +0 -0
  287. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/post_filter.py +0 -0
  288. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/program.py +0 -0
  289. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/user_list.py +0 -0
  290. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/user_select.py +0 -0
  291. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/parse/groups/user_sort.py +0 -0
  292. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/types/arrow.py +0 -0
  293. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/args/types/choice.py +0 -0
  294. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/data.py +0 -0
  295. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/file.py +0 -0
  296. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/schema.py +0 -0
  297. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/utils/context.py +0 -0
  298. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/utils/dict.py +0 -0
  299. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/utils/prompt.py +0 -0
  300. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/utils/warning/check.py +0 -0
  301. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/utils/warning/print.py +0 -0
  302. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/auth/utils/warning/warning.py +0 -0
  303. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/binaries.py +0 -0
  304. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/cache.py +0 -0
  305. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/checkers.py +0 -0
  306. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/config/config.py +0 -0
  307. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/config/custom.py +0 -0
  308. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/config/file.py +0 -0
  309. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/config/menu.py +0 -0
  310. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/config/utils/context.py +0 -0
  311. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/config/utils/wrapper.py +0 -0
  312. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/console.py +0 -0
  313. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/constants.py +0 -0
  314. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/context/exit.py +0 -0
  315. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/context/run_async.py +0 -0
  316. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/context/stdout.py +0 -0
  317. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/dates.py +0 -0
  318. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/encoding.py +0 -0
  319. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/hash.py +0 -0
  320. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/classes/progress.py +0 -0
  321. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/classes/task.py +0 -0
  322. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/classes/transfercol.py +0 -0
  323. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/clear.py +0 -0
  324. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/empty.py +0 -0
  325. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/groups.py +0 -0
  326. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/live.py +0 -0
  327. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/panel.py +0 -0
  328. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/progress.py +0 -0
  329. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/screens.py +0 -0
  330. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/live/tasks.py +0 -0
  331. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/logs/classes/handlers/text.py +0 -0
  332. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/logs/globals.py +0 -0
  333. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/logs/handle.py +0 -0
  334. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/logs/utils/trace.py +0 -0
  335. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/manager.py +0 -0
  336. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/me.py +0 -0
  337. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/menu.py +0 -0
  338. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/merge.py +0 -0
  339. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/paths/check.py +0 -0
  340. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/paths/db.py +0 -0
  341. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/paths/paths.py +0 -0
  342. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/profiles/data.py +0 -0
  343. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/profiles/manage.py +0 -0
  344. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/profiles/tools.py +0 -0
  345. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/sems.py +0 -0
  346. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/separate.py +0 -0
  347. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/string.py +0 -0
  348. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/system/free.py +0 -0
  349. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/system/priority.py +0 -0
  350. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/system/speed.py +0 -0
  351. {ofscraper-3.13.dev4 → ofscraper-3.13.dev6}/ofscraper/utils/system/system.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ofscraper
3
- Version: 3.13.dev4
3
+ Version: 3.13.dev6
4
4
  Summary: automatically scrape onlyfans
5
5
  Author: datawhores
6
6
  Author-email: datawhores@riseup.net
@@ -11,7 +11,6 @@ Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
12
  Provides-Extra: pyinstaller
13
13
  Requires-Dist: aiofiles (>=23.2.1,<24.0.0)
14
- Requires-Dist: aiohttp (==3.10.11)
15
14
  Requires-Dist: aiolimiter (>=1.1.0,<2.0.0)
16
15
  Requires-Dist: aioprocessing (>=2.0.1,<3.0.0)
17
16
  Requires-Dist: aiosqlite (>=0.20.0,<0.21.0)
@@ -26,7 +25,9 @@ Requires-Dist: diskcache (>=5.6.3,<6.0.0)
26
25
  Requires-Dist: dunamai (>=1.19.2,<2.0.0)
27
26
  Requires-Dist: faust-cchardet (>=2.1.19,<3.0.0)
28
27
  Requires-Dist: filelock (>=3.13.1,<4.0.0)
29
- Requires-Dist: httpx[http2] (>=0.27.0,<0.28.0)
28
+ Requires-Dist: httpx-aiohttp (>=0.1.2,<0.2.0)
29
+ Requires-Dist: httpx-curl-cffi (>=0.1.3,<0.2.0)
30
+ Requires-Dist: httpx[http2] (>=0.28.1,<0.29.0)
30
31
  Requires-Dist: humanfriendly (>=10.0,<11.0)
31
32
  Requires-Dist: idna (==3.7)
32
33
  Requires-Dist: inquirerpy (>=0.3.4,<0.4.0)
@@ -51,7 +52,6 @@ Requires-Dist: speedtest-cli (>=2.1.3,<3.0.0)
51
52
  Requires-Dist: tenacity (>=8.2.3,<9.0.0)
52
53
  Requires-Dist: textual (==1.0.0)
53
54
  Requires-Dist: tqdm (>=4.66.4,<5.0.0)
54
- Requires-Dist: ua-generator (>=2.0.5,<3.0.0)
55
55
  Requires-Dist: uvloop (>=0.19.0,<0.20.0) ; sys_platform == "linux" or sys_platform == "linux2"
56
56
  Requires-Dist: win32-setctime (>=1.1.0,<2.0.0)
57
57
  Requires-Dist: xxhash (>=3.4.1,<4.0.0)
@@ -14,24 +14,30 @@ from ofscraper.classes.sessionmanager.sessionmanager import (
14
14
  )
15
15
  from ofscraper.commands.scraper.actions.download.utils.leaky import LeakyBucket
16
16
  import ofscraper.utils.settings as settings
17
+ from ofscraper.commands.scraper.actions.download.utils.chunk import get_chunk_timeout
17
18
 
18
19
 
19
20
  class download_session(sessionManager.sessionManager):
20
21
  def __init__(
21
22
  self, sem_count=None, retries=None, wait_min=None, wait_max=None, log=None
22
23
  ) -> None:
23
- sem_count = sem_count or common_globals.sem
24
24
  retries = retries or get_download_req_retries()
25
25
  wait_min = wait_min or constants.getattr("OF_MIN_WAIT_API")
26
26
  wait_max = wait_max or constants.getattr("OF_MAX_WAIT_API")
27
+ read_timeout=get_chunk_timeout()
27
28
  log = log or common_globals.log
28
29
  self.leaky_bucket = LeakyBucket(settings.get_settings().download_limit, 1)
30
+
31
+
32
+
33
+
29
34
  super().__init__(
30
35
  sem_count=sem_count,
31
36
  retries=retries,
32
37
  wait_min=wait_min,
33
38
  wait_max=wait_max,
34
39
  log=log,
40
+ read_timeout=read_timeout
35
41
  )
36
42
 
37
43
  @contextlib.asynccontextmanager
@@ -56,19 +62,6 @@ class download_session(sessionManager.sessionManager):
56
62
  t.request = t.request
57
63
  return t
58
64
 
59
- async def _aio_funct(self, method, *args, **kwargs):
60
- # public function forces context manager use
61
- r = await self._session._request(method, *args, **kwargs)
62
- r.text_ = r.text
63
- r.json_ = r.json
64
- r.iter_chunked = self.chunk_with_limit(r.content.iter_chunked)
65
- r.iter_chunks = self.chunk_with_limit(r.content.iter_chunks)
66
- r.request = r.request_info
67
- r.status_code = r.status
68
- r.read_ = r.content.read
69
- r.eof = r.content.at_eof
70
- return r
71
-
72
65
  async def factoryasync(self, input):
73
66
  if callable(input):
74
67
  return input()
@@ -87,14 +80,10 @@ class download_session(sessionManager.sessionManager):
87
80
 
88
81
 
89
82
  class cdm_session(sessionManager.sessionManager):
90
- def __init__(self, backend=None, sem_count=None) -> None:
91
- backend = backend or "httpx"
92
- sem_count = sem_count or common_globals.sem
93
- super().__init__(sem_count=sem_count, backend=backend)
83
+ def __init__(self, sem_count=None) -> None:
84
+ super().__init__(sem_count=sem_count)
94
85
 
95
86
 
96
87
  class cdm_session_manual(ofsessionmanager.OFSessionManager):
97
- def __init__(self, backend=None, sem_count=None) -> None:
98
- backend = backend or "httpx"
99
- sem_count = sem_count or common_globals.sem
100
- super().__init__(sem_count=sem_count, backend=backend)
88
+ def __init__(self, sem_count=None) -> None:
89
+ super().__init__(sem_count=sem_count)
@@ -15,7 +15,7 @@ from ofscraper.classes.sessionmanager.sessionmanager import (
15
15
  class OFSessionManager(sessionManager):
16
16
  def __init__(
17
17
  self,
18
- backend=None,
18
+
19
19
  connect_timeout=None,
20
20
  total_timeout=None,
21
21
  read_timeout=None,
@@ -50,7 +50,6 @@ class OFSessionManager(sessionManager):
50
50
  wait_max if wait_max is not None else constants.getattr("OF_MAX_WAIT_API")
51
51
  )
52
52
  super().__init__(
53
- backend,
54
53
  connect_timeout,
55
54
  total_timeout,
56
55
  read_timeout,
@@ -1,24 +1,23 @@
1
1
  import asyncio
2
2
  import contextlib
3
3
  import logging
4
- import ssl
5
4
  import threading
6
5
  import time
7
6
  import traceback
8
7
 
9
- import aiohttp
10
8
  import arrow
11
- import certifi
12
9
  import httpx
13
10
  import tenacity
14
11
  from tenacity import AsyncRetrying, Retrying, retry_if_not_exception_type
15
12
 
16
13
  import ofscraper.utils.auth.request as auth_requests
17
- import ofscraper.utils.config.data as data
18
14
  import ofscraper.utils.constants as constants
19
15
  from ofscraper.utils.auth.utils.warning.print import print_auth_warning
20
- import ofscraper.utils.settings as settings
21
- import ua_generator
16
+ # from httpx_curl_cffi import AsyncCurlTransport, CurlOpt
17
+ from httpx_aiohttp import AiohttpTransport
18
+ from aiohttp import ClientSession
19
+ import aiohttp
20
+
22
21
 
23
22
 
24
23
  TOO_MANY = "too_many"
@@ -27,7 +26,6 @@ FORCED_NEW = "get_new_sign"
27
26
  SIGN = "get_sign"
28
27
  COOKIES = "get_cookies_str"
29
28
  HEADERS = "create_header"
30
- AGENT=str(ua_generator.generate())
31
29
 
32
30
 
33
31
  def is_rate_limited(exception, sleeper):
@@ -52,6 +50,7 @@ def check_400(exception):
52
50
  time.sleep(8)
53
51
 
54
52
 
53
+
55
54
  def is_provided_exception_number(exception, *numbers):
56
55
  return (
57
56
  isinstance(exception, aiohttp.ClientResponseError)
@@ -70,7 +69,6 @@ def is_provided_exception_number(exception, *numbers):
70
69
  )
71
70
  )
72
71
 
73
-
74
72
  class SessionSleep:
75
73
  def __init__(self, sleep=None, difmin=None):
76
74
  self._sleep = None
@@ -164,7 +162,6 @@ class CustomTenacity(AsyncRetrying):
164
162
  class sessionManager:
165
163
  def __init__(
166
164
  self,
167
- backend=None,
168
165
  connect_timeout=None,
169
166
  total_timeout=None,
170
167
  read_timeout=None,
@@ -188,17 +185,15 @@ class sessionManager:
188
185
  ):
189
186
  connect_timeout = connect_timeout or constants.getattr("CONNECT_TIMEOUT")
190
187
  total_timeout = total_timeout or constants.getattr("TOTAL_TIMEOUT")
191
- read_timeout = read_timeout or constants.getattr("CHUNK_READ_TIMEOUT")
192
188
  pool_timeout = pool_timeout or constants.getattr("POOL_CONNECT_TIMEOUT")
193
189
  limit = limit or constants.getattr("MAX_CONNECTIONS")
194
190
  keep_alive = keep_alive or constants.getattr("KEEP_ALIVE")
195
191
  keep_alive_exp = keep_alive_exp or constants.getattr("KEEP_ALIVE_EXP")
196
192
  proxy = proxy or constants.getattr("PROXY")
197
193
  proxy_auth = proxy_auth or constants.getattr("PROXY_AUTH")
198
- self._backend = backend or data.get_backend()
199
194
  self._connect_timeout = connect_timeout
200
195
  self._total_timeout = total_timeout
201
- self._read_timeout = read_timeout
196
+ self._read_timeout=read_timeout
202
197
  self._pool_connect_timeout = pool_timeout
203
198
  self._connect_limit = limit
204
199
  self._keep_alive = keep_alive
@@ -226,36 +221,31 @@ class sessionManager:
226
221
  if self._session:
227
222
  return
228
223
  if async_:
229
- self._async = True
230
- if self._backend == "aio":
231
- self._session = aiohttp.ClientSession(
232
- connector=aiohttp.TCPConnector(limit=self._connect_limit),
233
- )
234
-
235
- elif self._backend == "httpx":
236
- self._session = httpx.AsyncClient(
237
- http2=True,
238
- proxies=self._proxy,
239
- limits=httpx.Limits(
240
- max_keepalive_connections=self._keep_alive,
241
- max_connections=self._connect_limit,
242
- keepalive_expiry=self._keep_alive_exp,
243
- ),
244
- )
224
+ self._session = httpx.AsyncClient(
225
+ http2=True,
226
+ proxy=self._proxy,
227
+ limits=httpx.Limits(
228
+ max_keepalive_connections=self._keep_alive,
229
+ max_connections=self._connect_limit,
230
+ keepalive_expiry=self._keep_alive_exp,
231
+ ),
232
+ transport=AiohttpTransport(
233
+ client=lambda: ClientSession( proxy=self._proxy,
234
+ connector=aiohttp.TCPConnector(limit=self._connect_limit)),
235
+ )
236
+
237
+ )
245
238
  else:
246
- self._async = False
247
- if self._backend == "httpx":
248
- self._session = httpx.Client(
249
- http2=True,
250
- proxies=self._proxy,
251
- limits=httpx.Limits(
252
- max_keepalive_connections=self._keep_alive,
253
- max_connections=self._connect_limit,
254
- keepalive_expiry=self._keep_alive_exp,
255
- ),
256
- )
257
- elif self._backend == "aio":
258
- raise Exception("aiohttp is async only")
239
+ self._session = httpx.Client(
240
+ http2=True,
241
+ proxy=self._proxy,
242
+ limits=httpx.Limits(
243
+ max_keepalive_connections=self._keep_alive,
244
+ max_connections=self._connect_limit,
245
+ keepalive_expiry=self._keep_alive_exp,
246
+ ),
247
+ )
248
+ self._async = async_
259
249
  return self._session
260
250
 
261
251
  # https://github.com/aio-libs/aiohttp/issues/1925
@@ -353,13 +343,7 @@ class sessionManager:
353
343
  ):
354
344
  headers = self._create_headers(
355
345
  headers, url, SIGN in actions, FORCED_NEW in actions
356
- )
357
- elif not headers or not "user-agent" in headers:
358
- headers=headers or {}
359
- headers.update({"user-agent":AGENT})
360
-
361
-
362
-
346
+ )
363
347
 
364
348
  cookies = self._create_cookies() if COOKIES in actions else None
365
349
  r = self._httpx_funct(
@@ -368,7 +352,7 @@ class sessionManager:
368
352
  total_timeout or self._total_timeout,
369
353
  connect=connect_timeout or self._connect_timeout,
370
354
  pool=pool_connect_timeout or self._pool_connect_timeout,
371
- read=read_timeout or self._read_timeout,
355
+ read=read_timeout or self._read_timeout
372
356
  ),
373
357
  url=url,
374
358
  follow_redirects=redirects,
@@ -450,9 +434,9 @@ class sessionManager:
450
434
  ),
451
435
  reraise=True,
452
436
  ):
437
+ await sem.acquire()
453
438
  with _:
454
439
  r = None
455
- await sem.acquire()
456
440
  try:
457
441
  await sleeper.async_do_sleep()
458
442
  if (
@@ -466,51 +450,28 @@ class sessionManager:
466
450
  )
467
451
 
468
452
  )
469
- elif not headers or not "user-agent" in headers:
470
- headers= headers or {}
471
- headers.update({"user-agent":AGENT})
472
-
453
+
473
454
 
474
455
  cookies = self._create_cookies() if COOKIES in actions else None
475
456
  json = json
476
457
  params = params
477
- if self._backend == "aio":
478
- r = await self._aio_funct(
479
- method,
480
- url,
481
- timeout=aiohttp.ClientTimeout(
482
- total=total_timeout or self._total_timeout,
483
- connect=connect_timeout or self._connect_timeout,
484
- sock_connect=pool_connect_timeout
485
- or self._pool_connect_timeout,
486
- sock_read=read_timeout or self._read_timeout,
487
- ),
488
- headers=headers,
489
- cookies=cookies,
490
- allow_redirects=redirects,
491
- proxy=self._proxy,
492
- params=params,
493
- json=json,
494
- data=data,
495
- ssl=False if not settings.get_settings().ssl_validation else ssl.create_default_context(cafile=certifi.where()),
496
- )
497
- else:
498
- r = await self._httpx_funct_async(
499
- method,
500
- timeout=httpx.Timeout(
501
- total_timeout or self._total_timeout,
502
- connect=connect_timeout or self._connect_timeout,
503
- pool=pool_connect_timeout or self._pool_connect_timeout,
504
- read=read_timeout or self._read_timeout,
505
- ),
506
- follow_redirects=redirects,
507
- url=url,
508
- cookies=cookies,
509
- headers=headers,
510
- json=json,
511
- params=params,
512
- data=data,
513
- )
458
+ r = await self._httpx_funct_async(
459
+ method,
460
+ timeout=httpx.Timeout(
461
+ total_timeout or self._total_timeout,
462
+ connect=connect_timeout or self._connect_timeout,
463
+ pool=pool_connect_timeout or self._pool_connect_timeout,
464
+ read=read_timeout or self._read_timeout
465
+
466
+ ),
467
+ follow_redirects=redirects,
468
+ url=url,
469
+ cookies=cookies,
470
+ headers=headers,
471
+ json=json,
472
+ params=params,
473
+ data=data,
474
+ )
514
475
  if r.status_code == 404:
515
476
  pass
516
477
  elif not r.ok:
@@ -532,6 +493,119 @@ class sessionManager:
532
493
  yield r
533
494
  sem.release()
534
495
 
496
+ @contextlib.asynccontextmanager
497
+ async def requests_async_stream(
498
+ self,
499
+ url=None,
500
+ wait_min=None,
501
+ wait_max=None,
502
+ wait_min_exponential=None,
503
+ wait_max_exponential=None,
504
+ retries=None,
505
+ method="get",
506
+ headers=None,
507
+ cookies=None,
508
+ json=None,
509
+ params=None,
510
+ redirects=True,
511
+ data=None,
512
+ log=None,
513
+ sem=None,
514
+ total_timeout=None,
515
+ connect_timeout=None,
516
+ pool_connect_timeout=None,
517
+ read_timeout=None,
518
+ sleeper=None,
519
+ exceptions=[],
520
+ actions=[],
521
+ *args,
522
+ **kwargs,
523
+ ):
524
+ wait_min = wait_min or self._wait_min
525
+ wait_max = wait_max or self._wait_max
526
+ wait_min_exponential = wait_min_exponential or self._wait_min_exponential
527
+ wait_max_exponential = wait_max_exponential or self._wait_max_exponential
528
+ log = log or self._log
529
+ retries = retries or self._retries
530
+ sem = sem or self._sem
531
+ sleeper = sleeper or self._sleeper
532
+ exceptions = exceptions or []
533
+ actions = actions or []
534
+ async for _ in CustomTenacity(
535
+ wait_exponential=tenacity.wait.wait_exponential(
536
+ multiplier=2, min=wait_min_exponential, max=wait_max_exponential
537
+ ),
538
+ retry=retry_if_not_exception_type((KeyboardInterrupt)),
539
+ wait_random=tenacity.wait_random(min=wait_min, max=wait_max),
540
+ stop=tenacity.stop.stop_after_attempt(retries),
541
+ before=lambda x: (
542
+ log.debug(f"[bold]attempt: {x.attempt_number}[bold] for {url}")
543
+ if x.attempt_number > 1
544
+ else None
545
+ ),
546
+ reraise=True,
547
+ ):
548
+ with _:
549
+ r = None
550
+ try:
551
+ await sem.acquire()
552
+ await sleeper.async_do_sleep()
553
+ if (
554
+ SIGN in actions
555
+ or FORCED_NEW in actions
556
+ or HEADERS in actions
557
+ ):
558
+ headers = (
559
+ self._create_headers(
560
+ headers, url, SIGN in actions, FORCED_NEW in actions
561
+ )
562
+
563
+ )
564
+
565
+
566
+ cookies = self._create_cookies() if COOKIES in actions else None
567
+ json = json
568
+ params = params
569
+ r = await self._httpx_funct_async_stream(
570
+ method,
571
+ timeout=httpx.Timeout(
572
+ total_timeout or self._total_timeout,
573
+ connect=connect_timeout or self._connect_timeout,
574
+ pool=pool_connect_timeout or self._pool_connect_timeout,
575
+ read=read_timeout or self._read_timeout
576
+ ),
577
+ follow_redirects=redirects,
578
+ url=url,
579
+ cookies=cookies,
580
+ headers=headers,
581
+ json=json,
582
+ params=params,
583
+ data=data,
584
+ )
585
+ if r.status_code == 404:
586
+ pass
587
+ elif not r.ok:
588
+ log.debug(f"[bold]failed: [bold] {r.url}")
589
+ log.debug(f"[bold]status: [bold] {r.status}")
590
+ log.debug(f"[bold]response text [/bold]: {await r.text_()}")
591
+ log.debug(f"response headers {dict(r.headers)}")
592
+ log.debug(f"requests headers mode{dict(r.request.headers)}")
593
+ r.raise_for_status()
594
+ yield r
595
+ except Exception as E:
596
+ # only call from sync req like "me"
597
+ # check_400(E)
598
+ log.traceback_(E)
599
+ log.traceback_(traceback.format_exc())
600
+ if TOO_MANY in exceptions:
601
+ await async_is_rate_limited(E, sleeper)
602
+ raise E
603
+ finally:
604
+ sem.release()
605
+ await r.aclose()
606
+
607
+
608
+
535
609
  @property
536
610
  def sleep(self):
537
611
  return self._sleeper._sleep
@@ -551,6 +625,27 @@ class sessionManager:
551
625
  t.read_ = t.aread
552
626
  t.request = t.request
553
627
  return t
628
+
629
+ async def _httpx_funct_async_stream(self, *args, **kwargs):
630
+ auth=kwargs.pop("auth",None)
631
+ follow_redirects=kwargs.pop("follow_redirects",None)
632
+ req=self._session.build_request(*args, **kwargs)
633
+ t = await self._session.send(
634
+ request=req,
635
+ follow_redirects=follow_redirects,
636
+ stream=True,
637
+ auth=auth,
638
+ )
639
+ t.ok = not t.is_error
640
+ t.json_ = lambda: self.factoryasync(t.json)
641
+ t.text_ = lambda: self.factoryasync(t.text)
642
+ t.status = t.status_code
643
+ t.iter_chunked = t.aiter_bytes
644
+ t.iter_chunks = t.aiter_bytes
645
+ t.read_ = t.aread
646
+ t.request = t.request
647
+ return t
648
+
554
649
 
555
650
  def _httpx_funct(self, method, **kwargs):
556
651
  t = self._session.request(method.upper(), **kwargs)
@@ -564,19 +659,6 @@ class sessionManager:
564
659
  t.read_ = t.read
565
660
  return t
566
661
 
567
- async def _aio_funct(self, method, *args, **kwargs):
568
- # public function forces context manager use
569
- r = await self._session._request(method, *args, **kwargs)
570
- r.text_ = r.text
571
- r.json_ = r.json
572
- r.iter_chunked = r.content.iter_chunked
573
- r.iter_chunks = r.content.iter_chunks
574
- r.request = r.request_info
575
- r.status_code = r.status
576
- r.read_ = r.content.read
577
- r.eof = r.content.at_eof
578
- return r
579
-
580
662
  async def factoryasync(self, input):
581
663
  if callable(input):
582
664
  return input()
@@ -247,7 +247,7 @@ async def post_check_retriver():
247
247
  user_dict = {}
248
248
  links = list(url_helper())
249
249
  async with manager.Manager.aget_ofsession(
250
- backend="httpx",
250
+
251
251
  sem_count=constants.getattr("API_REQ_CHECK_MAX"),
252
252
  ) as c:
253
253
  for ele in links:
@@ -446,7 +446,7 @@ async def message_checker_runner():
446
446
  async def message_check_retriver():
447
447
  links = list(url_helper())
448
448
  async with manager.Manager.aget_ofsession(
449
- backend="httpx",
449
+
450
450
  ) as c:
451
451
  for item in links:
452
452
  num_match = re.search(
@@ -523,7 +523,7 @@ async def purchase_check_retriver():
523
523
  user_dict = {}
524
524
  auth_requests.make_headers()
525
525
  async with manager.Manager.aget_ofsession(
526
- backend="httpx",
526
+
527
527
  sem_count=constants.getattr("API_REQ_CHECK_MAX"),
528
528
  ) as c:
529
529
  for name in settings.get_settings().check_usernames:
@@ -578,7 +578,7 @@ async def stories_checker_runner():
578
578
  async def stories_check_retriver():
579
579
  user_dict = {}
580
580
  async with manager.Manager.aget_ofsession(
581
- backend="httpx",
581
+
582
582
  sem_count=constants.getattr("API_REQ_CHECK_MAX"),
583
583
  ) as c:
584
584
  for user_name in settings.get_settings().check_usernames:
@@ -662,7 +662,7 @@ async def get_paid_ids(model_id, user_name):
662
662
  paid = oldpaid
663
663
  else:
664
664
  async with manager.Manager.aget_ofsession(
665
- backend="httpx", sem_count=constants.getattr("API_REQ_CHECK_MAX")
665
+ sem_count=constants.getattr("API_REQ_CHECK_MAX")
666
666
  ) as c:
667
667
  paid = await paid_.get_paid_posts(model_id, user_name, c=c)
668
668
  set_check(paid, model_id, paid_.API)
@@ -239,7 +239,7 @@ async def paid_failback(post_id, model_id, username):
239
239
  )
240
240
  post_id = str(post_id)
241
241
  async with manager.Manager.aget_ofsession(
242
- backend="httpx",
242
+
243
243
  sem_count=constants.getattr("API_REQ_CHECK_MAX"),
244
244
  ) as c:
245
245
  data = await paid.get_paid_posts(username, model_id, c=c) or []
@@ -48,7 +48,6 @@ import ofscraper.utils.context.exit as exit
48
48
  from ofscraper.classes.sessionmanager.download import download_session
49
49
  from ofscraper.commands.scraper.actions.utils.log import final_log, final_log_text
50
50
  from ofscraper.commands.scraper.actions.utils.paths.paths import setDirectoriesDate
51
- from ofscraper.commands.scraper.actions.utils.buffer import download_log_clear_helper
52
51
 
53
52
  from ofscraper.commands.scraper.actions.utils.workers import get_max_workers
54
53
  from ofscraper.utils.context.run_async import run
@@ -192,7 +191,7 @@ class metadataCommandManager(commmandManager):
192
191
  and avatar
193
192
  and settings.get_settings().userfirst
194
193
  ):
195
- logging.getLogger("shared_other").warning(
194
+ logging.getLogger("shared").warning(
196
195
  avatar_str.format(avatar=avatar)
197
196
  )
198
197
  data.extend(
@@ -294,7 +293,6 @@ def metadata():
294
293
 
295
294
  @run
296
295
  async def process_dicts(username, model_id, medialist):
297
- download_log_clear_helper()
298
296
  task1 = None
299
297
  with progress_utils.setup_metadata_progress_live():
300
298
  common_globals.mainProcessVariableInit()
@@ -337,7 +335,6 @@ async def process_dicts(username, model_id, medialist):
337
335
  common_globals.thread.shutdown()
338
336
 
339
337
  setDirectoriesDate()
340
- download_log_clear_helper()
341
338
  progress_updater.remove_metadata_task(task1)
342
339
  final_log(username)
343
340
  return final_log_text(username)
@@ -22,7 +22,6 @@ from ofscraper.classes.sessionmanager.download import download_session
22
22
  from ofscraper.commands.scraper.actions.utils.log import final_log, final_log_text
23
23
 
24
24
  from ofscraper.commands.scraper.actions.utils.paths.paths import setDirectoriesDate
25
- from ofscraper.commands.scraper.actions.utils.buffer import download_log_clear_helper
26
25
 
27
26
  from ofscraper.commands.scraper.actions.utils.workers import get_max_workers
28
27
  from ofscraper.utils.context.run_async import run
@@ -45,7 +44,7 @@ async def downloader(username=None, model_id=None, posts=None, media=None, **kwa
45
44
  )
46
45
 
47
46
  progress_updater.update_activity_task(description=download_str + path_str)
48
- logging.getLogger("shared_other").warning(
47
+ logging.getLogger("shared").warning(
49
48
  download_activity_str.format(username=username)
50
49
  )
51
50
  progress_updater.update_activity_task(description="")
@@ -71,7 +70,6 @@ async def download_model_deleted_process(
71
70
  @run
72
71
  async def process_dicts(username, model_id, medialist, posts):
73
72
  log_text_array = []
74
- download_log_clear_helper()
75
73
  log_text_array.append(await textDownloader(posts, username=username))
76
74
  logging.getLogger("shared").info("Downloading in single thread mode")
77
75
  common_globals.mainProcessVariableInit()
@@ -103,7 +101,6 @@ async def process_dicts(username, model_id, medialist, posts):
103
101
  try:
104
102
 
105
103
  aws = []
106
-
107
104
  async with download_session() as c:
108
105
  for ele in medialist:
109
106
  aws.append((c, ele, model_id, username))
@@ -139,7 +136,6 @@ async def process_dicts(username, model_id, medialist, posts):
139
136
  common_globals.thread.shutdown()
140
137
 
141
138
  setDirectoriesDate()
142
- download_log_clear_helper()
143
139
  final_log(username, log=logging.getLogger("shared"))
144
140
  progress_updater.remove_download_task(task1)
145
141
  log_text_array.append(final_log_text(username))