| Age | Commit message (Collapse) | Author |
|
It is a little unclear what the deprecation warning wants the developer
to do. The fallthrough comment to text response may not be immediately
obvious to the reader.
This commit helps to understand the intention and to avoid bugs such as
commit daac77a.
|
|
Gyazo didn't fallthrough correctly to text, because the type would be
set to Gyazo while the Gyazo case didn't exist. PHP is so ambiguous
sometimes.
This adds the missing fallthroughs that were removed in commit e39a920.
It should now correctly fallthrough ("fallback") to text response.
|
|
This fixes a silly mistake where Gyazo would accidentally use the HTML
response instead of text as intended.
This bug was introduced in commit 2ca5b6b.
|
|
This commit improves readability and compliments commit 6d8b204.
|
|
This commit improves readability.
|
|
Let's say some user decides to use output "xml". Unexpectedly, the user
would instead receive JSON output. This is undefined behavior in its own
way and violates the principle of least surprise.
Problems could arise if we added "xml" later with actual application/xml
or text/xml content.
Right now upload.php overrides an empty output argument to json instead,
so this seems safe to do. Any non-existent output will now return a 400
Bad Request error.
|
|
This commit improves readability by swapping text and html response
source line order for alphabetical sorting.
|
|
This restores the typical sorting order:
- csv
- (gyazo)
- text
- html
- default (json)
|
|
A majority of the Gyazo code is just copy-pasted text/plain protocol.
This will put an end to that insanity.
OK ewhal@
|
|
Previously, CSV would return the wrong filetype text/plain and
fallthrough.
RFC 4180 registers text/csv MIME type. RFC 7111 is closely related and
says to use text/csv to launch the correct application.
|
|
get_crc32() was removed in commit ea6a7a0194 and never in use in the
code. It seems Eric forgot to remove this property.
|
|
|
|
|
|
Interestingly, static/classes/UploadedFile.class.php is not licensed
under Expat license. Because it was posted in PHP.net comments, I
believe it's under the PHP license.
|
|
IANA has registered UTF-8 as uppercase, hyphenated. The RFC concerning
UTF-8, RFC 3629 also uses this grammar.
RFC 2231 says the Content-Type charset value should be:
charset := <registered character set name>
RFC 5987 further emphasizes this:
charset = "UTF-8" / "ISO-8859-1" / mime-charset
Therefore lowercase "utf-8" in Content-Type responses is technically
incorrect, but case-insensitive according to RFC 2616.
Thanks to pantsucat for researching this with me.
|
|
|
|
|
|
These commits are ShareX issues, not Pomf issues. Allowing these
commits to be in the source reduces maintainability.
This reverts commits bbcffe8d745937677352edf25e6a250ca8fd507b,
943e7e62a8ca814d47168bcebf2cc92dbce9a45a and partially
1411bce1dc13bf6fea66b5899ba29d50d5c53bb0.
|
|
|
|
|
|
|
|
PSR-2 [1] is a highly regarded style guide in the PHP community
according to Stack Overflow [2].
The indentation was out of place in the source code. I've seen a
combination of 1 space tabs, 3 space tabs, 4 space tabs and 5 space
tabs. Some closing braces on the same line and a lot of the code
(especially moe code) had reached the point of losing readability.
Converted with php-cs-fixer and some hand adjustment.
[1]: http://www.php-fig.org/psr/psr-2/
[2]: https://stackoverflow.com/questions/3638083/list-of-highly-regarded
-php-style-guides
|
|
crc32 isn't used
|
|
DATABASE UPDATE: `orginalname` renamed to `originalname` (run update.sql to update `files` table).
Run `update.sql` to update your database, no data will be lost (if you don't update it, pomf won't work properly).
`schema.sql`
- `id`s are now unsigned to double the maximum number of supported indexes
- `size` and `user` columns are unsigned too (we can't have a negative file size or a negative user id)
`static/classes/Response.class.php`
New class to manage responses and errors. Using a class for responses makes the code cleaner and easier to add new response type handlers in the future.
- The response type is declared while a new variable is initialized and the `error` and `send` methods will print a proper output according to it
- The header for the response is also set accordingly to the response type (`text/plain` for `csv`/`gyazo` output, `application/json` for `json` output)
`static/classes/UploadException.class.php`
`Exception` class extension to manage errors that may have occurred while uploading files to the server. This way every error is reported in detail.
`static/includes/settings.inc.php`
- `POMF_URL`: add an option to set the domain of the url to prepend to the newly generated filename (before it was hardcoded and it was `http://a.pomf.se/`) [this option is currently used only when the output is set to `gyazo`]
`upload.php`
- Add functions calls at the beginning to enable the output compression if possible (gzipped output)
- Include new classes
- `generate_name ()`
--- The new name generation algorithm is basically the same of the old one, but it's easier to add/remove characters if needed (eg. lower-case letters isn't enough and you need to add capital-case letters or digits)
--- Check directly the database instead of the filesystem to see if a generated filename is already in use
- `upload_file ()`
--- File errors generate a `UploadException` instead of a normal `Exception`
--- Move common code outside the `if` to avoid useless code repetition (only the query is now inside the condition)
--- Change file permissions of a file after moving it to the new directory (if the user didn't set a mask previouly these files wouldn't be world readable, we make sure they are)
- `diverse_array ()`
--- Function to reorder initial `$_FILES` array (easier to handle for `refiles`)
- `refiles ()`
--- Use a `foreach` cicle instead of a `for` one, easier to understand
- Create a new response object and set its response type (`csv`, `gyazo` or default to `json`)
- Edit response handling according to the new response class
|
|
|