128 lines
6.1 KiB
Org Mode
128 lines
6.1 KiB
Org Mode
#+OPTIONS: toc:nil
|
||
* RSS based thread watcher
|
||
|
||
Get notifications from your feed reader when your favourite /mlp/ thread is about to die
|
||
|
||
** Usage
|
||
|
||
1) Open your RSS feed reader (you have one right?)
|
||
2) Add your custom URL (see getting custom URL)
|
||
3) Enable notifications in your feed reader and set update interval to 5minutes or more (you can set less but the feed is updated
|
||
only every 5 minutes)
|
||
4) Profit! RSS feed will include only the threads matching your querry so every notification your feed reader will send means your
|
||
watched thread is about to die
|
||
|
||
*NOTE THAT THIS IS AN ALPHA RELEASE, IF YOUR THREAD DIES BECAUSE OF RSS-WATCHER MALLFUNCTION DO NOT BLAME ME* pls
|
||
|
||
** Getting custom URL
|
||
|
||
URL without any params (just ~/feed.xml~) won't work. You must specify at least one ~q~. See bellow.
|
||
|
||
*** Crafting URL by hand
|
||
|
||
Right now there is no automated way to generate your feed url but making one by hand is fairly simple.
|
||
|
||
**** URL parameters
|
||
|
||
| Param name | Default value | Can have multiple? | Mandatory? | Short description |
|
||
|------------+---------------+--------------------+----------------------+--------------------------------------------------------------------------------------------------|
|
||
| board | "mlp" | No | No (not implemented) | Which board to generate feed for, *ONLY* /mlp/ is supported |
|
||
| q | nil | Yes | Yes (1 or more) | This string is used to filter threads according to their titles |
|
||
| chod | 94 | No | No | CHanceOfDeath - will include thread in the feed if it's chance to death i > chod |
|
||
| repeat | ~false~ | No | No | Whether to make new notification on every server update even when thread doesnt have higher chod |
|
||
| recreate | ~bool~ | Not implemented | Not implemented | Whether to notify when creation of new thread matching querry is detected (uses 4chans RSS) |
|
||
|
||
**** How to create URL
|
||
|
||
Standart rules of URLs apply, if you know how to pass params in URL to any website, you don't even have to read this
|
||
|
||
- Open some text editor
|
||
- Paste in default URL: ~https://tools.treebrary.org/thread-watcher/feed.xml?~ (you can use plain HTTP if you want to)
|
||
- Now you can append any of the supported parameters (which you can find in the above table):
|
||
- For example if we want to be informed about threads with "cute" in their title
|
||
- ~q=cute~ which would make ~https://tools.treebrary.org/thread-watcher/feed.xml?q=cute~
|
||
- If you want more than one param, separate with ~&~, for example:
|
||
- ~q=cute~ and ~q=pretty~ would be ~https://tools.treebrary.org/thread-watcher/feed.xml?q=cute&q=pretty~
|
||
- Same is true for when you also want to specify ChoD
|
||
- ~https://tools.treebrary.org/thread-watcher/feed.xml?q=cute&q=pretty&chod=98~
|
||
- This will only notify you about threads that:
|
||
- Have ~cute~ or ~pretty~ in their title
|
||
- Are in the lowest 98% part of catalog (it's on position ~147/150 e.g. 3 threads before being bumped off)
|
||
- Note that ~//~ are not special characters ~q=/general/~ will work as expected and match thread with "/general/" in it's title
|
||
- Also note that regex is *NOT* supported for now, so something like ~q=rainbow*~ will only match threads with "rainbow" followed
|
||
immedidatelly by ~*~
|
||
in their title
|
||
|
||
*** Generating URL interactively
|
||
|
||
Coming soon
|
||
|
||
** Limitations
|
||
|
||
This is an experimental project. There are several limitations:
|
||
- Only supported board is /mlp/ (You can choose your own when self hosting)
|
||
- Only searched threads are those who are in the 50% closer to death part of the catalog
|
||
|
||
*** Bugs
|
||
|
||
See [[https://git.treebrary.org/Treebrary.org/rss-thread-watcher/issues][issues]]
|
||
|
||
** Feature set
|
||
|
||
- Planned/finnished features [23%]
|
||
- [X] [DONE] Super basic features done (feed, query, repeat)
|
||
- [X] Have proper sorting - The most likely to die threads first
|
||
- [X] No params request should redirect to url generator or (for now) documentation
|
||
- [ ] Config file instead of hardcoding config values
|
||
- [ ] Include time of latest data fetch
|
||
- [ ] Make threads have preview images taken from the actuall thread OP
|
||
- [ ] Show which query matched the thread you were notified of
|
||
- [ ] Option to include advanced HTML formating of text (different color text for ChoD etc)
|
||
- [ ] Support notification on watched thread re-creation after it died
|
||
- [ ] Support notification for thread death
|
||
- [ ] Support multiple boards at once
|
||
- [ ] Support async responses
|
||
- [ ] Graal VM support for native configuration
|
||
|
||
** Self hosting
|
||
|
||
This is not supported until release 1.0. You can do it if you figure it out (probably not that hard tbh) but there will be much
|
||
more detailed instructions in the future.
|
||
|
||
*** Prebuilt
|
||
|
||
There will be instructions at some point I promise. Until then you can download binaries from the releases page and run them like
|
||
you would any other java executable, default port is ~6969~.
|
||
|
||
And you need Java for now if that isn't clear.
|
||
|
||
~$ java -jar whatEverNameTheReleaseHas.jar~~
|
||
|
||
*** From source
|
||
|
||
If you know Clojure, then just clone and build with lein. If you don't either RTFM to lein or wait before instructions will be
|
||
avaiabile here.
|
||
|
||
*** Configuring
|
||
|
||
Self hosting is not supported at the moment so no configuration for you.
|
||
|
||
*** Contributing
|
||
|
||
[[https://treebrary.org/about-the-git-server.html][See]]
|
||
|
||
** License - AGPL3
|
||
|
||
Copyright © 2023 Felisp
|
||
|
||
This program is free software: you can redistribute it and/or modify
|
||
it under the terms of the GNU Affero General Public License as published by
|
||
the Free Software Foundation, version 3 of the License.
|
||
|
||
This program is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
GNU Affero General Public License for more details.
|
||
|
||
You should have received a copy of the GNU Affero General Public License
|
||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|