nefelibata.publishers package

Submodules

nefelibata.publishers.ftp module

class nefelibata.publishers.ftp.FTPPublisher(root: pathlib.Path, config: Dict[str, Any], host: str, username: Optional[str] = None, password: Optional[str] = None, basedir: Optional[str] = None)[source]

Bases: nefelibata.publishers.Publisher

A publisher that uploads the weblog to FTP.

publish(force: bool = False) None[source]

nefelibata.publishers.ipfs module

class nefelibata.publishers.ipfs.IPFSPublisher(root: pathlib.Path, config: Dict[str, Any], username: Optional[str] = None, host: Optional[str] = None)[source]

Bases: nefelibata.publishers.Publisher

A publisher that uploads the weblog to IPFS through a remote host.

publish(force: bool = False) None[source]

nefelibata.publishers.neocities module

class nefelibata.publishers.neocities.NeocitiesPublisher(root: pathlib.Path, config: Dict[str, Any], username: Optional[str] = None, password: Optional[str] = None, api_key: Optional[str] = None)[source]

Bases: nefelibata.publishers.Publisher

A publisher that uploads the weblog to Neocities.

publish(force: bool = False) None[source]

nefelibata.publishers.s3 module

class nefelibata.publishers.s3.S3Publisher(root: pathlib.Path, config: Dict[str, Any], bucket: str, AWS_ACCESS_KEY_ID: str, AWS_SECRET_ACCESS_KEY: str, configure_website: bool = False, configure_route53: Optional[str] = None, region: str = 'us-east-1')[source]

Bases: nefelibata.publishers.Publisher

A publisher that uploads the weblog to S3.

You need a user with this policy:

{

“Version”: “2012-10-17”, “Statement”: [

{

“Sid”: “VisualEditor0”, “Effect”: “Allow”, “Action”: [

“s3:GetBucketWebsite”, “s3:PutBucketWebsite”, “route53:ChangeResourceRecordSets”, “s3:PutBucketAcl”, “s3:CreateBucket”

], “Resource”: [

“arn:aws:route53:::hostedzone/taoetc.org”, “arn:aws:s3:::blog.taoetc.org”

]

}, {

“Sid”: “VisualEditor1”, “Effect”: “Allow”, “Action”: [

“s3:PutObject”, “s3:GetObject”, “s3:PutObjectAcl”

], “Resource”: “arn:aws:s3:::blog.taoetc.org/*

}, {

“Sid”: “VisualEditor2”, “Effect”: “Allow”, “Action”: “route53:ListHostedZones”, “Resource”: “*”

}

]

}

publish(force: bool = False) None[source]

Module contents

class nefelibata.publishers.Publisher(root: pathlib.Path, config: Dict[str, Any], *args: Any, **kwargs: Any)[source]

Bases: object

find_modified_files(force: bool, since: float) List[pathlib.Path][source]
publish(force: bool = False) None[source]
nefelibata.publishers.get_publishers(root: pathlib.Path, config: Dict[str, Any]) List[nefelibata.publishers.Publisher][source]

Return all publishers.