A package that allows for converting RSS feeds into Gemlogs (Gemini blogs).
Project description
Gemlog-from-RSS
A simple RSS to Gemlog (Gemini log) converter.
The original version is developed for SPIP, but I am going to also work on a version for WordPress.
Usage (SPIP)
A working example for the SPIP version of this library can be ran using the example.py class. It also allows for a quick preview of the code without having to go into gemlog_from_rss/examples.py.
(Main) file structure - minimum working code
To run this code the following structure is required:
from gemlog_from_rss.spip import MainPage, Page import xml.etree.ElementTree as ET import shutil from pathlib import Path Path("resources").mkdir(parents=False, exist_ok=True) main_page = MainPage(feed="https://url.to.feed") Path(main_page.root).mkdir(parents=True, exist_ok=True) tree = ET.parse("resources/all_posts.xml") root = tree.getroot() main_page.root = root # Adding those pages is optional! page = Page() page.download_html("http://url.to.html.resource/file.html") page.fetch_content() page_2 = Page() page_2.download_html("http://url.to.html.resource/file.html") page_2.fetch_content() main_page.add_page(page) main_page.add_page(page_2) # alternatively: main_page.add_pages([page, page_2]) main_page.add_posts() main_page.create_files() with open(f"{main_page.root_dir}/index.gmi", "w") as f: f.write(main_page.make_main_page()) # Remove temporary resources directory try: shutil.rmtree('resources') except OSError as e: print("Error: %s : %s" % ('resources', e.strerror))
Running the server
To run the Gemini server, please use Gemini server software. This package doesn't come with a Gemini server, but I recommend agate. It is super easy to install and run, and you can make this library work with it by outputting the articles and index.gmi to a directory used by agate.
Please make sure that the files outputted by gemlog_from_rss are either located in the root directory of your Gemini server or that they are linked to from your main Gemini page.
Contributing and further development
This library will be developed further. If you want to contribute to development, please fork this repository and start a pull request when you are ready to submit.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size gemlog_from_rss-0.1.0-py3-none-any.whl (6.6 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size gemlog_from_rss-0.1.0.tar.gz (5.9 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for gemlog_from_rss-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf581addb1a67733ee935253f5605465fbece5c9633520ba17934d3ecd0dece8 |
|
MD5 | a338c9fda07364aea9d3cb6a9463b264 |
|
BLAKE2-256 | ba45c5b3285ac78d1db0b52688f070a785c264efe2ebe666158262ae2767b9dc |