The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::Zapzi - store articles and publish them to read later

VERSION

version 0.017

DESCRIPTION

This class implements the application functions for Zapzi. See the page for the zapzi command for details on how to run it.

ATTRIBUTES

run

The current state of the application, -1 means nothing has been done, 0 OK, otherwise an error code. Used for exit code when the process terminates.

force

Option to force processing of the init command. Default is unset.

noarchive

Option to not archive articles on publication

long

Option to present a detailed listing

folder

Folder to work on. Default is 'Inbox'

transformer

Transformer to extract text from the article. Default is '', which means Zapzi will automatically the best option based on the content type of the text.

format

Format to publish a collection of folder articles in.

encoding

Encoding to publish a collection of folder articles in. Zapzi will select the best encoding for the content and publication format if not specified.

distribute

Method to distribute a published eBook - eg copy, script, email.

zapzi_dir

The folder where Zapzi files are stored.

zapzi_ebook_dir

The folder where Zapzi published eBook files are stored.

database

The instance of App:Zapzi::Database used by the application.

test_database

If set, use an in-memory database. Used to speed up testing only.

interactive

If set, this is an interactive session where Zapzi can prompt the user for input.

METHODS

get_app =method BUILD

At construction time, a copy of the application object is stored and can be retrieved later via get_app.

process_args(@args)

Read the arguments @args (normally you'd pass in @ARGV and process them according to the command line specification for the application.

init

Creates the database. Will only do so if the database does not exist already or if the force attribute is set.

init_config

On initialiseation, ask the user for settings for configuration variables. Will not ask if this is being run non-interactively.

config(@args)

Get or set configuration variables.

If args is 'get' will list out all variables and their values. If args is 'get x' will list the value of variable x. If args is 'set x y' will set the value of x to be y.

validate_folder

Determines if the folder specified exists.

validate_article_ids(@args)

Determines if @args could be article IDs.

list

Lists out the articles in folder.

list_folders

List folder names and article counts.

make_folder

Create one or more new folders. Will ignore any folders that already exist.

delete_folder

Remove one or more new folders. Will not allow removal of system folders ie Inbox and Archive, but will ignore removal of folders that do not exist.

delete_article

Remove an article from the database

add

Add an article to the database for later publication.

show(output, articles)

Exports article text. If output is 'browser' then will start a browser to view the article, otherwise it will print to STDOUT.

move

Move one or more articles to a folder.

publish

Publish a folder of articles to an eBook

help

Displays help text.

version

Displays version information.

AUTHOR

Rupert Lane <rupert@rupert-lane.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Rupert Lane.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.