ofscraper 3.10.dev5__tar.gz → 3.10.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 (255) hide show
  1. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/PKG-INFO +1 -1
  2. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/check.py +4 -4
  3. ofscraper-3.10.dev6/ofscraper/commands/helpers/data.py +39 -0
  4. ofscraper-3.10.dev6/ofscraper/commands/helpers/final_log.py +14 -0
  5. ofscraper-3.10.dev6/ofscraper/commands/helpers/normal.py +52 -0
  6. ofscraper-3.10.dev6/ofscraper/commands/helpers/scrape_paid.py +69 -0
  7. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/helpers/shared.py +5 -0
  8. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/helpers/strings.py +11 -2
  9. ofscraper-3.10.dev5/ofscraper/commands/helpers/context.py → ofscraper-3.10.dev6/ofscraper/commands/helpers/user_first.py +4 -74
  10. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/metadata.py +57 -94
  11. ofscraper-3.10.dev6/ofscraper/commands/scraper/actions/download.py +61 -0
  12. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/actions/like.py +38 -9
  13. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/post.py +1 -0
  14. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/runner.py +30 -20
  15. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/general.py +1 -0
  16. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/alt_download.py +9 -8
  17. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/alt_downloadbatch.py +11 -5
  18. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/main_download.py +7 -8
  19. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/main_downloadbatch.py +8 -5
  20. ofscraper-3.10.dev6/ofscraper/download/shared/common/alt_common.py +23 -0
  21. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/common/general.py +1 -0
  22. ofscraper-3.10.dev5/ofscraper/download/shared/common/alt_common.py → ofscraper-3.10.dev6/ofscraper/download/shared/common/handle_result.py +49 -24
  23. ofscraper-3.10.dev6/ofscraper/download/shared/common/send_bar_msg.py +50 -0
  24. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/log.py +28 -9
  25. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/model.py +6 -6
  26. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/runner/run.py +1 -1
  27. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/live/empty.py +4 -2
  28. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/live/live.py +5 -0
  29. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/pyproject.toml +1 -1
  30. ofscraper-3.10.dev5/ofscraper/commands/scraper/actions/download.py +0 -80
  31. ofscraper-3.10.dev5/ofscraper/download/shared/common/main_common.py +0 -53
  32. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/LICENSE +0 -0
  33. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/README.md +0 -0
  34. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/__main__.py +0 -0
  35. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/__version__.py +0 -0
  36. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/__version__.pye +0 -0
  37. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/archive.py +0 -0
  38. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/common/logs.py +0 -0
  39. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/highlights.py +0 -0
  40. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/init.py +0 -0
  41. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/labels.py +0 -0
  42. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/me.py +0 -0
  43. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/messages.py +0 -0
  44. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/paid.py +0 -0
  45. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/pinned.py +0 -0
  46. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/profile.py +0 -0
  47. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/subscriptions/helpers.py +0 -0
  48. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/subscriptions/individual.py +0 -0
  49. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/subscriptions/lists.py +0 -0
  50. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/subscriptions/subscriptions.py +0 -0
  51. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/api/timeline.py +0 -0
  52. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/base.py +0 -0
  53. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/labels.py +0 -0
  54. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/media.py +0 -0
  55. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/models.py +0 -0
  56. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/multiprocessprogress.py +0 -0
  57. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/placeholder.py +0 -0
  58. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/posts.py +0 -0
  59. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/sessionmanager.py +0 -0
  60. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/button.py +0 -0
  61. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/boolfield.py +0 -0
  62. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/datefield.py +0 -0
  63. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/mediafield.py +0 -0
  64. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/numfield.py +0 -0
  65. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/pricefield.py +0 -0
  66. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/responsefield.py +0 -0
  67. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/selectfield.py +0 -0
  68. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/textsearch.py +0 -0
  69. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/timefield.py +0 -0
  70. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/inputs/filterinput.py +0 -0
  71. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/inputs/intergerinput.py +0 -0
  72. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/inputs/strinput.py +0 -0
  73. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/row_names.py +0 -0
  74. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/status.py +0 -0
  75. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/table.py +0 -0
  76. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/classes/table/table_console.py +0 -0
  77. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/helpers/picker.py +0 -0
  78. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/manual.py +0 -0
  79. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/scrape_context.py +0 -0
  80. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/scraper.py +0 -0
  81. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/constants.py +0 -0
  82. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/binary.py +0 -0
  83. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/config.py +0 -0
  84. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/date.py +0 -0
  85. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/download.py +0 -0
  86. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/files.py +0 -0
  87. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/like.py +0 -0
  88. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/live.py +0 -0
  89. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/logger.py +0 -0
  90. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/metadata.py +0 -0
  91. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/other_url.py +0 -0
  92. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/path.py +0 -0
  93. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/prompts.py +0 -0
  94. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/req.py +0 -0
  95. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/table.py +0 -0
  96. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/test_constants.py +0 -0
  97. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/time.py +0 -0
  98. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/const/values/url.py +0 -0
  99. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/__init__.py +0 -0
  100. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations.py +0 -0
  101. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/helpers.py +0 -0
  102. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/labels.py +0 -0
  103. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/media.py +0 -0
  104. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/merge.py +0 -0
  105. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/messages.py +0 -0
  106. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/others.py +0 -0
  107. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/posts.py +0 -0
  108. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/profile.py +0 -0
  109. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/stories.py +0 -0
  110. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/db/operations_/wrapper.py +0 -0
  111. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/download.py +0 -0
  112. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/downloadbatch.py +0 -0
  113. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/downloadnormal.py +0 -0
  114. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/classes/retries.py +0 -0
  115. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/classes/session.py +0 -0
  116. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/globals.py +0 -0
  117. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/keyhelpers.py +0 -0
  118. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/media.py +0 -0
  119. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/message.py +0 -0
  120. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/metadata.py +0 -0
  121. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/paths.py +0 -0
  122. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/progress.py +0 -0
  123. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/text.py +0 -0
  124. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/media/helpers.py +0 -0
  125. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/media/main.py +0 -0
  126. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/models/date.py +0 -0
  127. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/models/flags.py +0 -0
  128. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/models/helpers.py +0 -0
  129. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/models/other.py +0 -0
  130. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/models/price.py +0 -0
  131. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/models/sort.py +0 -0
  132. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/filters/models/subtype.py +0 -0
  133. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/models/retriver.py +0 -0
  134. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/models/selector.py +0 -0
  135. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/helpers/model_helpers.py +0 -0
  136. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/helpers/prompt_helpers.py +0 -0
  137. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/keybindings.py +0 -0
  138. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/promptConvert.py +0 -0
  139. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/actions.py +0 -0
  140. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/area.py +0 -0
  141. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/auth.py +0 -0
  142. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/binary.py +0 -0
  143. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/config.py +0 -0
  144. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/menu.py +0 -0
  145. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/merge.py +0 -0
  146. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/profile.py +0 -0
  147. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_strings.py +0 -0
  148. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_validators.py +0 -0
  149. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/prompts/prompts.py +0 -0
  150. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/runner/exit.py +0 -0
  151. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/runner/load.py +0 -0
  152. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/__init__.py +0 -0
  153. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/actions.py +0 -0
  154. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/advanced_processing.py +0 -0
  155. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/advanced_program.py +0 -0
  156. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/advanced_user_filter.py +0 -0
  157. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/automatic.py +0 -0
  158. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/content.py +0 -0
  159. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/download.py +0 -0
  160. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/file.py +0 -0
  161. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/logging.py +0 -0
  162. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/media_type.py +0 -0
  163. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/program.py +0 -0
  164. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/user_list.py +0 -0
  165. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/user_select.py +0 -0
  166. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/user_sort.py +0 -0
  167. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/advanced_common.py +0 -0
  168. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/common.py +0 -0
  169. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/main.py +0 -0
  170. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/manual.py +0 -0
  171. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/message_check.py +0 -0
  172. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/metadata.py +0 -0
  173. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/paid_check.py +0 -0
  174. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/post_check.py +0 -0
  175. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/story_check.py +0 -0
  176. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/main.py +0 -0
  177. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/manual.py +0 -0
  178. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/message.py +0 -0
  179. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/metadata.py +0 -0
  180. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/paid.py +0 -0
  181. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/post.py +0 -0
  182. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/story.py +0 -0
  183. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/globals.py +0 -0
  184. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/groups/common_args.py +0 -0
  185. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/areas.py +0 -0
  186. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/before.py +0 -0
  187. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/check.py +0 -0
  188. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/date.py +0 -0
  189. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/type.py +0 -0
  190. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/output.py +0 -0
  191. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/parse.py +0 -0
  192. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/quality.py +0 -0
  193. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/read.py +0 -0
  194. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/user.py +0 -0
  195. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/args/write.py +0 -0
  196. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/auth/context.py +0 -0
  197. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/auth/data.py +0 -0
  198. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/auth/file.py +0 -0
  199. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/auth/helpers.py +0 -0
  200. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/auth/make.py +0 -0
  201. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/auth/request.py +0 -0
  202. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/auth/schema.py +0 -0
  203. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/binaries.py +0 -0
  204. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/cache.py +0 -0
  205. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/checkers.py +0 -0
  206. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/config/config.py +0 -0
  207. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/config/context.py +0 -0
  208. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/config/custom.py +0 -0
  209. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/config/data.py +0 -0
  210. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/config/file.py +0 -0
  211. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/config/menu.py +0 -0
  212. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/config/schema.py +0 -0
  213. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/config/wrapper.py +0 -0
  214. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/console.py +0 -0
  215. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/constants.py +0 -0
  216. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/context/exit.py +0 -0
  217. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/context/run_async.py +0 -0
  218. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/context/stdout.py +0 -0
  219. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/dates.py +0 -0
  220. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/encoding.py +0 -0
  221. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/hash.py +0 -0
  222. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/live/groups.py +0 -0
  223. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/live/panel.py +0 -0
  224. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/live/progress.py +0 -0
  225. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/live/screens.py +0 -0
  226. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/live/tasks.py +0 -0
  227. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/live/updater.py +0 -0
  228. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/classes.py +0 -0
  229. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/close.py +0 -0
  230. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/globals.py +0 -0
  231. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/handle.py +0 -0
  232. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/helpers.py +0 -0
  233. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/logger.py +0 -0
  234. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/logs.py +0 -0
  235. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/other.py +0 -0
  236. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/logs/stdout.py +0 -0
  237. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/manager.py +0 -0
  238. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/me.py +0 -0
  239. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/menu.py +0 -0
  240. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/merge.py +0 -0
  241. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/paths/check.py +0 -0
  242. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/paths/common.py +0 -0
  243. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/paths/manage.py +0 -0
  244. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/paths/paths.py +0 -0
  245. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/profiles/data.py +0 -0
  246. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/profiles/manage.py +0 -0
  247. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/profiles/tools.py +0 -0
  248. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/run.py +0 -0
  249. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/sems.py +0 -0
  250. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/separate.py +0 -0
  251. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/settings.py +0 -0
  252. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/system/free.py +0 -0
  253. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/system/network.py +0 -0
  254. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/system/system.py +0 -0
  255. {ofscraper-3.10.dev5 → ofscraper-3.10.dev6}/ofscraper/utils/text.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ofscraper
3
- Version: 3.10.dev5
3
+ Version: 3.10.dev6
4
4
  Summary: automatically scrape onlyfans
5
5
  Author: datawhores
6
6
  Author-email: datawhores@riseup.net
@@ -161,7 +161,7 @@ def post_checker():
161
161
  @run
162
162
  async def post_check_runner():
163
163
  async for user_name, model_id, final_post_array in post_check_retriver():
164
- with progress_utils.setup_api_split_progress_live(stop=True):
164
+ with progress_utils.setup_api_split_progress_live(revert=True):
165
165
  progress_utils.update_activity_task(
166
166
  description=check_str.format(
167
167
  username=user_name, activity="Timeline posts"
@@ -331,7 +331,7 @@ def message_checker():
331
331
  @run
332
332
  async def message_checker_runner():
333
333
  async for user_name, model_id, final_post_array in message_check_retriver():
334
- with progress_utils.setup_api_split_progress_live(stop=True):
334
+ with progress_utils.setup_api_split_progress_live(revert=True):
335
335
  progress_utils.update_activity_task(
336
336
  description=check_str.format(username=user_name, activity="Messages")
337
337
  )
@@ -418,7 +418,7 @@ def purchase_checker():
418
418
  @run
419
419
  async def purchase_checker_runner():
420
420
  async for user_name, model_id, final_post_array in purchase_check_retriver():
421
- with progress_utils.setup_api_split_progress_live(stop=True):
421
+ with progress_utils.setup_api_split_progress_live(revert=True):
422
422
  progress_utils.update_activity_task(
423
423
  description=check_str.format(
424
424
  username=user_name, activity="Purchased posts"
@@ -482,7 +482,7 @@ def stories_checker():
482
482
  @run
483
483
  async def stories_checker_runner():
484
484
  async for user_name, model_id, final_post_array in stories_check_retriver():
485
- with progress_utils.setup_api_split_progress_live(stop=True):
485
+ with progress_utils.setup_api_split_progress_live(revert=True):
486
486
  progress_utils.update_activity_task(
487
487
  description=check_str.format(
488
488
  username=user_name, activity="Stories posts"
@@ -0,0 +1,39 @@
1
+
2
+ import logging
3
+
4
+ import ofscraper.models.selector as selector
5
+ import ofscraper.utils.args.helpers.areas as areas
6
+ import ofscraper.utils.constants as constants
7
+ import ofscraper.utils.live.screens as progress_utils
8
+ from ofscraper.commands.scraper.post import post_media_process
9
+
10
+ from ofscraper.commands.helpers.strings import (
11
+ area_str,
12
+ avatar_str,
13
+ data_str,
14
+ progress_str,
15
+ )
16
+ log = logging.getLogger("shared")
17
+ def data_helper(user):
18
+ avatar = user.avatar
19
+ username = user.name
20
+ active = user.active
21
+ final_post_areas = areas.get_final_posts_area()
22
+ length = selector.get_num_selected()
23
+ count = progress_utils.get_user_task_obj().completed
24
+
25
+
26
+ logging.getLogger("shared_other").warning(
27
+ progress_str.format(count=count + 1, length=length)
28
+ )
29
+ logging.getLogger("shared_other").warning(data_str.format(name=username))
30
+ if constants.getattr("SHOW_AVATAR") and avatar:
31
+ logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
32
+ progress_utils.update_activity_task(
33
+ description=area_str.format(
34
+ areas=",".join(final_post_areas), name=username, active=active
35
+ )
36
+ )
37
+ logging.getLogger("shared_other").info(
38
+ area_str.format(areas=",".join(final_post_areas), name=username, active=active)
39
+ )
@@ -0,0 +1,14 @@
1
+ import logging
2
+ import time
3
+ import ofscraper.utils.constants as constants
4
+
5
+ def final_log(data):
6
+ log = logging.getLogger("shared")
7
+ if len(data)<3:
8
+ return
9
+ elif constants.getattr("SHOW_RESULTS_LOG"):
10
+ log.warning("[bold yellow]Final Results Logs[/bold yellow]")
11
+ for record in data:
12
+ log.warning(record)
13
+ #give time for last long to process
14
+ time.sleep(3)
@@ -0,0 +1,52 @@
1
+ import logging
2
+ import traceback
3
+
4
+
5
+ import ofscraper.utils.args.read as read_args
6
+ import ofscraper.utils.constants as constants
7
+ import ofscraper.utils.live.screens as progress_utils
8
+ from ofscraper.commands.scraper.post import post_media_process
9
+
10
+ from ofscraper.commands.helpers.strings import (
11
+ avatar_str,
12
+ )
13
+ log = logging.getLogger("shared")
14
+ from ofscraper.commands.helpers.data import data_helper
15
+
16
+
17
+ def get_user_action_function(func):
18
+ async def wrapper(userdata,session,*args, **kwargs):
19
+ async with session as c:
20
+ data=["[bold yellow]Normal Mode Results[/bold yellow]"]
21
+ for ele in userdata:
22
+ try:
23
+ with progress_utils.setup_api_split_progress_live():
24
+ data_helper(ele)
25
+ all_media, posts, like_posts = await post_media_process(ele, c=c)
26
+ with progress_utils.setup_activity_group_live(revert=False):
27
+ avatar = ele.avatar
28
+ if (
29
+ constants.getattr("SHOW_AVATAR")
30
+ and avatar
31
+ and read_args.retriveArgs ().userfirst
32
+ ):
33
+ logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
34
+ data.extend(await func(media=all_media, posts=posts, like_posts=like_posts,ele=ele))
35
+ except Exception as e:
36
+
37
+ log.traceback_(f"failed with exception: {e}")
38
+ log.traceback_(traceback.format_exc())
39
+
40
+ if isinstance(e, KeyboardInterrupt):
41
+ raise e
42
+ finally:
43
+ progress_utils.increment_user_activity()
44
+ return data
45
+ return wrapper
46
+
47
+
48
+
49
+
50
+
51
+
52
+
@@ -0,0 +1,69 @@
1
+ import logging
2
+
3
+ import ofscraper.api.profile as profile
4
+ import ofscraper.classes.models as models
5
+ import ofscraper.commands.scraper.post as OF
6
+ import ofscraper.download.download as download
7
+ import ofscraper.models.selector as userselector
8
+ import ofscraper.utils.live.screens as progress_utils
9
+ from ofscraper.commands.helpers.strings import all_paid_download_str,metadata_activity_str, all_paid_progress_metadata_str
10
+
11
+ from ofscraper.utils.context.run_async import run
12
+
13
+ log = logging.getLogger("shared")
14
+
15
+ @run
16
+ async def process_scrape_paid():
17
+ progress_utils.update_activity_task(
18
+ description="Scraping Entire Paid page"
19
+ )
20
+ with progress_utils.setup_all_paid_database_live():
21
+ async for ele in process_paid_dict():
22
+ yield ele
23
+
24
+
25
+ async def process_paid_dict():
26
+ user_dict = await OF.process_all_paid()
27
+ length = len(list(user_dict.keys()))
28
+ progress_utils.update_activity_count(totat=length, completed=0)
29
+
30
+
31
+ for count, value in enumerate(user_dict.values()):
32
+ yield count,value,length
33
+
34
+
35
+
36
+ def process_user_info_printer(value,length,count,all_paid_activity=None,all_paid_update=None,log_progress=None):
37
+ model_id = value["model_id"]
38
+ username = value["username"]
39
+
40
+ all_paid_update=all_paid_update or all_paid_download_str
41
+ all_paid_activity=all_paid_activity or metadata_activity_str
42
+ log_progress=log_progress or all_paid_progress_metadata_str
43
+
44
+ progress_utils.update_activity_count(
45
+ totat=length,
46
+ description=all_paid_update.format(username=username),
47
+ )
48
+ progress_utils.update_activity_task(
49
+ description=(all_paid_activity.format(username=username,model_id=model_id,count=count+1,length=length)
50
+ ))
51
+ logging.getLogger("shared_other").warning(
52
+ log_progress.format(username=username,model_id=model_id,count=count+1,length=length)
53
+ )
54
+
55
+ async def process_user(value,length):
56
+ model_id = value["model_id"]
57
+ username = value["username"]
58
+ posts = value["posts"]
59
+ medias = value["medias"]
60
+
61
+ userselector.set_ALL_SUBS_DICTVManger(
62
+ {
63
+ username: models.Model(
64
+ profile.scrape_profile(model_id, refresh=False)
65
+ )
66
+ }
67
+ )
68
+ progress_utils.increment_activity_count(total=length)
69
+ return (await download.download_process(username, model_id, medias, posts=posts))
@@ -3,3 +3,8 @@ import ofscraper.utils.args.read as read_args
3
3
 
4
4
  def run_action_bool():
5
5
  return len(read_args.retriveArgs().action) > 0
6
+
7
+
8
+
9
+ def run_metadata_bool():
10
+ return read_args.retriveArgs().metadata
@@ -4,9 +4,18 @@ avatar_str = "Avatar : {avatar}"
4
4
  area_str = "Getting \[[bold blue]{areas}[/bold blue]] for [bold]{name}[/bold]\n[bold]Subscription Active:[/bold] {active}"
5
5
  all_paid_model_id_str = "getting username data for {model_id}"
6
6
  all_paid_str = "Creating databases for {username}"
7
- download_str = "Performing Downloading Action on {name}"
7
+ download_activity_str = "Performing Downloading Action on {username}"
8
8
  all_paid_download_str = "Users With paid content downloaded"
9
- metadata_str = "Updating Metadata for {username}"
9
+ all_paid_metadata_str = "Users With metadata updated downloaded"
10
+
11
+ metadata_activity_str = "Updating Metadata for {username}"
12
+
10
13
  post_str_manual = "Manual Mode: Getting media from {url}"
11
14
  download_manual_str = "Downloading individual media for {username}"
12
15
  check_str = "Checking {activity} for {username}"
16
+
17
+ all_paid_progress_download_str="[{model_id}_{username}] Downloading Progress :{count}/{length} models"
18
+
19
+ all_paid_progress_metadata_str="[{model_id}_{username}] Metadata Update Progress :{count}/{length} models"
20
+
21
+ mark_stray_str="Marking Stray Items for {username} as downloaded"
@@ -1,63 +1,17 @@
1
1
  import logging
2
2
  import traceback
3
- from itertools import chain
4
3
 
5
4
 
6
-
7
- import ofscraper.models.selector as selector
8
- import ofscraper.utils.args.helpers.areas as areas
9
5
  import ofscraper.utils.args.read as read_args
10
6
  import ofscraper.utils.constants as constants
11
7
  import ofscraper.utils.live.screens as progress_utils
12
8
  from ofscraper.commands.scraper.post import post_media_process
13
9
 
14
10
  from ofscraper.commands.helpers.strings import (
15
- area_str,
16
11
  avatar_str,
17
- data_str,
18
- progress_str,
19
12
  )
20
13
  log = logging.getLogger("shared")
21
-
22
-
23
- def get_user_action_function(func):
24
- async def wrapper(userdata,session,*args, **kwargs):
25
- async with session as c:
26
- data=[]
27
- for ele in userdata:
28
- try:
29
- with progress_utils.setup_api_split_progress_live():
30
- all_media, posts, like_posts = await post_media_process(ele, c=c)
31
- with progress_utils.setup_activity_counter_live(revert=False):
32
- avatar = ele.avatar
33
- if (
34
- constants.getattr("SHOW_AVATAR")
35
- and avatar
36
- and read_args.retriveArgs ().userfirst
37
- ):
38
- logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
39
- data_helper(ele)
40
- data.append(await func(all_media, posts, like_posts,ele=ele))
41
- except Exception as e:
42
-
43
- log.traceback_(f"failed with exception: {e}")
44
- log.traceback_(traceback.format_exc())
45
-
46
- if isinstance(e, KeyboardInterrupt):
47
- raise e
48
- finally:
49
- progress_utils.increment_user_activity()
50
- records=list(chain.from_iterable(data))
51
-
52
- if len(records)<2:
53
- return
54
- for record in records:
55
- log.warning(record)
56
-
57
- return wrapper
58
-
59
-
60
-
14
+ from ofscraper.commands.helpers.data import data_helper
61
15
 
62
16
  def get_userfirst_data_function(funct):
63
17
  async def wrapper(userdata, session, *args, **kwargs):
@@ -86,6 +40,7 @@ def get_userfirst_data_function(funct):
86
40
 
87
41
  def get_userfirst_action_execution_function(funct):
88
42
  async def wrapper(data,*args, **kwargs):
43
+ out=["[bold yellow]User First Results[/bold yellow]"]
89
44
  progress_utils.increment_activity_count(total=2)
90
45
  try:
91
46
  progress_utils.update_user_activity(total=len(data.items()))
@@ -103,7 +58,7 @@ def get_userfirst_action_execution_function(funct):
103
58
  logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
104
59
  try:
105
60
  with progress_utils.setup_activity_counter_live(revert=False):
106
- await funct(all_media, posts, like_posts,*args, ele=ele,**kwargs)
61
+ out.extend(await funct(posts, like_posts,*args,media=all_media, ele=ele,**kwargs))
107
62
  except Exception as e:
108
63
  log.traceback_(f"failed with exception: {e}")
109
64
  log.traceback_(traceback.format_exc())
@@ -118,31 +73,6 @@ def get_userfirst_action_execution_function(funct):
118
73
  raise e
119
74
  finally:
120
75
  progress_utils.increment_activity_count(description="Overall progress", total=2)
121
-
76
+ return out
122
77
  return wrapper
123
78
 
124
-
125
-
126
- def data_helper(user):
127
- avatar = user.avatar
128
- username = user.name
129
- active = user.active
130
- final_post_areas = areas.get_final_posts_area()
131
- length = selector.get_num_selected()
132
- count = progress_utils.get_user_task_obj().completed
133
-
134
-
135
- logging.getLogger("shared_other").warning(
136
- progress_str.format(count=count + 1, length=length)
137
- )
138
- logging.getLogger("shared_other").warning(data_str.format(name=username))
139
- if constants.getattr("SHOW_AVATAR") and avatar:
140
- logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
141
- progress_utils.update_activity_task(
142
- description=area_str.format(
143
- areas=",".join(final_post_areas), name=username, active=active
144
- )
145
- )
146
- logging.getLogger("shared_other").info(
147
- area_str.format(areas=",".join(final_post_areas), name=username, active=active)
148
- )
@@ -10,7 +10,6 @@
10
10
  (_______)|/ \_______)(_______/|/ \__/|/ \||/ (_______/|/ \__/
11
11
 
12
12
  """
13
-
14
13
  import copy
15
14
  import logging
16
15
  import traceback
@@ -18,8 +17,6 @@ import traceback
18
17
  import arrow
19
18
 
20
19
  import ofscraper.api.init as init
21
- import ofscraper.api.profile as profile
22
- import ofscraper.classes.models as models
23
20
  import ofscraper.classes.sessionmanager as sessionManager
24
21
  import ofscraper.db.operations as operations
25
22
  import ofscraper.download.download as download
@@ -31,14 +28,17 @@ import ofscraper.utils.constants as constants
31
28
  import ofscraper.utils.live.screens as progress_utils
32
29
  import ofscraper.utils.profiles.tools as profile_tools
33
30
  from ofscraper.__version__ import __version__
34
- from ofscraper.commands.helpers.context import (
31
+ from ofscraper.commands.helpers.normal import (
35
32
  get_user_action_function,
33
+ )
34
+ from ofscraper.commands.helpers.user_first import (
36
35
  get_userfirst_action_execution_function,
37
36
  get_userfirst_data_function,
38
37
  )
39
- from ofscraper.commands.helpers.shared import run_action_bool
40
- from ofscraper.commands.helpers.strings import avatar_str, metadata_str
41
- from ofscraper.commands.scraper.post import process_all_paid, process_areas_helper
38
+ from ofscraper.commands.helpers.shared import run_metadata_bool
39
+ from ofscraper.commands.helpers.strings import metadata_activity_str,mark_stray_str,all_paid_metadata_str,all_paid_progress_metadata_str
40
+
41
+ from ofscraper.commands.scraper.post import process_areas_helper
42
42
  from ofscraper.commands.scraper.scrape_context import scrape_context_manager
43
43
  from ofscraper.db.operations_.media import (
44
44
  batch_set_media_downloaded,
@@ -47,30 +47,35 @@ from ofscraper.db.operations_.media import (
47
47
  get_timeline_media,
48
48
  )
49
49
  from ofscraper.utils.context.run_async import run
50
-
50
+ from ofscraper.commands.helpers.final_log import final_log
51
+ from ofscraper.commands.helpers.scrape_paid import process_scrape_paid,process_user_info_printer,process_user
51
52
  log = logging.getLogger("shared")
52
53
 
53
54
 
54
55
  def metadata():
55
- with progress_utils.setup_activity_progress_live(stop=True):
56
+ with progress_utils.setup_activity_progress_live(revert=True):
57
+ scrape_paid_data=[]
58
+ userfirst_data=[]
59
+ normal_data=[]
56
60
  if read_args.retriveArgs().scrape_paid:
57
- metadata_paid_all()
58
- if not run_action_bool():
59
- return
60
- userdata, session = prepare()
61
- if not read_args.retriveArgs().users_first:
62
- process_users_metadata_normal(userdata, session)
61
+ scrape_paid_data=metadata_paid_all()
62
+ if not run_metadata_bool():
63
+ pass
64
+
65
+ elif not read_args.retriveArgs().users_first:
66
+ userdata, session = prepare()
67
+ normal_data=process_users_metadata_normal(userdata, session)
63
68
  else:
64
- metadata_user_first(userdata, session)
69
+ userdata, session = prepare()
70
+ userfirst_data=metadata_user_first(userdata, session)
71
+ final_log(normal_data+scrape_paid_data+userfirst_data)
65
72
 
66
73
 
67
74
  @run
68
75
  async def process_users_metadata_normal(userdata, session):
69
- user_action_funct = get_user_action_function(process_metadata_for_user)
70
- progress_utils.update_activity_count(description="Users with Updated Metadata")
71
- async with session:
72
- for ele in userdata:
73
- await user_action_funct(user=ele, session=session)
76
+ user_action_funct = get_user_action_function(execute_metadata_action_on_user)
77
+ progress_utils.update_user_activity(description="Users with Updated Metadata")
78
+ return await user_action_funct(userdata, session)
74
79
 
75
80
 
76
81
  @run
@@ -78,43 +83,38 @@ async def metadata_user_first(userdata, session):
78
83
  data = await get_userfirst_data_function(metadata_data_user_first)(
79
84
  userdata, session
80
85
  )
86
+ progress_utils.update_activity_task(description="Changing Metadata for Users")
87
+ progress_utils.update_user_activity(
88
+ description="Users with Metadata Changed", completed=0
89
+ )
81
90
 
82
- await get_userfirst_action_execution_function(execute_metadata_action_user_first)(
91
+ return await get_userfirst_action_execution_function( execute_metadata_action_on_user)(
83
92
  data
84
93
  )
85
94
 
86
-
87
- def metadata_paid_all(user_dict=None):
88
- progress_utils.update_activity_task("Scraping Entire Paid page")
95
+ @run
96
+ async def metadata_paid_all():
89
97
  old_args = copy.deepcopy(read_args.retriveArgs())
90
98
  force_change_metadata()
91
- user_dict = process_all_paid()
92
- oldUsers = userselector.get_ALL_SUBS_DICT()
93
- length = len(list(user_dict.keys()))
94
- for count, value in enumerate(user_dict.values()):
95
- model_id = value["model_id"]
96
- username = value["username"]
97
- posts = value["posts"]
98
- medias = value["medias"]
99
- avatar = value["avatar"]
100
- if constants.getattr("SHOW_AVATAR") and avatar:
101
- logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
102
- log.warning(
103
- f"Download paid content for {model_id}_{username} number:{count+1}/{length} models "
104
- )
105
- userselector.set_ALL_SUBS_DICTVManger(
106
- {username: models.Model(profile.scrape_profile(model_id))}
107
- )
108
- download.download_process(username, model_id, medias, posts=posts)
109
- # restore settings
110
- userselector.set_ALL_SUBS_DICT(oldUsers)
99
+ out=["[bold yellow]Scrape Paid Results[/bold yellow]"]
100
+
101
+ async for count,value,length in process_scrape_paid():
102
+ process_user_info_printer(value,length,count,all_paid_update=all_paid_metadata_str,all_paid_activity=metadata_activity_str,
103
+ log_progress=all_paid_progress_metadata_str
104
+
105
+
106
+ )
107
+ out.append(await process_user(value,length))
111
108
  write_args.setArgs(old_args)
109
+ return out
110
+
112
111
 
113
112
 
114
113
  def metadata_stray_media(username, model_id, media):
115
114
  all_media = []
116
115
  curr_media_set = set(map(lambda x: str(x.id), media))
117
116
  args = read_args.retriveArgs()
117
+ progress_utils.update_activity_task(description=mark_stray_str.format(username=username))
118
118
  if "Timeline" in args.download_area:
119
119
  all_media.extend(get_timeline_media(model_id=model_id, username=username))
120
120
  if "Messages" in args.download_area:
@@ -138,59 +138,20 @@ def metadata_stray_media(username, model_id, media):
138
138
  batch_set_media_downloaded(filtered_media, model_id=model_id, username=username)
139
139
 
140
140
 
141
- async def process_metadata_for_user(user=None, session=None):
142
- try:
143
-
144
- model_id = user.id
145
- all_media, _, _ = await process_areas_helper(user, model_id, c=session)
146
- await get_user_action_execution_function(execute_metadata_action_on_user)(
147
- user=user, media=all_media
148
- )
149
- except Exception as e:
150
- if isinstance(e, KeyboardInterrupt):
151
- raise e
152
- log.traceback_(f"failed with exception: {e}")
153
- log.traceback_(traceback.format_exc())
154
-
155
-
156
- async def execute_metadata_action_on_user(user=None, media=None):
157
- username = user.name
141
+ async def execute_metadata_action_on_user(*args,ele=None, media=None,**kwargs):
142
+ username = ele.name
158
143
 
159
- model_id = user.id
160
- operations.table_init_create(model_id=model_id, username=username)
144
+ model_id = ele.id
145
+ await operations.table_init_create(model_id=model_id, username=username)
161
146
  filterMedia = filters.filterMedia(media, username=username, model_id=model_id)
162
147
  progress_utils.update_activity_task(
163
- description=metadata_str.format(username=username)
148
+ description=metadata_activity_str.format(username=username)
164
149
  )
165
- await download.download_process(username, model_id, filterMedia)
150
+ data=await download.download_process(username, model_id, filterMedia)
166
151
  metadata_stray_media(username, model_id, media)
152
+ return [data]
167
153
 
168
154
 
169
- async def execute_metadata_action_user_first(data):
170
- progress_utils.update_activity_task(
171
- description="Performing Metadata Actions on Users"
172
- )
173
- progress_utils.update_user_activity(
174
- description="Users with Metadata updated", completed=0
175
- )
176
- for model_id, val in data.items():
177
- username = val["username"]
178
- media = val["media"]
179
- ele = val["ele"]
180
- progress_utils.update_activity_task(
181
- description=metadata_str.format(username=username)
182
- )
183
- try:
184
-
185
- await get_user_action_execution_function(execute_metadata_action_on_user)(
186
- media=media, user=ele
187
- )
188
- except Exception as e:
189
- if isinstance(e, KeyboardInterrupt):
190
- raise e
191
- log.traceback_(f"failed with exception: {e}")
192
- log.traceback_(traceback.format_exc())
193
-
194
155
 
195
156
  @run
196
157
  async def metadata_data_user_first(session, ele):
@@ -231,6 +192,8 @@ async def process_ele_user_first_data_retriver(ele=None, session=None):
231
192
  "media": media,
232
193
  "avatar": avatar,
233
194
  "ele": ele,
195
+ "posts":[],
196
+ "like_posts":[]
234
197
  }
235
198
  }
236
199
  except Exception as e:
@@ -244,10 +207,10 @@ async def process_ele_user_first_data_retriver(ele=None, session=None):
244
207
  def process_selected_areas():
245
208
  log.debug("[bold blue] Running Metadata Mode [/bold blue]")
246
209
  force_change_download()
210
+ progress_utils.update_activity_task(description="Running Metadata Mode")
247
211
  with scrape_context_manager():
248
- with progress_utils.setup_activity_progress_live(stop=True):
249
- if read_args.retriveArgs().metadata:
250
- metadata()
212
+ with progress_utils.setup_activity_group_live(revert=True):
213
+ metadata()
251
214
 
252
215
 
253
216
  def prepare():
@@ -0,0 +1,61 @@
1
+ r"""_____ _______ _______ _______ _______ _______ _______ _______ _______
2
+ ( ___ )( ____ \ ( ____ \( ____ \( ____ )( ___ )( ____ )( ____ \( ____ )
3
+ | ( ) || ( \/ | ( \/| ( \/| ( )|| ( ) || ( )|| ( \/| ( )|
4
+ | | | || (__ _____ | (_____ | | | (____)|| (___) || (____)|| (__ | (____)|
5
+ | | | || __) (_____)(_____ )| | | __)| ___ || _____)| __) | __)
6
+ | | | || ( ) || | | (\ ( | ( ) || ( | ( | (\ (
7
+ | (___) || ) /\____) || (____/\| ) \ \__| ) ( || ) | (____/\| ) \ \__
8
+ (_______)|/ \_______)(_______/|/ \__/|/ \||/ (_______/|/ \__/
9
+ """
10
+
11
+ import logging
12
+ import time
13
+
14
+ import ofscraper.classes.placeholder as placeholder
15
+ import ofscraper.download.download as download
16
+ import ofscraper.utils.constants as constants
17
+ import ofscraper.utils.live.screens as progress_utils
18
+ from ofscraper.commands.helpers.strings import download_activity_str,all_paid_progress_download_str,all_paid_download_str
19
+ from ofscraper.commands.helpers.scrape_paid import process_scrape_paid,process_user_info_printer,process_user
20
+ from ofscraper.utils.context.run_async import run
21
+
22
+
23
+ log = logging.getLogger("shared")
24
+
25
+
26
+ async def downloader(ele=None, posts=None, media=None, **kwargs):
27
+ model_id = ele.id
28
+ username = ele.name
29
+ progress_utils.update_activity_task(description=download_activity_str.format(username=username))
30
+ logging.getLogger("shared_other").warning(download_activity_str.format(username=username))
31
+ return await download.download_process(username, model_id, media, posts=posts)
32
+
33
+
34
+
35
+
36
+
37
+ def unique_name_warning():
38
+ if not placeholder.check_uniquename():
39
+ log.warning(
40
+ "[red]Warning: Your generated filenames may not be unique\n \
41
+ https://of-scraper.gitbook.io/of-scraper/config-options/customizing-save-path#warning[/red] \
42
+ "
43
+ )
44
+ time.sleep(constants.getattr("LOG_DISPLAY_TIMEOUT") * 3)
45
+
46
+ @run
47
+ async def scrape_paid_all():
48
+ out=["[bold yellow]Scrape Paid Results[/bold yellow]"]
49
+
50
+ async for count,value,length in process_scrape_paid():
51
+ process_user_info_printer(value,length,count,all_paid_update=all_paid_download_str,all_paid_activity=download_activity_str,
52
+ log_progress=all_paid_progress_download_str
53
+ )
54
+ out.append(await process_user(value,length))
55
+ return out
56
+
57
+
58
+
59
+
60
+ # progress_utils.update_activity_task(description="Downloading Paid Content")
61
+ # return process_scrape_paid(download_progress_message=download_activity_str,log_progress_message=all_paid_progress_download_str)