longhorn


Namelonghorn JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://codeberg.org/bovine/longhorn
SummaryBlog that publishes both to web, atom, and ActivityPub (as a Client)
upload_time2023-06-08 12:35:56
maintainer
docs_urlNone
authorHelge
requires_python>=3.10,<4.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # longhorn

![longhorn](assets/longhorn.jpg)

[Photo by Miguel from Pexels](https://www.pexels.com/photo/brown-texas-longhorn-lying-on-the-ground-12578659/)

longhorn is meant for hosting a single blog associated with a specific ActivityPub actor. Example:

- My blog is available at [https://blog.mymath.rocks/](https://blog.mymath.rocks/)
- If you follow me, i.e. `@helge@mymath.rocks`. My blog posts will be delivered to your ActivityPub Inbox as a create article.
- Public replies to that Article are displayed on the blog.

This is realized by longhorn being a [bovine](https://codeberg.org/helge/bovine/) based ActivityPub Client.

## Installation

longhorn can be installed by running

```bash
pip install longhorn
python -mlonghorn.setup
```

There you will be prompted for

- The host your blog will run on, e.g. `blog.mymath.rocks`
- The title of your blog, e.g. `Helge's blog`
- The host of your ActivityPub server, e.g. `mymath.rocks`
- And be provided a did-key to add to your ActivityPub Actor following the [BIN-2](https://blog.mymath.rocks/2023-03-25/BIN2_Moo_Client_Registration_Flow).

The blog can then be run, by running

```bash
hypercorn longhorn:app
```

## Usage

Posts are written as markdown then uploaded using

```bash
python -mlonghorn.post filename.md
```

## Todos

- [x] Stopping the server is awkward due to the Event Source loop not stopping properly. Investigate how to fix this.
- [x] Alternative to last todo: Separate Event Source into own process.
- [x] Alternative: Use webhooks
- __Solution__: Move to [mechanical bull](https://codeberg.org/bovine/mechanical_bull)
- [x] Provide an RSS feed
- [ ] Enable a publish / preview endpoint
- [ ] Explain how to customize templating without hacking the package
- [ ] Support tags and other metadata

            

Raw data

            {
    "_id": null,
    "home_page": "https://codeberg.org/bovine/longhorn",
    "name": "longhorn",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Helge",
    "author_email": "helge.krueger@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/6f/60/120fea53d7d2189332c9e8c03e2aa52cd1c54b8d5602e849da62d1f525e4/longhorn-0.1.0.tar.gz",
    "platform": null,
    "description": "# longhorn\n\n![longhorn](assets/longhorn.jpg)\n\n[Photo by Miguel from Pexels](https://www.pexels.com/photo/brown-texas-longhorn-lying-on-the-ground-12578659/)\n\nlonghorn is meant for hosting a single blog associated with a specific ActivityPub actor. Example:\n\n- My blog is available at [https://blog.mymath.rocks/](https://blog.mymath.rocks/)\n- If you follow me, i.e. `@helge@mymath.rocks`. My blog posts will be delivered to your ActivityPub Inbox as a create article.\n- Public replies to that Article are displayed on the blog.\n\nThis is realized by longhorn being a [bovine](https://codeberg.org/helge/bovine/) based ActivityPub Client.\n\n## Installation\n\nlonghorn can be installed by running\n\n```bash\npip install longhorn\npython -mlonghorn.setup\n```\n\nThere you will be prompted for\n\n- The host your blog will run on, e.g. `blog.mymath.rocks`\n- The title of your blog, e.g. `Helge's blog`\n- The host of your ActivityPub server, e.g. `mymath.rocks`\n- And be provided a did-key to add to your ActivityPub Actor following the [BIN-2](https://blog.mymath.rocks/2023-03-25/BIN2_Moo_Client_Registration_Flow).\n\nThe blog can then be run, by running\n\n```bash\nhypercorn longhorn:app\n```\n\n## Usage\n\nPosts are written as markdown then uploaded using\n\n```bash\npython -mlonghorn.post filename.md\n```\n\n## Todos\n\n- [x] Stopping the server is awkward due to the Event Source loop not stopping properly. Investigate how to fix this.\n- [x] Alternative to last todo: Separate Event Source into own process.\n- [x] Alternative: Use webhooks\n- __Solution__: Move to [mechanical bull](https://codeberg.org/bovine/mechanical_bull)\n- [x] Provide an RSS feed\n- [ ] Enable a publish / preview endpoint\n- [ ] Explain how to customize templating without hacking the package\n- [ ] Support tags and other metadata\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Blog that publishes both to web, atom, and ActivityPub (as a Client)",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://longhorn.readthedocs.io/en/latest/",
        "Homepage": "https://codeberg.org/bovine/longhorn",
        "Repository": "https://codeberg.org/bovine/longhorn"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "70101008ad9799c8f05fc414faf506f36394fce359ccdc76f32068174ba1f6a2",
                "md5": "fa4f9ff3f1528ff4d6bf5fa23f0a645c",
                "sha256": "1595d041fb137f33106641159d616042cf46c220e407184fcec062000a71d269"
            },
            "downloads": -1,
            "filename": "longhorn-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fa4f9ff3f1528ff4d6bf5fa23f0a645c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4.0",
            "size": 19095,
            "upload_time": "2023-06-08T12:35:54",
            "upload_time_iso_8601": "2023-06-08T12:35:54.531812Z",
            "url": "https://files.pythonhosted.org/packages/70/10/1008ad9799c8f05fc414faf506f36394fce359ccdc76f32068174ba1f6a2/longhorn-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6f60120fea53d7d2189332c9e8c03e2aa52cd1c54b8d5602e849da62d1f525e4",
                "md5": "d467fb330543fc334cb39eafb8986225",
                "sha256": "2000eb13c78494b229446ebf2d8a1afbf6ef95d8af9502c9f66719e22787cc94"
            },
            "downloads": -1,
            "filename": "longhorn-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d467fb330543fc334cb39eafb8986225",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4.0",
            "size": 22111,
            "upload_time": "2023-06-08T12:35:56",
            "upload_time_iso_8601": "2023-06-08T12:35:56.871603Z",
            "url": "https://files.pythonhosted.org/packages/6f/60/120fea53d7d2189332c9e8c03e2aa52cd1c54b8d5602e849da62d1f525e4/longhorn-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-08 12:35:56",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": true,
    "codeberg_user": "bovine",
    "codeberg_project": "longhorn",
    "lcname": "longhorn"
}
        
Elapsed time: 0.07107s