<feed xmlns='http://www.w3.org/2005/Atom'>
<title>0x0.git/fhost.py, 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>2025-03-01T09:08:27+00:00</updated>
<entry>
<title>Move uploaded file handling to class</title>
<updated>2025-03-01T09:08:27+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2025-03-01T09:08:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=0cd289d9812675f60a9d81b0b9ce0a3d08cc4d35'/>
<id>urn:sha1:0cd289d9812675f60a9d81b0b9ce0a3d08cc4d35</id>
<content type='text'>
So uploading files via remote URLs was completely broken and
apparently nobody noticed. This commit fixes that, too.
Wouldn’t it be nice if there were a test suite!
</content>
</entry>
<entry>
<title>Avoid holding in-memory copies of file content</title>
<updated>2024-09-27T18:45:42+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2024-09-27T18:45:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=a2b322f8687f72462fa9ac892ef8459fb374b074'/>
<id>urn:sha1:a2b322f8687f72462fa9ac892ef8459fb374b074</id>
<content type='text'>
Werkzeug uses tempfile.SpooledTemporaryFile, so we can make use of
file-like object properties. This may result in more disk writes,
but that’s probably better than eating up RAM.

I hope this fixes #84.
</content>
</entry>
<entry>
<title>PEP8 compliance</title>
<updated>2024-09-27T16:30:33+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2024-09-27T15:39:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=de19212a719b0bc6ea5455b3e32072a76d021df6'/>
<id>urn:sha1:de19212a719b0bc6ea5455b3e32072a76d021df6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove broken tests</title>
<updated>2024-09-27T16:30:31+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2024-09-27T14:58:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=a2147cc964d385a59f077add9d7e5ba009bf9b2e'/>
<id>urn:sha1:a2147cc964d385a59f077add9d7e5ba009bf9b2e</id>
<content type='text'>
Will be readded after some major refactoring and modernization.
</content>
</entry>
<entry>
<title>Implement request filters</title>
<updated>2024-09-27T16:30:28+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2024-08-14T06:09:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=45a414c5ee004fbb4e6d7563be8e65cf2be84f37'/>
<id>urn:sha1:45a414c5ee004fbb4e6d7563be8e65cf2be84f37</id>
<content type='text'>
This moves preexisting blacklists to the database, and adds the
following filter types:

    * IP address
    * IP network
    * MIME type
    * User agent

In addition, IP address handling is now done with the ipaddress
module.
</content>
</entry>
<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>Fix remote URL content length check off-by-one</title>
<updated>2023-06-04T04:35:11+00:00</updated>
<author>
<name>polina4096</name>
<email>polina4096@yandex.ru</email>
</author>
<published>2023-06-04T00:00:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=8a912e87449bd6e56ac8a83f25d0ca58982a81d3'/>
<id>urn:sha1:8a912e87449bd6e56ac8a83f25d0ca58982a81d3</id>
<content type='text'>
Fixes #85
</content>
</entry>
<entry>
<title>Store user agent with files</title>
<updated>2023-03-29T05:36:49+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2023-03-29T05:21:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=3d1facaec306d453d5749fc49ad6772ebbafff7e'/>
<id>urn:sha1:3d1facaec306d453d5749fc49ad6772ebbafff7e</id>
<content type='text'>
Needed for moderation.
</content>
</entry>
<entry>
<title>URL: Explicitly set upper-case table name</title>
<updated>2023-03-29T05:19:47+00:00</updated>
<author>
<name>Mia Herkt</name>
<email>mia@0x0.st</email>
</author>
<published>2023-03-29T05:19:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=e00866f5e4a66c18690f0bcdd274d68f3c3d9d0d'/>
<id>urn:sha1:e00866f5e4a66c18690f0bcdd274d68f3c3d9d0d</id>
<content type='text'>
Looks like recent SQLAlchemy/Alembic chose to lower-case it by
default. Try not to break existing schemas.
</content>
</entry>
<entry>
<title>fix 500 error when file extension could not be guessed</title>
<updated>2023-01-15T19:36:39+00:00</updated>
<author>
<name>jonas-w</name>
<email>git@03j.de</email>
</author>
<published>2023-01-15T18:28:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bensanders.xyz/0x0.git/commit/?id=3950f6e8ebf264ff5fb7c4302f11667e41c0ce21'/>
<id>urn:sha1:3950f6e8ebf264ff5fb7c4302f11667e41c0ce21</id>
<content type='text'>
when a file without an extension was uploaded
and the mimetypes.guess_extension returned None
because there is no official file extension
for that mimetype a NoneType was subscripted
which yielded a 500 http error
</content>
</entry>
</feed>
