author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Sun, 01 Mar 2015 13:38:37 +0200 | |
changeset 1248 | 19234649ba68 |
parent 1214 | f9baff417868 |
child 1251 | a1f5b0d02e72 |
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) |
1214
f9baff417868
If region active - use it content as default value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1213
diff
changeset
|
30 |
(interactive (list |
f9baff417868
If region active - use it content as default value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1213
diff
changeset
|
31 |
(read-string "Python package: " |
f9baff417868
If region active - use it content as default value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1213
diff
changeset
|
32 |
(if (region-active-p) (buffer-substring (mark) (point)) (thing-at-point 'symbol)) |
f9baff417868
If region active - use it content as default value.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1213
diff
changeset
|
33 |
'pypi.pkg-history))) |
1211
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
34 |
(url-retrieve (format pypi.url pkg) #'pypi.pkg-callback)) |
c8cb83742738
Handle work with Python pypi site.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
35 |
|
1212
745c136f8398
Forget add provide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1211
diff
changeset
|
36 |
(provide 'pypi) |
745c136f8398
Forget add provide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1211
diff
changeset
|
37 |
|
745c136f8398
Forget add provide.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1211
diff
changeset
|
38 |
;;; pypi.el ends here |