Changeset 54 for lang

Show
Ignore:
Timestamp:
07/09/08 14:33:59 (16 years ago)
Author:
tsuyoshi
Message:

first porting commit.

Files:
1 moved

Legend:

Unmodified
Added
Removed
  • lang/elisp/wassr-mode/trunk/wassr-mode.el

    r47 r54  
    1 ;;; twittering-mode.el --- Major mode for Twitter 
    2  
    3 ;; Copyright (C) 2007 Yuto Hayamizu. 
    4 ;;               2008 Tsuyoshi CHO 
     1;;; wassr-mode.el --- Major mode for Wassr 
     2 
     3;; Copyright (C) 2008 Tsuyoshi CHO 
    54 
    65;; Author: Y. Hayamizu <y.hayamizu@gmail.com> 
     
    87;; Created: Sep 4, 2007 
    98;; Version: 0.4 
    10 ;; Keywords: twitter web 
    11 ;; URL: http://lambdarepos.svnrepository.com/share/trac.cgi/browser/lang/elisp/twittering-mode 
     9;; Keywords: wassr web 
     10;; URL:  
    1211 
    1312;; This file is free software; you can redistribute it and/or modify 
     
    2827;;; Commentary: 
    2928 
    30 ;; twittering-mode.el is a major mode for Twitter. 
     29;; wassr-mode.el based on wassr-mode.el is a major mode for Wassr. 
    3130;; You can check friends timeline, and update your status on Emacs. 
    3231 
    3332;;; Feature Request: 
    34  
    35 ;; URL : http://twitter.com/d00dle/statuses/577876082 
    36 ;; URL : http://twitter.com/d00dle/statuses/577879732 
    37 ;; * Status Input from Popup buffer and C-cC-c to POST. 
    38 ;; * Mark fav(star) 
    39 ;; URL : http://code.nanigac.com/source/view/419 
    40 ;; * update status for region 
    4133 
    4234;;; Code: 
     
    4638(require 'parse-time) 
    4739 
    48 (defconst twittering-mode-version "0.5") 
    49  
    50 (defun twittering-mode-version () 
    51   "Display a message for twittering-mode version." 
     40(defconst wassr-mode-version "0.1") 
     41 
     42(defun wassr-mode-version () 
     43  "Display a message for wassr-mode version." 
    5244  (interactive) 
    5345  (let ((version-string 
    54          (format "twittering-mode-v%s" twittering-mode-version))) 
     46         (format "wassr-mode-v%s" wassr-mode-version))) 
    5547    (if (interactive-p) 
    5648        (message "%s" version-string) 
    5749      version-string))) 
    5850 
    59 (defvar twittering-mode-map (make-sparse-keymap)) 
    60  
    61 (defvar twittering-timer nil "Timer object for timeline refreshing will be stored here. DO NOT SET VALUE MANUALLY.") 
    62  
    63 (defvar twittering-idle-time 20) 
    64  
    65 (defvar twittering-timer-interval 90) 
    66  
    67 (defvar twittering-username nil) 
    68  
    69 (defvar twittering-password nil) 
    70  
    71 (defvar twittering-scroll-mode nil) 
    72 (make-variable-buffer-local 'twittering-scroll-mode) 
    73  
    74 (defvar twittering-jojo-mode nil) 
    75 (make-variable-buffer-local 'twittering-jojo-mode) 
    76  
    77 (defvar twittering-status-format nil) 
    78 (setq twittering-status-format "%i %s,  %@:\n  %t // from %f%L") 
     51(defvar wassr-mode-map (make-sparse-keymap)) 
     52 
     53(defvar wassr-timer nil "Timer object for timeline refreshing will be stored here. DO NOT SET VALUE MANUALLY.") 
     54 
     55(defvar wassr-idle-time 20) 
     56 
     57(defvar wassr-timer-interval 90) 
     58 
     59(defvar wassr-username nil) 
     60 
     61(defvar wassr-password nil) 
     62 
     63(defvar wassr-scroll-mode nil) 
     64(make-variable-buffer-local 'wassr-scroll-mode) 
     65 
     66(defvar wassr-jojo-mode nil) 
     67(make-variable-buffer-local 'wassr-jojo-mode) 
     68 
     69(defvar wassr-status-format nil) 
     70(setq wassr-status-format "%i %s,  %@:\n  %t // from %f%L") 
    7971;; %s - screen_name 
    8072;; %S - name 
     
    9486;; %# - id 
    9587 
    96 (defvar twittering-buffer "*twittering*") 
    97 (defun twittering-buffer () 
    98   (twittering-get-or-generate-buffer twittering-buffer)) 
    99  
    100 (defvar twittering-http-buffer "*twittering-http-buffer*") 
    101 (defun twittering-http-buffer () 
    102   (twittering-get-or-generate-buffer twittering-http-buffer)) 
    103  
    104 (defvar twittering-friends-timeline-data nil) 
    105  
    106 (defvar twittering-username-face 'twittering-username-face) 
    107 (defvar twittering-uri-face 'twittering-uri-face) 
    108  
    109 (defun twittering-get-or-generate-buffer (buffer) 
     88(defvar wassr-buffer "*wassr*") 
     89(defun wassr-buffer () 
     90  (wassr-get-or-generate-buffer wassr-buffer)) 
     91 
     92(defvar wassr-http-buffer "*wassr-http-buffer*") 
     93(defun wassr-http-buffer () 
     94  (wassr-get-or-generate-buffer wassr-http-buffer)) 
     95 
     96(defvar wassr-friends-timeline-data nil) 
     97 
     98(defvar wassr-username-face 'wassr-username-face) 
     99(defvar wassr-uri-face 'wassr-uri-face) 
     100 
     101(defun wassr-get-or-generate-buffer (buffer) 
    110102  (if (bufferp buffer) 
    111103      (if (buffer-live-p buffer) 
     
    122114 
    123115;;; Proxy 
    124 (defvar twittering-proxy-use nil) 
    125 (defvar twittering-proxy-server nil) 
    126 (defvar twittering-proxy-port 8080) 
    127 (defvar twittering-proxy-user nil) 
    128 (defvar twittering-proxy-password nil) 
    129  
    130 (defun twittering-toggle-proxy () "" 
    131   (interactive) 
    132   (setq twittering-proxy-use 
    133         (not twittering-proxy-use)) 
     116(defvar wassr-proxy-use nil) 
     117(defvar wassr-proxy-server nil) 
     118(defvar wassr-proxy-port 8080) 
     119(defvar wassr-proxy-user nil) 
     120(defvar wassr-proxy-password nil) 
     121 
     122(defun wassr-toggle-proxy () "" 
     123  (interactive) 
     124  (setq wassr-proxy-use 
     125        (not wassr-proxy-use)) 
    134126  (message "%s %s" 
    135127           "Use Proxy:" 
    136            (if twittering-proxy-use 
     128           (if wassr-proxy-use 
    137129               "on" "off"))) 
    138130 
    139 (defun twittering-user-agent-default-function () 
    140   "Twittering mode default User-Agent function." 
     131(defun wassr-user-agent-default-function () 
     132  "Wassr mode default User-Agent function." 
    141133  (concat "Emacs/" 
    142134          (int-to-string emacs-major-version) "." (int-to-string 
    143135                                                   emacs-minor-version) 
    144136          " " 
    145           "Twittering-mode/" 
    146           twittering-mode-version)) 
    147  
    148 (defvar twittering-user-agent-function 'twittering-user-agent-default-function) 
    149  
    150 (defun twittering-user-agent () 
     137          "Wassr-mode/" 
     138          wassr-mode-version)) 
     139 
     140(defvar wassr-user-agent-function 'wassr-user-agent-default-function) 
     141 
     142(defun wassr-user-agent () 
    151143  "Return User-Agent header string." 
    152   (funcall twittering-user-agent-function)) 
     144  (funcall wassr-user-agent-function)) 
    153145 
    154146;;; to show image files 
    155147 
    156 (defvar twittering-wget-buffer "*twittering-wget-buffer*") 
    157 (defun twittering-wget-buffer () 
    158   (twittering-get-or-generate-buffer twittering-wget-buffer)) 
    159  
    160 (defvar twittering-tmp-dir 
    161   (expand-file-name (concat "twmode-images-" (user-login-name)) 
     148(defvar wassr-wget-buffer "*wassr-wget-buffer*") 
     149(defun wassr-wget-buffer () 
     150  (wassr-get-or-generate-buffer wassr-wget-buffer)) 
     151 
     152(defvar wassr-tmp-dir 
     153  (expand-file-name (concat "wassr-mode-images-" (user-login-name)) 
    162154                    temporary-file-directory)) 
    163155 
    164 (defvar twittering-icon-mode nil "You MUST NOT CHANGE this variable directory. You should change through function'twittering-icon-mode'") 
    165 (make-variable-buffer-local 'twittering-icon-mode) 
    166 (defun twittering-icon-mode (&optional arg) 
    167   (interactive) 
    168   (setq twittering-icon-mode 
    169         (if twittering-icon-mode 
     156(defvar wassr-icon-mode nil "You MUST NOT CHANGE this variable directory. You should change through function'wassr-icon-mode'") 
     157(make-variable-buffer-local 'wassr-icon-mode) 
     158(defun wassr-icon-mode (&optional arg) 
     159  (interactive) 
     160  (setq wassr-icon-mode 
     161        (if wassr-icon-mode 
    170162            (if (null arg) 
    171163                nil 
     
    173165          (when (or (null arg) 
    174166                    (and arg (> (prefix-numeric-value arg) 0))) 
    175             (when (file-writable-p twittering-tmp-dir) 
     167            (when (file-writable-p wassr-tmp-dir) 
    176168              (progn 
    177                 (if (not (file-directory-p twittering-tmp-dir)) 
    178                     (make-directory twittering-tmp-dir)) 
     169                (if (not (file-directory-p wassr-tmp-dir)) 
     170                    (make-directory wassr-tmp-dir)) 
    179171                t))))) 
    180   (twittering-render-friends-timeline)) 
    181  
    182 (defun twittering-scroll-mode (&optional arg) 
    183   (interactive) 
    184   (setq twittering-scroll-mode 
     172  (wassr-render-friends-timeline)) 
     173 
     174(defun wassr-scroll-mode (&optional arg) 
     175  (interactive) 
     176  (setq wassr-scroll-mode 
    185177        (if (null arg) 
    186             (not twittering-scroll-mode) 
     178            (not wassr-scroll-mode) 
    187179          (> (prefix-numeric-value arg) 0)))) 
    188180 
    189 (defun twittering-jojo-mode (&optional arg) 
    190   (interactive) 
    191   (setq twittering-jojo-mode 
     181(defun wassr-jojo-mode (&optional arg) 
     182  (interactive) 
     183  (setq wassr-jojo-mode 
    192184        (if (null arg) 
    193             (not twittering-jojo-mode) 
     185            (not wassr-jojo-mode) 
    194186          (> (prefix-numeric-value arg) 0)))) 
    195187 
    196 (defvar twittering-image-stack nil) 
    197  
    198 (defun twittering-image-type (file-name) 
     188(defvar wassr-image-stack nil) 
     189 
     190(defun wassr-image-type (file-name) 
    199191  (cond 
    200192   ((string-match "\\.jpe?g" file-name) 'jpeg) 
     
    203195   (t nil))) 
    204196 
    205 (defun twittering-local-strftime (fmt string) 
     197(defun wassr-local-strftime (fmt string) 
    206198  (format-time-string fmt ; like "%Y-%m-%d %H:%M:%S", shown in localtime 
    207199                      (apply 'encode-time (parse-time-string string)))) 
    208200 
    209 (defvar twittering-debug-mode nil) 
    210 (defvar twittering-debug-buffer "*debug*") 
    211 (defun twittering-debug-buffer () 
    212   (twittering-get-or-generate-buffer twittering-debug-buffer)) 
     201(defvar wassr-debug-mode nil) 
     202(defvar wassr-debug-buffer "*debug*") 
     203(defun wassr-debug-buffer () 
     204  (wassr-get-or-generate-buffer wassr-debug-buffer)) 
    213205(defmacro debug-print (obj) 
    214206  (let ((obsym (gensym))) 
    215207    `(let ((,obsym ,obj)) 
    216        (if twittering-debug-mode 
    217            (with-current-buffer (twittering-debug-buffer) 
     208       (if wassr-debug-mode 
     209           (with-current-buffer (wassr-debug-buffer) 
    218210             (insert (prin1-to-string ,obsym)) 
    219211             (newline) 
     
    221213         ,obsym)))) 
    222214 
    223 (defun twittering-debug-mode () 
    224   (interactive) 
    225   (setq twittering-debug-mode 
    226         (not twittering-debug-mode)) 
    227   (message (if twittering-debug-mode "debug mode:on" "debug mode:off"))) 
    228  
    229 (if twittering-mode-map 
    230     (let ((km twittering-mode-map)) 
    231       (define-key km "\C-c\C-f" 'twittering-friends-timeline) 
    232       (define-key km "\C-c\C-s" 'twittering-update-status-interactive) 
    233       (define-key km "\C-c\C-e" 'twittering-erase-old-statuses) 
    234       (define-key km "\C-m" 'twittering-enter) 
    235       (define-key km "\C-c\C-l" 'twittering-update-lambda) 
    236       (define-key km [mouse-1] 'twittering-click) 
    237       (define-key km "\C-c\C-v" 'twittering-view-user-page) 
     215(defun wassr-debug-mode () 
     216  (interactive) 
     217  (setq wassr-debug-mode 
     218        (not wassr-debug-mode)) 
     219  (message (if wassr-debug-mode "debug mode:on" "debug mode:off"))) 
     220 
     221(if wassr-mode-map 
     222    (let ((km wassr-mode-map)) 
     223      (define-key km "\C-c\C-f" 'wassr-friends-timeline) 
     224      (define-key km "\C-c\C-s" 'wassr-update-status-interactive) 
     225      (define-key km "\C-c\C-e" 'wassr-erase-old-statuses) 
     226      (define-key km "\C-m" 'wassr-enter) 
     227      (define-key km "\C-c\C-l" 'wassr-update-lambda) 
     228      (define-key km [mouse-1] 'wassr-click) 
     229      (define-key km "\C-c\C-v" 'wassr-view-user-page) 
    238230      ;; (define-key km "j" 'next-line) 
    239231      ;; (define-key km "k" 'previous-line) 
    240       (define-key km "j" 'twittering-goto-next-status) 
    241       (define-key km "k" 'twittering-goto-previous-status) 
     232      (define-key km "j" 'wassr-goto-next-status) 
     233      (define-key km "k" 'wassr-goto-previous-status) 
    242234      (define-key km "l" 'forward-char) 
    243235      (define-key km "h" 'backward-char) 
     
    245237      (define-key km "^" 'beginning-of-line-text) 
    246238      (define-key km "$" 'end-of-line) 
    247       (define-key km "n" 'twittering-goto-next-status-of-user) 
    248       (define-key km "p" 'twittering-goto-previous-status-of-user) 
     239      (define-key km "n" 'wassr-goto-next-status-of-user) 
     240      (define-key km "p" 'wassr-goto-previous-status-of-user) 
    249241      (define-key km [backspace] 'backward-char) 
    250242      (define-key km "G" 'end-of-buffer) 
    251243      (define-key km "H" 'beginning-of-buffer) 
    252       (define-key km "i" 'twittering-icon-mode) 
    253       (define-key km "s" 'twittering-scroll-mode) 
    254       (define-key km "t" 'twittering-toggle-proxy) 
    255       (define-key km "\C-c\C-p" 'twittering-toggle-proxy) 
     244      (define-key km "i" 'wassr-icon-mode) 
     245      (define-key km "s" 'wassr-scroll-mode) 
     246      (define-key km "t" 'wassr-toggle-proxy) 
     247      (define-key km "\C-c\C-p" 'wassr-toggle-proxy) 
    256248      nil)) 
    257249 
    258 (defvar twittering-mode-syntax-table nil "") 
    259  
    260 (if twittering-mode-syntax-table 
     250(defvar wassr-mode-syntax-table nil "") 
     251 
     252(if wassr-mode-syntax-table 
    261253    () 
    262   (setq twittering-mode-syntax-table (make-syntax-table)) 
    263   ;; (modify-syntax-entry ?  "" twittering-mode-syntax-table) 
    264   (modify-syntax-entry ?\" "w"  twittering-mode-syntax-table) 
     254  (setq wassr-mode-syntax-table (make-syntax-table)) 
     255  ;; (modify-syntax-entry ?  "" wassr-mode-syntax-table) 
     256  (modify-syntax-entry ?\" "w"  wassr-mode-syntax-table) 
    265257  ) 
    266258 
    267 (defun twittering-mode-init-variables () 
     259(defun wassr-mode-init-variables () 
    268260  ;; (make-variable-buffer-local 'variable) 
    269261  ;; (setq variable nil) 
    270262  (font-lock-mode -1) 
    271   (defface twittering-username-face 
     263  (defface wassr-username-face 
    272264    `((t nil)) "" :group 'faces) 
    273   (copy-face 'font-lock-string-face 'twittering-username-face) 
    274   (set-face-attribute 'twittering-username-face nil :underline t) 
    275   (defface twittering-uri-face 
     265  (copy-face 'font-lock-string-face 'wassr-username-face) 
     266  (set-face-attribute 'wassr-username-face nil :underline t) 
     267  (defface wassr-uri-face 
    276268    `((t nil)) "" :group 'faces) 
    277   (set-face-attribute 'twittering-uri-face nil :underline t) 
    278   (add-to-list 'minor-mode-alist '(twittering-icon-mode " tw-icon")) 
    279   (add-to-list 'minor-mode-alist '(twittering-scroll-mode " tw-scroll")) 
    280   (add-to-list 'minor-mode-alist '(twittering-jojo-mode " tw-jojo")) 
     269  (set-face-attribute 'wassr-uri-face nil :underline t) 
     270  (add-to-list 'minor-mode-alist '(wassr-icon-mode " ws-icon")) 
     271  (add-to-list 'minor-mode-alist '(wassr-scroll-mode " ws-scroll")) 
     272  (add-to-list 'minor-mode-alist '(wassr-jojo-mode " ws-jojo")) 
    281273  ) 
    282274 
     
    295287;; If you use Emacs21, decode-char 'ucs will fail unless Mule-UCS is loaded. 
    296288;; TODO: Show error messages if Emacs 21 without Mule-UCS 
    297 (defmacro twittering-ucs-to-char (num) 
     289(defmacro wassr-ucs-to-char (num) 
    298290  (if (functionp 'ucs-to-char) 
    299291      `(ucs-to-char ,num) 
    300292    `(decode-char 'ucs ,num))) 
    301293 
    302 (defvar twittering-mode-string "Twittering mode") 
    303  
    304 (defvar twittering-mode-hook nil 
    305   "Twittering-mode hook.") 
    306  
    307 (defun twittering-mode () 
    308   "Major mode for Twitter" 
    309   (interactive) 
    310   (switch-to-buffer (twittering-buffer)) 
     294(defvar wassr-mode-string "Wassr mode") 
     295 
     296(defvar wassr-mode-hook nil 
     297  "Wassr-mode hook.") 
     298 
     299(defun wassr-mode () 
     300  "Major mode for Wassr" 
     301  (interactive) 
     302  (switch-to-buffer (wassr-buffer)) 
    311303  (kill-all-local-variables) 
    312   (twittering-mode-init-variables) 
    313   (use-local-map twittering-mode-map) 
    314   (setq major-mode 'twittering-mode) 
    315   (setq mode-name twittering-mode-string) 
    316   (set-syntax-table twittering-mode-syntax-table) 
    317   (run-hooks 'twittering-mode-hook) 
     304  (wassr-mode-init-variables) 
     305  (use-local-map wassr-mode-map) 
     306  (setq major-mode 'wassr-mode) 
     307  (setq mode-name wassr-mode-string) 
     308  (set-syntax-table wassr-mode-syntax-table) 
     309  (run-hooks 'wassr-mode-hook) 
    318310  (font-lock-mode -1) 
    319   (twittering-start) 
     311  (wassr-start) 
    320312  ) 
    321313 
     
    324316;;; 
    325317 
    326 (defun twittering-http-get (method-class method &optional sentinel) 
    327   (if (null sentinel) (setq sentinel 'twittering-http-get-default-sentinel)) 
     318(defun wassr-http-get (method-class method &optional sentinel) 
     319  (if (null sentinel) (setq sentinel 'wassr-http-get-default-sentinel)) 
    328320 
    329321  ;; clear the buffer 
    330322  (save-excursion 
    331     (set-buffer (twittering-http-buffer)) 
     323    (set-buffer (wassr-http-buffer)) 
    332324    (erase-buffer)) 
    333325 
    334326  (let (proc server port 
    335              (proxy-user twittering-proxy-user) 
    336              (proxy-password twittering-proxy-password)) 
     327             (proxy-user wassr-proxy-user) 
     328             (proxy-password wassr-proxy-password)) 
    337329    (condition-case nil 
    338330        (progn 
    339           (if (and twittering-proxy-use twittering-proxy-server) 
    340               (setq server twittering-proxy-server 
    341                     port (if (integerp twittering-proxy-port) 
    342                              (int-to-string twittering-proxy-port) 
    343                            twittering-proxy-port)) 
    344             (setq server "twitter.com" 
     331          (if (and wassr-proxy-use wassr-proxy-server) 
     332              (setq server wassr-proxy-server 
     333                    port (if (integerp wassr-proxy-port) 
     334                             (int-to-string wassr-proxy-port) 
     335                           wassr-proxy-port)) 
     336            (setq server "api.wassr.jp" 
    345337                  port "80")) 
    346338          (setq proc 
    347339                (open-network-stream 
    348                  "network-connection-process" (twittering-http-buffer) 
     340                 "network-connection-process" (wassr-http-buffer) 
    349341                 server (string-to-number port))) 
    350342          (set-process-sentinel proc sentinel) 
     
    354346                 request) 
    355347             (setq request 
    356                    (concat "GET http://twitter.com/" method-class "/" method ".xml HTTP/1.1" nl 
    357                            "Host: twitter.com" nl 
    358                            "User-Agent: " (twittering-user-agent) nl 
     348                   (concat "GET http://api.wassr.jp/" method-class "/" method ".xml HTTP/1.1" nl 
     349                           "Host: api.wassr.jp" nl 
     350                           "User-Agent: " (wassr-user-agent) nl 
    359351                           "Authorization: Basic " 
    360352                           (base64-encode-string 
    361                             (concat twittering-username ":" (twittering-get-password))) 
     353                            (concat wassr-username ":" (wassr-get-password))) 
    362354                           nl 
    363355                           "Accept: text/xml" 
     
    368360                           ",image/png,*/*;q=0.5" nl 
    369361                           "Accept-Charset: utf-8;q=0.7,*;q=0.7" nl 
    370                            (when twittering-proxy-use 
     362                           (when wassr-proxy-use 
    371363                             "Proxy-Connection: Keep-Alive" nl 
    372364                             (when (and proxy-user proxy-password) 
     
    383375       (message "Failure: HTTP GET") nil)))) 
    384376 
    385 (defun twittering-http-get-default-sentinel (proc stat &optional suc-msg) 
    386   (let ((header (twittering-get-response-header)) 
    387         (body (twittering-get-response-body)) 
     377(defun wassr-http-get-default-sentinel (proc stat &optional suc-msg) 
     378  (let ((header (wassr-get-response-header)) 
     379        (body (wassr-get-response-body)) 
    388380        (status nil) 
    389381        ) 
     
    395387           (("200 OK") 
    396388            (mapcar 
    397              #'twittering-cache-status-datum 
    398              (reverse (twittering-xmltree-to-status 
     389             #'wassr-cache-status-datum 
     390             (reverse (wassr-xmltree-to-status 
    399391                       body))) 
    400             (twittering-render-friends-timeline) 
     392            (wassr-render-friends-timeline) 
    401393            (message (if suc-msg suc-msg "Success: Get."))) 
    402394           (t (message status)))) 
     
    404396  ) 
    405397 
    406 (defun twittering-render-friends-timeline () 
    407   (with-current-buffer (twittering-buffer) 
     398(defun wassr-render-friends-timeline () 
     399  (with-current-buffer (wassr-buffer) 
    408400    (let ((point (point)) 
    409401          (end (point-max))) 
     
    411403      (erase-buffer) 
    412404      (mapc (lambda (status) 
    413               (insert (twittering-format-status 
    414                        status twittering-status-format)) 
     405              (insert (wassr-format-status 
     406                       status wassr-status-format)) 
    415407              (fill-region-as-paragraph 
    416408               (save-excursion (beginning-of-line) (point)) (point)) 
    417409              (insert "\n")) 
    418             twittering-friends-timeline-data) 
    419       (if twittering-image-stack 
     410            wassr-friends-timeline-data) 
     411      (if wassr-image-stack 
    420412          (clear-image-cache)) 
    421413      (setq buffer-read-only t) 
    422414      (debug-print (current-buffer)) 
    423       (goto-char (+ point (if twittering-scroll-mode (- (point-max) end) 0)))) 
     415      (goto-char (+ point (if wassr-scroll-mode (- (point-max) end) 0)))) 
    424416    )) 
    425417 
    426 (defun twittering-format-status (status format-str) 
     418(defun wassr-format-status (status format-str) 
    427419  (flet ((attr (key) 
    428420               (assocref key status)) 
     
    434426                (let ((filename (match-string-no-properties 1 profile-image-url))) 
    435427                  ;; download icons if does not exist 
    436                   (if (file-exists-p (concat twittering-tmp-dir 
     428                  (if (file-exists-p (concat wassr-tmp-dir 
    437429                                             "/" filename)) 
    438430                      t 
    439                     (add-to-list 'twittering-image-stack profile-image-url)) 
    440  
    441                   (when (and icon-string twittering-icon-mode) 
     431                    (add-to-list 'wassr-image-stack profile-image-url)) 
     432 
     433                  (when (and icon-string wassr-icon-mode) 
    442434                    (set-text-properties 
    443435                     1 2 `(display 
    444                            (image :type ,(twittering-image-type filename) 
    445                                   :file ,(concat twittering-tmp-dir 
     436                           (image :type ,(wassr-image-type filename) 
     437                                  :file ,(concat wassr-tmp-dir 
    446438                                                 "/" 
    447439                                                 filename))) 
     
    488480           (list-push (attr 'created-at) result)) 
    489481          ((?C) ; %C{time-format-str} - created_at (formatted with time-format-str) 
    490            (list-push (twittering-local-strftime 
     482           (list-push (wassr-local-strftime 
    491483                       (or (match-string-no-properties 2 format-str) "%H:%M:%S") 
    492484                       (attr 'created-at)) 
     
    514506                                                   (/ (+ secs 1800) 3600))) 
    515507                           (t (format-time-string "%I:%M %p %B %d, %Y" created-at)))) 
    516                (setq url (twittering-get-status-url (attr 'user-screen-name) (attr 'id))) 
     508               (setq url (wassr-get-status-url (attr 'user-screen-name) (attr 'id))) 
    517509               ;; make status url clickable 
    518510               (add-text-properties 
    519511                0 (length time-string) 
    520512                `(mouse-face highlight 
    521                              face twittering-uri-face 
     513                             face wassr-uri-face 
    522514                             uri ,url) 
    523515                time-string) 
     
    546538      ))) 
    547539 
    548 (defun twittering-http-post 
     540(defun wassr-http-post 
    549541  (method-class method &optional parameters contents sentinel) 
    550   "Send HTTP POST request to twitter.com 
    551  
    552 METHOD-CLASS must be one of Twitter API method classes(statuses, users or direct_messages). 
    553 METHOD must be one of Twitter API method which belongs to METHOD-CLASS. 
     542  "Send HTTP POST request to api.wassr.jp 
     543 
     544METHOD-CLASS must be one of Wassr API method classes(statuses, users or direct_messages). 
     545METHOD must be one of Wassr API method which belongs to METHOD-CLASS. 
    554546PARAMETERS is alist of URI parameters. ex) ((\"mode\" . \"view\") (\"page\" . \"6\")) => <URI>?mode=view&page=6" 
    555   (if (null sentinel) (setq sentinel 'twittering-http-post-default-sentinel)) 
     547  (if (null sentinel) (setq sentinel 'wassr-http-post-default-sentinel)) 
    556548 
    557549  ;; clear the buffer 
    558550  (save-excursion 
    559     (set-buffer (twittering-http-buffer)) 
     551    (set-buffer (wassr-http-buffer)) 
    560552    (erase-buffer)) 
    561553 
    562554  (let (proc server port 
    563              (proxy-user twittering-proxy-user) 
    564              (proxy-password twittering-proxy-password)) 
     555             (proxy-user wassr-proxy-user) 
     556             (proxy-password wassr-proxy-password)) 
    565557    (progn 
    566       (if (and twittering-proxy-use twittering-proxy-server) 
    567           (setq server twittering-proxy-server 
    568                 port (if (integerp twittering-proxy-port) 
    569                          (int-to-string twittering-proxy-port) 
    570                        twittering-proxy-port)) 
    571         (setq server "twitter.com" 
     558      (if (and wassr-proxy-use wassr-proxy-server) 
     559          (setq server wassr-proxy-server 
     560                port (if (integerp wassr-proxy-port) 
     561                         (int-to-string wassr-proxy-port) 
     562                       wassr-proxy-port)) 
     563        (setq server "api.wassr.jp" 
    572564              port "80")) 
    573565      (setq proc 
    574566            (open-network-stream 
    575              "network-connection-process" (twittering-http-buffer) 
     567             "network-connection-process" (wassr-http-buffer) 
    576568             server (string-to-number port))) 
    577569      (set-process-sentinel proc sentinel) 
     
    581573             request) 
    582574         (setq  request 
    583                 (concat "POST http://twitter.com/" method-class "/" method ".xml?" 
     575                (concat "POST http://api.wassr.jp/" method-class "/" method ".xml?" 
    584576                        (if parameters 
    585577                            (mapconcat 
    586578                             (lambda (param-pair) 
    587579                               (format "%s=%s" 
    588                                        (twittering-percent-encode (car param-pair)) 
    589                                        (twittering-percent-encode (cdr param-pair)))) 
     580                                       (wassr-percent-encode (car param-pair)) 
     581                                       (wassr-percent-encode (cdr param-pair)))) 
    590582                             parameters 
    591583                             "&")) 
    592584                        " HTTP/1.1" nl 
    593                         "Host: twitter.com" nl 
    594                         "User-Agent: " (twittering-user-agent) nl 
     585                        "Host: api.wassr.jp" nl 
     586                        "User-Agent: " (wassr-user-agent) nl 
    595587                        "Authorization: Basic " 
    596588                        (base64-encode-string 
    597                          (concat twittering-username ":" (twittering-get-password))) 
     589                         (concat wassr-username ":" (wassr-get-password))) 
    598590                        nl 
    599591                        "Content-Type: text/plain" nl 
    600592                        "Content-Length: 0" nl 
    601                         (when twittering-proxy-use 
     593                        (when wassr-proxy-use 
    602594                          "Proxy-Connection: Keep-Alive" nl 
    603595                          (when (and proxy-user proxy-password) 
     
    612604         request))))) 
    613605 
    614 (defun twittering-http-post-default-sentinel (proc stat &optional suc-msg) 
     606(defun wassr-http-post-default-sentinel (proc stat &optional suc-msg) 
    615607 
    616608  (condition-case err-signal 
    617       (let ((header (twittering-get-response-header)) 
    618             ;; (body (twittering-get-response-body)) not used now. 
     609      (let ((header (wassr-get-response-header)) 
     610            ;; (body (wassr-get-response-body)) not used now. 
    619611            (status nil)) 
    620612        (string-match "HTTP/1\.1 \\([a-z0-9 ]+\\)\r?\n" header) 
     
    628620  ) 
    629621 
    630 (defun twittering-get-response-header (&optional buffer) 
     622(defun wassr-get-response-header (&optional buffer) 
    631623  "Exract HTTP response header from HTTP response. 
    632624`buffer' may be a buffer or the name of an existing buffer. 
    633  If `buffer' is omitted, the value of `twittering-http-buffer' is used as `buffer'." 
     625 If `buffer' is omitted, the value of `wassr-http-buffer' is used as `buffer'." 
    634626  (if (stringp buffer) (setq buffer (get-buffer buffer))) 
    635   (if (null buffer) (setq buffer (twittering-http-buffer))) 
     627  (if (null buffer) (setq buffer (wassr-http-buffer))) 
    636628  (save-excursion 
    637629    (set-buffer buffer) 
     
    639631      (substring content 0 (string-match "\r?\n\r?\n" content))))) 
    640632 
    641 (defun twittering-get-response-body (&optional buffer) 
     633(defun wassr-get-response-body (&optional buffer) 
    642634  "Exract HTTP response body from HTTP response, parse it as XML, and return a XML tree as list. 
    643635`buffer' may be a buffer or the name of an existing buffer. 
    644  If `buffer' is omitted, the value of `twittering-http-buffer' is used as `buffer'." 
     636 If `buffer' is omitted, the value of `wassr-http-buffer' is used as `buffer'." 
    645637  (if (stringp buffer) (setq buffer (get-buffer buffer))) 
    646   (if (null buffer) (setq buffer (twittering-http-buffer))) 
     638  (if (null buffer) (setq buffer (wassr-http-buffer))) 
    647639  (save-excursion 
    648640    (set-buffer buffer) 
     
    654646      ))) 
    655647 
    656 (defun twittering-cache-status-datum (status-datum &optional data-var) 
    657   "Cache status datum into data-var(default twittering-friends-timeline-data) 
     648(defun wassr-cache-status-datum (status-datum &optional data-var) 
     649  "Cache status datum into data-var(default wassr-friends-timeline-data) 
    658650If STATUS-DATUM is already in DATA-VAR, return nil. If not, return t." 
    659651  (if (null data-var) 
    660       (setf data-var 'twittering-friends-timeline-data)) 
     652      (setf data-var 'wassr-friends-timeline-data)) 
    661653  (let ((id (cdr (assq 'id status-datum)))) 
    662654    (if (or (null (symbol-value data-var)) 
     
    666658                  (symbol-value data-var)))) 
    667659        (progn 
    668           (if twittering-jojo-mode 
    669               (twittering-update-jojo (cdr (assq 'user-screen-name status-datum)) 
     660          (if wassr-jojo-mode 
     661              (wassr-update-jojo (cdr (assq 'user-screen-name status-datum)) 
    670662                                      (cdr (assq 'text status-datum)))) 
    671663          (set data-var (cons status-datum (symbol-value data-var))) 
     
    673665      nil))) 
    674666 
    675 (defun twittering-status-to-status-datum (status) 
     667(defun wassr-status-to-status-datum (status) 
    676668  (flet ((assq-get (item seq) 
    677669                   (car (cddr (assq item seq))))) 
     
    689681 
    690682      (setq id (string-to-number (assq-get 'id status-data))) 
    691       (setq text (twittering-decode-html-entities 
     683      (setq text (wassr-decode-html-entities 
    692684                  (assq-get 'text status-data))) 
    693       (setq source (twittering-decode-html-entities 
     685      (setq source (wassr-decode-html-entities 
    694686                    (assq-get 'source status-data))) 
    695687      (setq created-at (assq-get 'created_at status-data)) 
    696688      (setq truncated (assq-get 'truncated status-data)) 
    697689      (setq user-id (string-to-number (assq-get 'id user-data))) 
    698       (setq user-name (twittering-decode-html-entities 
     690      (setq user-name (wassr-decode-html-entities 
    699691                       (assq-get 'name user-data))) 
    700       (setq user-screen-name (twittering-decode-html-entities 
     692      (setq user-screen-name (wassr-decode-html-entities 
    701693                              (assq-get 'screen_name user-data))) 
    702       (setq user-location (twittering-decode-html-entities 
     694      (setq user-location (wassr-decode-html-entities 
    703695                           (assq-get 'location user-data))) 
    704       (setq user-description (twittering-decode-html-entities 
     696      (setq user-description (wassr-decode-html-entities 
    705697                              (assq-get 'description user-data))) 
    706698      (setq user-profile-image-url (assq-get 'profile_image_url user-data)) 
     
    712704       0 (length user-name) 
    713705       `(mouse-face highlight 
    714                     uri ,(concat "http://twitter.com/" user-screen-name) 
    715                     face twittering-username-face) 
     706                    uri ,(concat "http://api.wassr.jp/" user-screen-name) 
     707                    face wassr-username-face) 
    716708       user-name) 
    717709 
     
    720712       0 (length user-screen-name) 
    721713       `(mouse-face highlight 
    722                     face twittering-username-face 
    723                     uri ,(concat "http://twitter.com/" user-screen-name) 
    724                     face twittering-username-face) 
     714                    face wassr-username-face 
     715                    uri ,(concat "http://api.wassr.jp/" user-screen-name) 
     716                    face wassr-username-face) 
    725717       user-screen-name) 
    726718 
     
    744736                 `(mouse-face 
    745737                   highlight 
    746                    face twittering-uri-face 
    747                    uri ,(concat "http://twitter.com/" screen-name)) 
     738                   face wassr-uri-face 
     739                   uri ,(concat "http://api.wassr.jp/" screen-name)) 
    748740               `(mouse-face highlight 
    749                             face twittering-uri-face 
     741                            face wassr-uri-face 
    750742                            uri ,uri)) 
    751743             text)) 
     
    762754             `(mouse-face highlight 
    763755                          uri ,uri 
    764                           face twittering-uri-face 
     756                          face wassr-uri-face 
    765757                          source ,source) 
    766758             source) 
     
    777769            user-protected))))) 
    778770 
    779 (defun twittering-xmltree-to-status (xmltree) 
    780   (mapcar #'twittering-status-to-status-datum 
     771(defun wassr-xmltree-to-status (xmltree) 
     772  (mapcar #'wassr-status-to-status-datum 
    781773          ;; quirk to treat difference between xml.el in Emacs21 and Emacs22 
    782774          ;; On Emacs22, there may be blank strings 
     
    788780            ret))) 
    789781 
    790 (defun twittering-percent-encode (str &optional coding-system) 
     782(defun wassr-percent-encode (str &optional coding-system) 
    791783  (if (or (null coding-system) 
    792784          (not (coding-system-p coding-system))) 
     
    795787   (lambda (c) 
    796788     (cond 
    797       ((twittering-url-reserved-p c) 
     789      ((wassr-url-reserved-p c) 
    798790       (char-to-string c)) 
    799791      ((eq c ? ) "+") 
     
    802794   "")) 
    803795 
    804 (defun twittering-url-reserved-p (ch) 
     796(defun wassr-url-reserved-p (ch) 
    805797  (or (and (<= ?A ch) (<= ch ?z)) 
    806798      (and (<= ?0 ch) (<= ch ?9)) 
     
    810802      (eq ?~ ch))) 
    811803 
    812 (defun twittering-decode-html-entities (encoded-str) 
     804(defun wassr-decode-html-entities (encoded-str) 
    813805  (if encoded-str 
    814806      (let ((cursor 0) 
     
    825817                   (list-push 
    826818                    (char-to-string 
    827                      (twittering-ucs-to-char 
     819                     (wassr-ucs-to-char 
    828820                      (string-to-number number-entity))) result)) 
    829821                  (letter-entity 
     
    837829    "")) 
    838830 
    839 (defun twittering-timer-action (func) 
    840   (let ((buf (get-buffer twittering-buffer))) 
     831(defun wassr-timer-action (func) 
     832  (let ((buf (get-buffer wassr-buffer))) 
    841833    (if (null buf) 
    842         (twittering-stop) 
     834        (wassr-stop) 
    843835      (funcall func) 
    844836      ))) 
    845837 
    846 (defun twittering-update-status-if-not-blank (status) 
     838(defun wassr-update-status-if-not-blank (status) 
    847839  (if (string-match "^\\s-*\\(?:@[-_a-z0-9]+\\)?\\s-*$" status) 
    848840      nil 
    849     (twittering-http-post "statuses" "update" 
     841    (wassr-http-post "statuses" "update" 
    850842                          `(("status" . ,status) 
    851                             ("source" . "twmode"))) 
     843                            ("source" . "ws-mode"))) 
    852844    t)) 
    853845 
    854 (defun twittering-update-status-from-minibuffer (&optional init-str) 
     846(defun wassr-update-status-from-minibuffer (&optional init-str) 
    855847  (if (null init-str) (setq init-str "")) 
    856848  (let ((status init-str) (not-posted-p t)) 
     
    858850      (setq status (read-from-minibuffer "status: " status nil nil nil nil t)) 
    859851      (setq not-posted-p 
    860             (not (twittering-update-status-if-not-blank status)))))) 
    861  
    862 (defun twittering-update-lambda () 
    863   (interactive) 
    864   (twittering-http-post 
     852            (not (wassr-update-status-if-not-blank status)))))) 
     853 
     854(defun wassr-update-lambda () 
     855  (interactive) 
     856  (wassr-http-post 
    865857   "statuses" "update" 
    866858   `(("status" . "\xd34b\xd22b\xd26f\xd224\xd224\xd268\xd34b") 
    867      ("source" . "twmode")))) 
    868  
    869 (defun twittering-update-jojo (usr msg) 
     859     ("source" . "ws-mode")))) 
     860 
     861(defun wassr-update-jojo (usr msg) 
    870862  (if (string-match "\xde21\xd24b\\(\xd22a\xe0b0\\|\xdaae\xe6cd\\)\xd24f\xd0d6\\([^\xd0d7]+\\)\xd0d7\xd248\xdc40\xd226" 
    871863                    msg) 
    872       (twittering-http-post 
     864      (wassr-http-post 
    873865       "statuses" "update" 
    874866       `(("status" . ,(concat 
     
    876868                       (match-string-no-properties 2 msg) 
    877869                       "\xd0a1\xd24f\xd243!?")) 
    878          ("source" . "twmode"))))) 
     870         ("source" . "ws-mode"))))) 
    879871 
    880872;;; 
     
    882874;;; 
    883875 
    884 (defun twittering-start (&optional action) 
     876(defun wassr-start (&optional action) 
    885877  (interactive) 
    886878  (if (null action) 
    887       (setq action #'twittering-friends-timeline)) 
    888   (if twittering-timer 
     879      (setq action #'wassr-friends-timeline)) 
     880  (if wassr-timer 
    889881      nil 
    890     (setq twittering-timer 
     882    (setq wassr-timer 
    891883          (run-at-time "0 sec" 
    892                        twittering-timer-interval 
    893                        #'twittering-timer-action action)))) 
    894  
    895 (defun twittering-stop () 
    896   (interactive) 
    897   (cancel-timer twittering-timer) 
    898   (setq twittering-timer nil)) 
    899  
    900 (defun twittering-friends-timeline () 
    901   (interactive) 
    902   (let ((buf (get-buffer twittering-buffer))) 
     884                       wassr-timer-interval 
     885                       #'wassr-timer-action action)))) 
     886 
     887(defun wassr-stop () 
     888  (interactive) 
     889  (cancel-timer wassr-timer) 
     890  (setq wassr-timer nil)) 
     891 
     892(defun wassr-friends-timeline () 
     893  (interactive) 
     894  (let ((buf (get-buffer wassr-buffer))) 
    903895    (if (not buf) 
    904         (twittering-stop) 
    905       (twittering-http-get "statuses" "friends_timeline") 
     896        (wassr-stop) 
     897      (wassr-http-get "statuses" "friends_timeline") 
    906898      )) 
    907899 
    908   (if twittering-icon-mode 
    909       (if twittering-image-stack 
     900  (if wassr-icon-mode 
     901      (if wassr-image-stack 
    910902          (let ((proc 
    911903                 (apply 
    912904                  #'start-process 
    913905                  "wget-images" 
    914                   (twittering-wget-buffer) 
     906                  (wassr-wget-buffer) 
    915907                  "wget" 
    916                   (format "--directory-prefix=%s" twittering-tmp-dir) 
     908                  (format "--directory-prefix=%s" wassr-tmp-dir) 
    917909                  "--no-clobber" 
    918910                  "--quiet" 
    919                   twittering-image-stack))) 
     911                  wassr-image-stack))) 
    920912            (set-process-sentinel 
    921913             proc 
     
    923915               (clear-image-cache) 
    924916               (save-excursion 
    925                  (set-buffer (twittering-wget-buffer)) 
     917                 (set-buffer (wassr-wget-buffer)) 
    926918                 ))))))) 
    927919 
    928 (defun twittering-update-status-interactive () 
    929   (interactive) 
    930   (twittering-update-status-from-minibuffer)) 
    931  
    932 (defun twittering-erase-old-statuses () 
    933   (interactive) 
    934   (setq twittering-friends-timeline-data nil) 
    935   (twittering-http-get "statuses" "friends_timeline")) 
    936  
    937 (defun twittering-click () 
     920(defun wassr-update-status-interactive () 
     921  (interactive) 
     922  (wassr-update-status-from-minibuffer)) 
     923 
     924(defun wassr-erase-old-statuses () 
     925  (interactive) 
     926  (setq wassr-friends-timeline-data nil) 
     927  (wassr-http-get "statuses" "friends_timeline")) 
     928 
     929(defun wassr-click () 
    938930  (interactive) 
    939931  (let ((uri (get-text-property (point) 'uri))) 
     
    941933        (browse-url uri)))) 
    942934 
    943 (defun twittering-enter () 
     935(defun wassr-enter () 
    944936  (interactive) 
    945937  (let ((username (get-text-property (point) 'username)) 
    946938        (uri (get-text-property (point) 'uri))) 
    947939    (if username 
    948         (twittering-update-status-from-minibuffer (concat "@" username " ")) 
     940        (wassr-update-status-from-minibuffer (concat "@" username " ")) 
    949941      (if uri 
    950942          (browse-url uri))))) 
    951943 
    952 (defun twittering-view-user-page () 
     944(defun wassr-view-user-page () 
    953945  (interactive) 
    954946  (let ((uri (get-text-property (point) 'uri))) 
     
    956948        (browse-url uri)))) 
    957949 
    958 (defun twittering-reply-to-user () 
     950(defun wassr-reply-to-user () 
    959951  (interactive) 
    960952  (let ((username (get-text-property (point) 'username))) 
    961953    (if username 
    962         (twittering-update-status-from-minibuffer (concat "@" username " "))))) 
    963  
    964 (defun twittering-get-password () 
    965   (or twittering-password 
    966       (setq twittering-password (read-passwd "twittering-mode: ")))) 
    967  
    968 (defun twittering-goto-next-status () 
     954        (wassr-update-status-from-minibuffer (concat "@" username " "))))) 
     955 
     956(defun wassr-get-password () 
     957  (or wassr-password 
     958      (setq wassr-password (read-passwd "wassr-mode: ")))) 
     959 
     960(defun wassr-goto-next-status () 
    969961  "Go to next status." 
    970962  (interactive) 
    971963  (let ((pos)) 
    972     (setq pos (twittering-get-next-username-face-pos (point))) 
     964    (setq pos (wassr-get-next-username-face-pos (point))) 
    973965    (if pos 
    974966        (goto-char pos) 
    975967      (message "End of status.")))) 
    976968 
    977 (defun twittering-get-next-username-face-pos (pos) 
     969(defun wassr-get-next-username-face-pos (pos) 
    978970  (interactive) 
    979971  (let ((prop)) 
    980972    (catch 'not-found 
    981       (while (and pos (not (eq prop twittering-username-face))) 
     973      (while (and pos (not (eq prop wassr-username-face))) 
    982974        (setq pos (next-single-property-change pos 'face)) 
    983975        (when (eq pos nil) (throw 'not-found nil)) 
     
    985977      pos))) 
    986978 
    987 (defun twittering-goto-previous-status () 
     979(defun wassr-goto-previous-status () 
    988980  "Go to previous status." 
    989981  (interactive) 
    990982  (let ((pos)) 
    991     (setq pos (twittering-get-previous-username-face-pos (point))) 
     983    (setq pos (wassr-get-previous-username-face-pos (point))) 
    992984    (if pos 
    993985        (goto-char pos) 
    994986      (message "Start of status.")))) 
    995987 
    996 (defun twittering-get-previous-username-face-pos (pos) 
     988(defun wassr-get-previous-username-face-pos (pos) 
    997989  (interactive) 
    998990  (let ((prop)) 
    999991    (catch 'not-found 
    1000       (while (and pos (not (eq prop twittering-username-face))) 
     992      (while (and pos (not (eq prop wassr-username-face))) 
    1001993        (setq pos (previous-single-property-change pos 'face)) 
    1002994        (when (eq pos nil) (throw 'not-found nil)) 
     
    1004996      pos))) 
    1005997 
    1006 (defun twittering-goto-next-status-of-user () 
     998(defun wassr-goto-next-status-of-user () 
    1007999  "Go to next status of user." 
    10081000  (interactive) 
    1009   (let ((user-name (twittering-get-username-at-pos (point))) 
    1010         (pos (twittering-get-next-username-face-pos (point)))) 
     1001  (let ((user-name (wassr-get-username-at-pos (point))) 
     1002        (pos (wassr-get-next-username-face-pos (point)))) 
    10111003    (while (and (not (eq pos nil)) 
    1012                 (not (equal (twittering-get-username-at-pos pos) user-name))) 
    1013       (setq pos (twittering-get-next-username-face-pos pos))) 
     1004                (not (equal (wassr-get-username-at-pos pos) user-name))) 
     1005      (setq pos (wassr-get-next-username-face-pos pos))) 
    10141006    (if pos 
    10151007        (goto-char pos) 
     
    10181010        (message "Invalid user-name."))))) 
    10191011 
    1020 (defun twittering-goto-previous-status-of-user () 
     1012(defun wassr-goto-previous-status-of-user () 
    10211013  "Go to previous status of user." 
    10221014  (interactive) 
    1023   (let ((user-name (twittering-get-username-at-pos (point))) 
    1024         (pos (twittering-get-previous-username-face-pos (point)))) 
     1015  (let ((user-name (wassr-get-username-at-pos (point))) 
     1016        (pos (wassr-get-previous-username-face-pos (point)))) 
    10251017    (while (and (not (eq pos nil)) 
    1026                 (not (equal (twittering-get-username-at-pos pos) user-name))) 
    1027       (setq pos (twittering-get-previous-username-face-pos pos))) 
     1018                (not (equal (wassr-get-username-at-pos pos) user-name))) 
     1019      (setq pos (wassr-get-previous-username-face-pos pos))) 
    10281020    (if pos 
    10291021        (goto-char pos) 
     
    10321024        (message "Invalid user-name."))))) 
    10331025 
    1034 (defun twittering-get-username-at-pos (pos) 
     1026(defun wassr-get-username-at-pos (pos) 
    10351027  (let ((start-pos pos) 
    10361028        (end-pos)) 
    10371029    (catch 'not-found 
    1038       (while (eq (get-text-property start-pos 'face) twittering-username-face) 
     1030      (while (eq (get-text-property start-pos 'face) wassr-username-face) 
    10391031        (setq start-pos (1- start-pos)) 
    10401032        (when (or (eq start-pos nil) (eq start-pos 0)) (throw 'not-found nil))) 
     
    10431035      (buffer-substring start-pos end-pos)))) 
    10441036 
    1045 (defun twittering-get-status-url (username id) 
     1037(defun wassr-get-status-url (username id) 
    10461038  "Generate status URL." 
    1047   (format "http://twitter.com/%s/statuses/%d" username id)) 
     1039  (format "http://api.wassr.jp/%s/statuses/%d" username id)) 
    10481040 
    10491041;;;###autoload 
    1050 (defun twit () 
    1051   "Start twittering-mode." 
    1052   (interactive) 
    1053   (twittering-mode)) 
    1054  
    1055 (provide 'twittering-mode) 
    1056 ;;; twittering.el ends here 
     1042(defun wassr () 
     1043  "Start wassr-mode." 
     1044  (interactive) 
     1045  (wassr-mode)) 
     1046 
     1047(provide 'wassr-mode) 
     1048;;; wassr.el ends here