diff options
| author | Ted Zlatanov | 2016-07-11 11:01:26 -0400 |
|---|---|---|
| committer | Ted Zlatanov | 2016-07-20 08:52:11 -0400 |
| commit | 30b3a842ec87d27cfe003b6d4323689d48b3fcd2 (patch) | |
| tree | 6588aff454fd55b05d5c08ae0c7d40b209dae831 /doc | |
| parent | 60dd094a8c7bdbbff121c99f56f42910534e7cc1 (diff) | |
| download | emacs-30b3a842ec87d27cfe003b6d4323689d48b3fcd2.tar.gz emacs-30b3a842ec87d27cfe003b6d4323689d48b3fcd2.zip | |
Bring the Gnus Cloud package into working order.
* lisp/gnus/gnus-sync.el: Removed in favor of gnus-cloud.el.
* lisp/gnus/gnus-cloud.el: Autoload EPG functions. Change storage format to
simplify non-file data.
(gnus-cloud-storage-method): New defcustom to support nil, Base64,
Base64+gzip, or EPG encoding on the Gnus Cloud IMAP server. Defaults to
EPG if that's available, Base64+gzip otherwise.
(gnus-cloud-interactive): New defcustom to make Gnus Cloud operations
interactive, defaults to enabled.
(gnus-cloud-group-name): New variable for the Gnus Cloud group name.
(gnus-cloud-make-chunk): Tag with "Gnus-Cloud-Version" instead of just
"Version".
(gnus-cloud-insert-data): Simplify and support :newsrc-data entries.
(gnus-cloud-encode-data, gnus-cloud-decode-data): Support various
storage methods as per gnus-cloud-storage-method.
(gnus-cloud-parse-chunk): Look for "Gnus-Cloud-Version" marker.
(gnus-cloud-parse-version-1): Fix parsing loop bug. Handle :newsrc-data
entries.
(gnus-cloud-update-all): Handle :newsrc-data entries and dispatch to
file and data handlers.
(gnus-cloud-update-newsrc-data): New function to handle :newrsc-data
entries.
(gnus-cloud-update-file): Rework to support gnus-cloud-interactive and
be more careful.
(gnus-cloud-delete-file): Remove; merged into gnus-cloud-update-file.
(gnus-cloud-file-covered-p, gnus-cloud-all-files)
(gnus-cloud-files-to-upload, gnus-cloud-ensure-cloud-group)
(gnus-cloud-add-timestamps, gnus-cloud-available-chunks)
(gnus-cloud-prune-old-chunks): Fix indentation.
(gnus-cloud-timestamp): New function to make a standard Gnus Cloud
timestamp.
(gnus-cloud-file-new-p): Use it.
(gnus-cloud-upload-all-data): Add interactive convenience function to
upload all data.
(gnus-cloud-upload-data): Make interactive; collect files and newsrc
data separately; refresh Gnus Cloud group after insert.
(gnus-cloud-download-all-data): Add interactive convenience function to
download all data.
(gnus-cloud-download-data): Rework to support "Gnus-Cloud-Version"
marker and different storage methods.
(gnus-cloud-host-server-p): New function to check if a server is the
Gnus Cloud host.
(gnus-cloud-collect-full-newsrc): Tag entries with :newsrc-data.
(gnus-cloud-host-acceptable-method-p): New function so
other code can check if a server method can host the Gnus cloud.
(gnus-cloud-storage-method): Use 'radio instead of 'choice for better UI.
(gnus-cloud-method): Make this a defcustom and note how to set it.
* lisp/gnus/gnus-group.el (gnus-group-cloud-map): Add Gnus Cloud autoloaded
keybindings under the `~' prefix.
* lisp/gnus/gnus-srvr.el (gnus-server-mode-map, gnus-server-make-menu-bar)
(gnus-server-cloud, gnus-server-cloud-host)
(gnus-server-font-lock-keywords, gnus-server-insert-server-line)
(gnus-server-toggle-cloud-method-server): Support Gnus Cloud
synchronized servers and synchronization host server toggling (`i' and
`I') and visual display.
(gnus-server-toggle-cloud-method-server): Use
gnus-cloud-host-acceptable-method-p.
(gnus-server-toggle-cloud-method-server): Use custom-set-variables to
set the gnus-cloud-method. Ask the user if it's OK to upload the data
right now.
* doc/misc/gnus.texi: Document Gnus Cloud package.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/misc/gnus.texi | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index df673fc099f..2473d26cc15 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi | |||
| @@ -828,6 +828,7 @@ Various | |||
| 828 | * Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email. | 828 | * Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email. |
| 829 | * Spam Package:: A package for filtering and processing spam. | 829 | * Spam Package:: A package for filtering and processing spam. |
| 830 | * The Gnus Registry:: A package for tracking messages by Message-ID. | 830 | * The Gnus Registry:: A package for tracking messages by Message-ID. |
| 831 | * The Gnus Cloud:: A package for synchronizing Gnus marks. | ||
| 831 | * Other modes:: Interaction with other modes. | 832 | * Other modes:: Interaction with other modes. |
| 832 | * Various Various:: Things that are really various. | 833 | * Various Various:: Things that are really various. |
| 833 | 834 | ||
| @@ -22208,6 +22209,7 @@ to you, using @kbd{G b u} and updating the group will usually fix this. | |||
| 22208 | * Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email. | 22209 | * Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email. |
| 22209 | * Spam Package:: A package for filtering and processing spam. | 22210 | * Spam Package:: A package for filtering and processing spam. |
| 22210 | * The Gnus Registry:: A package for tracking messages by Message-ID. | 22211 | * The Gnus Registry:: A package for tracking messages by Message-ID. |
| 22212 | * The Gnus Cloud:: A package for synchronizing Gnus marks. | ||
| 22211 | * Other modes:: Interaction with other modes. | 22213 | * Other modes:: Interaction with other modes. |
| 22212 | * Various Various:: Things that are really various. | 22214 | * Various Various:: Things that are really various. |
| 22213 | @end menu | 22215 | @end menu |
| @@ -26166,6 +26168,100 @@ default this is just @code{(marks)} so the custom registry marks are | |||
| 26166 | precious. | 26168 | precious. |
| 26167 | @end defvar | 26169 | @end defvar |
| 26168 | 26170 | ||
| 26171 | @node The Gnus Cloud | ||
| 26172 | @section The Gnus Cloud | ||
| 26173 | @cindex cloud | ||
| 26174 | @cindex gnus-cloud | ||
| 26175 | @cindex synchronization | ||
| 26176 | @cindex sync | ||
| 26177 | @cindex synch | ||
| 26178 | |||
| 26179 | The Gnus Cloud is a way to synchronize marks and general files and | ||
| 26180 | data across multiple machines. | ||
| 26181 | |||
| 26182 | Very often, you want all your marks (what articles you've read, which | ||
| 26183 | ones were important, and so on) to be synchronized between several | ||
| 26184 | machines. With IMAP, that's built into the protocol, so you can read | ||
| 26185 | nnimap groups from many machines and they are automatically | ||
| 26186 | synchronized. But NNTP, nnrss, and many other backends do not store | ||
| 26187 | marks, so you have to do it locally. | ||
| 26188 | |||
| 26189 | The Gnus Cloud package stores the marks, plus any files you choose, on | ||
| 26190 | an IMAP server in a special folder. It's like a | ||
| 26191 | DropTorrentSyncBoxOakTree(TM). | ||
| 26192 | |||
| 26193 | @menu | ||
| 26194 | * Gnus Cloud Setup:: | ||
| 26195 | * Gnus Cloud Usage:: | ||
| 26196 | @end menu | ||
| 26197 | |||
| 26198 | @node Gnus Cloud Setup | ||
| 26199 | @subsection Gnus Cloud Setup | ||
| 26200 | |||
| 26201 | Setting up the Gnus Cloud takes less than a minute. From the Group | ||
| 26202 | buffer: | ||
| 26203 | |||
| 26204 | Press @kbd{^} to go to the Server buffer. Here you'll see all the | ||
| 26205 | servers that Gnus knows. @xref{Server Buffer}. | ||
| 26206 | |||
| 26207 | Then press @kbd{i} to mark any servers as cloud-synchronized (their marks are synchronized). | ||
| 26208 | |||
| 26209 | Then press @kbd{I} to mark a single server as the cloud host (it must | ||
| 26210 | be an IMAP server, and will host a special IMAP folder with all the | ||
| 26211 | synchronization data). This will set the variable | ||
| 26212 | @code{gnus-cloud-method} (using the Customize facilities), then ask | ||
| 26213 | you to optionally upload your first CloudSynchronizationDataPack(TM). | ||
| 26214 | |||
| 26215 | @node Gnus Cloud Usage | ||
| 26216 | @subsection Gnus Cloud Usage | ||
| 26217 | |||
| 26218 | After setting up, you can use these shortcuts from the Group buffer: | ||
| 26219 | |||
| 26220 | @table @kbd | ||
| 26221 | @item ~ RET | ||
| 26222 | @item ~ d | ||
| 26223 | @findex gnus-cloud-download-all-data | ||
| 26224 | @cindex cloud, download | ||
| 26225 | Download the latest Gnus Cloud data. | ||
| 26226 | |||
| 26227 | @item ~ u | ||
| 26228 | @item ~ ~ | ||
| 26229 | @findex gnus-cloud-upload-all-data | ||
| 26230 | @cindex cloud, download | ||
| 26231 | Upload the local Gnus Cloud data. Creates a new | ||
| 26232 | CloudSynchronizationDataPack(TM). | ||
| 26233 | |||
| 26234 | @end table | ||
| 26235 | |||
| 26236 | But wait, there's more. Of course there's more. So much more. You can | ||
| 26237 | customize all of the following. | ||
| 26238 | |||
| 26239 | @defvar gnus-cloud-synced-files | ||
| 26240 | These are the files that will be part of every | ||
| 26241 | CloudSynchronizationDataPack(TM). They are included in every upload, | ||
| 26242 | so don't synchronize a lot of large files. Files under 100Kb are best. | ||
| 26243 | @end defvar | ||
| 26244 | |||
| 26245 | @defvar gnus-cloud-storage-method | ||
| 26246 | This is a choice from several storage methods. It's highly recommended | ||
| 26247 | to use the EPG facilities. It will be automatic if have GnuPG | ||
| 26248 | installed and EPG loaded. Otherwise, you could use Base64+gzip, | ||
| 26249 | Base64, or no encoding. | ||
| 26250 | @end defvar | ||
| 26251 | |||
| 26252 | @defvar gnus-cloud-interactive | ||
| 26253 | When this is set, and by default it is, the Gnus Cloud package will | ||
| 26254 | ask you for confirmation here and there. Leave it on until you're | ||
| 26255 | comfortable with the package. | ||
| 26256 | @end defvar | ||
| 26257 | |||
| 26258 | |||
| 26259 | @defvar gnus-cloud-method | ||
| 26260 | The name of the IMAP server to store the | ||
| 26261 | CloudSynchronizationDataPack(TM)s. It's easiest to set this from the | ||
| 26262 | Server buffer (@pxref{Gnus Cloud Setup}). | ||
| 26263 | @end defvar | ||
| 26264 | |||
| 26169 | @node Other modes | 26265 | @node Other modes |
| 26170 | @section Interaction with other modes | 26266 | @section Interaction with other modes |
| 26171 | 26267 | ||