author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Thu, 19 Feb 2015 19:29:16 +0200 | |
changeset 1212 | 745c136f8398 |
parent 1211 | c8cb83742738 |
child 1213 | e0de9be5c1ee |
permissions | -rw-r--r-- |
1211
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
1 |
;;; pypi.el --- Handle work with Python pypi site. |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
2 |
|
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
3 |
;;; Commentary: |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
4 |
;; |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
5 |
|
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
6 |
(require 'url-handlers) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
7 |
(require 'thingatpt) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
8 |
|
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
9 |
;;; Code: |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
10 |
|
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
11 |
(defvar pypi.buffer-name "*Pip*") |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
12 |
|
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
13 |
(defvar pypi.pkg-history nil) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
14 |
|
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
15 |
(defvar pypi.url "https://pypi.python.org/pypi/%s/json") |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
16 |
|
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
17 |
(defun pypi.pkg-callback (status) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
18 |
(let ( (buffer (current-buffer)) content-type status ) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
19 |
(setq content-type (mail-fetch-field "Content-Type")) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
20 |
(setq status url-http-response-status) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
21 |
(switch-to-buffer pypi.buffer-name) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
22 |
(erase-buffer) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
23 |
(url-insert buffer) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
24 |
(fundamental-mode) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
25 |
(when (and (eq status 200) (string-match "application/json" content-type)) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
26 |
(js-mode)))) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
27 |
|
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
28 |
;;;###autoload |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
29 |
(defun pypi.pkg (pkg) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
30 |
(interactive (list (read-string "Python package: " "" 'pypi.pkg-history (thing-at-point symbol)))) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
31 |
(url-retrieve (format pypi.url pkg) #'pypi.pkg-callback)) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
32 |
|
1212
745c136f8398
Forget add provide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1211
diff
changeset
|
33 |
(provide 'pypi) |
745c136f8398
Forget add provide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1211
diff
changeset
|
34 |
|
745c136f8398
Forget add provide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1211
diff
changeset
|
35 |
;;; pypi.el ends here |