kaiwk / leetcode.el Goto Github PK
View Code? Open in Web Editor NEWAn Emacs LeetCode client.
License: GNU General Public License v3.0
An Emacs LeetCode client.
License: GNU General Public License v3.0
After user login, LeetCode website will return a session, which keeps the login state, and we can make use of that. In that case, the user need only login once in a duration.
for example 269,
PNG warning: Interlace handling should be turned on when using png_read_image
When done with this frame, type SPC F d
Contacting host: leetcode.com:443
uncompressing publicsuffix.txt.gz...done
Contacting host: leetcode.com:443
Mark saved where search started [2 times]
Contacting host: leetcode.com:443
LeetCode brings you offer, and now Emacs brings you LeetCode!
I found there is an async/await
library for emacs: emacs-aio. Time to move on to it from deferred.el
, since async/await
is more idiomatic and more standard way to do asynchronous jobs.
It's also a chance to rewrite some part of it.
Could you please add the support for leetcode-cn.com?
It's too slow to connect to leetcode.com in China.
Is it possible to show failed test cases? Right now only number of cases passed are shown.
Could an option be added to hide problem tags from the interface? Sometimes part of preparation is knowing which data structures/algorithms to use, and seeing the tags somewhat defeats the purpose.
It appears the /tags endpoint return a companies key but that doesn't seem to have been recorded. It would be nice if it's added to the filterable tags.
Thanks for make leetcode so easy in Emacs.
I just wonder if there is a way to quit all leetcode.el related windows in one command. Currently, I'm using M-x kill-matching-buffers
then delete the windows, which involve many keystrokes. So if there is a command that would be really convenient.
I think we may need a difficulty filter (sort with difficulty may be enough)?
Thank you for this package! It's beautiful. This is something that I had in mind but you beat me to it. I have an implementation of this ready but the keybindings are all messed up. I will fix all that I can but my Elisp foo isn't great. Would you be willing to help me on this journey - or even better - maintaining it?
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
string-match("\\.log\\'" nil nil)
string-match-p("\\.log\\'" nil)
assoc-default(nil (("\\.log\\'" . logview-mode) ("\\.pa\\'" . conf-mode) ("\\.conkyrc\\'" . lua-mode) ("\\.http\\'" . restclient-mode) ("\\.html\\'" . web-mode) (".*/\\.kube/config\\'" . k8s-mode) ("\\.redis\\'" . redis-mode) ("\\.yml$" . yaml-mode) ("\\.yaml$" . yaml-mode) ("\\.adoc\\'" . adoc-mode) ("\\.rst'" . auto-complete-rst) ("\\.Renviron\\'" . R-mode) ("\\.Rprofile\\'" . R-mode) ("\\.S\\'" . S-mode) ("\\.[rR]\\'" . R-mode) ("\\.xml\\'" . nxml-mode) ("\\.js\\'" . js2-mode) ("\\(pages\\|snippets\\|templates\\)/.*\\.php?$" . web-mode) ("\\.php\\'" . php-mode) ("\\.pom\\'" . nxml-mode) ("\\.zsh-theme\\'" . sh-mode) ("\\.zsh\\'" . sh-mode) ("\\.irbrc\\'" . ruby-mode) (".* boot" . clojure-mode) ("\\.boot\\'" . clojure-mode) ("\\.rkt\\'" . racket-mode) ("\\.sbclrc\\'" . lisp-mode) ("\\.lisp\\'" . common-lisp-mode) ("\\.cl\\'" . common-lisp-mode) ("\\.gitignore\\'" . gitignore-mode) ("\\.gitconfig\\'" . gitconfig-mode) ("\\.yasnippet$" . snippet-mode) ("\\.snippet$" . snippet-mode) ("\\.eml\\'" . org-mode) ("\\.getmailrc\\'" . conf-mode) ("\\.procmailrc\\'" . conf-mode) ("\\.odc\\'" . archive-mode) ("\\.odf\\'" . archive-mode) ("\\.odi\\'" . archive-mode) ("\\.otp\\'" . archive-mode) ("\\.odp\\'" . archive-mode) ("\\.otg\\'" . archive-mode) ("\\.odg\\'" . archive-mode) ("\\.ots\\'" . archive-mode) ("\\.ods\\'" . archive-mode) ("\\.odm\\'" . archive-mode) ("\\.ott\\'" . archive-mode) ("\\.odt\\'" . archive-mode) ("\\.epub\\'" . nov-mode) ("\\.epub\\'" . ereader-mode) ...) string-match-p)
leetcode--start-coding("Add Two Numbers" (((langSlug . "cpp") (code . "/**\n * Definition for singly-linked list.\n * struc...")) ((langSlug . "java") (code . "/**\n * Definition for singly-linked list.\n * publi...")) ((langSlug . "python") (code . "# Definition for singly-linked list.\n# class ListN...")) ((langSlug . "python3") (code . "# Definition for singly-linked list.\n# class ListN...")) ((langSlug . "c") (code . "/**\n * Definition for singly-linked list.\n * struc...")) ((langSlug . "csharp") (code . "/**\n * Definition for singly-linked list.\n * publi...")) ((langSlug . "javascript") (code . "/**\n * Definition for singly-linked list.\n * funct...")) ((langSlug . "ruby") (code . "# Definition for singly-linked list.\n# class ListN...")) ((langSlug . "swift") (code . "/**\n * Definition for singly-linked list.\n * publi...")) ((langSlug . "golang") (code . "/**\n * Definition for singly-linked list.\n * type ...")) ((langSlug . "scala") (code . "/**\n * Definition for singly-linked list.\n * class...")) ((langSlug . "kotlin") (code . "/**\n * Example:\n * var li = ListNode(5)\n * var v =...")) ((langSlug . "rust") (code . "// Definition for singly-linked list.\n// #[derive(...")) ((langSlug . "php") (code . "/**\n * Definition for a singly-linked list.\n * cla..."))) "[2,4,3]\n[5,6,4]")
#f(compiled-function (btn) #<bytecode 0x155f45cef5d9>)(#<marker (moves after insertion) at 71 in *leetcode-description*>)
button-activate(#<marker (moves after insertion) at 71 in *leetcode-description*> nil)
push-button(71)
funcall-interactively(push-button 71)
call-interactively(push-button nil nil)
#f(compiled-function (cmd &optional record-flag keys special) "Execute CMD as an editor command.\nCMD must be a symbol that satisfies the `commandp' predicate.\nOptional second arg RECORD-FLAG non-nil\nmeans unconditionally put this command in the variable `command-history'.\nOtherwise, that is done only if an arg is read using the minibuffer.\nThe argument KEYS specifies the value to use instead of (this-command-keys)\nwhen reading the arguments; if it is nil, (this-command-keys) is used.\nThe argument SPECIAL, if non-nil, means that this command is executing\na special event, so ignore the prefix argument and don't clear it." #<bytecode 0x1ff5cfbe1eaf>)(push-button nil nil nil)
ad-Advice-command-execute(#f(compiled-function (cmd &optional record-flag keys special) "Execute CMD as an editor command.\nCMD must be a symbol that satisfies the `commandp' predicate.\nOptional second arg RECORD-FLAG non-nil\nmeans unconditionally put this command in the variable `command-history'.\nOtherwise, that is done only if an arg is read using the minibuffer.\nThe argument KEYS specifies the value to use instead of (this-command-keys)\nwhen reading the arguments; if it is nil, (this-command-keys) is used.\nThe argument SPECIAL, if non-nil, means that this command is executing\na special event, so ignore the prefix argument and don't clear it." #<bytecode 0x1ff5cfbe1eaf>) push-button)
apply(ad-Advice-command-execute #f(compiled-function (cmd &optional record-flag keys special) "Execute CMD as an editor command.\nCMD must be a symbol that satisfies the `commandp' predicate.\nOptional second arg RECORD-FLAG non-nil\nmeans unconditionally put this command in the variable `command-history'.\nOtherwise, that is done only if an arg is read using the minibuffer.\nThe argument KEYS specifies the value to use instead of (this-command-keys)\nwhen reading the arguments; if it is nil, (this-command-keys) is used.\nThe argument SPECIAL, if non-nil, means that this command is executing\na special event, so ignore the prefix argument and don't clear it." #<bytecode 0x1ff5cfbe1eaf>) push-button)
command-execute(push-button)
This is the stacktrace after toggled debug-on-error
after pressing "solve it" button.
url.el
has problems with HTTPS, because of poor TLS support of Emacs26.
request.el
with cURL
backend seems much more promising.
use M-x leetcode , out put is blew, and nothing next .
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://mirrors.aliyun.com/pypi/simple
Requirement already satisfied: my_cookies in ./.local/lib/python3.6/site-packages (0.1.1)
Requirement already satisfied: browser-cookie3 in ./.local/lib/python3.6/site-packages (from my_cookies) (0.11.1)
Requirement already satisfied: lz4 in ./.local/lib/python3.6/site-packages (from browser-cookie3->my_cookies) (3.1.0)
Requirement already satisfied: pyaes in ./.local/lib/python3.6/site-packages (from browser-cookie3->my_cookies) (1.6.1)
Requirement already satisfied: pbkdf2 in ./.local/lib/python3.6/site-packages (from browser-cookie3->my_cookies) (1.3)
Requirement already satisfied: keyring in /usr/lib/python3/dist-packages (from browser-cookie3->my_cookies) (10.6.0)
Requirement already satisfied: pycryptodome in ./.local/lib/python3.6/site-packages (from browser-cookie3->my_cookies) (3.9.8)
Requirement already satisfied: secretstorage in /usr/lib/python3/dist-packages (from keyring->browser-cookie3->my_cookies) (2.3.1)
I don't want to store my LeetCode account and password in my Emacs configuration file as my entire config is public on github.
I also find it to be very troublesome to read the password from somewhere else.
(setq leetcode-account "your-account")
(setq leetcode-password "your-password")
Instead, I would like a prompt to enter it manually every time I start a leetcode client. Is it possible?
For example, only display the problem with hashtable tag
Run M-x leetcode but did not return problem list with the logging:
Requirement already satisfied: my_cookies in c:\users\gaowei\scoop\apps\python\3.8.5\lib\site-packages (0.1.1)
Requirement already satisfied: browser-cookie3 in c:\users\gaowei\scoop\apps\python\3.8.5\lib\site-packages (from my_cookies) (0.11.2)
Requirement already satisfied: pyaes in c:\users\gaowei\scoop\apps\python\3.8.5\lib\site-packages (from browser-cookie3->my_cookies) (1.6.1)
Requirement already satisfied: pbkdf2 in c:\users\gaowei\scoop\apps\python\3.8.5\lib\site-packages (from browser-cookie3->my_cookies) (1.3)
Requirement already satisfied: keyring in c:\users\gaowei\scoop\apps\python\3.8.5\lib\site-packages (from browser-cookie3->my_cookies) (21.4.0)
Requirement already satisfied: lz4 in c:\users\gaowei\scoop\apps\python\3.8.5\lib\site-packages (from browser-cookie3->my_cookies) (3.1.0)
Requirement already satisfied: pycryptodome in c:\users\gaowei\scoop\apps\python\3.8.5\lib\site-packages (from browser-cookie3->my_cookies) (3.9.8)
Requirement already satisfied: pywin32-ctypes!=0.1.0,!=0.1.1; sys_platform == "win32" in c:\users\gaowei\scoop\apps\python\3.8.5\lib\site-packages (from keyring->browser-cookie3->my_cookies) (0.2.0)
request-deferred.el offers the capability of making an asynchronous HTTP request, but the user may not know whether everything is alright.
I decided to use spinner.el to achieve this purpose
Reproduction:
M-x leetcode
t
Expectation:
The problem list should contain the list of problems filtered by the tag
Hi, it would be useful if there was a way to get the URL of a problem. Displaying it as part of the problem description would be nice.
Some pictures in LeetCode problems description use HTTPS, which shr.el will
failed to render.
It seems shr.el can't use external tools to do networking (such as curl). So on
rendering problems description, we stuck in HTTP.
Maybe this function has been renamed, but it still occurs in https://github.com/kaiwk/leetcode.el/blob/master/leetcode.el#L1077
Would it be possible to add filters to only show easy/medium/hard problems?
After I submit and refresh leetcode. Sometimes I got this error info:
Wrong type argument: numberp,nil
I open the debugger, it says:
Debugger entered--Lisp error: (wrong-type-argument numberp nil)
number-to-string(nil)
(concat (capitalize difficulty) html-margin "likes: " (number-to-string likes) html-margin "dislikes: " (number-to-string dislikes))
(insert (concat (capitalize difficulty) html-margin "likes: " (number-to-string likes) html-margin "dislikes: " (number-to-string dislikes)))
(progn (insert (concat "<h1>" pos ". " title "</h1>")) (insert (concat (capitalize difficulty) html-margin "likes: " (number-to-string likes) html-margin "dislikes: " (number-to-string dislikes))) (insert content) (setq shr-current-font t) (leetcode--replace-in-buffer "\015" "") (leetcode--replace-in-buffer "https" "http") (shr-render-buffer (current-buffer)))
(unwind-protect (progn (insert (concat "<h1>" pos ". " title "</h1>")) (insert (concat (capitalize difficulty) html-margin "likes: " (number-to-string likes) html-margin "dislikes: " (number-to-string dislikes))) (insert content) (setq shr-current-font t) (leetcode--replace-in-buffer "\015" "") (leetcode--replace-in-buffer "https" "http") (shr-render-buffer (current-buffer))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
(save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert (concat "<h1>" pos ". " title "</h1>")) (insert (concat (capitalize difficulty) html-margin "likes: " (number-to-string likes) html-margin "dislikes: " (number-to-string dislikes))) (insert content) (setq shr-current-font t) (leetcode--replace-in-buffer "\015" "") (leetcode--replace-in-buffer "https" "http") (shr-render-buffer (current-buffer))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
(let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert (concat "<h1>" pos ". " title "</h1>")) (insert (concat (capitalize difficulty) html-margin "likes: " (number-to-string likes) html-margin "dislikes: " (number-to-string dislikes))) (insert content) (setq shr-current-font t) (leetcode--replace-in-buffer "\015" "") (leetcode--replace-in-buffer "https" "http") (shr-render-buffer (current-buffer))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
(let* ((entry (tabulated-list-get-entry)) (pos (aref entry 1)) (title (aref entry 2)) (difficulty (aref entry 4)) (problem (leetcode--parse-problem title)) (content (alist-get 'content problem)) (dislikes (alist-get 'dislikes problem)) (likes (alist-get 'likes problem)) (snippets (alist-get 'codeSnippets problem)) (testcase (alist-get 'sampleTestCase problem)) (buf-name leetcode--descr-buffer-name) (html-margin " ")) (if (get-buffer buf-name) (progn (kill-buffer buf-name))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert (concat "<h1>" pos ". " title "</h1>")) (insert (concat (capitalize difficulty) html-margin "likes: " (number-to-string likes) html-margin "dislikes: " (number-to-string dislikes))) (insert content) (setq shr-current-font t) (leetcode--replace-in-buffer "\015" "") (leetcode--replace-in-buffer "https" "http") (shr-render-buffer (current-buffer))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (save-current-buffer (set-buffer "*html*") (let ((save-match-data-internal (match-data))) (unwind-protect (progn (re-search-forward "dislikes: .*" nil t) (insert (make-string 4 32)) (insert-text-button "solve it" 'action (function (lambda (btn) (leetcode--start-coding title (append snippets nil) testcase))) 'help-echo "solve the problem.")) (set-match-data save-match-data-internal 'evaporate))) (rename-buffer buf-name) (leetcode--problem-description-mode) (switch-to-buffer (current-buffer))))
leetcode-show-descri()
funcall-interactively(leetcode-show-descri)
call-interactively(leetcode-show-descri nil nil)
command-execute(leetcode-show-descri)
Does anybody encounter this?
Hi, I installed leetcode.el using use-package to my Emacs configurations, when I using M-x leetcode RET to invoke it, Emacs not show leetcode buffer. maybe is bug or I not installed third-party package?
.emacs.d/elpa/leetcode-20191011.800/leetcode.el: ‘if-let’ is an obsolete macro (as of 26.1); use ‘if-let*’ instead. [8 times]
Contacting host: leetcode.com:443 [2 times]
LeetCode login failed: (error http 403)
Contacting host: leetcode.com:443
I use doom-emacs, when hit slove-it , the wrong message is
ad-Advice-set-window-buffer: Wrong type argument: window-live-p,
run M-x leetcode
, then
aio-promise: Symbol’s function definition is void: record
Seems it successfully logged in via my_cookies
, *leetcode*
buffer shows the problem list, with ✅️ on the first column.
However, leetcode-show-current-problem
doesn't show anything, the status line shows Contacting host: leetcode.com:443
The above functions are useful in *leetcode*
buffer. I will try to add this if I have time.
Hello! This package looks great.
Could you please create a stable version and add it to Melpa stable?
I'm trying to maximize the stability of my emacs and I'm trying to use Melpa stable, so that the installed packages are not just HEAD version of github repos. Thank you!
It seems like you just need to create a git tag for versions.
After user decide to solve a problem, a special layout will be created. So that
user can customize their testcases and see its result.
+----------------------------+-------------------------------+
| | |
| | |
| | |
| | |
| | Problem Description |
| | |
| | |
| | |
| Code +-------------------------------+
| | |
| | Customize Testcase |
| | |
| +-------------------------------+
| | |
| | |
| | Submit/Test Result |
| | |
+----------------------------+-------------------------------+
In leetcode, stdout of a program is shown in a frame which is different from the one used to show the returned value. e.g. When I put 'print' in python and test the code, the result of print will be shown in an output frame, even if my program finally gets a runtime error.
I think stdout very useful for debugging but it seems like that this function hasn't been implemented in this plugin. That is, at now, the stdout of my program doesn't show in emacs, although the same program does generate some output on the web version of leetcode. Hope this feature will be added.
As an user of both Leetcode plugin on VSCode and Emacs, I found there are many features could be implemented in Emacs:
Overall the current package looks great. Thanks for your effort to build this awesome package.
Now LeetCode run code put expected and output in the same API.
I check the trace which says that leetcode problems refresh is a void definition... I am using emacs 26.3 and installed this package from Melpa.
((("User-Agent" . "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:66.0) Gecko/20100101
Firefox/66.0") ("X-Requested-With" . "XMLHttpRequest") ("Referer" . "https://leetcode.com
/accounts/login"))) (nil) (error) leetcode--loading-mode -1 plist-get :error message
"LeetCode fetch user and problems failed: %S" json-read url-request-method url-request-
extra-headers url-http-end-of-headers] 6])] 2]) (nil) (error)] 4])] 2]) (#2) (#[0 "\301\302
\300\242\"\207" [(#2) signal iter-end-of-sequence] 3]) :close nil :next make-byte-code 0
"\303\242?\205�\0\300\302\242\240\210\301\304\240\207" vconcat vector [nil] 2 cps--
yield t error "unknown iterator operation %S"] 12
I don't know how to interpret these messages.
As title says, "everytime" has a interval of 20 mins not accurately... And I use linux and doom emacs. I don't know why...
So, I tried your extension today. I think it's awesome! However, I have the following problem:
I successfully login and get the main problem list to load in emacs. As a test, I solved the Two Sum
problem and tried to run it with leetcode-try
, but got LeetCode try failed: (error http 403)
. I tried with a different problem and it gives the same.
Hi there,
I am able to use the base leetcode
command to populate the "homepage" and select "solve it" to bring up the normal layout.
However, when I try to submit or try, I get an "error http 403" error:
14:43:49 [DEBUG] leetcode try slug-title: two-sum, problem-id: 1
14:43:50 [WARN ] LeetCode try failed: (error http 403)
Is there anything I can do to help diagnose this issue?
When I login in successfully, and run M-x Leetcode another time, I got this error:
REQUEST [debug] REQUEST
REQUEST [debug] Run: curl --silent --include --location --compressed --cookie /Users/wangtianshu/.emacs.d/.cache/request/curl-cookie-jar --cookie-jar /Users/wangtianshu/.emacs.d/.cache/request/curl-cookie-jar --write-out \n(:num-redirects %{num_redirects} :url-effective "%{url_effective}") --form csrfmiddlewaretoken=@/var/folders/99/v69js2k510g5g724sf4f97500000gn/T/emacs-requestT0jfBH;filename= --form login=@/var/folders/99/v69js2k510g5g724sf4f97500000gn/T/emacs-requestkK1Trx;filename= --form password=@/var/folders/99/v69js2k510g5g724sf4f97500000gn/T/emacs-requestr3yxan;filename= --request POST --header User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:66.0) Gecko/20100101 Firefox/66.0 --header X-Requested-With: XMLHttpRequest --header Referer: https://leetcode.com/accounts/login --header X-CSRFToken: FpbaERbqkv9Ku9pw7ypJnO2JNumTSQ5ymdqsujHq7xJHOjWKR5tBFIAlA2xAmsMd https://leetcode.com/accounts/login
REQUEST [debug] REQUEST--CURL-CALLBACK event = finished
REQUEST [debug] REQUEST--CURL-CALLBACK proc = #<process request curl>
REQUEST [debug] REQUEST--CURL-CALLBACK buffer = #<buffer *request curl*>
REQUEST [debug] REQUEST--CURL-CALLBACK symbol-status = nil
REQUEST [debug] REQUEST--CALLBACK
REQUEST [debug] (buffer-string) =
HTTP/2 200
date: Wed, 04 Sep 2019 08:23:23 GMT
content-type: application/json
content-length: 17
vary: Cookie
x-frame-options: SAMEORIGIN
set-cookie: csrftoken=FpbaERbqkv9Ku9pw7ypJnO2JNumTSQ5ymdqsujHq7xJHOjWKR5tBFIAlA2xAmsMd; expires=Wed, 02 Sep 2020 08:23:23 GMT; Max-Age=31449600; Path=/; SameSite=Lax; Secure
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
cf-ray: 510e8fa50f258488-HKG
{"location": "/"}
REQUEST [debug] REQUEST-RESPONSE--CANCEL-TIMER
REQUEST [debug] -CLEAN-HEADER
REQUEST [debug] -CUT-HEADER
REQUEST [debug] error-thrown = nil
REQUEST [debug] -PARSE-DATA
REQUEST [debug] parser = buffer-string
REQUEST [debug] data = {"location": "/"}
REQUEST [debug] symbol-status = success
REQUEST [debug] Executing success callback.
REQUEST [debug] Executing complete callback.
REQUEST [debug] REQUEST
REQUEST [debug] Run: curl --silent --include --location --compressed --cookie /Users/wangtianshu/.emacs.d/.cache/request/curl-cookie-jar --cookie-jar /Users/wangtianshu/.emacs.d/.cache/request/curl-cookie-jar --write-out \n(:num-redirects %{num_redirects} :url-effective "%{url_effective}") --header User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:66.0) Gecko/20100101 Firefox/66.0 --header X-Requested-With: XMLHttpRequest --header Referer: https://leetcode.com/accounts/login https://leetcode.com/api/problems/all/
REQUEST [debug] REQUEST--CURL-CALLBACK event = finished
REQUEST [debug] REQUEST--CURL-CALLBACK proc = #<process request curl>
REQUEST [debug] REQUEST--CURL-CALLBACK buffer = #<buffer *request curl*>
REQUEST [debug] REQUEST--CURL-CALLBACK symbol-status = nil
REQUEST [debug] REQUEST--CALLBACK
REQUEST [debug] (buffer-string) =
HTTP/1.0 200 Connection established
HTTP/2 200
date: Wed, 04 Sep 2019 08:23:27 GMT
content-type: text/html; charset=utf-8
vary: Accept-Encoding
allow: GET, HEAD, OPTIONS
vary: Cookie
x-frame-options: SAMEORIGIN
set-cookie: csrftoken=FpbaERbqkv9Ku9pw7ypJnO2JNumTSQ5ymdqsujHq7xJHOjWKR5tBFIAlA2xAmsMd; expires=Wed, 02 Sep 2020 08:23:27 GMT; Max-Age=31449600; Path=/; SameSite=Lax; Secure
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
cf-ray: 510e8fb87aa3a2e2-HKG
content-encoding: gzip
{"user_name": "Voleking" ...}
REQUEST [debug] REQUEST-RESPONSE--CANCEL-TIMER
REQUEST [debug] -CLEAN-HEADER
REQUEST [debug] -CUT-HEADER
REQUEST [debug] error-thrown = (search-failed "^
")
REQUEST [debug] -PARSE-DATA
REQUEST [debug] parser = json-read
REQUEST [debug] data = nil
REQUEST [debug] symbol-status = error
REQUEST [debug] Executing error callback.
REQUEST [error] Error (error) while connecting to https://leetcode.com/api/problems/all/.
REQUEST [debug] Executing complete callback.
Will you add the run code feature in the furture?
And maybe add a funciton to get the solution page of a question is also a good idea :)
With these feature, I can just stay in emacs and coding :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.