Show
Ignore:
Timestamp:
06/16/09 16:15:38 (15 years ago)
Author:
tsuyoshi
Message:

add any patches from Alberto.

Location:
lang/elisp/twittering-mode/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/elisp/twittering-mode/trunk/ChangeLog

    r81 r135  
     12009-06-17  Tsuyoshi CHO  <Tsuyoshi.CHO+develop@Gmail.com> 
     2 
     3        * twittering-mode.el (twittering-last-timeline-interactive): New add variable. 
     4        (twittering-new-tweets-count): Ditto. 
     5        (twittering-new-tweets-hook): Ditto. 
     6        (twittering-mode-map): Add new binding v/V 
     7        (twittering-http-get-default-sentinel): Add new hook support 
     8        `twittering-new-tweets-hook'. 
     9        (twittering-render-timeline, twittering-get-timeline): Support 
     10        console emacs. 
     11        (twittering-current-timeline-interactive): Add new function. 
     12        (twittering-current-timeline-noninteractive): Ditto. 
     13        (twittering-other-user-timeline): Ditto. 
     14        (twittering-other-user-timeline-interactive): Ditto. 
     15        (twittering-status-to-status-datum): Add support status id and 
     16        reply to id. 
     17        (twittering-update-status-if-not-blank): Ditto. 
     18        (twittering-update-status-from-minibuffer): Ditto. 
     19 
    1202009-03-12  Tsuyoshi CHO  <Tsuyoshi.CHO+develop@Gmail.com> 
    221 
  • lang/elisp/twittering-mode/trunk/twittering-mode.el

    r134 r135  
    1515;; twittering-public-timeline 
    1616;; twittering-user-timeline 
    17 ;; twittering-current-timeline 
     17;; twittering-current-timeline(-(non)interractive) 
     18;; twittering-other-user-timeline 
     19;; twittering-other-user-timeline-interactive 
    1820 
    1921;; This file is free software; you can redistribute it and/or modify 
     
    5254(require 'parse-time) 
    5355 
    54 (defconst twittering-mode-version "0.6") 
     56(defconst twittering-mode-version "0.7") 
    5557 
    5658(defun twittering-mode-version () 
     
    7779 
    7880(defvar twittering-last-timeline-retrieved nil) 
     81 
     82(defvar twittering-last-timeline-interactive nil) 
     83 
     84(defvar twittering-new-tweets-count 0 
     85  "Number of new tweets when `twittering-new-tweets-hook' is run") 
     86 
     87(defvar twittering-new-tweets-hook nil 
     88  "Hook run when new twits are received. 
     89 
     90You can read `twittering-new-tweets-count' to get the number of new 
     91tweets received when this hook is run.") 
    7992 
    8093(defvar twittering-scroll-mode nil) 
     
    257270      (define-key km [mouse-1] 'twittering-click) 
    258271      (define-key km "\C-c\C-v" 'twittering-view-user-page) 
    259       (define-key km "g" 'twittering-current-timeline) 
     272      (define-key km "g" 'twittering-current-timeline-interactive) 
     273      (define-key km "v" 'twittering-other-user-timeline) 
     274      (define-key km "V" 'twittering-other-user-timeline-interactive) 
    260275      ;; (define-key km "j" 'next-line) 
    261276      ;; (define-key km "k" 'previous-line) 
     
    431446           status 
    432447           (("200 OK") 
    433             (mapcar 
    434              #'twittering-cache-status-datum 
    435              (reverse (twittering-xmltree-to-status 
    436                        body))) 
     448            (setq twittering-new-tweets-count 
     449                  (count t (mapcar 
     450                            #'twittering-cache-status-datum 
     451                            (reverse (twittering-xmltree-to-status 
     452                                      body))))) 
     453            (if (and (> twittering-new-tweets-count 0) 
     454                     (not twittering-last-timeline-interactive)) 
     455                (run-hooks 'twittering-new-tweets-hook)) 
     456            (setq twittering-last-timeline-interactive t) 
    437457            (twittering-render-timeline) 
    438458            (message (if suc-msg suc-msg "Success: Get."))) 
     
    454474              (insert "\n")) 
    455475            twittering-timeline-data) 
    456       (if twittering-image-stack 
     476      (if (and twittering-image-stack window-system) 
    457477          (clear-image-cache)) 
    458478      (setq buffer-read-only t) 
     
    527547           (list-push (attr 'created-at) result)) 
    528548          ((?C) ; %C{time-format-str} - created_at (formatted with 
    529                 ; time-format-str) 
     549           ; time-format-str) 
    530550           (list-push (twittering-local-strftime 
    531551                       (or (match-string-no-properties 2 format-str) "%H:%M:%S") 
     
    759779       `(mouse-face highlight 
    760780                    uri ,(concat "http://twitter.com/" user-screen-name) 
     781                    status-id ,id 
    761782                    face twittering-username-face) 
    762783       user-name) 
     
    766787       0 (length user-screen-name) 
    767788       `(mouse-face highlight 
    768                     face twittering-username-face 
    769789                    uri ,(concat "http://twitter.com/" user-screen-name) 
     790                    status-id ,id 
    770791                    face twittering-username-face) 
    771792       user-screen-name) 
     
    893914      ))) 
    894915 
    895 (defun twittering-update-status-if-not-blank (status) 
     916(defun twittering-update-status-if-not-blank (status &optional reply-to-id) 
    896917  (if (string-match "^\\s-*\\(?:@[-_a-z0-9]+\\)?\\s-*$" status) 
    897918      nil 
    898     (twittering-http-post "statuses" "update" 
    899                           `(("status" . ,status) 
    900                             ("source" . "twmode"))) 
     919    (let ((parameters `(("status" . ,status) 
     920                        ("source" . "twmode")))) 
     921      (twittering-http-post "statuses" "update" 
     922                            (if reply-to-id 
     923                                (cons `("in_reply_to_status_id" . ,(format "%s" reply-to-id)) 
     924                                      parameters) 
     925                              parameters))) 
    901926    t)) 
    902927 
    903 (defun twittering-update-status-from-minibuffer (&optional init-str) 
     928(defun twittering-update-status-from-minibuffer (&optional init-str 
     929                                                           reply-to-id) 
    904930  (if (null init-str) (setq init-str "")) 
    905931  (let ((status init-str) (not-posted-p t)) 
     
    907933      (setq status (read-from-minibuffer "status: " status nil nil nil nil t)) 
    908934      (setq not-posted-p 
    909             (not (twittering-update-status-if-not-blank status)))))) 
     935            (not (twittering-update-status-if-not-blank status reply-to-id)))) 
     936    )) 
    910937 
    911938(defun twittering-update-lambda () 
     
    934961  (interactive) 
    935962  (if (null action) 
    936       (setq action #'twittering-current-timeline)) 
     963      (setq action #'twittering-current-timeline-noninteractive)) 
    937964  (if twittering-timer 
    938965      nil 
     
    965992                               `(("since" . ,since))))))) 
    966993 
    967   (if twittering-icon-mode 
     994  (if (and twittering-icon-mode window-system) 
    968995      (if twittering-image-stack 
    969996          (let ((proc 
     
    10011028  (twittering-get-timeline "user_timeline")) 
    10021029 
     1030(defun twittering-current-timeline-interactive () 
     1031  (interactive) 
     1032  (setq twittering-last-timeline-interactive t) 
     1033  (twittering-current-timeline)) 
     1034 
     1035(defun twittering-current-timeline-noninteractive () 
     1036  (setq twittering-last-timeline-interactive nil) 
     1037  (twittering-current-timeline)) 
     1038 
    10031039(defun twittering-current-timeline () 
    1004   (interactive) 
    10051040  (if (not twittering-last-timeline-retrieved) 
    10061041      (setq twittering-last-timeline-retrieved "friends_timeline")) 
     
    10351070  (interactive) 
    10361071  (let ((username (get-text-property (point) 'username)) 
     1072        (status-id (get-text-property (point) 'status-id)) 
    10371073        (uri (get-text-property (point) 'uri))) 
    10381074    (if username 
    1039         (twittering-update-status-from-minibuffer (concat "@" username " ")) 
     1075        (twittering-update-status-from-minibuffer (concat "@" username " ") 
     1076                                                  status-id) 
    10401077      (if uri 
    10411078          (browse-url uri))))) 
     
    10461083    (if uri 
    10471084        (browse-url uri)))) 
     1085 
     1086(defun twittering-other-user-timeline () 
     1087  (interactive) 
     1088  (let ((username (get-text-property (point) 'username))) 
     1089    (if (> (length username) 0) 
     1090        (twittering-get-timeline (concat "user_timeline/" username)) 
     1091      (message "No user selected")))) 
     1092 
     1093(defun twittering-other-user-timeline-interactive () 
     1094  (interactive) 
     1095  (let ((username (read-from-minibuffer "user: " (get-text-property (point) 'username)))) 
     1096    (if (> (length username) 0) 
     1097        (twittering-get-timeline (concat "user_timeline/" username)) 
     1098      (message "No user selected")))) 
    10481099 
    10491100(defun twittering-reply-to-user ()