ofscraper 3.13.dev2__tar.gz → 3.13.dev4__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.13.dev2 → ofscraper-3.13.dev4}/PKG-INFO +3 -2
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/README.md +1 -1
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/sessionmanager/sessionmanager.py +27 -16
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/utils/scrape_context.py +5 -3
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/common/after.py +1 -1
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/config.py +15 -7
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/config/data.py +12 -4
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/config/schema.py +24 -16
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/hash.py +1 -1
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/updater.py +2 -2
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/logs.py +1 -1
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/settings.py +1 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/pyproject.toml +2 -1
- ofscraper-3.13.dev2/ofscraper/commands/scraper/actions/utils/send/send_bar_msg.py +0 -16
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/LICENSE +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/__main__.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/__version__.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/__version__.pye +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/labels.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/of/base.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/of/media.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/of/posts.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/placeholder.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/sessionmanager/download.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/sessionmanager/ofsession.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/app.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/compose.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/const.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/css.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/boolfield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/datefield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/downloadfield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/mediafield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/numfield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/pricefield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/responsefield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/selectfield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/sizefield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/textsearch.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/fields/timefield.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/inputs/filterinput.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/inputs/intergerinput.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/inputs/strinput.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/sections/sidebar.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/sections/table.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/sections/table_console.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/utils/lock.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/utils/names.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/db.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/manual.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/metadata/consumer.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/metadata/desc.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/metadata/manager.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/metadata/metadata.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/download.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/managers/alt_download.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/managers/downloadmanager.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/managers/main_download.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/run.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/utils/chunk.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/utils/desc.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/utils/keyhelpers.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/utils/leaky.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/utils/retries.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/utils/text.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/like/like.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/buffer.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/general.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/globals.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/log.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/params.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/paths/media.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/paths/paths.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/progress/convert.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/progress/update.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/retries.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/send/chunk.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/send/message.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/threads.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/workers.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/scraper.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/utils/daemon.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/utils/jobqueue.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/utils/prepare.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/utils/print.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/utils/schedule.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/utils/command.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/utils/strings.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/constants.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/action/download.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/action/like.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/action/metadata.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/binary.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/config.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/date.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/download.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/dynamic.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/general.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/list.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/live.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/logger.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/path/bytes.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/path/files.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/path/general.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/path/path.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/prompts.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/req/anon.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/req/api.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/req/cdm.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/req/discord.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/req/git.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/req/like.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/req/mpd.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/req/req.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/rich.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/system.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/table.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/test/test_constants.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/time.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/url/other_url.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/const/values/url/url.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/archive.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/common/cache/read.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/common/cache/write.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/common/check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/common/logs/logs.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/common/logs/strings.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/common/timeline.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/highlights.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/init.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/labels.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/me.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/messages.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/paid.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/pinned.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/profile.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/streams.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/subscriptions/common.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/subscriptions/individual.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/subscriptions/lists.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/subscriptions/subscriptions.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/api/timeline.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/models/manager.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/models/models.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/models/utils/retriver.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/posts/post.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/data/posts/scrape_paid.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/__init__.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/backup.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/difference.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/merge.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/empty.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/labels.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/media.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/messages.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/others.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/posts.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/profile.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/stories.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/operations_/wrapper.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/transition.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/db/utils/convert.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/media/filters.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/media/main.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/models/date.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/models/flags.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/models/other.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/models/price.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/models/sort.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/models/subtype.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/filters/models/utils/logs.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/main/close/exit.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/main/close/final/final.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/main/close/final/final_log.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/main/close/final/final_script.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/main/close/final/final_user.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/main/manager.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/main/open/load.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/main/open/run.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/keybindings.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/promptConvert.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/actions.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/area.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/auth.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/binary.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/menu.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/merge.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/model.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_groups/profile.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_strings.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompt_validators.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/prompts.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/utils/model_helpers.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/prompts/utils/prompt_helpers.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/__init__.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/actions.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/ads.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/accessors/actions.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/accessors/areas.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/accessors/output.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/accessors/quality.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/accessors/read.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/accessors/time.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/callbacks/choice.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/callbacks/file.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/callbacks/string.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/callbacks/username.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/globals.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/helpers/hide_args.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/main.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/mutators/before.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/mutators/change.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/mutators/user.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/mutators/write.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/advanced_processing.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/advanced_program.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/advanced_user_filter.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/automatic.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/db.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/download.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/file.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/logging.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/media_content.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/metadata_filters.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/post_content.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/program.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/shared.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/user_list.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/user_select.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/user_sort.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/utils/date.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/arguments/utils/retry.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/commands/db.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/commands/main.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/commands/manual.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/commands/message.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/commands/metadata.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/commands/paid.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/commands/post.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/commands/story.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/advanced_common.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/common.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/db.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/main.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/manual.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/message_check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/metadata.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/paid_check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/post_check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/story_check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/group_bundles/utils/check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/advanced_processing.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/advanced_program.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/advanced_user_filter.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/automatic.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/check_content.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/download.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/file.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/logging.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/media_filter.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/post_filter.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/program.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/user_list.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/user_select.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/parse/groups/user_sort.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/types/arrow.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/args/types/choice.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/data.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/file.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/make.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/request.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/schema.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/utils/context.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/utils/dict.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/utils/prompt.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/utils/warning/check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/utils/warning/print.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/auth/utils/warning/warning.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/binaries.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/cache.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/checkers.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/config/config.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/config/custom.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/config/file.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/config/menu.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/config/utils/context.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/config/utils/wrapper.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/console.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/constants.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/context/exit.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/context/run_async.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/context/stdout.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/dates.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/encoding.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/classes/progress.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/classes/task.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/classes/transfercol.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/clear.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/empty.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/groups.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/live.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/panel.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/progress.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/screens.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/live/tasks.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/classes/classes.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/classes/handlers/discord.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/classes/handlers/file.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/classes/handlers/pipe.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/classes/handlers/rich.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/classes/handlers/text.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/classes/handlers/zmq.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/close.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/globals.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/handle.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/logger.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/other.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/stdout.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/utils/level.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/logs/utils/trace.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/manager.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/me.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/menu.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/merge.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/paths/check.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/paths/common.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/paths/db.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/paths/manage.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/paths/paths.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/profiles/data.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/profiles/manage.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/profiles/tools.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/sems.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/separate.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/string.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/system/free.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/system/network.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/system/priority.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/system/speed.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/system/subprocess.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/system/system.py +0 -0
- {ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/utils/text.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: ofscraper
|
|
3
|
-
Version: 3.13.
|
|
3
|
+
Version: 3.13.dev4
|
|
4
4
|
Summary: automatically scrape onlyfans
|
|
5
5
|
Author: datawhores
|
|
6
6
|
Author-email: datawhores@riseup.net
|
|
@@ -51,6 +51,7 @@ Requires-Dist: speedtest-cli (>=2.1.3,<3.0.0)
|
|
|
51
51
|
Requires-Dist: tenacity (>=8.2.3,<9.0.0)
|
|
52
52
|
Requires-Dist: textual (==1.0.0)
|
|
53
53
|
Requires-Dist: tqdm (>=4.66.4,<5.0.0)
|
|
54
|
+
Requires-Dist: ua-generator (>=2.0.5,<3.0.0)
|
|
54
55
|
Requires-Dist: uvloop (>=0.19.0,<0.20.0) ; sys_platform == "linux" or sys_platform == "linux2"
|
|
55
56
|
Requires-Dist: win32-setctime (>=1.1.0,<2.0.0)
|
|
56
57
|
Requires-Dist: xxhash (>=3.4.1,<4.0.0)
|
|
@@ -78,7 +79,7 @@ https://github.com/datawhores/OF-Scraper/issues/442
|
|
|
78
79
|
|
|
79
80
|
```Text
|
|
80
81
|
|
|
81
|
-
Docker and binary releases also
|
|
82
|
+
Docker and binary releases also available
|
|
82
83
|
```
|
|
83
84
|
|
|
84
85
|
## Stable
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/sessionmanager/sessionmanager.py
RENAMED
|
@@ -7,7 +7,6 @@ import time
|
|
|
7
7
|
import traceback
|
|
8
8
|
|
|
9
9
|
import aiohttp
|
|
10
|
-
import aiohttp.client_exceptions
|
|
11
10
|
import arrow
|
|
12
11
|
import certifi
|
|
13
12
|
import httpx
|
|
@@ -18,6 +17,9 @@ import ofscraper.utils.auth.request as auth_requests
|
|
|
18
17
|
import ofscraper.utils.config.data as data
|
|
19
18
|
import ofscraper.utils.constants as constants
|
|
20
19
|
from ofscraper.utils.auth.utils.warning.print import print_auth_warning
|
|
20
|
+
import ofscraper.utils.settings as settings
|
|
21
|
+
import ua_generator
|
|
22
|
+
|
|
21
23
|
|
|
22
24
|
TOO_MANY = "too_many"
|
|
23
25
|
AUTH = "auth"
|
|
@@ -25,6 +27,7 @@ FORCED_NEW = "get_new_sign"
|
|
|
25
27
|
SIGN = "get_sign"
|
|
26
28
|
COOKIES = "get_cookies_str"
|
|
27
29
|
HEADERS = "create_header"
|
|
30
|
+
AGENT=str(ua_generator.generate())
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
def is_rate_limited(exception, sleeper):
|
|
@@ -343,17 +346,21 @@ class sessionManager:
|
|
|
343
346
|
try:
|
|
344
347
|
sleeper.do_sleep()
|
|
345
348
|
# remake each time
|
|
346
|
-
|
|
347
|
-
self._create_headers(
|
|
348
|
-
headers, url, SIGN in actions, FORCED_NEW in actions
|
|
349
|
-
)
|
|
350
|
-
if (
|
|
349
|
+
if (
|
|
351
350
|
SIGN in actions
|
|
352
351
|
or FORCED_NEW in actions
|
|
353
352
|
or HEADERS in actions
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
353
|
+
):
|
|
354
|
+
headers = self._create_headers(
|
|
355
|
+
headers, url, SIGN in actions, FORCED_NEW in actions
|
|
356
|
+
)
|
|
357
|
+
elif not headers or not "user-agent" in headers:
|
|
358
|
+
headers=headers or {}
|
|
359
|
+
headers.update({"user-agent":AGENT})
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
357
364
|
cookies = self._create_cookies() if COOKIES in actions else None
|
|
358
365
|
r = self._httpx_funct(
|
|
359
366
|
method,
|
|
@@ -448,17 +455,21 @@ class sessionManager:
|
|
|
448
455
|
await sem.acquire()
|
|
449
456
|
try:
|
|
450
457
|
await sleeper.async_do_sleep()
|
|
451
|
-
|
|
452
|
-
self._create_headers(
|
|
453
|
-
headers, url, SIGN in actions, FORCED_NEW in actions
|
|
454
|
-
)
|
|
455
|
-
if (
|
|
458
|
+
if (
|
|
456
459
|
SIGN in actions
|
|
457
460
|
or FORCED_NEW in actions
|
|
458
461
|
or HEADERS in actions
|
|
462
|
+
):
|
|
463
|
+
headers = (
|
|
464
|
+
self._create_headers(
|
|
465
|
+
headers, url, SIGN in actions, FORCED_NEW in actions
|
|
459
466
|
)
|
|
460
|
-
|
|
467
|
+
|
|
461
468
|
)
|
|
469
|
+
elif not headers or not "user-agent" in headers:
|
|
470
|
+
headers= headers or {}
|
|
471
|
+
headers.update({"user-agent":AGENT})
|
|
472
|
+
|
|
462
473
|
|
|
463
474
|
cookies = self._create_cookies() if COOKIES in actions else None
|
|
464
475
|
json = json
|
|
@@ -481,7 +492,7 @@ class sessionManager:
|
|
|
481
492
|
params=params,
|
|
482
493
|
json=json,
|
|
483
494
|
data=data,
|
|
484
|
-
ssl=ssl.create_default_context(cafile=certifi.where()),
|
|
495
|
+
ssl=False if not settings.get_settings().ssl_validation else ssl.create_default_context(cafile=certifi.where()),
|
|
485
496
|
)
|
|
486
497
|
else:
|
|
487
498
|
r = await self._httpx_funct_async(
|
|
@@ -12,7 +12,7 @@ r"""
|
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
14
|
import logging
|
|
15
|
-
import
|
|
15
|
+
from datetime import datetime
|
|
16
16
|
from contextlib import contextmanager
|
|
17
17
|
|
|
18
18
|
import arrow
|
|
@@ -24,7 +24,7 @@ log = logging.getLogger("shared")
|
|
|
24
24
|
def scrape_context_manager():
|
|
25
25
|
# reset stream if needed
|
|
26
26
|
# Before yield as the enter method
|
|
27
|
-
start =
|
|
27
|
+
start = datetime.now()
|
|
28
28
|
log.warning(
|
|
29
29
|
"""
|
|
30
30
|
==============================
|
|
@@ -33,12 +33,14 @@ def scrape_context_manager():
|
|
|
33
33
|
"""
|
|
34
34
|
)
|
|
35
35
|
yield
|
|
36
|
-
end =
|
|
36
|
+
end = datetime.now()
|
|
37
37
|
log.warning(
|
|
38
38
|
f"""
|
|
39
39
|
===========================
|
|
40
40
|
[bold] Script Finished [/bold]
|
|
41
41
|
Run Time: [bold]{str(arrow.get(end)-arrow.get(start)).split(".")[0]}[/bold]
|
|
42
|
+
Started At: [bold]{str(arrow.get(start).format("YYYY-MM-DD hh:mm:ss"))}[/bold]
|
|
43
|
+
Finished At: [bold]{str(arrow.get(end).format("YYYY-MM-DD hh:mm:ss"))}[/bold]
|
|
42
44
|
===========================
|
|
43
45
|
"""
|
|
44
46
|
)
|
|
@@ -10,7 +10,7 @@ def get_after_pre_checks(model_id, api):
|
|
|
10
10
|
val = 0
|
|
11
11
|
elif settings.get_settings().after is not None:
|
|
12
12
|
val = settings.get_settings().after.float_timestamp
|
|
13
|
-
elif not settings.get_settings().auto_after
|
|
13
|
+
elif not settings.get_settings().auto_after:
|
|
14
14
|
val = 0
|
|
15
15
|
elif read_full_after_scan_check(model_id, api):
|
|
16
16
|
val = 0
|
|
@@ -104,7 +104,8 @@ def funct(prompt_):
|
|
|
104
104
|
enable_auto_after: whether to dynamically set --after: default True
|
|
105
105
|
default_user_list: default user list for --action
|
|
106
106
|
default_black_list: default black list for --action
|
|
107
|
-
logs_expire_time: max age for a log before it is
|
|
107
|
+
logs_expire_time: max age for a log before it is autodelete
|
|
108
|
+
ssl_validation: option for whether to validate ssl certificates
|
|
108
109
|
remove_hash_match: remove files if hash matches
|
|
109
110
|
----------------------------------------------------------
|
|
110
111
|
[Response Type]
|
|
@@ -646,13 +647,20 @@ List are case insensitive\n
|
|
|
646
647
|
"type": "input",
|
|
647
648
|
"name": "logs_expire_time",
|
|
648
649
|
"message": "Logs expire Time",
|
|
649
|
-
"default": data.
|
|
650
|
+
"default": data.get_logs_expire(),
|
|
650
651
|
"option_instruction": """
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
652
|
+
Logs will auto delete after the selected amount of time has passed
|
|
653
|
+
If value is 'None' or '0' no logs will be touched
|
|
654
|
+
""",
|
|
655
|
+
},
|
|
656
|
+
|
|
657
|
+
{
|
|
658
|
+
"type": "input",
|
|
659
|
+
"name": "ssl_validation",
|
|
660
|
+
"message": "ssl validation",
|
|
661
|
+
"default": data.get_ssl_validation(),
|
|
662
|
+
"option_instruction": """
|
|
663
|
+
Option to disable ssl certificate validation
|
|
656
664
|
""",
|
|
657
665
|
},
|
|
658
666
|
{
|
|
@@ -268,12 +268,20 @@ def get_default_userlist(config=None):
|
|
|
268
268
|
|
|
269
269
|
@wrapper.config_reader
|
|
270
270
|
def get_logs_expire(config=None):
|
|
271
|
-
|
|
271
|
+
return(
|
|
272
272
|
config.get("logs_expire_time")
|
|
273
273
|
if not any(x == config.get("logs_expire_time") for x in [None, ""])
|
|
274
274
|
else config.get("advanced_options", {}).get("logs_expire_time")
|
|
275
275
|
)
|
|
276
|
-
|
|
276
|
+
|
|
277
|
+
@wrapper.config_reader
|
|
278
|
+
def get_ssl_validation(config=None):
|
|
279
|
+
val = (
|
|
280
|
+
config.get("ssl_validation")
|
|
281
|
+
if not any(x == config.get("ssl_validation") for x in [None, ""])
|
|
282
|
+
else config.get("advanced_options", {}).get("ssl_validation")
|
|
283
|
+
)
|
|
284
|
+
return val if val else True
|
|
277
285
|
@wrapper.config_reader
|
|
278
286
|
def get_post_download_script(config=None):
|
|
279
287
|
if config is False:
|
|
@@ -301,8 +309,8 @@ def get_post_script(config=None):
|
|
|
301
309
|
val = config.get("post_script")
|
|
302
310
|
elif config.get("advanced_options", {}).get("post_script") is not None:
|
|
303
311
|
val = config.get("advanced_options", {}).get("post_script")
|
|
304
|
-
elif config.get("scripts", {}).get("
|
|
305
|
-
val = config.get("scripts", {}).get("
|
|
312
|
+
elif config.get("scripts", {}).get("post_script") is not None:
|
|
313
|
+
val = config.get("scripts", {}).get("post_script")
|
|
306
314
|
elif config.get("script_options", {}).get("post_script") is not None:
|
|
307
315
|
val = config.get("script_options", {}).get("post_script")
|
|
308
316
|
return val if val is not None else constants_attr.getattr("POST_SCRIPT_DEFAULT")
|
|
@@ -64,9 +64,10 @@ def get_current_config_schema(config: dict = None) -> dict:
|
|
|
64
64
|
"enable_auto_after": data.get_enable_after(config=config),
|
|
65
65
|
"default_user_list": data.get_default_userlist(config=config),
|
|
66
66
|
"default_black_list": data.get_default_blacklist(config=config),
|
|
67
|
-
"logs_expire_time":data.get_logs_expire(config=config)
|
|
67
|
+
"logs_expire_time":data.get_logs_expire(config=config),
|
|
68
|
+
"ssl_validation":data.get_ssl_validation(config=config)
|
|
68
69
|
},
|
|
69
|
-
"
|
|
70
|
+
"script_options": {
|
|
70
71
|
"post_download_script": data.get_post_download_script(config=config),
|
|
71
72
|
"post_script": data.get_post_script(config=config),
|
|
72
73
|
},
|
|
@@ -98,20 +99,27 @@ def config_diff(config):
|
|
|
98
99
|
if config.get("config"):
|
|
99
100
|
config = config["config"]
|
|
100
101
|
schema = get_current_config_schema()
|
|
101
|
-
return
|
|
102
|
+
return _config_diff_helper(config, schema)
|
|
102
103
|
|
|
104
|
+
def _config_diff_helper(config, schema):
|
|
105
|
+
# Check for keys in schema but missing in config
|
|
106
|
+
if set(schema.keys()) - set(config.keys()):
|
|
107
|
+
return True
|
|
103
108
|
|
|
104
|
-
|
|
105
|
-
if
|
|
106
|
-
config = config[key]
|
|
107
|
-
schema = schema[key]
|
|
108
|
-
diff = set(schema.keys()) - set(config.keys())
|
|
109
|
-
if len(diff) > 0:
|
|
109
|
+
# Check for keys in config but missing in schema
|
|
110
|
+
if set(config.keys()) - set(schema.keys()):
|
|
110
111
|
return True
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
|
|
113
|
+
for key, schema_value in schema.items():
|
|
114
|
+
if key in config:
|
|
115
|
+
config_value = config[key]
|
|
116
|
+
if isinstance(schema_value, dict):
|
|
117
|
+
if not isinstance(config_value, dict):
|
|
118
|
+
return True
|
|
119
|
+
if _config_diff_helper(config_value, schema_value):
|
|
120
|
+
return True
|
|
121
|
+
elif schema_value != config_value: # Simple value comparison
|
|
122
|
+
return True
|
|
123
|
+
# Keys missing from config are already handled above
|
|
124
|
+
|
|
125
|
+
return False
|
|
@@ -18,7 +18,7 @@ fileHashes = {}
|
|
|
18
18
|
def get_hash(file_data, mediatype=None):
|
|
19
19
|
global fileHashes
|
|
20
20
|
hash = None
|
|
21
|
-
if settings.
|
|
21
|
+
if settings.get_settings().hash is None:
|
|
22
22
|
return
|
|
23
23
|
if isinstance(file_data, placeholder.Placeholders):
|
|
24
24
|
file_data = file_data.trunicated_filepath
|
|
@@ -137,7 +137,7 @@ downloads_pending = set()
|
|
|
137
137
|
def add_download_job_task(*args, **kwargs):
|
|
138
138
|
max_visible = constants.getattr("MAX_PROGRESS_BARS")
|
|
139
139
|
visible = (
|
|
140
|
-
settings.get_settings().download_bars
|
|
140
|
+
settings.get_settings().download_bars
|
|
141
141
|
and len(download_job_progress.tasks) < max_visible
|
|
142
142
|
)
|
|
143
143
|
task = download_job_progress.add_task(*args, visible=visible, **kwargs)
|
|
@@ -160,7 +160,7 @@ def update_download_task(*args, **kwargs):
|
|
|
160
160
|
|
|
161
161
|
|
|
162
162
|
def update_download_job_task(*args, **kwargs):
|
|
163
|
-
if not settings.get_settings().download_bars
|
|
163
|
+
if not settings.get_settings().download_bars:
|
|
164
164
|
return
|
|
165
165
|
download_job_progress.update(*args, **kwargs)
|
|
166
166
|
|
|
@@ -102,7 +102,7 @@ def print_latest_version():
|
|
|
102
102
|
"[bold yellow]OF-Scraper can't check version (probably from zip)[/bold yellow]"
|
|
103
103
|
)
|
|
104
104
|
elif ".dev" in __version__:
|
|
105
|
-
log.error("OF-Scraper up to date[/bold yellow]")
|
|
105
|
+
log.error("[bold yellow]OF-Scraper up to date[/bold yellow]")
|
|
106
106
|
else:
|
|
107
107
|
log.error(
|
|
108
108
|
f"[bold yellow]new version of OF-Scraper available[/bold yellow]: [bold]{new_version}[/bold]"
|
|
@@ -99,6 +99,7 @@ def setup_settings(mediatype):
|
|
|
99
99
|
merged.auto_resume = get_auto_resume(mediatype)
|
|
100
100
|
merged.cached_disabled = get_auto_after_enabled()
|
|
101
101
|
merged.logs_expire_time=config_data.get_logs_expire()
|
|
102
|
+
merged.ssl_validation=config_data.get_ssl_validation()
|
|
102
103
|
|
|
103
104
|
return merged
|
|
104
105
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "ofscraper"
|
|
3
|
-
version = "3.13.
|
|
3
|
+
version = "3.13.dev4"
|
|
4
4
|
description = "automatically scrape onlyfans"
|
|
5
5
|
authors = ["datawhores <datawhores@riseup.net>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -53,6 +53,7 @@ async-property = "^0.2.2"
|
|
|
53
53
|
limiter = "^0.5.0"
|
|
54
54
|
aiolimiter = "^1.1.0"
|
|
55
55
|
textual = "1.0.0"
|
|
56
|
+
ua-generator = "^2.0.5"
|
|
56
57
|
|
|
57
58
|
|
|
58
59
|
[tool.poetry.group.dev.dependencies]
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# import asyncio
|
|
2
|
-
|
|
3
|
-
# import ofscraper.commands.scraper.actions.utils.globals as common_globals
|
|
4
|
-
# import ofscraper.utils.settings as settings
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# async def send_bar_msg_batch(msg, count, update_count):
|
|
8
|
-
# if not settings.get_settings().download_bars():
|
|
9
|
-
# return
|
|
10
|
-
# await send_msg_alt(msg)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
# async def send_bar_msg(func, count, update_count):
|
|
14
|
-
# if not settings.get_settings().download_bars():
|
|
15
|
-
# return
|
|
16
|
-
# await asyncio.get_event_loop().run_in_executor(common_globals.thread, func)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/classes/table/sections/table_console.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/download.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/download/run.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/buffer.py
RENAMED
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/general.py
RENAMED
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/globals.py
RENAMED
|
File without changes
|
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/params.py
RENAMED
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/paths/media.py
RENAMED
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/paths/paths.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/retries.py
RENAMED
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/send/chunk.py
RENAMED
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/send/message.py
RENAMED
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/threads.py
RENAMED
|
File without changes
|
{ofscraper-3.13.dev2 → ofscraper-3.13.dev4}/ofscraper/commands/scraper/actions/utils/workers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|