]> git.mxchange.org Git - quix0rs-gnu-social.git/log
quix0rs-gnu-social.git
10 years agostopdaemons.sh: dynamic daemons list
chimo [Sat, 7 Jun 2014 14:34:51 +0000 (10:34 -0400)]
stopdaemons.sh: dynamic daemons list

Use getvaliddaemons.php instead of the hardcoded list of daemons

10 years agoRevert "Slightly larger avatars and some box-shadow"
Mikael Nordfeldth [Fri, 6 Jun 2014 20:11:50 +0000 (22:11 +0200)]
Revert "Slightly larger avatars and some box-shadow"

This reverts commit 38f5038cf0ec01dbdcaa00822cd393b285a0696e.

Random problems with, I assume, Chromium users. Ranted:
   "FUCK YOU CHROMIUM WITH VARYING FUNCTIONALITY AND CRAPPY
    INTEROPERABILITY THE NEW FUCKING INTERNET EXPLORER"

This will be back in the future with a vengeance (patches).

10 years agoStart tracking alpha release numbers
Mikael Nordfeldth [Fri, 6 Jun 2014 09:48:10 +0000 (11:48 +0200)]
Start tracking alpha release numbers

Some changes should be implied as larger with an incrementing alpha
release number. Not all commits will increase this of course, but it
will give an indication on which major reworks, features or layout
changes have been made for the version being used on an instance.

10 years agoSlightly larger avatars and some box-shadow
Mikael Nordfeldth [Thu, 5 Jun 2014 23:48:40 +0000 (01:48 +0200)]
Slightly larger avatars and some box-shadow

10 years agoAssume all web browsers have CSS3 support nowadays (if they support CSS)
Mikael Nordfeldth [Thu, 5 Jun 2014 23:44:12 +0000 (01:44 +0200)]
Assume all web browsers have CSS3 support nowadays (if they support CSS)

10 years agoProfile sized avatar in DefaultProfileBlock
Mikael Nordfeldth [Thu, 5 Jun 2014 22:59:57 +0000 (00:59 +0200)]
Profile sized avatar in DefaultProfileBlock

Don't know why it was overriding ProfileBlock...

10 years agoSimplify functions regarding locally cached profiles etc.
Mikael Nordfeldth [Thu, 5 Jun 2014 22:32:07 +0000 (00:32 +0200)]
Simplify functions regarding locally cached profiles etc.

10 years agoNon-dynamic profile fetching in User and User_group
Mikael Nordfeldth [Thu, 5 Jun 2014 22:19:54 +0000 (00:19 +0200)]
Non-dynamic profile fetching in User and User_group

10 years agoNon-dynamic user and group fetching in Profile
Mikael Nordfeldth [Thu, 5 Jun 2014 22:07:32 +0000 (00:07 +0200)]
Non-dynamic user and group fetching in Profile

10 years agoAdd support for plugins to resize images
Mikael Nordfeldth [Thu, 5 Jun 2014 10:59:38 +0000 (12:59 +0200)]
Add support for plugins to resize images

This also adds an event hook to get more metadata of the ImageFile.
Such as if it's animated or so.

10 years agoMerge from chimo: Catch GeoCookie JSON parsing error
Mikael Nordfeldth [Thu, 5 Jun 2014 07:33:30 +0000 (09:33 +0200)]
Merge from chimo: Catch GeoCookie JSON parsing error

10 years agoShow inline repeats-list in ThreadedNoticeList
Mikael Nordfeldth [Wed, 4 Jun 2014 22:59:13 +0000 (00:59 +0200)]
Show inline repeats-list in ThreadedNoticeList

Also, don't show repeats _as_ separate notices in the list either.

10 years agoNon-dynamic fetching for multiple Notice properties
Mikael Nordfeldth [Wed, 4 Jun 2014 22:29:43 +0000 (00:29 +0200)]
Non-dynamic fetching for multiple Notice properties

10 years ago$notice->getProfile will ALWAYS return a Profile
Mikael Nordfeldth [Wed, 4 Jun 2014 22:07:04 +0000 (00:07 +0200)]
$notice->getProfile will ALWAYS return a Profile

otherwise it throws an exception

10 years agoReplies to repeats should go to the original
Mikael Nordfeldth [Wed, 4 Jun 2014 21:49:47 +0000 (23:49 +0200)]
Replies to repeats should go to the original

10 years agoRepeats were not delivered a conversation ID
Mikael Nordfeldth [Wed, 4 Jun 2014 21:21:37 +0000 (23:21 +0200)]
Repeats were not delivered a conversation ID

Vinilox noticed that replies to repeats ended up outside of the original
notice's conversations.

10 years agoNotice::getReplyTo more specific now (getInlineReplyTo)
Mikael Nordfeldth [Wed, 4 Jun 2014 21:20:20 +0000 (23:20 +0200)]
Notice::getReplyTo more specific now (getInlineReplyTo)

10 years agoProper HTTP status codes for WebFinger search miss
Mikael Nordfeldth [Wed, 4 Jun 2014 10:59:42 +0000 (12:59 +0200)]
Proper HTTP status codes for WebFinger search miss

10 years agoReturn 404 on resource-not-found for WebFinger
Mikael Nordfeldth [Wed, 4 Jun 2014 10:46:06 +0000 (12:46 +0200)]
Return 404 on resource-not-found for WebFinger

10 years agoLess verbose debugging (also don't log private keys)
Mikael Nordfeldth [Tue, 3 Jun 2014 10:53:04 +0000 (12:53 +0200)]
Less verbose debugging (also don't log private keys)

Magicsig private keys were logged. That's probably not a good thing.
MagicEnvelope full XML entries no longer spam the log either.

10 years agoDefault of Magicsig keypair toString should be secure
Mikael Nordfeldth [Tue, 3 Jun 2014 10:51:52 +0000 (12:51 +0200)]
Default of Magicsig keypair toString should be secure

Prevent crappy coders from leaking private keys.

10 years agoDangerous non-dynamic profile fetching in Notice
Mikael Nordfeldth [Tue, 3 Jun 2014 10:22:07 +0000 (12:22 +0200)]
Dangerous non-dynamic profile fetching in Notice

For a Notice object with multiple results, ->getProfile() would ALWAYS
return the first profile in the list. For example our "popular notices"
stream ended up believing all notices were made by the same profile.

10 years agoMoved Poll CSS into the plugin directory
Mikael Nordfeldth [Tue, 3 Jun 2014 09:38:40 +0000 (11:38 +0200)]
Moved Poll CSS into the plugin directory

10 years agoMoved QnA CSS into the plugin directory
Mikael Nordfeldth [Tue, 3 Jun 2014 09:36:32 +0000 (11:36 +0200)]
Moved QnA CSS into the plugin directory

10 years agoMoved Event CSS into the plugin directory
Mikael Nordfeldth [Tue, 3 Jun 2014 09:33:46 +0000 (11:33 +0200)]
Moved Event CSS into the plugin directory

10 years agoActivityObject::fromProfile used some non-included class definitions
Mikael Nordfeldth [Tue, 3 Jun 2014 01:18:13 +0000 (03:18 +0200)]
ActivityObject::fromProfile used some non-included class definitions

10 years agoRevert "There were referenced in ActivityObject not autoloaded"
Mikael Nordfeldth [Tue, 3 Jun 2014 01:16:18 +0000 (03:16 +0200)]
Revert "There were referenced in ActivityObject not autoloaded"

This reverts commit 6e35544a67e250b492f6c75abe3be597fc480ccd.

10 years agoMoved Bookmark CSS into the plugin directory
Mikael Nordfeldth [Tue, 3 Jun 2014 00:24:09 +0000 (02:24 +0200)]
Moved Bookmark CSS into the plugin directory

10 years agoNo need to pre-resize avatars
Mikael Nordfeldth [Mon, 2 Jun 2014 23:52:42 +0000 (01:52 +0200)]
No need to pre-resize avatars

10 years agoThere were referenced in ActivityObject not autoloaded
Mikael Nordfeldth [Mon, 2 Jun 2014 23:33:48 +0000 (01:33 +0200)]
There were referenced in ActivityObject not autoloaded

10 years agoMagicsig::generate is now static
Mikael Nordfeldth [Mon, 2 Jun 2014 19:50:40 +0000 (21:50 +0200)]
Magicsig::generate is now static

This also fixes a problem with "initial salmon slap", which was a
problem for newly registered accounts which would have their first
salmon slap fail to distribute since there was a problem with Magicsig
keys. Apparently we have to re-read them with importKeys so the
Crypt_RSA objects publicKey and privateKey match later instances of them.

I think it may have been that generate() doesn't specify a signatureMode,
but I leave experimentation of that to the future.

10 years agoSalmon posts can only be made for local users. More typing!
Mikael Nordfeldth [Mon, 2 Jun 2014 17:44:57 +0000 (19:44 +0200)]
Salmon posts can only be made for local users. More typing!

Since we of course don't have the remote party's private keys anyway.

I made some small fixes in Magicsig class too, removing unnecessary code.

10 years agoQuick-return is more comprehensible than long if statements
Mikael Nordfeldth [Mon, 2 Jun 2014 17:37:06 +0000 (19:37 +0200)]
Quick-return is more comprehensible than long if statements

10 years agoPrepare for WebFinger magicsig data for remote profiles
Mikael Nordfeldth [Mon, 2 Jun 2014 17:33:09 +0000 (19:33 +0200)]
Prepare for WebFinger magicsig data for remote profiles

10 years agoMagicEnvelope discoverKeyPair now returns string
Mikael Nordfeldth [Mon, 2 Jun 2014 14:31:22 +0000 (16:31 +0200)]
MagicEnvelope discoverKeyPair now returns string

getKeyPair fills in missing data so it's a complete Magicsig.
We may use insert() here in the future so the Magicsig is cached locally.

10 years agoOnly use a Profile in MagicEnvelope keypair retrieval
Mikael Nordfeldth [Mon, 2 Jun 2014 14:11:46 +0000 (16:11 +0200)]
Only use a Profile in MagicEnvelope keypair retrieval

So we _know_ there is a profile for the submitter we're about to verify.

10 years agoMagicsig importKeys finetuning and getHash() use
Mikael Nordfeldth [Mon, 2 Jun 2014 14:11:15 +0000 (16:11 +0200)]
Magicsig importKeys finetuning and getHash() use

10 years agoDon't ensureProfile before we verify signature
Mikael Nordfeldth [Mon, 2 Jun 2014 14:10:26 +0000 (16:10 +0200)]
Don't ensureProfile before we verify signature

10 years agoClarify it's not base64, but base64url, encoding in Magicsig
Mikael Nordfeldth [Mon, 2 Jun 2014 12:51:15 +0000 (14:51 +0200)]
Clarify it's not base64, but base64url, encoding in Magicsig

10 years agoImprove debugging for Salmon slaps
Mikael Nordfeldth [Mon, 2 Jun 2014 12:20:58 +0000 (14:20 +0200)]
Improve debugging for Salmon slaps

10 years agoTry the whole Salmon action for AlreadyFulfilledException
Mikael Nordfeldth [Mon, 2 Jun 2014 11:44:08 +0000 (13:44 +0200)]
Try the whole Salmon action for AlreadyFulfilledException

If we have already fulfilled the action, we don't have to send an error back.

10 years agoMagicsig warning message would fail to get bits
Mikael Nordfeldth [Mon, 2 Jun 2014 11:35:29 +0000 (13:35 +0200)]
Magicsig warning message would fail to get bits

10 years agoFile::processNew now static and always throws exception on failure
Mikael Nordfeldth [Mon, 2 Jun 2014 00:08:48 +0000 (02:08 +0200)]
File::processNew now static and always throws exception on failure

10 years agoFile::processNew can return -1 which was not true for empty()
Mikael Nordfeldth [Sun, 1 Jun 2014 23:26:23 +0000 (01:26 +0200)]
File::processNew can return -1 which was not true for empty()

Also, File->getEnclosure() now throws exception if not enough metadata.

10 years agoStronger typing for NoticeListItem and so
Mikael Nordfeldth [Sun, 1 Jun 2014 22:20:27 +0000 (00:20 +0200)]
Stronger typing for NoticeListItem and so

10 years agoArrayWrapper no longer returned from multiGetClass
Mikael Nordfeldth [Sun, 1 Jun 2014 22:13:54 +0000 (00:13 +0200)]
ArrayWrapper no longer returned from multiGetClass

multiGetClass uses FIND_IN_SET for ordering, which is pretty MariaDB specific.

10 years agoThere could be unresolvable FeedSub entries
Mikael Nordfeldth [Sun, 1 Jun 2014 14:07:08 +0000 (16:07 +0200)]
There could be unresolvable FeedSub entries

10 years agoStronger typing in Widget class (HTMLOutputter)
Mikael Nordfeldth [Sun, 1 Jun 2014 11:09:47 +0000 (13:09 +0200)]
Stronger typing in Widget class (HTMLOutputter)

10 years agoCatches GeoCookie JSON parsing error
chimo [Sat, 31 May 2014 22:11:04 +0000 (18:11 -0400)]
Catches GeoCookie JSON parsing error

10 years agoMagicsig is made a bit less cumbersome
Mikael Nordfeldth [Sat, 31 May 2014 11:34:06 +0000 (13:34 +0200)]
Magicsig is made a bit less cumbersome

10 years agoUse locally cached Salmon keys for profiles
Mikael Nordfeldth [Sat, 31 May 2014 10:51:51 +0000 (12:51 +0200)]
Use locally cached Salmon keys for profiles

Please note that we're not yet actually caching them ourselves.

10 years agoLast objectification of MagicEnvelope. Smarter SalmonAction
Mikael Nordfeldth [Sat, 31 May 2014 09:29:55 +0000 (11:29 +0200)]
Last objectification of MagicEnvelope. Smarter SalmonAction

10 years agoTemplate engine is a good idea, but not in that implementation
Mikael Nordfeldth [Fri, 30 May 2014 22:37:58 +0000 (00:37 +0200)]
Template engine is a good idea, but not in that implementation

10 years agoStatusNet::delPlugin($name) added to disable plugins
Mikael Nordfeldth [Fri, 30 May 2014 22:27:23 +0000 (00:27 +0200)]
StatusNet::delPlugin($name) added to disable plugins

Instead of setting some weird $config['plugins']['disable-Blah'] yourself.
The class name, StatusNet, will probably change in the future to GNU social.
No global function added, as it exists for addPlugin().

10 years agoMaybe the least necessary plugin: PoweredByStatusNet
Mikael Nordfeldth [Fri, 30 May 2014 22:04:02 +0000 (00:04 +0200)]
Maybe the least necessary plugin: PoweredByStatusNet

10 years agoSubscription class listing retrieval fixed
Mikael Nordfeldth [Fri, 30 May 2014 21:33:38 +0000 (23:33 +0200)]
Subscription class listing retrieval fixed

The incorrect variable was tried to be 0 causing offset limits that
are more than 1 to be treated identically (like the raw $ids value).

10 years agoModernising subscribers/subscriptions to use $this->scoped/target
Mikael Nordfeldth [Wed, 28 May 2014 15:00:34 +0000 (17:00 +0200)]
Modernising subscribers/subscriptions to use $this->scoped/target

They extend GalleryAction from ProfileAction, where $this->target is set.

10 years agoSalmon log message tidying up
Mikael Nordfeldth [Wed, 28 May 2014 12:07:47 +0000 (14:07 +0200)]
Salmon log message tidying up

10 years agoBad variable names (fixes last commit)
Mikael Nordfeldth [Tue, 27 May 2014 11:02:26 +0000 (13:02 +0200)]
Bad variable names (fixes last commit)

10 years agoMagicEnvelope object orientation (no passing arrays)
Mikael Nordfeldth [Tue, 27 May 2014 09:32:12 +0000 (11:32 +0200)]
MagicEnvelope object orientation (no passing arrays)

MagicEnvelope now uses object properties instead of passing arrays
around everywhere.

10 years agoMake MagicEnvelope self-reference
Mikael Nordfeldth [Tue, 27 May 2014 08:16:23 +0000 (10:16 +0200)]
Make MagicEnvelope self-reference

Also, a stricer typing for DOMDocument in fromDom parsing function.

10 years agoRemoved MagicEnvelopeCompat, legacy from SN <0.9.7
Mikael Nordfeldth [Mon, 26 May 2014 21:07:37 +0000 (23:07 +0200)]
Removed MagicEnvelopeCompat, legacy from SN <0.9.7

10 years agoMinor changes in Salmon lib for Magicsig retrieval.
Mikael Nordfeldth [Mon, 26 May 2014 18:06:11 +0000 (20:06 +0200)]
Minor changes in Salmon lib for Magicsig retrieval.

10 years agoMake Profile::fromUri use UnknownUriException
Mikael Nordfeldth [Mon, 26 May 2014 13:05:14 +0000 (15:05 +0200)]
Make Profile::fromUri use UnknownUriException

10 years agoUnknownUriException added for better error handling
Mikael Nordfeldth [Mon, 26 May 2014 12:39:47 +0000 (14:39 +0200)]
UnknownUriException added for better error handling

10 years agoNoProfileException collision avoidance fix
Mikael Nordfeldth [Mon, 26 May 2014 12:36:41 +0000 (14:36 +0200)]
NoProfileException collision avoidance fix

10 years agoShould not normalize Salmon author URIs.
Mikael Nordfeldth [Mon, 26 May 2014 12:18:25 +0000 (14:18 +0200)]
Should not normalize Salmon author URIs.

It's normalized in Discovery->lookup later anyway.

10 years agogetAuthorUri is a more appropriate function name
Mikael Nordfeldth [Mon, 26 May 2014 12:14:54 +0000 (14:14 +0200)]
getAuthorUri is a more appropriate function name

10 years agocheckAuthor not used anywhere
Mikael Nordfeldth [Mon, 26 May 2014 12:13:35 +0000 (14:13 +0200)]
checkAuthor not used anywhere

10 years agoThere's no guarantee we have an Ostatus_profile for Feedsub
Mikael Nordfeldth [Mon, 19 May 2014 16:34:44 +0000 (18:34 +0200)]
There's no guarantee we have an Ostatus_profile for Feedsub

10 years agoInform and make use of NoProfileException in OStatus actions
Mikael Nordfeldth [Mon, 19 May 2014 16:07:38 +0000 (18:07 +0200)]
Inform and make use of NoProfileException in OStatus actions

This is because Ostatus_profile->localProfile() throws NoProfileException
instead of returning null for profiles which don't exist in Profile table.

10 years agoUsersalmonAction cleanup
Mikael Nordfeldth [Mon, 19 May 2014 16:07:14 +0000 (18:07 +0200)]
UsersalmonAction cleanup

10 years agoOstatus_profile throws NoProfileException from localProfile()
Mikael Nordfeldth [Mon, 19 May 2014 15:58:05 +0000 (17:58 +0200)]
Ostatus_profile throws NoProfileException from localProfile()

Some implementations of the exception handling is included here,
the actions come in a later commit.

10 years agoNoUriException added and implemented in FeedSub class
Mikael Nordfeldth [Mon, 19 May 2014 15:13:32 +0000 (17:13 +0200)]
NoUriException added and implemented in FeedSub class

This is a specific exception for objects which require URI but lack it,
first implemented in FeedSub to allow for identification of bad entries.

10 years agoRemoving unused functions from Bookmark plugin
Mikael Nordfeldth [Mon, 19 May 2014 13:19:17 +0000 (15:19 +0200)]
Removing unused functions from Bookmark plugin

10 years agoadminUpdates setting not available now
Mikael Nordfeldth [Mon, 19 May 2014 12:53:11 +0000 (14:53 +0200)]
adminUpdates setting not available now

We don't run a service similar to update.status.net yet. Maybe we should,
but that's for the future to decide. Currently I view it as a callback
that we want to avoid.

10 years agoisLocal() for User_group
Mikael Nordfeldth [Mon, 19 May 2014 12:46:54 +0000 (14:46 +0200)]
isLocal() for User_group

10 years agoMinor script fixes
Mikael Nordfeldth [Mon, 19 May 2014 12:46:35 +0000 (14:46 +0200)]
Minor script fixes

10 years agosprintf for SQL calls, please
Mikael Nordfeldth [Sun, 18 May 2014 23:09:21 +0000 (01:09 +0200)]
sprintf for SQL calls, please

10 years agoShow more links work with AJAX-retrieved HTML
Mikael Nordfeldth [Sun, 18 May 2014 22:54:43 +0000 (00:54 +0200)]
Show more links work with AJAX-retrieved HTML

Attachment_ajaxAction has been removed since AttachmentAction handles
AJAX calls splendidly.

10 years agoDon't report all linked URLs to remote sites
Mikael Nordfeldth [Sun, 18 May 2014 21:25:40 +0000 (23:25 +0200)]
Don't report all linked URLs to remote sites

noembed.com acts as a proxy for oEmbed requests, but that also means they
get all the links we post on our instances, given that they're used as a
default endpoint.

10 years agoDon't show or preview text/html attachments
Mikael Nordfeldth [Sun, 18 May 2014 21:11:22 +0000 (23:11 +0200)]
Don't show or preview text/html attachments

htmLawed cleans stuff out properly, but there's no very good way right
now to show text/html attachments, since everything gets jumbled up with
our own CSS etc. Best would be an iframe or just a new tab or so.

10 years agoNotice->repeat() function takes Profile as argument now
Mikael Nordfeldth [Sun, 18 May 2014 19:03:10 +0000 (21:03 +0200)]
Notice->repeat() function takes Profile as argument now

10 years agoNotice->repeat should include the full message
Mikael Nordfeldth [Sun, 18 May 2014 18:53:44 +0000 (20:53 +0200)]
Notice->repeat should include the full message

Any clients showing the repeat itself should have its own shortening or
otherwise formatting rules which it can apply itself.

10 years agoRepeatAction extends FormAction (and ManagedAction)
Mikael Nordfeldth [Sun, 18 May 2014 18:50:15 +0000 (20:50 +0200)]
RepeatAction extends FormAction (and ManagedAction)

10 years agoAction->showContent now defined as protected
Mikael Nordfeldth [Sun, 18 May 2014 18:47:30 +0000 (20:47 +0200)]
Action->showContent now defined as protected

All the rendering functions should only be called form within the Action.

10 years agoOnly POST Form widgets send a session token.
Mikael Nordfeldth [Sun, 18 May 2014 18:19:05 +0000 (20:19 +0200)]
Only POST Form widgets send a session token.

10 years agoGET request would send 'search' parameter because it had a name
Mikael Nordfeldth [Sun, 18 May 2014 18:18:18 +0000 (20:18 +0200)]
GET request would send 'search' parameter because it had a name

10 years agoMaking FormAction subclasses use same sessionToken() code
Mikael Nordfeldth [Sun, 18 May 2014 17:59:40 +0000 (19:59 +0200)]
Making FormAction subclasses use same sessionToken() code

10 years agoImproved imageboard-style notice feeds on web UI
Mikael Nordfeldth [Sun, 18 May 2014 12:05:29 +0000 (14:05 +0200)]
Improved imageboard-style notice feeds on web UI

10 years agoFormAction extends ManagedAction
Mikael Nordfeldth [Sun, 18 May 2014 11:31:31 +0000 (13:31 +0200)]
FormAction extends ManagedAction

handlePost is now more naturally called and doesn't require a separate
'handle' function for each subclass.

10 years agoAttachmentAction extends to ManagedAction
Mikael Nordfeldth [Sun, 18 May 2014 10:57:46 +0000 (12:57 +0200)]
AttachmentAction extends to ManagedAction

Also moved AttachmentListItem and its extended class Attachment are moved
into separate files (autoloaded from lib/).

10 years agoXrdAction extends ManagedAction
Mikael Nordfeldth [Sat, 17 May 2014 13:14:34 +0000 (15:14 +0200)]
XrdAction extends ManagedAction

10 years agoDocumentation update : PHP EXIF extension is required for thumbnails to be properly...
Vinilox [Wed, 14 May 2014 08:46:14 +0000 (10:46 +0200)]
Documentation update : PHP EXIF extension is required for thumbnails to be properly oriented

10 years agoApparently exif_read_data wasn't globally available.
Mikael Nordfeldth [Wed, 14 May 2014 08:35:05 +0000 (10:35 +0200)]
Apparently exif_read_data wasn't globally available.

10 years agoSome getActionName fiddling in Action class
Mikael Nordfeldth [Mon, 12 May 2014 20:46:32 +0000 (22:46 +0200)]
Some getActionName fiddling in Action class

10 years agoProfileAction derivatives somewhat migrated to ManagedAction
Mikael Nordfeldth [Mon, 12 May 2014 20:41:05 +0000 (22:41 +0200)]
ProfileAction derivatives somewhat migrated to ManagedAction

10 years agoClear out stored files and reltaed thumbnails when a File is deleted.
Mikael Nordfeldth [Mon, 12 May 2014 13:16:41 +0000 (15:16 +0200)]
Clear out stored files and reltaed thumbnails when a File is deleted.

10 years agoOnly JPEG files (and TIFF, which we don't support) have EXIF
Mikael Nordfeldth [Mon, 12 May 2014 12:45:23 +0000 (14:45 +0200)]
Only JPEG files (and TIFF, which we don't support) have EXIF

10 years agoThumbnail cleaning script, for missing files and File entries
Mikael Nordfeldth [Mon, 12 May 2014 12:41:12 +0000 (14:41 +0200)]
Thumbnail cleaning script, for missing files and File entries

Should be safe to run at any time, since thumbnails are regenerated on demand.