ofscraper 3.10.dev4__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.
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/PKG-INFO +1 -1
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/check.py +4 -4
- ofscraper-3.10.dev6/ofscraper/commands/helpers/data.py +39 -0
- ofscraper-3.10.dev6/ofscraper/commands/helpers/final_log.py +14 -0
- ofscraper-3.10.dev6/ofscraper/commands/helpers/normal.py +52 -0
- ofscraper-3.10.dev6/ofscraper/commands/helpers/scrape_paid.py +69 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/helpers/shared.py +5 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/helpers/strings.py +11 -2
- ofscraper-3.10.dev4/ofscraper/commands/helpers/context.py → ofscraper-3.10.dev6/ofscraper/commands/helpers/user_first.py +4 -73
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/metadata.py +57 -97
- ofscraper-3.10.dev6/ofscraper/commands/scraper/actions/download.py +61 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/actions/like.py +38 -9
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/post.py +1 -1
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/runner.py +30 -20
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/general.py +1 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/alt_download.py +9 -8
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/alt_downloadbatch.py +11 -5
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/main_download.py +7 -8
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/main_downloadbatch.py +8 -5
- ofscraper-3.10.dev6/ofscraper/download/shared/common/alt_common.py +23 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/common/general.py +1 -0
- ofscraper-3.10.dev4/ofscraper/download/shared/common/alt_common.py → ofscraper-3.10.dev6/ofscraper/download/shared/common/handle_result.py +49 -24
- ofscraper-3.10.dev6/ofscraper/download/shared/common/send_bar_msg.py +50 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/log.py +28 -9
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/media/helpers.py +1 -1
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/promptConvert.py +0 -3
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/model.py +6 -6
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/runner/exit.py +2 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/runner/run.py +2 -5
- ofscraper-3.10.dev6/ofscraper/utils/live/empty.py +19 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/live/live.py +5 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/pyproject.toml +1 -1
- ofscraper-3.10.dev4/ofscraper/commands/scraper/actions/download.py +0 -80
- ofscraper-3.10.dev4/ofscraper/download/shared/common/main_common.py +0 -53
- ofscraper-3.10.dev4/ofscraper/utils/live/empty.py +0 -13
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/LICENSE +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/README.md +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/__main__.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/__version__.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/__version__.pye +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/archive.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/common/logs.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/highlights.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/init.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/labels.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/me.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/messages.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/paid.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/pinned.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/profile.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/subscriptions/helpers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/subscriptions/individual.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/subscriptions/lists.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/subscriptions/subscriptions.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/api/timeline.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/base.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/labels.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/media.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/models.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/multiprocessprogress.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/placeholder.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/posts.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/sessionmanager.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/button.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/boolfield.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/datefield.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/mediafield.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/numfield.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/pricefield.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/responsefield.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/selectfield.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/textsearch.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/fields/timefield.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/inputs/filterinput.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/inputs/intergerinput.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/inputs/strinput.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/row_names.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/status.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/table.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/classes/table/table_console.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/helpers/picker.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/manual.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/scrape_context.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/commands/scraper/scraper.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/constants.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/binary.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/config.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/date.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/download.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/files.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/like.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/live.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/logger.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/metadata.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/other_url.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/path.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/prompts.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/req.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/table.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/test_constants.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/time.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/const/values/url.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/__init__.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/helpers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/labels.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/media.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/merge.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/messages.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/others.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/posts.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/profile.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/stories.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/db/operations_/wrapper.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/download.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/downloadbatch.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/downloadnormal.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/classes/retries.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/classes/session.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/globals.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/keyhelpers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/media.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/message.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/metadata.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/paths.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/progress.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/download/shared/utils/text.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/media/main.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/models/date.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/models/flags.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/models/helpers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/models/other.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/models/price.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/models/sort.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/filters/models/subtype.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/models/retriver.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/models/selector.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/helpers/model_helpers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/helpers/prompt_helpers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/keybindings.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/actions.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/area.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/auth.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/binary.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/config.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/menu.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/merge.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_groups/profile.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_strings.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompt_validators.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/prompts/prompts.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/runner/load.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/__init__.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/actions.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/advanced_processing.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/advanced_program.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/advanced_user_filter.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/automatic.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/content.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/download.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/file.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/logging.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/media_type.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/program.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/user_list.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/user_select.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/arguments/user_sort.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/advanced_common.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/common.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/main.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/manual.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/message_check.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/metadata.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/paid_check.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/post_check.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/bundles/story_check.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/main.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/manual.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/message.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/metadata.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/paid.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/post.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/commands/story.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/globals.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/groups/common_args.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/areas.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/before.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/check.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/date.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/helpers/type.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/output.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/parse.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/quality.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/read.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/user.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/args/write.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/auth/context.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/auth/data.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/auth/file.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/auth/helpers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/auth/make.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/auth/request.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/auth/schema.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/binaries.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/cache.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/checkers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/config/config.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/config/context.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/config/custom.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/config/data.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/config/file.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/config/menu.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/config/schema.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/config/wrapper.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/console.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/constants.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/context/exit.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/context/run_async.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/context/stdout.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/dates.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/encoding.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/hash.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/live/groups.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/live/panel.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/live/progress.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/live/screens.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/live/tasks.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/live/updater.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/classes.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/close.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/globals.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/handle.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/helpers.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/logger.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/logs.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/other.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/logs/stdout.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/manager.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/me.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/menu.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/merge.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/paths/check.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/paths/common.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/paths/manage.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/paths/paths.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/profiles/data.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/profiles/manage.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/profiles/tools.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/run.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/sems.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/separate.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/settings.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/system/free.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/system/network.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/system/system.py +0 -0
- {ofscraper-3.10.dev4 → ofscraper-3.10.dev6}/ofscraper/utils/text.py +0 -0
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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))
|
|
@@ -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
|
-
|
|
7
|
+
download_activity_str = "Performing Downloading Action on {username}"
|
|
8
8
|
all_paid_download_str = "Users With paid content downloaded"
|
|
9
|
-
|
|
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,62 +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=chain.from_iterable(data)
|
|
51
|
-
if len(records)<2:
|
|
52
|
-
return
|
|
53
|
-
for record in records:
|
|
54
|
-
log.warning(record)
|
|
55
|
-
|
|
56
|
-
return wrapper
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
14
|
+
from ofscraper.commands.helpers.data import data_helper
|
|
60
15
|
|
|
61
16
|
def get_userfirst_data_function(funct):
|
|
62
17
|
async def wrapper(userdata, session, *args, **kwargs):
|
|
@@ -85,6 +40,7 @@ def get_userfirst_data_function(funct):
|
|
|
85
40
|
|
|
86
41
|
def get_userfirst_action_execution_function(funct):
|
|
87
42
|
async def wrapper(data,*args, **kwargs):
|
|
43
|
+
out=["[bold yellow]User First Results[/bold yellow]"]
|
|
88
44
|
progress_utils.increment_activity_count(total=2)
|
|
89
45
|
try:
|
|
90
46
|
progress_utils.update_user_activity(total=len(data.items()))
|
|
@@ -102,7 +58,7 @@ def get_userfirst_action_execution_function(funct):
|
|
|
102
58
|
logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
|
|
103
59
|
try:
|
|
104
60
|
with progress_utils.setup_activity_counter_live(revert=False):
|
|
105
|
-
await funct(
|
|
61
|
+
out.extend(await funct(posts, like_posts,*args,media=all_media, ele=ele,**kwargs))
|
|
106
62
|
except Exception as e:
|
|
107
63
|
log.traceback_(f"failed with exception: {e}")
|
|
108
64
|
log.traceback_(traceback.format_exc())
|
|
@@ -117,31 +73,6 @@ def get_userfirst_action_execution_function(funct):
|
|
|
117
73
|
raise e
|
|
118
74
|
finally:
|
|
119
75
|
progress_utils.increment_activity_count(description="Overall progress", total=2)
|
|
120
|
-
|
|
76
|
+
return out
|
|
121
77
|
return wrapper
|
|
122
78
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
def data_helper(user):
|
|
126
|
-
avatar = user.avatar
|
|
127
|
-
username = user.name
|
|
128
|
-
active = user.active
|
|
129
|
-
final_post_areas = areas.get_final_posts_area()
|
|
130
|
-
length = selector.get_num_selected()
|
|
131
|
-
count = progress_utils.get_user_task_obj().completed
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
logging.getLogger("shared_other").warning(
|
|
135
|
-
progress_str.format(count=count + 1, length=length)
|
|
136
|
-
)
|
|
137
|
-
logging.getLogger("shared_other").warning(data_str.format(name=username))
|
|
138
|
-
if constants.getattr("SHOW_AVATAR") and avatar:
|
|
139
|
-
logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
|
|
140
|
-
progress_utils.update_activity_task(
|
|
141
|
-
description=area_str.format(
|
|
142
|
-
areas=",".join(final_post_areas), name=username, active=active
|
|
143
|
-
)
|
|
144
|
-
)
|
|
145
|
-
logging.getLogger("shared_other").info(
|
|
146
|
-
area_str.format(areas=",".join(final_post_areas), name=username, active=active)
|
|
147
|
-
)
|
|
@@ -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.
|
|
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
|
|
40
|
-
from ofscraper.commands.helpers.strings import
|
|
41
|
-
|
|
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,33 +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(
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if not read_args.retriveArgs().users_first:
|
|
65
|
-
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)
|
|
66
68
|
else:
|
|
67
|
-
|
|
69
|
+
userdata, session = prepare()
|
|
70
|
+
userfirst_data=metadata_user_first(userdata, session)
|
|
71
|
+
final_log(normal_data+scrape_paid_data+userfirst_data)
|
|
68
72
|
|
|
69
73
|
|
|
70
74
|
@run
|
|
71
75
|
async def process_users_metadata_normal(userdata, session):
|
|
72
|
-
user_action_funct = get_user_action_function(
|
|
73
|
-
progress_utils.
|
|
74
|
-
|
|
75
|
-
for ele in userdata:
|
|
76
|
-
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)
|
|
77
79
|
|
|
78
80
|
|
|
79
81
|
@run
|
|
@@ -81,43 +83,38 @@ async def metadata_user_first(userdata, session):
|
|
|
81
83
|
data = await get_userfirst_data_function(metadata_data_user_first)(
|
|
82
84
|
userdata, session
|
|
83
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
|
+
)
|
|
84
90
|
|
|
85
|
-
await get_userfirst_action_execution_function(
|
|
91
|
+
return await get_userfirst_action_execution_function( execute_metadata_action_on_user)(
|
|
86
92
|
data
|
|
87
93
|
)
|
|
88
94
|
|
|
89
|
-
|
|
90
|
-
def metadata_paid_all(
|
|
91
|
-
progress_utils.update_activity_task("Scraping Entire Paid page")
|
|
95
|
+
@run
|
|
96
|
+
async def metadata_paid_all():
|
|
92
97
|
old_args = copy.deepcopy(read_args.retriveArgs())
|
|
93
98
|
force_change_metadata()
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
length
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if constants.getattr("SHOW_AVATAR") and avatar:
|
|
104
|
-
logging.getLogger("shared_other").warning(avatar_str.format(avatar=avatar))
|
|
105
|
-
log.warning(
|
|
106
|
-
f"Download paid content for {model_id}_{username} number:{count+1}/{length} models "
|
|
107
|
-
)
|
|
108
|
-
userselector.set_ALL_SUBS_DICTVManger(
|
|
109
|
-
{username: models.Model(profile.scrape_profile(model_id))}
|
|
110
|
-
)
|
|
111
|
-
download.download_process(username, model_id, medias, posts=posts)
|
|
112
|
-
# restore settings
|
|
113
|
-
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))
|
|
114
108
|
write_args.setArgs(old_args)
|
|
109
|
+
return out
|
|
110
|
+
|
|
115
111
|
|
|
116
112
|
|
|
117
113
|
def metadata_stray_media(username, model_id, media):
|
|
118
114
|
all_media = []
|
|
119
115
|
curr_media_set = set(map(lambda x: str(x.id), media))
|
|
120
116
|
args = read_args.retriveArgs()
|
|
117
|
+
progress_utils.update_activity_task(description=mark_stray_str.format(username=username))
|
|
121
118
|
if "Timeline" in args.download_area:
|
|
122
119
|
all_media.extend(get_timeline_media(model_id=model_id, username=username))
|
|
123
120
|
if "Messages" in args.download_area:
|
|
@@ -141,59 +138,20 @@ def metadata_stray_media(username, model_id, media):
|
|
|
141
138
|
batch_set_media_downloaded(filtered_media, model_id=model_id, username=username)
|
|
142
139
|
|
|
143
140
|
|
|
144
|
-
async def
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
model_id = user.id
|
|
148
|
-
all_media, _, _ = await process_areas_helper(user, model_id, c=session)
|
|
149
|
-
await get_user_action_execution_function(execute_metadata_action_on_user)(
|
|
150
|
-
user=user, media=all_media
|
|
151
|
-
)
|
|
152
|
-
except Exception as e:
|
|
153
|
-
if isinstance(e, KeyboardInterrupt):
|
|
154
|
-
raise e
|
|
155
|
-
log.traceback_(f"failed with exception: {e}")
|
|
156
|
-
log.traceback_(traceback.format_exc())
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
async def execute_metadata_action_on_user(user=None, media=None):
|
|
160
|
-
username = user.name
|
|
141
|
+
async def execute_metadata_action_on_user(*args,ele=None, media=None,**kwargs):
|
|
142
|
+
username = ele.name
|
|
161
143
|
|
|
162
|
-
model_id =
|
|
163
|
-
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)
|
|
164
146
|
filterMedia = filters.filterMedia(media, username=username, model_id=model_id)
|
|
165
147
|
progress_utils.update_activity_task(
|
|
166
|
-
description=
|
|
148
|
+
description=metadata_activity_str.format(username=username)
|
|
167
149
|
)
|
|
168
|
-
await download.download_process(username, model_id, filterMedia)
|
|
150
|
+
data=await download.download_process(username, model_id, filterMedia)
|
|
169
151
|
metadata_stray_media(username, model_id, media)
|
|
152
|
+
return [data]
|
|
170
153
|
|
|
171
154
|
|
|
172
|
-
async def execute_metadata_action_user_first(data):
|
|
173
|
-
progress_utils.update_activity_task(
|
|
174
|
-
description="Performing Metadata Actions on Users"
|
|
175
|
-
)
|
|
176
|
-
progress_utils.update_user_activity(
|
|
177
|
-
description="Users with Metadata updated", completed=0
|
|
178
|
-
)
|
|
179
|
-
for model_id, val in data.items():
|
|
180
|
-
username = val["username"]
|
|
181
|
-
media = val["media"]
|
|
182
|
-
ele = val["ele"]
|
|
183
|
-
progress_utils.update_activity_task(
|
|
184
|
-
description=metadata_str.format(username=username)
|
|
185
|
-
)
|
|
186
|
-
try:
|
|
187
|
-
|
|
188
|
-
await get_user_action_execution_function(execute_metadata_action_on_user)(
|
|
189
|
-
media=media, user=ele
|
|
190
|
-
)
|
|
191
|
-
except Exception as e:
|
|
192
|
-
if isinstance(e, KeyboardInterrupt):
|
|
193
|
-
raise e
|
|
194
|
-
log.traceback_(f"failed with exception: {e}")
|
|
195
|
-
log.traceback_(traceback.format_exc())
|
|
196
|
-
|
|
197
155
|
|
|
198
156
|
@run
|
|
199
157
|
async def metadata_data_user_first(session, ele):
|
|
@@ -234,6 +192,8 @@ async def process_ele_user_first_data_retriver(ele=None, session=None):
|
|
|
234
192
|
"media": media,
|
|
235
193
|
"avatar": avatar,
|
|
236
194
|
"ele": ele,
|
|
195
|
+
"posts":[],
|
|
196
|
+
"like_posts":[]
|
|
237
197
|
}
|
|
238
198
|
}
|
|
239
199
|
except Exception as e:
|
|
@@ -247,10 +207,10 @@ async def process_ele_user_first_data_retriver(ele=None, session=None):
|
|
|
247
207
|
def process_selected_areas():
|
|
248
208
|
log.debug("[bold blue] Running Metadata Mode [/bold blue]")
|
|
249
209
|
force_change_download()
|
|
210
|
+
progress_utils.update_activity_task(description="Running Metadata Mode")
|
|
250
211
|
with scrape_context_manager():
|
|
251
|
-
with progress_utils.
|
|
252
|
-
|
|
253
|
-
metadata()
|
|
212
|
+
with progress_utils.setup_activity_group_live(revert=True):
|
|
213
|
+
metadata()
|
|
254
214
|
|
|
255
215
|
|
|
256
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)
|