Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when trying to run make generate #39

Open
devns8 opened this issue Jul 18, 2024 · 4 comments · May be fixed by #40
Open

Error when trying to run make generate #39

devns8 opened this issue Jul 18, 2024 · 4 comments · May be fixed by #40

Comments

@devns8
Copy link

devns8 commented Jul 18, 2024

Hello, I'm on a Mac running Python 3.11.1 and receiving an error when running the make generate build script.

Below is an output from CLI

python3 generate.py /private/tmp/test/leetcode-anki/generate.py:215: DeprecationWarning: There is no current event loop loop: asyncio.events.AbstractEventLoop = asyncio.get_event_loop() Traceback (most recent call last): File "/private/tmp/test/leetcode-anki/generate.py", line 216, in <module> loop.run_until_complete(main()) File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/generate.py", line 211, in main await generate(start, stop, page_size, list_id, output_file) File "/private/tmp/test/leetcode-anki/generate.py", line 184, in generate task_handles = await leetcode_data.all_problems_handles() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode_anki/helpers/leetcode.py", line 274, in all_problems_handles return list(self._cache.keys()) ^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/functools.py", line 1001, in __get__ val = self.func(instance) ^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode_anki/helpers/leetcode.py", line 143, in _cache problems = self._get_problems_data() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode_anki/helpers/leetcode.py", line 240, in _get_problems_data problem_count = self._get_problems_count() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode_anki/helpers/leetcode.py", line 76, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode_anki/helpers/leetcode.py", line 148, in _get_problems_count api_instance = self._api_instance ^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/functools.py", line 1001, in __get__ val = self.func(instance) ^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode_anki/helpers/leetcode.py", line 134, in _api_instance return _get_leetcode_api_client() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode_anki/helpers/leetcode.py", line 38, in _get_leetcode_api_client csrf_token = leetcode.auth.get_csrf_cookie(session_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode-anki/lib/python3.11/site-packages/leetcode/auth.py", line 12, in get_csrf_cookie return response.cookies["csrftoken"] ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode-anki/lib/python3.11/site-packages/requests/cookies.py", line 334, in __getitem__ return self._find_no_duplicates(name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/test/leetcode-anki/leetcode-anki/lib/python3.11/site-packages/requests/cookies.py", line 413, in _find_no_duplicates raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}") KeyError: "name='csrftoken', domain=None, path=None" make: *** [generate] Error 1

Any suggestions on how to fix this? I have followed the README steps to a T.

@fspv
Copy link
Owner

fspv commented Jul 19, 2024

yeah, seems to be broken. Looks like leetcode has changed something on their side. Will take a look if I have time

@AlcibiadesCleinias AlcibiadesCleinias linked a pull request Jul 24, 2024 that will close this issue
@AlcibiadesCleinias
Copy link

AlcibiadesCleinias commented Jul 24, 2024

@devns8

so, I kindly resolved the issue, and additionally by providing a new feature. But, as the new feature is optional, you could just use the code with the provided flow in README.md (the new manual work added: you need to manually get CRSF TOKEN from cookie, screenshot also added)

git clone -b alcibiadesCleinias/fetch-user-submission https://github.com/AlcibiadesCleinias/leetcode-anki.git

@fspv
Copy link
Owner

fspv commented Jul 24, 2024

Hi @AlcibiadesCleinias. Thanks for working on that and your PR! I need to look at it a bit closer, but don't have time at the moment. I'll try to do so in the next few days.

At the first glance it looks ok, but I'm not completely convinced about including more data to the card. I mean we can include anything there but uncontrolled inclusion of everything will eventually lead to a complex logic with a lot of branching based on the feature flags.

Anyway, one thing I know for sure is that we need to split your PR into two:

  1. Fix of the CSRF token issue
  2. This experimental feature

It will be much easier to assess those changes independently.

I think I also need to actually remove this csrf method from the python-leetcode lib, because it is not working, but this is another issue

@kunleihe
Copy link

Thank you so much! Your pull request works for me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants