A textboard written in Perl https://posttext.pl
Go to file
2023-07-06 13:12:08 -04:00
assets Fix text-selecting cursor for now (gotta be a better way...) 2023-07-05 23:18:29 -04:00
lib Implement raw/txt format; moar tests 2023-06-27 01:30:32 -04:00
migrations Sanitize HTML in body; enforce NOT NULL on body; template clean-up 2023-05-03 21:05:57 -04:00
public Moar robots.txt stuff 2023-06-08 16:46:19 -04:00
script Don't think this is needed anymore... 2023-07-06 13:12:08 -04:00
t Added a lil link for plain/raw text 2023-06-27 20:55:41 -04:00
templates Update hyperlink 2023-07-06 01:17:58 -04:00
.gitignore Hybrid time 2022-09-15 19:14:40 -04:00
.perlcriticrc Dial up severity for PerlCritic, also comment out in cpanfile as it's not necessary right now for a container build 2023-05-06 03:02:11 -04:00
AUTHORS Put some files in place for later; implement a basic Mojolicious::Lite app 2022-07-22 18:37:31 -04:00
cpanfile Remove moar stuff 2023-06-17 18:29:21 -04:00
Dockerfile smol tweaks 2023-06-15 11:04:47 -04:00
example_post_text.conf Forget about tripcodes for now, remove some unnecessary things from config 2022-11-03 15:42:06 -04:00
LICENSE Whoopsie 2023-06-14 12:32:24 -04:00
README.md New TODOS 2023-07-05 23:26:48 -04:00

Post::Text

A textboard written in Perl

Installing locally

Install dependencies:

cpanm --installdeps .

Running locally

Create a config file:

cp example_post_text.conf post_text.conf

This file right now just contains a Perl hash reference. Someday it should be YAML or XML or something better suited.

Run it in development mode:

morbo -w assets/css/ -w public/ -w lib/ -w templates/ \
    -w script/ script/post_text

Now try requesting http://localhost:3000

Testing

First, create a valid first thread and first remark to the first thread. The tests rely on the existence of thread #1 and remark #1 being the first remark to that first thread. Then you can run the tests locally:

prove -l

Building/running container

Build

podman build -t post_text .

Tag

podman tag post_text git.n4vn33t.com/swag/post_text

Push

podman push git.n4vn33t.com/swag/post_text

Pull

podman pull git.n4vn33t.com/swag/post_text

Run

podman run -dt --rm --name post_text -p 3002:3000 post_text

Generate unit file

podman generate systemd --files --new --name post_text

TODOs

  1. Post preview
  2. There was something else but I forget...
  3. CAPTCHA
  4. "All new posts flagged" mode (require approval for new posts)
  5. Tests for mod-only user?

Crazy future ideas

(Lord knows there's TODOs I could be working on...)

  1. Is remark_tally counting hidden remarks? Tried to add a WHERE NOT hidden_status but that returns null, probably need a different JOIN which may not be worth the trouble/processing
  2. Implement tripcodes (moving this down in priority due to complexity...)
  3. Post thread via SMS (twil.io??)