commit 4d4dd537e1436cb4e458d1d2787ee7dfcb67ef5a Author: Jeff MacKinnon Date: Thu Jul 23 09:47:00 2026 -0300 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..505a3b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# Virtual environments +.venv diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..6324d40 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.14 diff --git a/README.md b/README.md new file mode 100644 index 0000000..dc9e3e6 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# Yet Another RSS to Social Pubisher + +This project started out as a simple python script, something I finally sat down to write at the end of vacation, but as I was thinking about how I wanted to use it, I figured I should make it into a package that more people can use. + +Python scripts are great, but at the end of the day, I think more people will be able to figure out how to use ``pip install yarss2social`` than will be able to use git. + +I also like to have all my personal projects as packages that I can then import into other projects as a matter of principle. So re-configuring this as a package helps with that too. + +## Configuration + +The configuration of the app uses [TOML](https://toml.io/en/). That is where you will place all the passwords, etc. + +The app is portable in the sense that you can move it from computer to computer by taking the config file you make, and the [SQLite](https://sqlite.org) db to your new computer and keep going like nothing changed. + + +## Installation + +(Coming Soon) + +## How to Use + +(Coming Soon, this is more of a checklist for my development) + +1. Install +2. Configure the social media sites you want to publish. +3. Configure the RSS feeds you want to watch +4. For manual updating you can type ``yarss2social --config config --db rss2social``[^1] + + +[^1]: These are the defaults, you can use whatever you want for these. The just have to be configured in the config file as absolute locations. I really recomend keeping the config file in the default location if you are going to do this manually, it saves on the typing. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..43dae10 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +[project] +name = "yarss2social" +version = "0.1.0" +description = "Yet another RSS 2 Social Publishing app." +readme = "README.md" +authors = [ + { name = "Jeff MacKinnon", email = "jeff@jeffmackinnon.com" } +] +requires-python = ">=3.14" +dependencies = [ + "beautifulsoup4>=4.15.0", + "feedparser>=6.0.12", + "ipykernel>=7.3.0", + "mastodon-py>=2.2.1", + "peewee>=4.2.6", + "requests>=2.34.2", +] + +[project.scripts] +yarss2social = "yarss2social:main" + +[build-system] +requires = ["uv_build>=0.11.16,<0.12.0"] +build-backend = "uv_build" diff --git a/src/yarss2social/__init__.py b/src/yarss2social/__init__.py new file mode 100644 index 0000000..c448c10 --- /dev/null +++ b/src/yarss2social/__init__.py @@ -0,0 +1,2 @@ +def main() -> None: + print("Hello from yarss2social!") diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..38f3bad --- /dev/null +++ b/uv.lock @@ -0,0 +1,23 @@ +version = 1 +revision = 3 +requires-python = ">=3.14" + +[[package]] +name = "peewee" +version = "4.2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/6d/45b139fba589e185dcee447414c2e0efaebb0a247c06329fdc9bd84ba4aa/peewee-4.2.6.tar.gz", hash = "sha256:f40655c64a62eaa447af228e4b84a5e80d3c812d2de34c7b9c621a3ef0c6555c", size = 779493, upload-time = "2026-07-17T18:11:21.3Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/63/26ec789e68e994d64ed957dd6ee5a08bb78c2f401c40e46fc142669cd8b0/peewee-4.2.6-py3-none-any.whl", hash = "sha256:b54c0f6e09c987465f8268bb2b4c1cba2e1b2788fcc0974c8e2233af1fd5af8f", size = 173774, upload-time = "2026-07-17T18:11:19.787Z" }, +] + +[[package]] +name = "yarss2social" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "peewee" }, +] + +[package.metadata] +requires-dist = [{ name = "peewee", specifier = ">=4.2.6" }]