<feed xmlns='http://www.w3.org/2005/Atom'>
<title>0x0.git/README.rst, branch master</title>
<subtitle>[MIRROR] Repo for No-bullshit file hosting and URL Shortening Service 0x0.st
</subtitle>
<id>https://git.bensanders.xyz/0x0.git/atom?h=master</id>
<link rel='self' href='https://git.bensanders.xyz/0x0.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/'/>
<updated>2024-09-27T04:34:14+00:00</updated>
<entry>
<title>Replace NSFW detector implementation</title>
<updated>2024-09-27T04:34:14+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2024-09-25T16:12:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=6393538333338f695e30cce98a82836b04d2658a'/>
<id>urn:sha1:6393538333338f695e30cce98a82836b04d2658a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>README: Kitty support was merged in mpv</title>
<updated>2022-12-21T18:47:49+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2022-12-21T18:47:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=53249df28d61c8802d315ff422c0a1bcfb455881'/>
<id>urn:sha1:53249df28d61c8802d315ff422c0a1bcfb455881</id>
<content type='text'>
</content>
</entry>
<entry>
<title>README: Add ModUI screenshot</title>
<updated>2022-12-20T15:57:07+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2022-12-20T15:55:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=556cd8aeaeac6205e8652f3d1bae20d34024da4b'/>
<id>urn:sha1:556cd8aeaeac6205e8652f3d1bae20d34024da4b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add moderation TUI</title>
<updated>2022-12-20T15:19:49+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2022-12-20T14:45:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=eebd5d8c6d8a756384b6cf1b2cc76b8a83cdf929'/>
<id>urn:sha1:eebd5d8c6d8a756384b6cf1b2cc76b8a83cdf929</id>
<content type='text'>
This ended up way fancier than I imagined.
</content>
</entry>
<entry>
<title>README: Add note about StreamMaxLength in clamd.conf</title>
<updated>2022-12-12T06:40:38+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2022-12-12T06:40:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=b1ed63c4019228cf94deb7b524d586955ec44bb8'/>
<id>urn:sha1:b1ed63c4019228cf94deb7b524d586955ec44bb8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for ClamAV</title>
<updated>2022-12-12T06:35:05+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2022-12-12T06:25:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=a904922cbd6f6478d5e7fd773adc368b7652adaa'/>
<id>urn:sha1:a904922cbd6f6478d5e7fd773adc368b7652adaa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>nsfw_detect: Use PyAV instead of ffmpegthumbnailer</title>
<updated>2022-11-29T20:54:43+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2022-11-29T20:46:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=eb0b1d2f6992740e3b09bf383d8c0fa442faca55'/>
<id>urn:sha1:eb0b1d2f6992740e3b09bf383d8c0fa442faca55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>README: Also run db upgrade after git pull!</title>
<updated>2022-11-29T16:23:56+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2022-11-29T16:23:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=aa443178e1fdd30504850fb1ebde138491cd3a48'/>
<id>urn:sha1:aa443178e1fdd30504850fb1ebde138491cd3a48</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add example systemd unit files for prune job</title>
<updated>2022-11-29T16:23:30+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2022-11-29T16:23:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=db9a20c94d395b273caf24dfcc6a48ab3d020768'/>
<id>urn:sha1:db9a20c94d395b273caf24dfcc6a48ab3d020768</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for expiring files</title>
<updated>2022-11-29T12:09:26+00:00</updated>
<author>
<name>Emi Simpson</name>
<email>emi@alchemi.dev</email>
</author>
<published>2022-11-22T21:15:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=af4b3b06c0d75a01c1fa59f1f6a4bae12e69daa5'/>
<id>urn:sha1:af4b3b06c0d75a01c1fa59f1f6a4bae12e69daa5</id>
<content type='text'>
SUPPLEMENTALLY:
- Add an `expiration` field to the `file` table of the database
- Produce a migration for the above change
- Overhaul the cleanup script, and integrate into fhost.py
  (now run using FLASK_APP=fhost flask prune)
- Replace the old cleanup script with a deprecation notice
- Add information about how to expire files to the index
- Update the README with information about the new script

Squashed commits:

Add a note explaining that expired files aren't immediately removed

Show correct times on the index page graph

Improve the migration script, removing the need for --legacy

Use automap in place of an explicit file map in migration

Remove vestigial `touch()`

Don't crash when upgrading a fresh database

Remove vestigial warning about legacy files

More efficiently filter to unexpired files when migrating

https://git.0x0.st/mia/0x0/pulls/72#issuecomment-224

Coalesce updates to the database during migration

https://git.0x0.st/mia/0x0/pulls/72#issuecomment-226

Remove vestigial database model

https://git.0x0.st/mia/0x0/pulls/72#issuecomment-261

prune:  Stream expired files from the database

(as opposed to collecting them all first)

config.example.py:  Add min &amp; max expiration + description
</content>
</entry>
</feed>
