tilde.club/api/recently-updated/README.md

41 lines
2.9 KiB
Markdown

# Recently-Updated Page Shell Scripts
As soon as [~ford](http://tilde.club/~ford) granted me entrance to tilde.Club, I knew that I wanted to keep tabs on what cool things folks were doing there. And thinking back to the mid-90s, what was the best way to know what was new on a site? A recently-updated page! So I set about making one for tilde.club.
There's no question at all that this is a rudimentary hack, but it's the *exact* sort of hack that was The Way To Do Things on the mid-90s Internet. (Note that that's the mid-90s-capital-I-Internet, not the [21st-century-lowercase-i-internet](http://www.nytimes.com/2002/12/29/weekinreview/29SCHW.html).) And I'm using tried-and-true command-line Unix filesystem commands to grab, parse, and sort the list of pages, so I feel like I'm treading in the footsteps of thousands before me. The result is [the list of all tilde.club pages updated in the last 24 hours](http://tilde.club/~delfuego/tilde.24h.html), which is generated from the ```findmod.sh``` shell script once a minute from a crontab job.
Of course, while the HTML version of the recently-updated list is firmly mid-90s (well, if you view source you'll see that it's 21st-century HTML5, but still), enabling cooler 21st-century functionality required making the same list available in a more easily-parsed format. Enter JSON, and the [API version of the recently-updated list](http://tilde.club/~delfuego/tilde.24h.json), generated by the ```findmod-json.sh``` shell script once a minute via crontab as well.
Hope these are useful to someone!
Jason Levine, aka [~delfuego](http://tilde.club/~delfuego)
# Recently-Updated Page Perl Script
`findmod2.pl` is a pure-Perl5 reimplementation of ~delfuego's scripts.
It's self-contained, readable, well-documented and will search a
user's entire `public_html` subtree for the most recent file rather
than just using the date of the `index.html` file.
It accepts the following command-lines options:
* --domain *name* -- Domain name for the site. Guesses if omitted.
* --root *url* -- Root URL to use in links. Derived from domain by default.
* --since-hours *hours* -- Number of hours considered recent. Default = 24.
* --destdir *path* -- Destination directory for output files.
* --update-every *seconds* -- Regenerate the lists every *seconds*.
* --verbose -- Print more information as the program runs.
* --help -- Print a simple help message and exit.
If `--update-every` is given with a positive number, `findmod2.pl`
will loop forever, waiting the given number of seconds before
rescanning and regenerating the list. Otherwise, it will scan once
and exit.
The output files are named `tilde.XXh.json` and `tilde.XXh.html`,
where *XX* is replaced by number of hours considered recent (24 or the
argument given with `--since-hours`).
Chris Reuter, [~suetanvil](http://totallynuclear.club/~suetanvil).