Using the model filter feature breaks the script and causes it to crash.
This is from the comments in #379.
To Reproduce
Run the script and filter your model selection i.e. for only free subscriptions.
Select models from the selection you wish to scrape
Start scrape
Expected behavior
The script doesn't crash and progresses as normal.
Screenshots/Logs
[WinError 6] The handle is invalid
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 113, in get
if not self._poll(timeout):
^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\connection.py", line 256, in poll
return self._poll(timeout)
^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\connection.py", line 329, in _poll
return bool(wait([self], timeout))
^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\connection.py", line 882, in wait
ov.cancel()
OSError: [WinError 6] The handle is invalid
Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 100, in get
raise ValueError(f"Queue {self!r} is closed")
ValueError: Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 100, in get
raise ValueError(f"Queue {self!r} is closed")
ValueError: Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 100, in get
raise ValueError(f"Queue {self!r} is closed")
ValueError: Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 100, in get
raise ValueError(f"Queue {self!r} is closed")
ValueError: Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 100, in get
raise ValueError(f"Queue {self!r} is closed")
ValueError: Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 100, in get
raise ValueError(f"Queue {self!r} is closed")
ValueError: Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 100, in get
raise ValueError(f"Queue {self!r} is closed")
ValueError: Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\logs\stdout.py", line 37, in logger_process
messages = funct(timeout=constants.getattr("LOGGER_TIMEOUT"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\multiprocessing\queues.py", line 100, in get
raise ValueError(f"Queue {self!r} is closed")
ValueError: Queue <multiprocessing.queues.Queue object at 0x0000012FCBB9B910> is closed
This is the logging file output
2024-05-27 08:54:33:[helpers.inner:11] Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\scraper.py", line 77, in main
scrapper()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\scraper.py", line 112, in scrapper
process_prompts()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\context\exit.py", line 92, in inner
raise E
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\context\exit.py", line 85, in inner
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\scraper.py", line 58, in process_prompts
if menu.main_menu_action():
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\menu.py", line 41, in main_menu_action
runner()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\context\exit.py", line 92, in inner
raise E
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\context\exit.py", line 85, in inner
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\runner.py", line 42, in runner
userdata, session = prepare()
^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\runner.py", line 64, in prepare
userdata = userselector.getselected_usernames(rescan=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\models\selector.py", line 89, in getselected_usernames
parsed_subscriptions_helper()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\models\selector.py", line 144, in parsed_subscriptions_helper
selectedusers = retriver.get_selected_model(filterNSort())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\models\retriver.py", line 80, in get_selected_model
return prompts.model_selector(parsed_subscriptions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\prompts\prompt_groups\model.py", line 41, in model_selector
p = promptClasses.getFuzzySelection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\prompts\promptConvert.py", line 17, in inner
with prompt_live():
File "C:\Python311\Lib\contextlib.py", line 144, in __exit__
next(self.gen)
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\live\empty.py", line 12, in prompt_live
live.start()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\rich\live.py", line 113, in start
self.console.set_live(self)
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\rich\console.py", line 836, in set_live
raise errors.LiveError("Only one live display may be active at once")
rich.errors.LiveError: Only one live display may be active at once
2024-05-27 08:54:33:[run.main:29] Traceback (most recent call last):
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\runner\run.py", line 17, in main
main_helper()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\runner\run.py", line 47, in main_helper
picker.pick()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\helpers\picker.py", line 17, in pick
actions.main()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\scraper.py", line 95, in main
raise E
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\scraper.py", line 77, in main
scrapper()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\scraper.py", line 112, in scrapper
process_prompts()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\context\exit.py", line 92, in inner
raise E
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\context\exit.py", line 85, in inner
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\scraper.py", line 58, in process_prompts
if menu.main_menu_action():
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\menu.py", line 41, in main_menu_action
runner()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\context\exit.py", line 92, in inner
raise E
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\context\exit.py", line 85, in inner
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\runner.py", line 42, in runner
userdata, session = prepare()
^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\commands\scraper\runner.py", line 64, in prepare
userdata = userselector.getselected_usernames(rescan=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\models\selector.py", line 89, in getselected_usernames
parsed_subscriptions_helper()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\models\selector.py", line 144, in parsed_subscriptions_helper
selectedusers = retriver.get_selected_model(filterNSort())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\models\retriver.py", line 80, in get_selected_model
return prompts.model_selector(parsed_subscriptions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\prompts\prompt_groups\model.py", line 41, in model_selector
p = promptClasses.getFuzzySelection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\prompts\promptConvert.py", line 17, in inner
with prompt_live():
File "C:\Python311\Lib\contextlib.py", line 144, in __exit__
next(self.gen)
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\ofscraper\utils\live\empty.py", line 12, in prompt_live
live.start()
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\rich\live.py", line 113, in start
self.console.set_live(self)
File "C:\Users\user\.local\pipx\venvs\ofscraper\Lib\site-packages\rich\console.py", line 836, in set_live
raise errors.LiveError("Only one live display may be active at once")
rich.errors.LiveError: Only one live display may be active at once
Describe the bug
Using the model filter feature breaks the script and causes it to crash.
This is from the comments in #379.
To Reproduce
Run the script and filter your model selection i.e. for only free subscriptions. Select models from the selection you wish to scrape Start scrape
Expected behavior
The script doesn't crash and progresses as normal.
Screenshots/Logs
This is the logging file output
Config
(https://pastebin.com/bb2TX5Ae)
System Info