ofscraper 3.12.8__tar.gz → 3.13.dev0__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.12.8 → ofscraper-3.13.dev0}/PKG-INFO +9 -5
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/README.md +4 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/__main__.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/__version__.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/classes/labels.py +1 -1
- {ofscraper-3.12.8/ofscraper/classes → ofscraper-3.13.dev0/ofscraper/classes/of}/base.py +5 -3
- {ofscraper-3.12.8/ofscraper/classes → ofscraper-3.13.dev0/ofscraper/classes/of}/media.py +17 -12
- {ofscraper-3.12.8/ofscraper/classes → ofscraper-3.13.dev0/ofscraper/classes/of}/posts.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/classes/placeholder.py +12 -26
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/classes/sessionmanager/download.py +5 -32
- ofscraper-3.13.dev0/ofscraper/classes/table/app.py +480 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/compose.py +128 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/const.py +2 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/css.py +84 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/classes/table/fields/boolfield.py +0 -15
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/classes/table/fields/datefield.py +32 -9
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/downloadfield.py +60 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/mediafield.py +35 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/numfield.py +50 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/pricefield.py +46 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/responsefield.py +99 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/selectfield.py +61 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/sizefield.py +33 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/textsearch.py +45 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/fields/timefield.py +112 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/inputs/filterinput.py +16 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/inputs/intergerinput.py +9 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/inputs/strinput.py +10 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/sections/sidebar.py +10 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/sections/table.py +129 -0
- ofscraper-3.13.dev0/ofscraper/classes/table/utils/lock.py +2 -0
- ofscraper-3.12.8/ofscraper/const/values/table.py → ofscraper-3.13.dev0/ofscraper/classes/table/utils/names.py +14 -1
- {ofscraper-3.12.8/ofscraper/commands/runners → ofscraper-3.13.dev0/ofscraper/commands}/check.py +140 -97
- ofscraper-3.13.dev0/ofscraper/commands/db.py +380 -0
- {ofscraper-3.12.8/ofscraper/commands/runners → ofscraper-3.13.dev0/ofscraper/commands}/manual.py +10 -12
- {ofscraper-3.12.8/ofscraper/actions/actions/metadata/normal/utils → ofscraper-3.13.dev0/ofscraper/commands/metadata}/consumer.py +5 -5
- ofscraper-3.12.8/ofscraper/actions/actions/metadata/managers/metadata.py → ofscraper-3.13.dev0/ofscraper/commands/metadata/manager.py +11 -24
- {ofscraper-3.12.8/ofscraper/commands/managers → ofscraper-3.13.dev0/ofscraper/commands/metadata}/metadata.py +149 -16
- ofscraper-3.12.8/ofscraper/actions/actions/download/normal/downloadnormal.py → ofscraper-3.13.dev0/ofscraper/commands/scraper/actions/download/download.py +74 -33
- {ofscraper-3.12.8/ofscraper/actions → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/download/managers/alt_download.py +29 -44
- {ofscraper-3.12.8/ofscraper/actions → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/download/managers/downloadmanager.py +22 -50
- {ofscraper-3.12.8/ofscraper/actions → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/download/managers/main_download.py +27 -22
- ofscraper-3.12.8/ofscraper/actions/actions/download/normal/utils/consumer.py → ofscraper-3.13.dev0/ofscraper/commands/scraper/actions/download/run.py +34 -7
- ofscraper-3.13.dev0/ofscraper/commands/scraper/actions/download/utils/chunk.py +24 -0
- {ofscraper-3.12.8/ofscraper/actions → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/download/utils/keyhelpers.py +22 -21
- ofscraper-3.13.dev0/ofscraper/commands/scraper/actions/download/utils/leaky.py +14 -0
- ofscraper-3.12.8/ofscraper/classes/download_retries.py → ofscraper-3.13.dev0/ofscraper/commands/scraper/actions/download/utils/retries.py +1 -1
- {ofscraper-3.12.8/ofscraper/actions → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/download/utils/text.py +3 -6
- {ofscraper-3.12.8/ofscraper/actions → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/like/like.py +4 -4
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/general.py +2 -2
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/globals.py +4 -5
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/log.py +5 -5
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/paths/paths.py +3 -3
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/progress/update.py +1 -1
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/retries.py +3 -2
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/send/chunk.py +2 -2
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/send/message.py +1 -1
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/send/send_bar_msg.py +3 -3
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/workers.py +3 -1
- ofscraper-3.13.dev0/ofscraper/commands/scraper/scraper.py +276 -0
- ofscraper-3.13.dev0/ofscraper/commands/scraper/utils/jobqueue.py +2 -0
- {ofscraper-3.12.8/ofscraper/commands/runners → ofscraper-3.13.dev0/ofscraper/commands}/scraper/utils/prepare.py +21 -4
- ofscraper-3.13.dev0/ofscraper/commands/scraper/utils/print.py +4 -0
- ofscraper-3.13.dev0/ofscraper/commands/scraper/utils/schedule.py +45 -0
- ofscraper-3.12.8/ofscraper/commands/managers/manager.py → ofscraper-3.13.dev0/ofscraper/commands/utils/command.py +6 -10
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/action/download.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/date.py +0 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/req/cdm.py +3 -3
- ofscraper-3.13.dev0/ofscraper/const/values/req/like.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/req/req.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/archive.py +13 -15
- ofscraper-3.13.dev0/ofscraper/data/api/common/after.py +34 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/common/cache/read.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/common/cache/write.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/common/timeline.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/highlights.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/init.py +2 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/labels.py +4 -4
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/me.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/messages.py +16 -17
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/paid.py +7 -5
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/pinned.py +11 -12
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/profile.py +4 -4
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/streams.py +14 -16
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/subscriptions/common.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/subscriptions/individual.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/subscriptions/lists.py +7 -7
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/subscriptions/subscriptions.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/timeline.py +21 -15
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/models/manager.py +42 -36
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/models/utils/retriver.py +8 -8
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/posts/post.py +22 -17
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/posts/scrape_paid.py +10 -11
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/labels.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/media.py +17 -9
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/messages.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/posts.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/stories.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/media/filters.py +56 -41
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/media/main.py +46 -16
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/models/date.py +19 -19
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/models/flags.py +13 -13
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/models/other.py +4 -4
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/models/price.py +37 -38
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/models/sort.py +3 -4
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/models/subtype.py +7 -7
- {ofscraper-3.12.8/ofscraper/runner → ofscraper-3.13.dev0/ofscraper/main}/close/final/final.py +2 -2
- {ofscraper-3.12.8/ofscraper/runner → ofscraper-3.13.dev0/ofscraper/main}/close/final/final_script.py +8 -6
- {ofscraper-3.12.8/ofscraper/runner → ofscraper-3.13.dev0/ofscraper/main}/close/final/final_user.py +4 -5
- {ofscraper-3.12.8/ofscraper/runner → ofscraper-3.13.dev0/ofscraper/main}/manager.py +44 -34
- {ofscraper-3.12.8/ofscraper/runner → ofscraper-3.13.dev0/ofscraper/main}/open/load.py +1 -1
- {ofscraper-3.12.8/ofscraper/runner → ofscraper-3.13.dev0/ofscraper/main}/open/run.py +2 -5
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/promptConvert.py +19 -23
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/actions.py +6 -7
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/area.py +4 -4
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/config.py +2 -27
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/model.py +19 -18
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/utils/model_helpers.py +21 -22
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/utils/prompt_helpers.py +46 -42
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/actions.py +11 -12
- ofscraper-3.13.dev0/ofscraper/utils/ads.py +2 -0
- ofscraper-3.13.dev0/ofscraper/utils/args/accessors/actions.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/accessors/areas.py +13 -13
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/accessors/quality.py +2 -2
- ofscraper-3.13.dev0/ofscraper/utils/args/accessors/time.py +54 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/main.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/check.py +33 -0
- ofscraper-3.13.dev0/ofscraper/utils/args/parse/arguments/db.py +15 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/download.py +1 -14
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/logging.py +3 -0
- ofscraper-3.13.dev0/ofscraper/utils/args/parse/arguments/media_content.py +163 -0
- ofscraper-3.13.dev0/ofscraper/utils/args/parse/arguments/metadata_filters.py +102 -0
- ofscraper-3.12.8/ofscraper/utils/args/parse/arguments/content.py → ofscraper-3.13.dev0/ofscraper/utils/args/parse/arguments/post_content.py +34 -112
- ofscraper-3.13.dev0/ofscraper/utils/args/parse/arguments/shared.py +1 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/utils/date.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/utils/retry.py +7 -4
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/commands/db.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/commands/main.py +2 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/commands/metadata.py +1 -1
- ofscraper-3.13.dev0/ofscraper/utils/args/parse/group_bundles/check.py +86 -0
- ofscraper-3.13.dev0/ofscraper/utils/args/parse/group_bundles/db.py +109 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/main.py +4 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/manual.py +2 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/message_check.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/metadata.py +21 -43
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/paid_check.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/post_check.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/story_check.py +3 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/check_content.py +2 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/download.py +0 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/media_filter.py +20 -8
- ofscraper-3.13.dev0/ofscraper/utils/args/parse/groups/post_filter.py +38 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/make.py +1 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/request.py +5 -7
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/utils/warning/print.py +3 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/cache.py +4 -4
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/checkers.py +4 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/config/data.py +0 -17
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/config/file.py +1 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/config/schema.py +0 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/context/stdout.py +3 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/hash.py +1 -1
- {ofscraper-3.12.8/ofscraper/classes/progress → ofscraper-3.13.dev0/ofscraper/utils/live/classes}/progress.py +1 -96
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/clear.py +2 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/empty.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/groups.py +1 -15
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/progress.py +2 -14
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/screens.py +3 -11
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/updater.py +18 -53
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/classes/handlers/rich.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/classes/handlers/text.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/close.py +1 -5
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/logger.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/logs.py +27 -21
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/other.py +19 -16
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/stdout.py +9 -9
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/utils/level.py +2 -3
- ofscraper-3.13.dev0/ofscraper/utils/logs/utils/trace.py +9 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/me.py +2 -2
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/menu.py +2 -6
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/paths/common.py +4 -4
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/paths/paths.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/profiles/data.py +3 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/profiles/manage.py +6 -6
- ofscraper-3.13.dev0/ofscraper/utils/sems.py +1 -0
- ofscraper-3.13.dev0/ofscraper/utils/settings.py +176 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/system/network.py +1 -1
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/text.py +1 -3
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/pyproject.toml +4 -4
- ofscraper-3.12.8/ofscraper/actions/actions/download/batch/downloadbatch.py +0 -243
- ofscraper-3.12.8/ofscraper/actions/actions/download/batch/utils/consumer.py +0 -31
- ofscraper-3.12.8/ofscraper/actions/actions/download/batch/utils/queue.py +0 -127
- ofscraper-3.12.8/ofscraper/actions/actions/download/download.py +0 -71
- ofscraper-3.12.8/ofscraper/actions/actions/download/runners/download.py +0 -45
- ofscraper-3.12.8/ofscraper/actions/actions/download/utils/chunk.py +0 -76
- ofscraper-3.12.8/ofscraper/actions/actions/metadata/batch/metadatabatch.py +0 -219
- ofscraper-3.12.8/ofscraper/actions/actions/metadata/batch/utils/consumer.py +0 -28
- ofscraper-3.12.8/ofscraper/actions/actions/metadata/batch/utils/queue.py +0 -115
- ofscraper-3.12.8/ofscraper/actions/actions/metadata/metadata.py +0 -37
- ofscraper-3.12.8/ofscraper/actions/actions/metadata/normal/metadata.py +0 -83
- ofscraper-3.12.8/ofscraper/actions/manager.py +0 -3
- ofscraper-3.12.8/ofscraper/actions/utils/mediasplit.py +0 -13
- ofscraper-3.12.8/ofscraper/classes/sessionmanager/chunk.py +0 -12
- ofscraper-3.12.8/ofscraper/classes/sessionmanager/leaky.py +0 -56
- ofscraper-3.12.8/ofscraper/classes/table/button.py +0 -6
- ofscraper-3.12.8/ofscraper/classes/table/fields/mediafield.py +0 -19
- ofscraper-3.12.8/ofscraper/classes/table/fields/numfield.py +0 -37
- ofscraper-3.12.8/ofscraper/classes/table/fields/pricefield.py +0 -41
- ofscraper-3.12.8/ofscraper/classes/table/fields/responsefield.py +0 -22
- ofscraper-3.12.8/ofscraper/classes/table/fields/selectfield.py +0 -42
- ofscraper-3.12.8/ofscraper/classes/table/fields/textsearch.py +0 -58
- ofscraper-3.12.8/ofscraper/classes/table/fields/timefield.py +0 -74
- ofscraper-3.12.8/ofscraper/classes/table/inputs/filterinput.py +0 -55
- ofscraper-3.12.8/ofscraper/classes/table/inputs/intergerinput.py +0 -5
- ofscraper-3.12.8/ofscraper/classes/table/inputs/strinput.py +0 -5
- ofscraper-3.12.8/ofscraper/classes/table/row_names.py +0 -15
- ofscraper-3.12.8/ofscraper/classes/table/status.py +0 -129
- ofscraper-3.12.8/ofscraper/classes/table/table.py +0 -624
- ofscraper-3.12.8/ofscraper/commands/managers/db.py +0 -285
- ofscraper-3.12.8/ofscraper/commands/managers/scraper.py +0 -135
- ofscraper-3.12.8/ofscraper/commands/runners/db.py +0 -13
- ofscraper-3.12.8/ofscraper/commands/runners/metadata/metadata.py +0 -77
- ofscraper-3.12.8/ofscraper/commands/runners/scraper/scraper.py +0 -77
- ofscraper-3.12.8/ofscraper/commands/runners/scraper/utils/print.py +0 -8
- ofscraper-3.12.8/ofscraper/commands/runners/scraper/utils/prompt.py +0 -12
- ofscraper-3.12.8/ofscraper/commands/runners/scraper/utils/select.py +0 -41
- ofscraper-3.12.8/ofscraper/commands/utils/picker.py +0 -5
- ofscraper-3.12.8/ofscraper/data/api/common/after.py +0 -27
- ofscraper-3.12.8/ofscraper/filters/media/sorter.py +0 -2
- ofscraper-3.12.8/ofscraper/filters/media/utils/trace.py +0 -29
- ofscraper-3.12.8/ofscraper/utils/ads.py +0 -2
- ofscraper-3.12.8/ofscraper/utils/args/accessors/command.py +0 -4
- ofscraper-3.12.8/ofscraper/utils/args/parse/arguments/media_type.py +0 -84
- ofscraper-3.12.8/ofscraper/utils/args/parse/group_bundles/db.py +0 -168
- ofscraper-3.12.8/ofscraper/utils/args/parse/group_bundles/main_check.py +0 -19
- ofscraper-3.12.8/ofscraper/utils/args/parse/groups/content.py +0 -66
- ofscraper-3.12.8/ofscraper/utils/live/reader.py +0 -12
- ofscraper-3.12.8/ofscraper/utils/logs/utils/trace.py +0 -6
- ofscraper-3.12.8/ofscraper/utils/run.py +0 -112
- ofscraper-3.12.8/ofscraper/utils/settings.py +0 -237
- ofscraper-3.12.8/ofscraper/utils/zmq.py +0 -15
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/LICENSE +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/__version__.pye +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/classes/sessionmanager/ofsession.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/classes/sessionmanager/sessionmanager.py +0 -0
- {ofscraper-3.12.8/ofscraper/classes/table → ofscraper-3.13.dev0/ofscraper/classes/table/sections}/table_console.py +0 -0
- {ofscraper-3.12.8/ofscraper/actions/actions/metadata/utils → ofscraper-3.13.dev0/ofscraper/commands/metadata}/desc.py +0 -0
- {ofscraper-3.12.8/ofscraper/actions → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/download/utils/desc.py +0 -0
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/buffer.py +0 -0
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/params.py +0 -0
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/paths/media.py +0 -0
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/progress/convert.py +0 -0
- {ofscraper-3.12.8/ofscraper → ofscraper-3.13.dev0/ofscraper/commands/scraper}/actions/utils/threads.py +0 -0
- ofscraper-3.12.8/ofscraper/const/values/req/like.py → ofscraper-3.13.dev0/ofscraper/commands/scraper/utils/daemon.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/commands/utils/scrape_context.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/commands/utils/strings.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/constants.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/action/like.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/action/metadata.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/binary.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/config.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/download.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/dynamic.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/general.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/list.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/live.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/logger.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/path/bytes.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/path/files.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/path/general.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/path/path.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/prompts.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/req/anon.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/req/api.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/req/discord.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/req/git.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/req/mpd.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/rich.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/system.py +0 -0
- ofscraper-3.12.8/ofscraper/db/__init__.py → ofscraper-3.13.dev0/ofscraper/const/values/table.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/test/test_constants.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/time.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/url/other_url.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/const/values/url/url.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/common/check.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/common/logs/logs.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/data/api/common/logs/strings.py +0 -0
- {ofscraper-3.12.8/ofscraper/classes → ofscraper-3.13.dev0/ofscraper/data/models}/models.py +0 -0
- {ofscraper-3.12.8/ofscraper/utils → ofscraper-3.13.dev0/ofscraper/db}/__init__.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/backup.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/difference.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/merge.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/empty.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/others.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/profile.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/operations_/wrapper.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/transition.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/db/utils/convert.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/filters/models/utils/logs.py +0 -0
- {ofscraper-3.12.8/ofscraper/runner → ofscraper-3.13.dev0/ofscraper/main}/close/exit.py +0 -0
- {ofscraper-3.12.8/ofscraper/runner → ofscraper-3.13.dev0/ofscraper/main}/close/final/final_log.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/keybindings.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/auth.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/binary.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/menu.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/merge.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_groups/profile.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_strings.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompt_validators.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/prompts/prompts.py +0 -0
- ofscraper-3.12.8/ofscraper/utils/sems.py → ofscraper-3.13.dev0/ofscraper/utils/__init__.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/accessors/output.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/accessors/read.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/callbacks/choice.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/callbacks/file.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/callbacks/string.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/callbacks/username.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/globals.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/helpers/hide_args.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/mutators/before.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/mutators/change.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/mutators/user.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/mutators/write.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/advanced_processing.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/advanced_program.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/advanced_user_filter.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/automatic.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/file.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/program.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/user_list.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/user_select.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/arguments/user_sort.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/commands/manual.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/commands/message.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/commands/paid.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/commands/post.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/commands/story.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/advanced_common.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/common.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/group_bundles/utils/check.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/advanced_processing.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/advanced_program.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/advanced_user_filter.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/automatic.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/file.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/logging.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/program.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/user_list.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/user_select.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/parse/groups/user_sort.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/types/arrow.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/args/types/choice.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/data.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/file.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/schema.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/utils/context.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/utils/dict.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/utils/prompt.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/utils/warning/check.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/auth/utils/warning/warning.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/binaries.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/config/config.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/config/custom.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/config/menu.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/config/utils/context.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/config/utils/wrapper.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/console.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/constants.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/context/exit.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/context/run_async.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/dates.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/encoding.py +0 -0
- {ofscraper-3.12.8/ofscraper/classes/progress → ofscraper-3.13.dev0/ofscraper/utils/live/classes}/task.py +0 -0
- {ofscraper-3.12.8/ofscraper/classes/progress → ofscraper-3.13.dev0/ofscraper/utils/live/classes}/transfercol.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/live.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/panel.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/live/tasks.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/classes/classes.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/classes/handlers/discord.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/classes/handlers/file.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/classes/handlers/pipe.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/classes/handlers/zmq.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/globals.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/logs/handle.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/manager.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/merge.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/paths/check.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/paths/db.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/paths/manage.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/profiles/tools.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/separate.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/string.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/system/free.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/system/priority.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/system/speed.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/system/subprocess.py +0 -0
- {ofscraper-3.12.8 → ofscraper-3.13.dev0}/ofscraper/utils/system/system.py +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: ofscraper
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.13.dev0
|
|
4
4
|
Summary: automatically scrape onlyfans
|
|
5
5
|
Author: datawhores
|
|
6
6
|
Author-email: datawhores@riseup.net
|
|
@@ -8,9 +8,10 @@ Requires-Python: >=3.11,<3.14
|
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.11
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
11
12
|
Provides-Extra: pyinstaller
|
|
12
13
|
Requires-Dist: aiofiles (>=23.2.1,<24.0.0)
|
|
13
|
-
Requires-Dist: aiohttp (==3.10.
|
|
14
|
+
Requires-Dist: aiohttp (==3.10.11)
|
|
14
15
|
Requires-Dist: aiolimiter (>=1.1.0,<2.0.0)
|
|
15
16
|
Requires-Dist: aioprocessing (>=2.0.1,<3.0.0)
|
|
16
17
|
Requires-Dist: aiosqlite (>=0.20.0,<0.21.0)
|
|
@@ -48,7 +49,7 @@ Requires-Dist: setproctitle (>=1.3.3,<2.0.0)
|
|
|
48
49
|
Requires-Dist: setuptools (>=69.1.1,<71.0.0)
|
|
49
50
|
Requires-Dist: speedtest-cli (>=2.1.3,<3.0.0)
|
|
50
51
|
Requires-Dist: tenacity (>=8.2.3,<9.0.0)
|
|
51
|
-
Requires-Dist: textual (==0.
|
|
52
|
+
Requires-Dist: textual (==1.0.0)
|
|
52
53
|
Requires-Dist: tqdm (>=4.66.4,<5.0.0)
|
|
53
54
|
Requires-Dist: uvloop (>=0.19.0,<0.20.0) ; sys_platform == "linux" or sys_platform == "linux2"
|
|
54
55
|
Requires-Dist: win32-setctime (>=1.1.0,<2.0.0)
|
|
@@ -56,10 +57,13 @@ Requires-Dist: xxhash (>=3.4.1,<4.0.0)
|
|
|
56
57
|
Project-URL: Homepage, https://github.com/datawhores/OF-Scraper
|
|
57
58
|
Description-Content-Type: text/markdown
|
|
58
59
|
|
|
59
|
-
# Notice
|
|
60
|
+
# Notice
|
|
61
|
+
|
|
60
62
|
1. OF-Scraper can not bypass pay walls
|
|
61
63
|
2. OF-Scraper requires a subscription to the model, models can not be scraped anonymously whether free or paid
|
|
64
|
+
|
|
62
65
|
# Please Update to 3.11.6
|
|
66
|
+
|
|
63
67
|
As the API has changed older version are no longer viable
|
|
64
68
|
|
|
65
69
|
# For auth issues
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
# Notice
|
|
1
|
+
# Notice
|
|
2
|
+
|
|
2
3
|
1. OF-Scraper can not bypass pay walls
|
|
3
4
|
2. OF-Scraper requires a subscription to the model, models can not be scraped anonymously whether free or paid
|
|
5
|
+
|
|
4
6
|
# Please Update to 3.11.6
|
|
7
|
+
|
|
5
8
|
As the API has changed older version are no longer viable
|
|
6
9
|
|
|
7
10
|
# For auth issues
|
|
@@ -25,9 +25,9 @@ try:
|
|
|
25
25
|
__version__ = __hardcoded__ or Version.from_git(
|
|
26
26
|
pattern="(?P<base>\d+\.\d+(\.((\d+\.\w+)|\w+)|))"
|
|
27
27
|
).serialize(format="{base}+{branch}.{commit}", metadata=False)
|
|
28
|
-
if __version__ == "0.0.0":
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
# if __version__ == "0.0.0":
|
|
29
|
+
# print(__version__)
|
|
30
|
+
# raise Exception("pipx error")
|
|
31
31
|
except:
|
|
32
32
|
import importlib.metadata
|
|
33
33
|
|
|
@@ -18,10 +18,10 @@ class base:
|
|
|
18
18
|
return "None"
|
|
19
19
|
if len(text) == 0:
|
|
20
20
|
return text
|
|
21
|
-
length = int(settings.
|
|
21
|
+
length = int(settings.get_settings(mediatype=self.mediatype).text_length)
|
|
22
22
|
if length == 0:
|
|
23
23
|
return text
|
|
24
|
-
elif settings.
|
|
24
|
+
elif settings.get_settings(mediatype=self.mediatype).text_type == "letter":
|
|
25
25
|
return f"{''.join(list(text)[:length])}"
|
|
26
26
|
else:
|
|
27
27
|
# split and reduce
|
|
@@ -37,7 +37,9 @@ class base:
|
|
|
37
37
|
text = re.sub('[\n<>:"/\|?*:;]+', "", text)
|
|
38
38
|
text = re.sub("-+", "_", text)
|
|
39
39
|
text = re.sub(" +", " ", text)
|
|
40
|
-
text = re.sub(
|
|
40
|
+
text = re.sub(
|
|
41
|
+
" ", settings.get_settings(mediatype=mediatype).space_replacer, text
|
|
42
|
+
)
|
|
41
43
|
return text
|
|
42
44
|
|
|
43
45
|
def db_cleanup(self, string):
|
|
@@ -10,13 +10,13 @@ from bs4 import MarkupResemblesLocatorWarning
|
|
|
10
10
|
from mpegdash.parser import MPEGDASHParser
|
|
11
11
|
from async_property import async_cached_property
|
|
12
12
|
|
|
13
|
-
import ofscraper.classes.base as base
|
|
13
|
+
import ofscraper.classes.of.base as base
|
|
14
14
|
import ofscraper.utils.args.accessors.quality as quality
|
|
15
15
|
import ofscraper.utils.config.data as data
|
|
16
16
|
import ofscraper.utils.constants as constants
|
|
17
17
|
import ofscraper.utils.dates as dates
|
|
18
18
|
import ofscraper.utils.logs.utils.level as log_helpers
|
|
19
|
-
import
|
|
19
|
+
import ofscraper.main.manager as manager
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
warnings.filterwarnings("ignore", category=MarkupResemblesLocatorWarning)
|
|
@@ -50,11 +50,13 @@ class Media(base.base):
|
|
|
50
50
|
@property
|
|
51
51
|
def media_source(self):
|
|
52
52
|
return self._media.get("source", {})
|
|
53
|
-
|
|
54
53
|
|
|
55
54
|
@property
|
|
56
55
|
def files_source(self):
|
|
57
|
-
return {
|
|
56
|
+
return {
|
|
57
|
+
key: (inner_dict or {}).get("url")
|
|
58
|
+
for key, inner_dict in self._media.get("files", {}).items()
|
|
59
|
+
}
|
|
58
60
|
|
|
59
61
|
@property
|
|
60
62
|
def quality(self):
|
|
@@ -101,16 +103,15 @@ class Media(base.base):
|
|
|
101
103
|
|
|
102
104
|
def _url_quality_picker(self):
|
|
103
105
|
quality = self.normal_quality_helper()
|
|
104
|
-
out=None
|
|
106
|
+
out = None
|
|
105
107
|
if quality != "source":
|
|
106
|
-
out=self._media.get("videoSources", {}).get(quality)
|
|
108
|
+
out = self._media.get("videoSources", {}).get(quality)
|
|
107
109
|
elif out is None:
|
|
108
|
-
out=self.files_source.get("full")
|
|
109
|
-
|
|
110
|
+
out = self.files_source.get("full")
|
|
111
|
+
|
|
110
112
|
elif out is None:
|
|
111
|
-
out=self.media_source.get("source")
|
|
113
|
+
out = self.media_source.get("source")
|
|
112
114
|
return out
|
|
113
|
-
|
|
114
115
|
|
|
115
116
|
@property
|
|
116
117
|
def post(self):
|
|
@@ -309,7 +310,7 @@ class Media(base.base):
|
|
|
309
310
|
text = self.file_cleanup(text, mediatype=self.mediatype)
|
|
310
311
|
text = self.text_trunicate(text)
|
|
311
312
|
if not text:
|
|
312
|
-
return
|
|
313
|
+
return self.id
|
|
313
314
|
return text
|
|
314
315
|
|
|
315
316
|
@property
|
|
@@ -372,7 +373,11 @@ class Media(base.base):
|
|
|
372
373
|
|
|
373
374
|
@property
|
|
374
375
|
def linked(self):
|
|
375
|
-
return None
|
|
376
|
+
return (self.url or self.mpd) is not None
|
|
377
|
+
|
|
378
|
+
@property
|
|
379
|
+
def link(self):
|
|
380
|
+
return self.url or self.mpd
|
|
376
381
|
|
|
377
382
|
@property
|
|
378
383
|
def media(self):
|
|
@@ -2,8 +2,8 @@ import logging
|
|
|
2
2
|
|
|
3
3
|
import arrow
|
|
4
4
|
|
|
5
|
-
import ofscraper.classes.base as base
|
|
6
|
-
import ofscraper.classes.media as Media
|
|
5
|
+
import ofscraper.classes.of.base as base
|
|
6
|
+
import ofscraper.classes.of.media as Media
|
|
7
7
|
import ofscraper.utils.config.data as data
|
|
8
8
|
|
|
9
9
|
log = logging.getLogger("shared")
|
|
@@ -17,31 +17,12 @@ import ofscraper.utils.paths.paths as paths
|
|
|
17
17
|
import ofscraper.utils.profiles.data as profile_data
|
|
18
18
|
import ofscraper.utils.settings as settings
|
|
19
19
|
from ofscraper.utils.string import parse_safe
|
|
20
|
-
import
|
|
20
|
+
import ofscraper.main.manager as manager
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
log = logging.getLogger("shared")
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
def check_uniquename():
|
|
27
|
-
format = data.get_fileformat()
|
|
28
|
-
if re.search("text", format):
|
|
29
|
-
return True
|
|
30
|
-
elif re.search("filename", format):
|
|
31
|
-
return True
|
|
32
|
-
elif re.search("post_id", format):
|
|
33
|
-
return True
|
|
34
|
-
elif re.search("postid", format):
|
|
35
|
-
return True
|
|
36
|
-
elif re.search("media_id", format):
|
|
37
|
-
return True
|
|
38
|
-
elif re.search("mediaid", format):
|
|
39
|
-
return True
|
|
40
|
-
elif re.search("custom", format):
|
|
41
|
-
return True
|
|
42
|
-
return False
|
|
43
|
-
|
|
44
|
-
|
|
45
26
|
class basePlaceholder:
|
|
46
27
|
def __init__(self) -> None:
|
|
47
28
|
self._ele = None
|
|
@@ -179,6 +160,7 @@ class databasePlaceholder(basePlaceholder):
|
|
|
179
160
|
def metadata(self, input):
|
|
180
161
|
self._matadata = input
|
|
181
162
|
|
|
163
|
+
|
|
182
164
|
class Placeholders(basePlaceholder):
|
|
183
165
|
def __init__(self, ele, ext) -> None:
|
|
184
166
|
super().__init__()
|
|
@@ -189,7 +171,7 @@ class Placeholders(basePlaceholder):
|
|
|
189
171
|
self._ele = ele
|
|
190
172
|
self._ext = ext
|
|
191
173
|
|
|
192
|
-
async def init(self,create=True):
|
|
174
|
+
async def init(self, create=True):
|
|
193
175
|
dir = await self.getmediadir(create=create)
|
|
194
176
|
file = await self.createfilename()
|
|
195
177
|
self._filepath = paths.truncate(pathlib.Path(dir, file))
|
|
@@ -258,7 +240,9 @@ class Placeholders(basePlaceholder):
|
|
|
258
240
|
self._variables.update({"response_type": ele.modified_responsetype})
|
|
259
241
|
self._variables.update({"label": ele.label_string})
|
|
260
242
|
self._variables.update({"download_type": ele.downloadtype})
|
|
261
|
-
self._variables.update(
|
|
243
|
+
self._variables.update(
|
|
244
|
+
{"modelObj": manager.Manager.model_manager.get_model(username)}
|
|
245
|
+
)
|
|
262
246
|
self._variables.update({"quality": await ele.selected_quality_placeholder})
|
|
263
247
|
self._variables.update({"file_name": await ele.final_filename})
|
|
264
248
|
self._variables.update({"original_filename": ele.filename})
|
|
@@ -397,7 +381,7 @@ class Placeholders(basePlaceholder):
|
|
|
397
381
|
|
|
398
382
|
@property
|
|
399
383
|
def trunicated_filepath(self):
|
|
400
|
-
if settings.
|
|
384
|
+
if settings.get_settings(mediatype=self._ele.mediatype).trunicate:
|
|
401
385
|
return pathlib.Path(paths.truncate(self._filepath))
|
|
402
386
|
return self._filepath
|
|
403
387
|
|
|
@@ -425,7 +409,7 @@ class Textholders(basePlaceholder):
|
|
|
425
409
|
self._ele = ele
|
|
426
410
|
self._ext = ext
|
|
427
411
|
|
|
428
|
-
async def init(self,create=True):
|
|
412
|
+
async def init(self, create=True):
|
|
429
413
|
dir = await self.getmediadir(create=create)
|
|
430
414
|
file = await self.createfilename()
|
|
431
415
|
self._filepath = paths.truncate(pathlib.Path(dir, file))
|
|
@@ -488,7 +472,9 @@ class Textholders(basePlaceholder):
|
|
|
488
472
|
self._variables.update({"media_type": "Text"})
|
|
489
473
|
self._variables.update({"response_type": ele.modified_responsetype})
|
|
490
474
|
self._variables.update({"label": ele.label_string})
|
|
491
|
-
self._variables.update(
|
|
475
|
+
self._variables.update(
|
|
476
|
+
{"modelObj": manager.Manager.model_manager.get_model(username)}
|
|
477
|
+
)
|
|
492
478
|
self._variables.update({"text": ele.text_trunicate(ele.file_sanitized_text)})
|
|
493
479
|
self._variables.update({"config": config_file.open_config()})
|
|
494
480
|
self._variables.update({"args": read_args.retriveArgs()})
|
|
@@ -594,7 +580,7 @@ class Textholders(basePlaceholder):
|
|
|
594
580
|
|
|
595
581
|
@property
|
|
596
582
|
def trunicated_filepath(self):
|
|
597
|
-
if settings.
|
|
583
|
+
if settings.get_settings(mediatype=self._ele.mediatype).trunicate:
|
|
598
584
|
return pathlib.Path(paths.truncate(self._filepath))
|
|
599
585
|
return self._filepath
|
|
600
586
|
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import contextlib
|
|
2
|
-
import time
|
|
3
|
-
import asyncio
|
|
4
2
|
import ofscraper.classes.sessionmanager.ofsession as ofsessionmanager
|
|
5
3
|
import ofscraper.classes.sessionmanager.sessionmanager as sessionManager
|
|
6
|
-
import ofscraper.actions.utils.globals as common_globals
|
|
4
|
+
import ofscraper.commands.scraper.actions.utils.globals as common_globals
|
|
7
5
|
import ofscraper.utils.constants as constants
|
|
8
|
-
from ofscraper.actions.utils.retries import get_download_req_retries
|
|
6
|
+
from ofscraper.commands.scraper.actions.utils.retries import get_download_req_retries
|
|
9
7
|
from ofscraper.classes.sessionmanager.sessionmanager import (
|
|
10
8
|
AUTH,
|
|
11
9
|
COOKIES,
|
|
@@ -14,34 +12,10 @@ from ofscraper.classes.sessionmanager.sessionmanager import (
|
|
|
14
12
|
SIGN,
|
|
15
13
|
TOO_MANY,
|
|
16
14
|
)
|
|
17
|
-
from ofscraper.
|
|
15
|
+
from ofscraper.commands.scraper.actions.download.utils.leaky import LeakyBucket
|
|
18
16
|
import ofscraper.utils.settings as settings
|
|
19
17
|
|
|
20
18
|
|
|
21
|
-
class TokenBucket:
|
|
22
|
-
def __init__(self, capacity, fill_rate):
|
|
23
|
-
self.capacity = capacity
|
|
24
|
-
self.fill_rate = fill_rate
|
|
25
|
-
self.tokens = 0
|
|
26
|
-
self.last_update = time.time()
|
|
27
|
-
|
|
28
|
-
async def consume(self, tokens):
|
|
29
|
-
if self.capacity <= 0:
|
|
30
|
-
return True
|
|
31
|
-
while True:
|
|
32
|
-
now = time.time()
|
|
33
|
-
delta = now - self.last_update
|
|
34
|
-
self.last_update = now
|
|
35
|
-
self.tokens = min(self.capacity, self.tokens + delta * self.fill_rate)
|
|
36
|
-
|
|
37
|
-
if self.tokens >= tokens:
|
|
38
|
-
self.tokens -= tokens
|
|
39
|
-
return True
|
|
40
|
-
|
|
41
|
-
# Not enough tokens, wait for refill
|
|
42
|
-
await asyncio.sleep(0.01)
|
|
43
|
-
|
|
44
|
-
|
|
45
19
|
class download_session(sessionManager.sessionManager):
|
|
46
20
|
def __init__(
|
|
47
21
|
self, sem_count=None, retries=None, wait_min=None, wait_max=None, log=None
|
|
@@ -51,7 +25,7 @@ class download_session(sessionManager.sessionManager):
|
|
|
51
25
|
wait_min = wait_min or constants.getattr("OF_MIN_WAIT_API")
|
|
52
26
|
wait_max = wait_max or constants.getattr("OF_MAX_WAIT_API")
|
|
53
27
|
log = log or common_globals.log
|
|
54
|
-
self.leaky_bucket = LeakyBucket(settings.
|
|
28
|
+
self.leaky_bucket = LeakyBucket(settings.get_settings().download_limit, 1)
|
|
55
29
|
super().__init__(
|
|
56
30
|
sem_count=sem_count,
|
|
57
31
|
retries=retries,
|
|
@@ -105,11 +79,10 @@ class download_session(sessionManager.sessionManager):
|
|
|
105
79
|
async for chunk in funct(*args, **kwargs):
|
|
106
80
|
await self.get_token(chunk)
|
|
107
81
|
yield chunk
|
|
82
|
+
|
|
108
83
|
return wrapper
|
|
109
84
|
|
|
110
85
|
async def get_token(self, chunk):
|
|
111
|
-
if settings.get_download_limit() <= 0:
|
|
112
|
-
return
|
|
113
86
|
await self.leaky_bucket.acquire(chunk)
|
|
114
87
|
|
|
115
88
|
|