Fetching contributors…
Cannot retrieve contributors at this time
306 lines (279 sloc) 13.5 KB
NEWS -- The history of twittering-mode
### Important notice
### Improvements
* Support for storing private information in a file encrypted by master
password. Once you save the authorized account by using master password,
you have to input PIN no longer. This is enabled by
`(setq twittering-use-master-password t)'.
The private information is stored in `~/.twittering-mode.gpg', which can
be specified by `twittering-private-info-file'.
To enable master password, you need GnuPG and an additional Emacs LISP
program, which is `alpaca.el' or EasyPG (Emacs23 includes EasyPG).
To use with `alpaca.el', you should use the version 0.13. With other
versions of `alpaca.el' the current implementation may not work well
because it deeply depends on internal implementation of `alpaca.el'.
* Authentication via xAuth.
You can enable xAuth by "(setq twittering-auth-method 'xauth)".
* Rejection of invalid PIN code input and strip extra white spaces.
* Confirmation of process status for avoiding dead-lock.
* Native retweets on `user', `friends', `mentions' and `public' timelines.
* Detection of abnormal exit of an invoked process.
The exit-status on abnormal exit is printed to the buffer "*Messages*".
* Support for disabling server authentication.
Server authentication is enabled by default.
It can be disabled by "(setq twittering-allow-insecure-server-cert t)".
* Replacement of unknown numeric character references with its alternative.
The alternative can be specified by "twittering-unicode-replacement-char".
Its default value is U+FFFD.
* Addition of the files ".nosearch".
The files ".nosearch" are added to sub-directories. This makes the sub-
directories be excluded from recursive registration of "load-path".
* Suppression of multiple authorization.
Authorization will be performed only once even if multiple timelines
are specified as initial timelines.
* Independence of byte-compiled form from "cl".
Byte-compiled `twittering-mode.el' does not depend on `cl'.
* Update of the embedded CA certificate.
The embedded CA certificate is replaced with `Equifax Secure Certificate
* Support for StatusNet.
You can switch `twittering-mode.el' to StatusNet mode by
"(setq twittering-service-method 'statusnet)". Note that you cannot
use one instance of Emacs with `twittering-mode.el' for Twitter and
StatusNet simultaneously.
To use StatusNet, you must configure variables of host information.
For the service on `', you may require the below
(setq twittering-service-method 'statusnet)
(setq twittering-auth-method 'basic)
(setq twittering-username "YOUR-ACCOUNT-NAME")
;; host
(setq twittering-api-host "")
(setq twittering-api-search-host "")
(setq twittering-web-host "")
;; paths for API
(setq twittering-api-prefix "api/")
(setq twittering-search-api-method "api/search")
(setq twittering-web-path-prefix "")
* Copy tweets by "C-<mouse-3>".
Thanks to Faried Nawaz.
* Support for `wget'.
The external program `wget' can be used for communicating with Twitter
as well as `curl'. You can give priority to `wget' by the below
(setq twittering-connection-type-order '(wget curl native))
* Display of the current connection method on the mode-line.
By default, the current connection method is displayed on the mode-line.
You can disable it by "(setq twittering-display-connection-method nil)".
* Silent retrieval of icons.
The default value of `twittering-url-show-status' is changed to nil.
So, icons are retrieved silently by default.
* New connection methods, `urllib-http' and `urllib-https'.
New connection methods are added, which are implemented by using `url'
library. The library supports HTTP redirection, but it may be slow and
unstable. This method is not recommended if you can use other methods.
If you give incorrect account information on BASIC authentication or
xAuth with this new methods, you will be asked to input account
information again. This behavior is a function of the url library, but
twittering-mode cannot use account information given on the second try.
When you are asked to input it again, cancel it by 'C-g' and do
'M-x twit'.
* Redisplaying tweets with idle timer.
Twittering-mode waits for Emacs to become idle before it redisplays
tweets for time and icon image. Tweets are redisplayed each time Emacs
remains idle for a certain time specified by the variable
`twittering-timer-interval-for-redisplaying', which is 1 second by
* Retrieval of icon images by `curl' and `wget'.
Icon images can be retrieved by the same connection method as that used
for retrieving tweets. The priority of methods is similarly determined
by `twittering-connection-type-order'.
* Lazy invocation of `convert'.
The program `convert' for converting the size of icon images is invoked
after Emacs remains idle a certain time. The delay will prevent Emacs
from stucking on inputting characters on other buffer. The delay time is
specified by the new variable `twittering-url-request-sentinel-delay',
which is 1 second by default.
* Support for favorites timeline.
":favorites" and ":favorites/USER" are added as new timeline specs.
By using the latter, you can read favorites for other users. You can
specify a username with completion when you input ":favorites/" for
`twittering-visit-timeline' bound to "V" in default.
Note that favorites are rendered in order of time when each tweet is
posted. This is because it is impossible to retrieve the time when a
tweet was favorited. At most, 20 favorites can be retrieved. Backward
retrieval of more previous favorites is not supported yet.
* Support for new URL shortening services.
You can use `', `', `' or `' as URL shortening
service by the following.
(setq twittering-tinyurl-service ' ;; for
(setq twittering-tinyurl-service ' ;; for
(setq twittering-tinyurl-service ' ;; for
(setq twittering-tinyurl-service ' ;; for
To use `' or `', you need to configure `twittering-bitly-login'
and `twittering-bitly-api-key' according to your account as follows.
(setq twittering-bitly-login "YOUR-LOGIN-NAME")
(setq twittering-bitly-api-key "YOUR-API-KEY")
Thanks to Michael Kohl and Lars Gregori.
* Change of the format specifiers, "%c", "%C", "%@", for official ReTweet.
`created_at' for official ReTweet means when the original tweet was
posted instead of when it was retweeted.
* Function to report a user as a spammer.
The function `twittering-block-and-report-as-spammer' is added. By
invoking the function on a tweet, you can block its author and report
him or her as a spammer.
* Function to block a user.
The function `twittering-block' is added. By invoking the function
on a tweet, you can block its author.
* Support for persistent icon storage.
By "(setq twittering-use-icon-storage t)", you can save retrieved
and resized icon images into a persistent storage, which is disabled
in default. On next and later invocation, twittering-mode can
display icons faster because the storage reduces time required to
retrieve and resize images.
In default, recently rendered 500 icons are stored at most. You can
change the limit by the variable `twittering-icon-storage-limit'. To
store all icons, configure the variable as nil.
The default storage file is `~/.twittering-mode-icons.gz'. You can
change it by changing `twittering-icon-storage-file'. Note that icon
images in the storage generated on a certain version of Emacs may be
unavailable on another version of Emacs.
* New format specifier "%RT{...}".
For `twittering-status-format', the new format specifier "%RT{...}"
is added, which is rendered only when the tweet is an official
ReTweet. In the brace, you can use any format specifiers, which are
rendered with the information of the retweet itself instead of the
retweeted original tweet. For example, "%RT{%s}" means who retweeted
the tweet.
* ...
### Bug fixes
* Support for the url library included in Emacs 23 and later.
* Fix of options of `curl' for POST with an empty body.
* Fix of retweeting a retweet.
* Fix of a race condition on abnormal exit of a process for verification.
* Fix of replying to tweets displayed as replied tweets.
Thanks to Naohiro Aota.
* Fix of rendering the format specifier "%L".
The specifier "%L" is correctly rendered with a preceding whitespace.
Thanks to Tom X. Tobin.
* Fix of repeatedly registering a sentinel for retrieving an image.
* ...
1.0.0: 2010-06-05
### Important notice
#### Posting tweets with minibuffer is obsolete now.
There's two way to edit and post tweets in twittering-mode: with
minibuffer (existing way), and with pop-up buffer (new feature!). You
can choose it by setting the variable
`twittering-update-status-function`. Currently its default value is
the new way, `twittering-update-status-from-pop-up-buffer`. If you
want to post from minibuffer, set the variable value to
The new feature, pop-up buffer, has several advantages over the
existing way.
* Not conflicting with input methods.
* Much less risk of posting halfway typed tweets by error.
* Visual assertion of length of tweets.
### Improvements
* Introduction of a concept 'timeline spec'.
* Pop-up buffer to edit and post tweets.
* Auto proxy setup with environment variables (http_proxy, HTTP_PROXY)
* Support for official ReTweet.
* Added some format specifiers of tweets.
* Support for recursive format specifiers such as
"%FILL{%FACE[bold]{%C{%m/%d}}: %T}".
* Support for user-defined prefix on filling by "%FILL[prefix]{...}".
* Displaying image files without temporary files.
* Support multiple buffers, where their name is derived from timeline spec.
* Multiple initial timelines by setting a list of timeline spec strings to
the variable `twittering-initial-timeline-spec-string'.
* Toggle automatic retrieval of the timeline by pressing 'a'.
* Improved compatibility with global-font-lock mode.
* Unread statuses notifier on mode-line (experimental).
* Switching timeline buffers by pressing 'f' or 'b'.
* Graphical indicators for SSL and ACTIVE/INACTIVE state on mode-line.
* Asynchronous retrieval of icon images.
* Deleting a tweet by inputting 'C-cD'.
* HTTPS connection using `tls' library working with an external command
`gnutls' or `openssl' instead of `curl'.
* Individual proxy configurations for HTTP and HTTPS.
If `twittering-proxy-server' and `twittering-proxy-port' are non-nil,
they have priority over the other variables `twittering-http-proxy-*' and
`twittering-https-proxy-*'. To use individual proxies for HTTP and HTTPS,
you must keep the prior variables (`twittering-proxy-server' and
`twittering-proxy-port') nil.
* Silent retrieval of icon images.
You can enable silent retrieval by "(setq twittering-url-show-status nil)".
* Authentication via OAuth.
It requires a consumer information registered with Twitter and an external
WWW browser to authorize a request token. Additionally, for SSL, it
requires an external command `curl' or another command included in the
variable `tls-program', which may be `openssl' or `gnutls-cli'.
(Caution: Neither `openssl' nor `gnutls-cli' support SSL via proxy.)
You can disable SSL for OAuth by "(setq twittering-oauth-use-ssl nil)".
You can enable OAuth by "(setq twittering-auth-method 'oauth)".
If `twittering-oauth-invoke-browser' is non-nil, twittering-mode
automatically opens a browser on authorization.
### Bug fixes
* Avoid SSL certificate error by embedding CA cert in code.
* twittering-cert-file
* twittering-ensure-ca-cert
* Fix URI (percent) encoding (thanks to IMAI Toshiyuki).
* twittering-url-reserved-p
* twittering-percent-encode
* Improved portability.
* twittering-completing-read
* And lots of minor fixes
### Thanks to
* Alberto Garcia
* IMAI Toshiyuki
0.9.0: 2009-12-29
### Improvements
* Moved to GitHub.
* Brand new web site in English and Japanese.
* Secure sessions via HTTPS if 'cURL' is available.
* Lists support.
* Follow/remove support.
* Favorite/unfavorite support.
* Hash tag support.
* Direct message support.
* On-the-spot TinyURL-ize(tinyurl or
* On-the-fly tweet length check.
* ReTweet format string.
* Remembers visited user names and tweets.
* Parameterized the number of tweets retrieved at a time.
* Walk through items(username, URL, etc) by TAB.
* Image type discriminant with 'file' program if available.
* More descriptive error messages on minibuffer.
* Do not discard old timeline data as possible.
* Suspend by hitting 'q'.
* Image file resize with 'convert' program(imagemagick) if available.
* Unit test framework was introduced.
* Support 'Proxy-connection: Keep-Alive'.
* Flexible format string function (twittering-format-string).
* Refactored 'twittering-format-status' by twitterint-format-string.
* More efficient HTTP response processing.
### Bug fixes
* URL cannot not be opened by mouse-click or Enter.
* Don't set the original status ID when retweeting.
* Wrong regexp for searching URL in status text.
* Username extraction from status text.
* Update mode-line immediately.
* Use a temporary buffer for each HTTP session.
* Use MD5 hash to distinguish image files with the same name.
* Check whether temp buffers are alive in sentinels before killing them.
* And some typos.
### Thanks to
* Alberto Garcia
* Jaemok Jeong
* Kouhei Sutou
* Naohiro Aota
* Satoshi Yatagawa
* Tadashi MATSUO
* Thomas Danckaert
* Tsuyoshi CHO
* IMAI Toshiyuki