A textboard written in Perl https://posttext.pl
Go to file
2023-05-14 16:17:10 -04:00
assets Some template cleanup and semantic HTML changes 2023-05-09 20:09:04 -04:00
lib Handle 404 stuff better for thread.by_id 2023-05-14 16:17:10 -04:00
migrations Sanitize HTML in body; enforce NOT NULL on body; template clean-up 2023-05-03 21:05:57 -04:00
script Again 2023-01-08 23:55:25 -05:00
t Handle 404 stuff better for thread.by_id 2023-05-14 16:17:10 -04:00
templates Remove some unneeded spans 2023-05-14 00:48:24 -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 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
Dockerfile Dockerfile, some docs and dependency 2023-04-25 15:10:31 -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 Initial commit 2022-07-22 17:22:23 -04:00
README.md Remove some unneeded spans 2023-05-14 00:48:24 -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 lib/ -w migrations/ -w t/ -w templates/ \
    script/post_text

Now try requesting http://localhost:3000

Testing

Run the tests locally (against development environment):

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. CSS
  2. Check status for items not found, should be 404 but getting 5xx
  3. "All new posts flagged" mode (require approval for new posts)
  4. Tests for mod-only user?
  5. Check input validation

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. Return a text response instead of HTML if a .txt extension is requested (JSON?)
  4. Post thread via SMS (twil.io??)
  5. Option to remark without bumping?