Name | fead JSON |
Version |
1.0.0
JSON |
| download |
home_page | None |
Summary | Advert generator from web feeds |
upload_time | 2024-01-09 23:01:55 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | None |
keywords |
rss
atom
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# fead
This is a tool for advertising other blogs you like on your own
by embedding the summary of their latest post(s) extracted from their web feed.
It is a rewrite of [openring] with ([rejected]) concurrency support
in Python without any third-party library.
## Installation
On POSIX systems, run the usual `make install` with configurable `PREFIX`.
The following programs are needed for building and installation:
- make
- help2man
- install
Python 3.11+ is also required, both for generating the manual and at runtime.
On other systems, a [package installer specific for Python][pip]
might be preferred.
## Usage
```console
$ fead --help
Usage: fead [OPTION]...
Generate adverts from web feeds.
Options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-F PATH, --feeds PATH
file containing newline-separated web feed URLs
-f URL, --feed URL addtional web feed URL (multiple use)
-s, --strict abort when fail to fetch or parse a web feed
-n N, --count N maximum number of ads in total (default to 3)
-p N, --per-feed N maximum number of ads per feed (default to 1)
-l N, --length N maximum summary length (default to 256)
-t PATH, --template PATH
template file (default to stdin)
-o PATH, --output PATH
output file (default to stdout)
Any use of -f before -F is ignored.
```
## Template
The template is used by Python [`str.format`][format] to generate each advert.
It can contain the following fields, delimited by braces (`{` and `}`).
* `source_title`: title of the web feed
* `source_link`: URL to the feed's website
* `title`: title of the feed item
* `link`: URL to the item
* `time`: publication time
* `summary`: truncated content or description
The publication time is a Python [`datetime.datetime`][datetime] object,
which supports at least C89 format codes, e.g. `{time:%Y-%m-%d}`.
## Examples
Given the these URLs in a `feeds` file:
https://adol.pw/index.xml
https://cnx.gdn/feed.xml
https://xrvs.net/index.xml
Advertisement of the two latest blogs among them, along with articles
by Drew DeVault, can be generated via the following command.
```sh
echo "<article>
<h3><a href='{link}'>{title}</a></h3>
{summary}—<a href='{source_link}'>{source_title}</a>, {time:%F}
</article>" | fead -F feeds -f https://drewdevault.com/blog/index.xml -n 2
```
## Contributing
Patches should be sent to [~cnx/misc@lists.sr.ht]
using [git send-email] with the following configurations:
git config sendemail.to '~cnx/misc@lists.sr.ht'
git config format.subjectPrefix 'PATCH fead'
Bug reports and feedbacks should be sent to the same list,
with the program's name mention in the subject.
## Copying
![AGPLv3](https://www.gnu.org/graphics/agplv3-155x51.png)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either [version 3 of the License][agplv3],
or (at your option) any later version.
[openring]: https://sr.ht/~sircmpwn/openring
[rejected]: https://lists.sr.ht/~sircmpwn/public-inbox/patches/27621
[pip]: https://pip.pypa.io
[format]: https://docs.python.org/3/library/string.html#formatstrings
[datetime]: https://docs.python.org/3/library/datetime.html#datetime-objects
[~cnx/misc@lists.sr.ht]: https://lists.sr.ht/~cnx/misc
[git send-email]: https://git-send-email.io
[agplv3]: https://www.gnu.org/licenses/agpl-3.0.html
Raw data
{
"_id": null,
"home_page": null,
"name": "fead",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "Nguy\u1ec5n Gia Phong <~cnx/misc@lists.sr.ht>",
"keywords": "rss,atom",
"author": null,
"author_email": "Nguy\u1ec5n Gia Phong <cnx@loang.net>, Ng\u00f4 Ng\u1ecdc \u0110\u1ee9c Huy <huyngo@disroot.org>",
"download_url": "https://files.pythonhosted.org/packages/2d/84/f021fa36d2bfd0d12f73d09c85c4379896946af357f58f3632f7b261e112/fead-1.0.0.tar.gz",
"platform": null,
"description": "# fead\n\nThis is a tool for advertising other blogs you like on your own\nby embedding the summary of their latest post(s) extracted from their web feed.\nIt is a rewrite of [openring] with ([rejected]) concurrency support\nin Python without any third-party library.\n\n## Installation\n\nOn POSIX systems, run the usual `make install` with configurable `PREFIX`.\nThe following programs are needed for building and installation:\n\n- make\n- help2man\n- install\n\nPython 3.11+ is also required, both for generating the manual and at runtime.\n\nOn other systems, a [package installer specific for Python][pip]\nmight be preferred.\n\n## Usage\n\n```console\n$ fead --help\nUsage: fead [OPTION]...\n\nGenerate adverts from web feeds.\n\nOptions:\n -h, --help show this help message and exit\n -v, --version show program's version number and exit\n -F PATH, --feeds PATH\n file containing newline-separated web feed URLs\n -f URL, --feed URL addtional web feed URL (multiple use)\n -s, --strict abort when fail to fetch or parse a web feed\n -n N, --count N maximum number of ads in total (default to 3)\n -p N, --per-feed N maximum number of ads per feed (default to 1)\n -l N, --length N maximum summary length (default to 256)\n -t PATH, --template PATH\n template file (default to stdin)\n -o PATH, --output PATH\n output file (default to stdout)\n\nAny use of -f before -F is ignored.\n```\n\n## Template\n\nThe template is used by Python [`str.format`][format] to generate each advert.\nIt can contain the following fields, delimited by braces (`{` and `}`).\n\n* `source_title`: title of the web feed\n* `source_link`: URL to the feed's website\n* `title`: title of the feed item\n* `link`: URL to the item\n* `time`: publication time\n* `summary`: truncated content or description\n\nThe publication time is a Python [`datetime.datetime`][datetime] object,\nwhich supports at least C89 format codes, e.g. `{time:%Y-%m-%d}`.\n\n## Examples\n\nGiven the these URLs in a `feeds` file:\n\n https://adol.pw/index.xml\n https://cnx.gdn/feed.xml\n https://xrvs.net/index.xml\n\nAdvertisement of the two latest blogs among them, along with articles\nby Drew DeVault, can be generated via the following command.\n\n```sh\necho \"<article>\n <h3><a href='{link}'>{title}</a></h3>\n {summary}—<a href='{source_link}'>{source_title}</a>, {time:%F}\n</article>\" | fead -F feeds -f https://drewdevault.com/blog/index.xml -n 2\n```\n\n## Contributing\n\nPatches should be sent to [~cnx/misc@lists.sr.ht]\nusing [git send-email] with the following configurations:\n\n git config sendemail.to '~cnx/misc@lists.sr.ht'\n git config format.subjectPrefix 'PATCH fead'\n\nBug reports and feedbacks should be sent to the same list,\nwith the program's name mention in the subject.\n\n## Copying\n\n![AGPLv3](https://www.gnu.org/graphics/agplv3-155x51.png)\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published\nby the Free Software Foundation, either [version 3 of the License][agplv3],\nor (at your option) any later version.\n\n[openring]: https://sr.ht/~sircmpwn/openring\n[rejected]: https://lists.sr.ht/~sircmpwn/public-inbox/patches/27621\n[pip]: https://pip.pypa.io\n[format]: https://docs.python.org/3/library/string.html#formatstrings\n[datetime]: https://docs.python.org/3/library/datetime.html#datetime-objects\n[~cnx/misc@lists.sr.ht]: https://lists.sr.ht/~cnx/misc\n[git send-email]: https://git-send-email.io\n[agplv3]: https://www.gnu.org/licenses/agpl-3.0.html\n",
"bugtrack_url": null,
"license": null,
"summary": "Advert generator from web feeds",
"version": "1.0.0",
"project_urls": {
"Source": "https://trong.loang.net/~cnx/fead"
},
"split_keywords": [
"rss",
"atom"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "93d8664ee89fffaeca90313ad96504a12eaca46a95f2f13eb3db45a9f3161356",
"md5": "b26f9c73bc4fde8bd434120c73b3fad4",
"sha256": "a6fb80f234a087043f4061bbb884c5d99ba38a5e05b0cf47dbff571fe6c704ac"
},
"downloads": -1,
"filename": "fead-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b26f9c73bc4fde8bd434120c73b3fad4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 18518,
"upload_time": "2024-01-09T23:01:52",
"upload_time_iso_8601": "2024-01-09T23:01:52.729287Z",
"url": "https://files.pythonhosted.org/packages/93/d8/664ee89fffaeca90313ad96504a12eaca46a95f2f13eb3db45a9f3161356/fead-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2d84f021fa36d2bfd0d12f73d09c85c4379896946af357f58f3632f7b261e112",
"md5": "0e9ba265ba5891d30ce97a96e9bf8f0e",
"sha256": "9ba51ca4b7bb57e12d2aeb7814954ca6c073e228c4e32ca5593c92c45249239b"
},
"downloads": -1,
"filename": "fead-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "0e9ba265ba5891d30ce97a96e9bf8f0e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 17936,
"upload_time": "2024-01-09T23:01:55",
"upload_time_iso_8601": "2024-01-09T23:01:55.517699Z",
"url": "https://files.pythonhosted.org/packages/2d/84/f021fa36d2bfd0d12f73d09c85c4379896946af357f58f3632f7b261e112/fead-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-09 23:01:55",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "fead"
}