Find a file
2025-12-08 13:42:26 +01:00
examples add weasyl 2023-06-06 14:33:03 +02:00
feedplz fix crash due to new submission rating markup 2025-12-08 13:39:59 +01:00
.dockerignore update dockerignore 2022-07-28 04:27:04 +02:00
.gitignore add build dir to gitignore 2024-01-02 22:18:38 +01:00
.pre-commit-config.yaml add weasyl 2023-06-06 14:33:03 +02:00
CHANGELOG release 1.6.4 2025-12-08 13:42:26 +01:00
COPYING AGPL 3.0 and repo 2021-12-28 00:29:53 +01:00
MANIFEST.in proper python package 2022-07-28 03:56:00 +02:00
pyproject.toml fix uv build cache key 2025-03-11 14:07:31 +01:00
README proper python package 2022-07-28 03:56:00 +02:00
README.OPS fix README.OPS. lol how long has that been wrong 2025-03-05 17:36:44 +01:00
setup.py proper python package 2022-07-28 03:56:00 +02:00
uv.lock bump certifi 2025-05-04 09:54:40 +02:00

Feedplz {{version}}
========{{ "=" * version|length }}

Feedplz is a web service that generates RSS or ATOM feeds for services that
don't provide them.

Supported services:
- FurAffinity (galleries, scraps, browse)
- Weasyl (galleries)

Wishlist:
- FA search

Could be nice:
- fa folders
- fa journals
- pixiv?
- a page where you paste in a supported url and it spits out the corresponding
  feed w/ toggles and inputs for all the options. but also i like this raw
  README shit

Furaffinity
-----------

ATOM feeds:
- {{baseurl}}/fa/gallery/USERNAME/
- {{baseurl}}/fa/scraps/USERNAME/
    You need to pull USERNAME from the url to someone's profile, it's not always
    the same as the name displayed on their profile.
- {{baseurl}}/fa/browse/
    /fa/browse accepts some additional parameters described at
    {{baseurl}}/fa/browse/help


Supported URL parameters:
- `rating`: general, mature, or adult. Default is general.
  Will hide anything with a higher rating than selected, ie `rating=mature`
  will show works rated as general or mature, but not adult.
  Don't set this to anything other than general if you are under 18.

- `a` and `b`: Furaffinity session tokens.
  Pull these from your cookies.
  If you do not provide a session,
          {%- if has_fa_session %} a default set of credentials provided by your
  server operator will be used instead.
                       {%- else %} you will only be able to see what a
  logged-out user sees.{% endif %}

  ONLY PROVIDE YOUR SESSION TOKENS IF YOU TRUST THE OPERATOR OF YOUR FEEDPLZ
  SERVER WITH YOUR FURAFFINITY ACCOUNT! A MALICIOUS OPERATOR CAN USE YOUR
  CREDENTIALS TO IMPERSONATE YOU

- `timeout`: in seconds, 5 by default
  Since building a feed for someone's FA gallery involves many requests to
  a famously not-fast site, it can be fairly slow.
  Some feedreaders give up quickly on a slowly loading feed (hello miniflux)
  so this setting will make Feedplz bail and show whatever has been found after
  a set length of time. If you know that your feedreader has no issues with
  slow-loading feeds, you can safely raise this to 30 (the maximum).
  Entries are loaded chronologically and cached aggressively, so a feed that is
  periodically loaded by your feedreader will fill up in chronological order
  until it is eventually up to date.

Full example:

{{baseurl}}/fa/gallery/dragoneer/?rating=general&a=6431de33-e14a-4a9f-8b70-6e7eb7041a07&b=ebef1c68-3997-4d72-bd37-ab3e18f21aa5&timeout=30

Caveat emptor: this has only been built for and tested on images, not any other
types of submissions that FA supports. Patches welcome.

Caveat emptor: this does not support daylight saving time. Timestamps may be
off by an hour in the summer.


Weasyl
------

ATOM feeds:
- {{baseurl}}/weasyl/submissions/USERNAME/

Supported URL parameters:
- `rating`: general, moderate, mature, or explicit. Default is general.
  Will hide anything with a higher rating than selected, ie `rating=mature`
  will show works rated as general, moderate, or mature, but not explicit.
  Don't set this to anything other than general if you are under 18.

- `api_key`: You can provide your own API key, obtained at
  <https://www.weasyl.com/control/apikeys>. If you don't,
                             {%- if has_weasyl_api_key %} a key provided by your
  server operator will be used instead.
                                              {%- else %} you will only be able
  to see what a logged-out user sees.{% endif %}

- `timeout`: in seconds, 5 by default

Full example:

{{baseurl}}/weasyl/submissions/ikani/?rating=general&api_key=abc123def456ghi789&timeout=30

Caveat emptor: this has only been built for and tested on images, not any other
types of submissions.


{%- if op %}


About this server
-----------------

Your operator is {{op}}.

{%- if opmore %}

{{opmore}}

{%- endif %}{% endif %}


About the software
------------------

Feedplz is written by codl, and licenced under the AGPL 3.0. Its source code
can be obtained with:

    git clone https://f.codl.fr/feedplz.git

Send patches, issues, thank yous and kind words to codl@codl.fr.

Would-be server operators are advised to read README.OPS in the code repository.