Commit Graph

5079 Commits

Author SHA1 Message Date
Mikael Nordfeldth 06d4cecf7f MediaFile thumbnail event hooks + VideoThumbnails plugin
The exception thrown from MediaFile will be caught and simply result in
no thumbnail at all right now. In the future we might use a catch-all
and have a "cannot generate preview"-icon or something.

VideoThumbnails requires php5-ffmpeg and php5-gd.
2014-04-16 21:48:58 +02:00
Mikael Nordfeldth 00aa3fa734 ImageFile unlink function referenced bad path 2014-04-16 20:08:21 +02:00
Mikael Nordfeldth 90a593718f HTML5 video/audio support in attachments 2014-04-14 14:06:11 +02:00
Mikael Nordfeldth da06350a72 Added some free codecs for media attachments 2014-04-14 13:52:03 +02:00
Mikael Nordfeldth a2a2105058 HTML5 required attribute for some input forms 2014-04-06 11:27:41 +02:00
Mikael Nordfeldth 710b7f61a2 Merge commit 'refs/merge-requests/12' of git://gitorious.org/statusnet/gnu-social into merge-requests/12 2014-03-31 12:36:55 +02:00
Florian Hülsmann 58d1300745 fixed config for php >=5; see php.net/array_merge 2014-03-30 16:56:48 +02:00
Mikael Nordfeldth 758ac0bdc5 Autoloaded library files do not need explicit require_once 2014-03-18 11:22:21 +01:00
Mikael Nordfeldth d2104b89d9 Comment improvements with spl_autoload_register 2014-03-18 11:20:58 +01:00
Mikael Nordfeldth 3d0994bcca Updating Markdown class + use spl_autoload_register
spl_autoload_register now calls the GNUsocial_class_autoload function
instead of us replacing the magic __autoload($cls). This means we can
queue up other autoload functions, such as the one now used for extlib
functions which exist directly in the 'extlib/' folder or have proper
namespacing (which our new Markdown class does).
2014-03-18 10:52:17 +01:00
Mikael Nordfeldth c00491cd7a Cosmetic changes to common_redirect, clientError, serverError
Since these functions exit (or throw exception) after running, there
is no need to have a 'return' statement or similar afterwards.
2014-03-10 00:25:57 +01:00
Mikael Nordfeldth 4f4abca338 OAuthException should be detected for autoloading
Or we may have conflicts with other filesin not in extlib.
2014-03-09 22:17:58 +01:00
Mikael Nordfeldth 639f1a01e0 File class no longer depends on MIME
+ minor tweaks to MediaFile
2014-03-08 03:51:47 +01:00
Mikael Nordfeldth 6faed0e451 MediaFile loses dependency on PEAR::MIME
At the same time we remove the "filecommand" setting, since we will
likely not have use of it thanks to PECL fileinfo.

Also the "supported" list for attachment mime types has changed
format, so we can keep track of at least some known file extensions.
2014-03-08 03:34:50 +01:00
Mikael Nordfeldth 0eb38b8f84 We only allow (and have) MIME types in supported list
$config['attachment']['supported'] may not use only the file extension.
2014-03-08 02:02:26 +01:00
Mikael Nordfeldth 6f6065e5e9 Only accept filenames for existing files in getUploadedFileType
Getting metadata from filehandles just meant duplicating work
2014-03-08 01:42:24 +01:00
Mikael Nordfeldth 074339ea13 WebM should be allowed to upload!
Evan had left _two_ "video/mpeg", just so you know.
2014-03-08 00:29:47 +01:00
Mikael Nordfeldth 1603b4f0bf PublicSite profile does not have inviteonly, but RegisterThrottle 2014-03-07 21:29:29 +01:00
Mikael Nordfeldth a35bf227fb Site profile "community" should be invite-only by default
Because if you have your own local/closed community, likely you
don't want random newcomers that drop in, spam and leave dead
accounts.

The Admin can of course always override this by setting the config
"inviteonly" to false either in the config.php or on the website.
2014-03-07 20:57:33 +01:00
Mikael Nordfeldth 5842c59ba7 Get group attentions back into the "all" feed 2014-03-07 02:49:42 +01:00
Mikael Nordfeldth 018fd84032 Add Attention class for non-sub and non-mention notice attentions 2014-03-06 14:22:26 +01:00
Mikael Nordfeldth 36a55d8436 Use CachingNoticeStream for "All" feed (hope it works) 2014-03-06 11:47:27 +01:00
Mikael Nordfeldth 2272cc244d Removed Inbox from core (unused since 4b2a66ed29)
Added the following FIXME:
How should a Twitter user get their Inbox filled with foreign tweets?

Every imported Twitter user has a profile in the Profile table, so we
could setup a Subscription entry for each of those, meaning they get
collected in the InboxNoticeStream... But this would mean a lot of
unnecessary entries and listings that generally just point to the
locked down Twitter service.

Let's figure out a good relation so we can connect any profile to any
imported foreign notice, so it shows up in the "all" feed.
2014-03-06 04:46:29 +01:00
Mikael Nordfeldth 4b2a66ed29 New mechanism for "all" feed (InboxNoticeStream)
Also cleaned up and made typing stricter for the stream, so only
profiles can be submitted. This reasonably also means we can create
"inbox" or "all" streams for foreign profiles as well using the same
stream handler (but of course only for messages we already know about).

To avoid looking up posts for a long time in a large notice database,
the lookback period for the inbox is no longer than the profile creation
date. (this matches the behaviour of Inbox)

Inbox class can probably be removed now.
2014-03-06 04:18:54 +01:00
Mikael Nordfeldth f0c718b1af Trying to remove Inbox, first steps 2014-03-06 02:43:28 +01:00
Mikael Nordfeldth 00db57949f Always queue inbox distribution 2014-03-06 01:50:54 +01:00
Mikael Nordfeldth f83b2cf324 Handle removed profile more gracefully in noticelist
Just hide it from the visitor, but log a warning (and error, since
the exception itself logs that).
2014-03-05 01:27:27 +01:00
Mikael Nordfeldth 13736bbb89 Updating version check to match requirements
Also removing a legacy check for, nowadays, unsupported versions.
2014-03-01 16:19:00 +01:00
Mikael Nordfeldth 827d6018a7 Less StatusNet, more GNU social
We've still got stuff like the update-subscription thing to set up.
2014-03-01 14:14:39 +01:00
Mikael Nordfeldth c514cac31d JSON is a required PHP extension for GNU social. 2014-03-01 13:58:03 +01:00
Jean Baptiste Favre 7f4e6aaafa Introduce new config option common_config('queue','daemon').Allows to dynamically enable scripts/queuedaemon.php into scripts/getvaliddaemons.php 2014-03-01 12:16:38 +01:00
Mikael Nordfeldth bc554ea9c2 Bad route config (thanks brw12)
ben wheeler submitted this bug report with a patch for StatusNet.
2014-03-01 12:01:21 +01:00
Mikael Nordfeldth fc047bd6e6 Minor code cleanup with group related actions (thanks brw12)
Originated from brw12 who noticed an incorrect variable name used in
an error message in actions/apigroupjoin.php:109
2014-03-01 12:01:17 +01:00
Mikael Nordfeldth c6bdafb3d0 nl2br so we get proper newlining when publishing \r, \n or \r\n 2014-02-24 18:00:53 +01:00
Mikael Nordfeldth 96b0cfe662 Don't discard XML in queue items
XMPP messages on -out at least were strings of XML that were stopped
because they weren't JSON.
2014-02-24 14:11:34 +01:00
Mikael Nordfeldth 1e37f374b3 Making us less dependant on javascript trust
Many of the microapps are pretty javascript dependant, but at least
we should allow users to get to the new notice field without allowing
javascript to run in the browser. :)
2014-02-24 02:05:31 +01:00
Mikael Nordfeldth c0c8250ff7 minify removed from core (use plugin if desired)
My reasoning: Minifying makes third party review harder. A visitor on
a GNU social site should have no problem reading, understanding and
modifying javascripts for their own liking. A minified script is much
more difficult to use, reuse, modify and share.

Free software is not minified.
2014-02-24 01:05:13 +01:00
GNU Social instance 398491b39b Remove util.min.js (minifying is EVIL) 2014-02-24 00:31:37 +01:00
Jean Baptiste Favre 28081e9115 Add various entry points to enhance compatibility with Twitter client like Twidere 2014-02-23 22:12:03 +01:00
Jean Baptiste Favre 703aa302b6 Add 'profile_image_url_https' to enhance compatiblity with Twitter clients since they now need https URLs instead of plain http 2014-02-23 22:12:03 +01:00
Mikael Nordfeldth 47fbe16562 stricter typing 2014-02-23 21:05:34 +01:00
Mikael Nordfeldth 5487c596fc Remove callback sneakery by StatusNet 2014-02-23 14:57:12 +01:00
Mikael Nordfeldth 02cbafb987 slightly less confusing inline if 2014-02-23 14:47:41 +01:00
Mikael Nordfeldth 4759365293 Merge commit 'refs/merge-requests/6' of git://gitorious.org/statusnet/gnu-social into merge-requests/6 2014-01-04 21:27:28 +01:00
Mikael Nordfeldth 9edde007b1 instanceof checks for better typing 2014-01-01 20:30:57 +01:00
root 95222df899 check local/plugins before plugins in Plugin::onAutoload 2013-12-31 23:56:56 +00:00
Mikael Nordfeldth 09e06bbc19 Queues should be enabled by default (thanks postblue) 2013-12-02 13:51:55 +01:00
Mikael Nordfeldth 7e638cb8da OpportunisticQM can't run as subsystem qm 2013-11-20 21:46:16 +01:00
Mikael Nordfeldth 9400795a5f Cron split into Cronish and OpportunisticQM
/main/cron changed to /main/runqueue

The key-required functionality is not throughly tested yet.
2013-11-20 21:20:42 +01:00
Mikael Nordfeldth 0cd93c2761 Cron plugin added and now default queue handler
Generally the Cron plugin will run if there's still execution time for
1 second since starting the Action processing. If you want to change
this (such as disabling, 0 seconds, or maybe running bigger chunks,
for like 4 seconds) you can do this, where 'n' is time in seconds.

   addPlugin('Cron', array('secs_per_action', n));

Add 'rel_to_pageload'=>false to the array if you want to run the queue
for a certain amount of seconds _despite_ maybe already having run that
long in the previous parts of Action processing.

Perhaps you want to run the cron script remotely, using a machine capable
of background processing (or locally, to avoid running daemon processes),
simply do an HTTP GET request to the route /main/cron of your GNU social.
Setting secs_per_action to 0 in the plugin config will imply that you run
all your queue handling by calling /main/cron (which runs as long as it can).

/main/cron will output "0" if it has finished processing, "1" if it should
be called again to complete processing (because it ran out of time due to
PHP's max_execution_time INI setting).

The Cron plugin also runs events as close to hourly, daily and weekly
as you get, based on the opportunistic method of running whenever a user
visits the site. This means of course that the cron events should be as
fast as possible, not only to avoid delaying page load for users but
also to minimize the risk of running into PHP's max_execution_time. One
suggestion is to only use the events to add new queue items for later processing.

These events are called CronHourly, CronDaily, CronWeekly - however there
is no guarantee that all events will execute, so some kind of failsafe,
transaction-ish method must be implemented in the future.
2013-11-19 14:13:33 +01:00