Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemlog_from_rss-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

gemlog_from_rss-0.1.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file gemlog_from_rss-0.1.0.tar.gz.

File metadata

  • Download URL: gemlog_from_rss-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.5

File hashes

Hashes for gemlog_from_rss-0.1.0.tar.gz
Algorithm Hash digest
SHA256 953f6ea2d5b1193c2faf6c3d4314fe79bb6d3e94c6479a4b235b3d794c137218
MD5 4ed2003b7741b87b2f0bd13c9d7a6195
BLAKE2b-256 47f535189f81a750220a0d1e8b855fae73cbeb6b7362f505eebacd3e60faa8ee

See more details on using hashes here.

File details

Details for the file gemlog_from_rss-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: gemlog_from_rss-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.5

File hashes

Hashes for gemlog_from_rss-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cf581addb1a67733ee935253f5605465fbece5c9633520ba17934d3ecd0dece8
MD5 a338c9fda07364aea9d3cb6a9463b264
BLAKE2b-256 ba45c5b3285ac78d1db0b52688f070a785c264efe2ebe666158262ae2767b9dc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page