kaiwk / leetcode.el

An Emacs LeetCode client.
GNU General Public License v3.0
396 stars 70 forks source link

Can't get session when use windows subsystem(wsl2.0) #88

Open 41tair opened 3 years ago

41tair commented 3 years ago

when execute my_cookies on wsl get below log get cookie from Chrome failed get cookie from Firefox failed

Maybe we can add interactive func like 'leetcode-seesion' update session manually.

gillmoni commented 2 years ago

Were you able to get it up and running?

I've tried the follwing with

WSL2 Ubuntu 20.04.2 LTS: Emacs 27.2 (doom-emacs) (FAIL) Only able to run palemoon as a browser in WSL2 (with XLaunch running as XServer), Firefox (90.0.2 64 bit) runs but keeps crashing, google-chrome always crashes. Visited leetcode in browser: Yes (palemoon 29.2.1 64 bit), but unsure if it is supported. Next i can try exporting cookies from working Ubuntu installation from below to WSL2, so far haven't tried it.

Defaulting to user installation because normal site-packages is not writeable     
Requirement already satisfied: my_cookies in /home/user/.local/lib/python3.8/site-packages (0.1.1)
Requirement already satisfied: browser-cookie3 in /home/user/.local/lib/python3.8/site-packages (from my_cookies) (0.12.1)
Requirement already satisfied: pycryptodome in /home/user/.local/lib/python3.8/site-packages (from browser-cookie3->my_cookies) (3.10.1)
Requirement already satisfied: pbkdf2 in /home/user/.local/lib/python3.8/site-packages (from browser-cookie3->my_cookies) (1.3)
Requirement already satisfied: SecretStorage in /home/user/.local/lib/python3.8/site-packages (from browser-cookie3->my_cookies) (3.3.1)
Requirement already satisfied: lz4 in /home/user/.local/lib/python3.8/site-packages (from browser-cookie3->my_cookies) (3.1.3)
Requirement already satisfied: pyaes in /home/user/.local/lib/python3.8/site-packages (from browser-cookie3->my_cookies) (1.6.1)
Requirement already satisfied: keyring in /home/user/.local/lib/python3.8/site-packages (from browser-cookie3->my_cookies) (23.0.1)
Requirement already satisfied: importlib-metadata>=3.6 in /home/user/.local/lib/python3.8/site-packages (from keyring->browser-cookie3->my_cookies) (4.6.1)
Requirement already satisfied: jeepney>=0.4.2 in /home/user/.local/lib/python3.8/site-packages (from keyring->browser-cookie3->my_cookies) (0.7.0)
Requirement already satisfied: zipp>=0.5 in /home/user/.local/lib/python3.8/site-packages (from importlib-metadata>=3.6->keyring->browser-cookie3->my_cookies) (3.5.0)
Requirement already satisfied: cryptography>=2.0 in /home/user/.local/lib/python3.8/site-packages (from SecretStorage->browser-cookie3->my_cookies) (3.4.7)
Requirement already satisfied: cffi>=1.12 in /home/user/.local/lib/python3.8/site-packages (from cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (1.14.5)
Requirement already satisfied: pycparser in /home/user/.local/lib/python3.8/site-packages (from cffi>=1.12->cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (2.20)

<I>   2.1k   *leetcode-install*  16:0 All                                                                                                                                                      Shell :no process
pip3 install my_cookies: finished.

Windows 10 ver 20H2: Emacs27.2 (vanilla) (FAIL) It's failing coz of package rotli cannot be installed. Nothing wrong with leetcode package here coz we don't even get to that step, just mentioning if for the use case. Browser: Google Chrome Version 91.0.4472.124 Visited leetcode in Browser: Yes

WARNING: Ignoring invalid distribution -rotli (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
WARNING: Ignoring invalid distribution - (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
WARNING: Ignoring invalid distribution -rotli (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
WARNING: Ignoring invalid distribution - (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
Requirement already satisfied: my_cookies in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (0.1.1)
Requirement already satisfied: browser-cookie3 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from my_cookies) (0.12.1)
Requirement already satisfied: pyaes in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from browser-cookie3->my_cookies) (1.6.1)
Requirement already satisfied: pbkdf2 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from browser-cookie3->my_cookies) (1.3)
Requirement already satisfied: keyring in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from browser-cookie3->my_cookies) (23.0.1)
Requirement already satisfied: lz4 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from browser-cookie3->my_cookies) (3.1.3)
Requirement already satisfied: pycryptodome in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from browser-cookie3->my_cookies) (3.10.1)
Requirement already satisfied: SecretStorage in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from browser-cookie3->my_cookies) (3.3.1)
Requirement already satisfied: pywin32-ctypes!=0.1.0,!=0.1.1 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from keyring->browser-cookie3->my_cookies) (0.2.0)
Requirement already satisfied: importlib-metadata>=3.6 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from keyring->browser-cookie3->my_cookies) (4.6.1)
Requirement already satisfied: zipp>=0.5 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from importlib-metadata>=3.6->keyring->browser-cookie3->my_cookies) (3.5.0)
Requirement already satisfied: typing-extensions>=3.6.4 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from importlib-metadata>=3.6->keyring->browser-cookie3->my_cookies) (3.10.0.0)
Requirement already satisfied: jeepney>=0.6 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from SecretStorage->browser-cookie3->my_cookies) (0.7.0)
Requirement already satisfied: cryptography>=2.0 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from SecretStorage->browser-cookie3->my_cookies) (2.2.2)
Requirement already satisfied: cffi>=1.7 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (1.14.5)
Requirement already satisfied: six>=1.4.1 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (1.16.0)
Requirement already satisfied: asn1crypto>=0.21.0 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (1.4.0)
Requirement already satisfied: idna>=2.1 in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (2.6)
Requirement already satisfied: pycparser in c:\users\test\appdata\local\programs\python\python36\lib\site-packages (from cffi>=1.7->cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (2.20)
WARNING: Ignoring invalid distribution -rotli (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
WARNING: Ignoring invalid distribution - (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
WARNING: Ignoring invalid distribution -rotli (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
WARNING: Ignoring invalid distribution - (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
WARNING: Ignoring invalid distribution -rotli (c:\users\test\appdata\local\programs\python\python36\lib\site-packages)
WARNING: Ignoring invalid distribution - (c:\users\test\appdata\local\programs\python\python36\lib\site-packages

"Ubuntu 21.04" (In VirtualBox) : Emacs 27.1 (doom-emacs) Firefox: 89.0.2 (64 bit) It works fine if running with emacs --no-window via terminal. (PASS) For Emacs running via Unity , it just sits and waits at the following. (FAIL)

Requirement already satisfied: my_cookies in ./.local/lib/python3.9/site-packages (0.1.1)
Requirement already satisfied: browser-cookie3 in ./.local/lib/python3.9/site-packages (from my_cookies) (0.12.1)
Requirement already satisfied: keyring in /usr/lib/python3/dist-packages (from browser-cookie3->my_cookies) (22.2.0)
Requirement already satisfied: lz4 in ./.local/lib/python3.9/site-packages (from browser-cookie3->my_cookies) (3.1.3)
Requirement already satisfied: pyaes in ./.local/lib/python3.9/site-packages (from browser-cookie3->my_cookies) (1.6.1)
Requirement already satisfied: pbkdf2 in ./.local/lib/python3.9/site-packages (from browser-cookie3->my_cookies) (1.3)
Requirement already satisfied: SecretStorage in /usr/lib/python3/dist-packages (from browser-cookie3->my_cookies) (3.3.1)
Requirement already satisfied: pycryptodome in ./.local/lib/python3.9/site-packages (from browser-cookie3->my_cookies) (3.10.1)
Requirement already satisfied: jeepney>=0.4.2 in /usr/lib/python3/dist-packages (from keyring->browser-cookie3->my_cookies) (0.6.0)
gillmoni commented 2 years ago

Upgrade Python to 3.9 on Windows 10 Native: Emacs 27.2 (doom-emacs) Now all the dependencies are resolved but still leetcode won't load inside Emacs. (FAIL)

emacs GUI (FAIL) emacs --no-window (FAIL) Visited leetcode in browser: Yes, Firefox (90.0 64 Bit)

Requirement already satisfied: browser-cookie3 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from my_cookies) (0.12.1)
Requirement already satisfied: pyaes in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from browser-cookie3->my_cookies) (1.6.1)
Requirement already satisfied: pbkdf2 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from browser-cookie3->my_cookies) (1.3)
Requirement already satisfied: keyring in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from browser-cookie3->my_cookies) (23.0.1)
Requirement already satisfied: lz4 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from browser-cookie3->my_cookies) (3.1.3)
Requirement already satisfied: pycryptodome in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from browser-cookie3->my_cookies) (3.10.1)
Requirement already satisfied: SecretStorage in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from browser-cookie3->my_cookies) (3.3.1)
Requirement already satisfied: importlib-metadata>=3.6 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from keyring->browser-cookie3->my_cookies) (4.6.1)
Requirement already satisfied: pywin32-ctypes!=0.1.0,!=0.1.1 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from keyring->browser-cookie3->my_cookies) (0.2.0)
Requirement already satisfied: zipp>=0.5 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from importlib-metadata>=3.6->keyring->browser-cookie3->my_cookies) (3.5.0)
Requirement already satisfied: jeepney>=0.6 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from SecretStorage->browser-cookie3->my_cookies) (0.7.0)
Requirement already satisfied: cryptography>=2.0 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from SecretStorage->browser-cookie3->my_cookies) (3.4.7)
Requirement already satisfied: cffi>=1.12 in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (1.14.6)
Requirement already satisfied: pycparser in c:\users\test\appdata\local\programs\python\python39\lib\site-packages (from cffi>=1.12->cryptography>=2.0->SecretStorage->browser-cookie3->my_cookies) (2.20)

Any pointers are welcome.

tongjie-chen commented 2 years ago

Try to override the function and looked at the cookies manually from your browser.

(defun leetcode--login ()

  (leetcode--loading-mode t)
  ;; (ignore-errors (url-cookie-delete-cookies leetcode--domain))
  ;;  (leetcode--csrf-token)    ;knock knock, whisper me the mysterious information
  ;; (let* ((my-cookies (executable-find "my_cookies"))
  ;;        (my-cookies-output (shell-command-to-string my-cookies))
  ;;        (cookies-list (seq-filter
  ;;                       (lambda (s) (not (string-empty-p s)))
  ;;                       (split-string my-cookies-output "\n")))
  ;;        (cookies-pairs (seq-map
  ;;                        (lambda (s) (split-string s))
  ;;                        cookies-list))
  ;;        (leetcode-session (cadr (assoc "LEETCODE_SESSION" cookies-pairs)))
  ;;        (leetcode-csrftoken (cadr (assoc "csrftoken" cookies-pairs))))
  ;;   ;; (leetcode--debug "login session: %s" leetcode-session)
  ;;   ;; (leetcode--debug "login csrftoken: %s" leetcode-csrftoken)
  ;;   ;; (url-cookie-store "LEETCODE_SESSION" leetcode-session nil leetcode--domain "/" t)
  ;;   ;; (url-cookie-store "csrftoken" leetcode-csrftoken nil leetcode--domain "/" t)
  ;;   )
  (url-cookie-store "LEETCODE_SESSION" (read-string "Cookie for LEETCODE_SESSION:") nil leetcode--domain "/" t)
  (url-cookie-store "csrftoken" (read-string "Cookie for csrftoken:") nil leetcode--domain "/" t)
  (leetcode--loading-mode -1))
catern commented 2 years ago

I had the same problem on NixOS; even manually creating a Nix package for my_cookies so I could install it, my_cookies still didn't work. So I used the override code in the @tongjie-chen 's comment above.