Commit Graph

841 Commits

Author SHA1 Message Date
Mikael Nordfeldth 1471defff3 ...and avoid duplicate results... 2016-02-11 23:38:12 +01:00
Mikael Nordfeldth 05fea4cdc6 Aurhg, and get all the properties, not just id 2016-02-11 22:54:29 +01:00
Mikael Nordfeldth 2198f39597 Haha, it essentially became a NOOP with the last commit 2016-02-11 22:49:45 +01:00
Mikael Nordfeldth 6f2fbd448d Fixed the delete orphan script to include deleted notices
The file_to_post table sometimes had post_id with values that did not
exist in the notice table.
2016-02-11 22:43:26 +01:00
Mikael Nordfeldth 38a187b93e Delete orphan files maintenance script
When deleting a profile it'll delete its notices and the coupling to
file entries, but not the file entries themselves (and thus not the
files). So if one to delete a person uploading offending images, then
the images are left behind and can be hotlinked. This will remove it.
2016-02-11 22:19:56 +01:00
abjectio 70d85c58e2 Enable configuration option for number of queuedaemon threads 2016-02-11 00:24:06 +01:00
Mikael Nordfeldth 893d888152 Add urlhash field to File_thumbnail for indexing 2016-02-10 04:15:41 +01:00
Mikael Nordfeldth ec257d940a Either use or don't use HTTPS
The risk of injection attacks using HTTP is too great to allow a
site that allows both HTTP and HTTPS...
2016-02-10 00:57:39 +01:00
Mikael Nordfeldth 41e36e1f28 Unknown functionality of a script
Something added 6-8 years ago which we don't use anymore...
2016-02-04 12:16:36 +01:00
Mikael Nordfeldth c0851d59f5 migrateProfilePrefs added to scripts/upgrade.php
Makes it easier for plugin developers to change the topics set in Profile_prefs
2016-01-28 19:03:24 +01:00
Mikael Nordfeldth 818fb05cfe role examples in userrole.php 2016-01-14 20:34:12 +01:00
Mikael Nordfeldth f699ffeb8a Exception handling in queue handler logic 2016-01-14 02:04:15 +01:00
Mikael Nordfeldth 99da1ebe41 Catch NoHttpResponseException when using HTTPClient 2016-01-13 14:17:49 +01:00
Mikael Nordfeldth cd2695190d BeforePluginCheckSchema event for checkschema.php 2016-01-07 18:45:36 +01:00
Mikael Nordfeldth 1a1e44cdfd Issue #118 wanted better TOR support, now Avatar URLs are not stored
There was no reason to store the generated Avatar URLs because it's so
cheap to generate them on the fly.
2016-01-06 16:14:26 +01:00
Mikael Nordfeldth b596391fcd Avoid having to check for notices without rendered copies in upgrade.php
Always call the Notice->getRendered() function to get a rendered copy.
We could perhaps put some sanitation there too in the future
2016-01-06 15:32:27 +01:00
Mikael Nordfeldth d6ac002639 Get conversation ID from child too in scripts/upgrade.php 2016-01-06 14:57:30 +01:00
Mikael Nordfeldth e02c10a589 common_render_content doesn't require a Profile now 2016-01-01 18:40:58 +01:00
Mikael Nordfeldth d7a8ee99af Added User->setPassword($password) 2015-12-30 17:44:24 +01:00
Mikael Nordfeldth cf916141d0 Group membership URI needs dataobjects not IDs 2015-12-27 13:01:24 +01:00
Mikael Nordfeldth 4a31e4992d Clarify that notices are also deleted with nukefile.php 2015-12-27 11:43:25 +01:00
Chimo 10bb4cb659 Fix /scripts/setpassword.php
common_munge_password is expecting a Profile, we were passing a user_id.

Thanks @aroque for the fix ( ref. #100 )
2015-12-04 17:09:06 +00:00
Mikael Nordfeldth b01484a0a3 Managed_DataObject::newUri was called improperly 2015-11-23 00:39:49 +01:00
Mikael Nordfeldth 88f7bb1ed5 Some work on ActivityModeration with notice deletion
Let's now create an event called DeleteNotice and also make sure we
handle the onNoticeDeleteRelated properly in ActivityModeration to
avoid possible endless loops etc.
2015-10-03 02:02:37 +02:00
Mikael Nordfeldth 7c4e550e31 Merge branch 'master' into nightly 2015-07-10 16:02:55 +02:00
Bhuvan Krishna 1ab4c9998a Add executable permission to script missing it 2015-07-10 14:46:08 +05:30
Mikael Nordfeldth 2103075ffa Delete notice script added. Give an ID or URI. 2015-07-08 12:30:21 +02:00
Mikael Nordfeldth b4b8cb57b3 slugify console.php prompt name
since PHP thought it was fun to crash on Quitter España and I
couldn't be bothered messing with readline
2015-05-30 16:40:00 +02:00
Mikael Nordfeldth 3294d704a4 scripts/nukefile.php for blasting crap from the server
Deletes notices and the locally stored file based on File id, as
you may want to just get rid of shit sometimes.
2015-05-30 15:41:04 +02:00
Mikael Nordfeldth 529b2f6613 deleteuser script changed to deleteprofile
Delete remote profiles by providing their ID if known, or you can
provide their profile URI with --uri=https://...

Useful for cleaning up old, long gone and no longer desired profiles
and their notices.
2015-04-21 23:47:55 +02:00
Mikael Nordfeldth a55d1df585 Clearer warning message on non-existing file 2015-04-16 00:22:09 +02:00
Mikael Nordfeldth 0337a7b866 file_redirection duplicates are removed too in maintenance script 2015-04-15 23:56:23 +02:00
Mikael Nordfeldth 5f1e9e80c2 remove duplicate file URLs script 2015-04-15 23:26:24 +02:00
Mikael Nordfeldth cbabab273f ImPlugin classes generally require background daemons in CLI
If someone designs an ImPlugin which _doesn't_ require the queues to be
handled in background daemons then they can set the requires_cli property
to false in their class.
2015-04-09 12:17:31 +02:00
Mikael Nordfeldth 325e784ccd Don't store duplicates of files.
If a new file is uploaded, it will be matched with a previously uploaded
file so we don't have to store duplicates. SHA256 is random enough and
also unlikely enough to cause collisions.
2015-02-24 21:11:25 +01:00
Mikael Nordfeldth 0d577584c3 Script to delete file table entries which have disappeared locally 2015-02-24 19:29:28 +01:00
Mikael Nordfeldth 45dc76de26 File and File_redirection adhoc storage methods updated for urlhash 2015-02-19 19:05:24 +01:00
Mikael Nordfeldth 27480d8e8e File_redirection also got urlhash column 2015-02-19 18:34:48 +01:00
Mikael Nordfeldth 176bde269f Merge branch 'nightly' into file_urlhash 2015-02-19 18:13:09 +01:00
Mikael Nordfeldth 0acf3e0e30 Profile table cleaning script. 2015-02-18 14:01:35 +01:00
Mikael Nordfeldth 5a8f24eb46 urlhash first steps, including scripts/upgrade.php 2015-02-17 18:55:12 +01:00
Mikael Nordfeldth ff004c5912 Avoid CLI printing some PEAR::DB deprecated stuff
We should get rid of PEAR::DB and reenable these logs. Upstream
doesn't seem to update.
2015-02-03 21:27:25 +01:00
Mikael Nordfeldth 12058c30b4 Managed_DataObject->updateWithKeys throws its own exception 2015-01-25 12:54:08 +01:00
Mikael Nordfeldth 4917a422a1 updateKeys -> updateWithKeys (w/ functionality) 2015-01-25 12:07:26 +01:00
Mikael Nordfeldth 8e6ea2056d Usage documentation in the stopdaemons script 2014-12-10 21:17:57 +01:00
Joshua Judson Rosen 20599d2964 stopdaemons.sh: pass site-specifier args through to getvaliddaemons.php 2014-12-06 18:54:15 -05:00
Mikael Nordfeldth d02f3c4648 Conversation URIs could be NULL on upgrade 2014-11-27 18:56:57 +01:00
Mikael Nordfeldth f1d7555ccc Simulation does not support plugins yet 2014-11-07 16:00:08 +01:00
Mikael Nordfeldth d1f5baa982 Let's not avoid error reporting completely in getvaliddaemons 2014-08-24 13:20:05 +02:00
Roland Haeder ea53233f17 Fixed CHMOD + set error_reporting(0) in getvaliddaemons.php to avoid strict warnings in PHP +5.5
Signed-off-by: Roland Haeder <roland@mxchange.org>
2014-08-24 13:12:44 +02:00
Mikael Nordfeldth 1ee79dc379 Merge request from chimo adding getvaliddaemons to stopdaemons.php
Source: https://gitorious.org/statusnet/gnu-social/merge_requests/15
2014-07-14 23:53:55 +02:00
Mikael Nordfeldth 04f60fd1d9 Favorites not part of simulation, must implement plugin support 2014-06-28 11:22:07 +02:00
Mikael Nordfeldth fcdd061b4f pluginified most of hasFave, getFaves and related calls
The code is now more event-driven when it comes to rendering notices
and their related HTML elements, since we can't have direct calls from
core to a plugin.

lib/activitymover.php has a function to move a Favorite activity which
will not happen now. The move must be pluginified and performed as an
event which plugins can catch on to.
2014-06-27 14:09:02 +02:00
chimo 6d9681d398 stopdaemons.sh: dynamic daemons list
Use getvaliddaemons.php instead of the hardcoded list of daemons
2014-06-07 10:34:51 -04:00
Mikael Nordfeldth fb82c75b49 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.
2014-05-19 14:53:52 +02:00
Mikael Nordfeldth 37e57610fb Minor script fixes 2014-05-19 14:46:35 +02:00
Mikael Nordfeldth bf8c26f835 Thumbnail cleaning script, for missing files and File entries
Should be safe to run at any time, since thumbnails are regenerated on demand.
2014-05-12 14:41:12 +02:00
Mikael Nordfeldth 214a10ddec File_thumbnail fixes (run scripts/upgrade.php)
We're now capable of doing image rotation for thumbnails based on
EXIF orientation data. Also, thumbnails are tracked by filenames and
thus we can delete them from storage when we feel like it.
2014-05-12 14:33:41 +02:00
Mikael Nordfeldth c8c7f5b3fe Test against PHP_VERSION < 5.2.6, we don't support that low 2014-05-09 10:36:22 +02:00
Mikael Nordfeldth 1776c90cb9 Moved oEmbed stuff out to a plugin (Oembed). 2014-05-06 23:32:13 +02:00
Joshua Judson Rosen 15c0568d1b Make stopdaemons.sh work with on multi-instance servers. So: - Allow specifying a site on the command-line, just like startdaemons.sh. - If a site is specified, kill only its daemons--not all daemons with pid-files in the piddir. 2014-05-05 13:34:59 +02:00
Mikael Nordfeldth e526909bd8 File width and height is now properly set for File 2014-04-22 12:09:24 +02:00
Mikael Nordfeldth d59eb5e184 Dynamically generate thumbnails (see full text)
The File object now stores width and height of files that can
supply this kind of information. Formats which we can not read
natively in PHP do not currently benefit from this. However an
event hook will be introduced later.

The CreateFileImageThumbnail event is renamed to:
CreateFileImageThumbnailSource to clarify that the hooks should not
generate their own thumbnails but only the source image. Also it now
accepts File objects, not MediaFile objects.

The thumbnail generation is documented in the source code. For
developers, call 'getThumbnail' on a File object and hope for the best.

Default thumbnail sizes have increased to be more appealing.
2014-04-21 20:46:11 +02:00
Mikael Nordfeldth 0a4e1e0f1b Revert "Don't add redundant includedir INSTALLDIR.'/extlib/'"
This reverts commit 31d8069779.

I didn't notice any errors because I had php-pear installed. :]
2014-03-15 14:04:11 +01:00
Mikael Nordfeldth 31d8069779 Don't add redundant includedir INSTALLDIR.'/extlib/' 2014-03-09 22:11:08 +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
Jean Baptiste Favre 88c4630063 Dynamically enable scripts/queuedaemon.php into scripts/getvaliddaemons.php depending on common_config('queue', 'daemon') value. True = enabled, False=disabled. Default is false (see previous commit) 2014-03-01 12:16:38 +01:00
Mikael Nordfeldth 5487c596fc Remove callback sneakery by StatusNet 2014-02-23 14:57:12 +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
Mikael Nordfeldth c942bdcb43 Comment and typing improvements
To make the StatusNet::addPlugin() accept only arrays,
the lib/default.php had to be changed because all plugins
had 'null' as default value instead of an array.
2013-11-19 13:29:26 +01:00
Mikael Nordfeldth 06b068d43b Don't allow double plugin loading 2013-11-19 13:25:02 +01:00
Mikael Nordfeldth 5308e04e83 Don't disable queuedaemons before Cron stuff is done 2013-11-18 00:50:12 +01:00
Mikael Nordfeldth 1a0e17fea6 Minor queue fixes, probably not very important. Preparing for cron 2013-11-13 18:15:21 +01:00
Mikael Nordfeldth f110fc5c9a Using GNUSOCIAL_VERSION instead of STATUSNET_VERSION 2013-11-01 13:51:41 +01:00
Mikael Nordfeldth 9b6633698c Group discovery from text functions polished
Also removed the entirely unused saveGroups function.

Now avoiding multiGet and using listFind in Profile->getGroups()
so we don't have to deal with ArrayWrapper.
2013-10-29 13:40:14 +01:00
Mikael Nordfeldth fcba540a14 Removed legacy OMB. Use OStatus for remote profiles. 2013-10-28 16:22:09 +01:00
Mikael Nordfeldth 53b8412aae printv doesn't exist. Use echo to always print on errors. 2013-10-20 21:02:47 +02:00
Mikael Nordfeldth 352bef2374 Add support (and upgrade path) for group profiles 2013-10-15 11:12:50 +02:00
Mikael Nordfeldth 5da72e5aa2 Legacy fixup script from bad block/sub interaction 2013-10-15 11:00:11 +02:00
Mikael Nordfeldth 202f6ad7a9 Removing legacy code and fixup_* for Status_network tags 2013-10-15 10:54:03 +02:00
Mikael Nordfeldth 01935c7cd0 Legacy StatusNet <0.8 stuff, not needed anymore 2013-10-14 13:40:38 +02:00
Mikael Nordfeldth a0e107f17f Implemented WebFinger and replaced our XRD with PEAR XML_XRD
New plugins:
* LRDD
    LRDD implements client-side RFC6415 and RFC7033 resource descriptor
    discovery procedures. I.e. LRDD, host-meta and WebFinger stuff.

    OStatus and OpenID now depend on the LRDD plugin (XML_XRD).

* WebFinger
    This plugin implements the server-side of RFC6415 and RFC7033. Note:
    WebFinger technically doesn't handle XRD, but we serve both that and
    JRD (JSON Resource Descriptor), depending on Accept header and one
    ugly hack to check for old StatusNet installations.

    WebFinger depends on LRDD.

We might make this even prettier by using Net_WebFinger, but it is not
currently RFC7033 compliant (no /.well-known/webfinger resource GETs).

Disabling the WebFinger plugin would effectively render your site non-
federated (which might be desired on a private site).

Disabling the LRDD plugin would make your site unable to do modern web
URI lookups (making life just a little bit harder).
2013-09-30 22:04:52 +02:00
Mikael Nordfeldth 633191d808 Making sure scripts and tests check for GNUSOCIAL defined (instead of STATUSNET)
Orbited plugin may not work at all anymore, I had no means to try it.
But there's a check whether 'LACONICA' is defined there, which is a
very unlikely thing in the future. So far only tests and scripts have
been migrated consistently, though.
2013-09-28 15:20:10 +02:00
Mikael Nordfeldth 4ca1c10fb8 IMPORTANT: 'GNUSOCIAL' defined, or daemons wouldn't work
Apparently I forgot scripts/commandline.inc in the commit for 'GNUSOCIAL'
definition 4c6803a054.

define('GNUSOCIAL', true); indicates that we're running GNUSOCIAL, and that
one should be aware of this if applying patches.
2013-09-23 22:10:26 +02:00
Mikael Nordfeldth 63306081bc Subscription "get by" functions now don't use ArrayWrappers
They were getting in the way of some strict-typing stuff.
2013-09-21 18:38:14 +02:00
Mikael Nordfeldth 93e878d7ca Make better use of Subscription class
removed lib/subs.php as it was essentially only a wrapper for Subscription
2013-09-19 17:29:05 +02:00
Mikael Nordfeldth f00949946b minor fixes and cleanups in the scripts directory 2013-09-18 00:25:11 +02:00
Mikael Nordfeldth 2a4dc77a63 The overloaded DB_DataObject function staticGet is now called getKV
I used this hacky sed-command (run it from your GNU Social root, or change the first grep's path to where it actually lies) to do a rough fix on all ::staticGet calls and rename them to ::getKV

   sed -i -s -e '/DataObject::staticGet/I!s/::staticGet/::getKV/Ig' $(grep -R ::staticGet `pwd`/* | grep -v -e '^extlib' | grep -v DataObject:: |grep -v "function staticGet"|cut -d: -f1 |sort |uniq)

If you're applying this, remember to change the Managed_DataObject and Memcached_DataObject function definitions of staticGet to getKV!

This might of course take some getting used to, or modification fo StatusNet plugins, but the result is that all the static calls (to staticGet) are now properly made without breaking PHP Strict Standards. Standards are there to be followed (and they caused some very bad confusion when used with get_called_class)

Reasonably any plugin or code that tests for the definition of 'GNUSOCIAL' or similar will take this change into consideration.
2013-08-18 13:13:56 +02:00
Mikael Nordfeldth 0cb5b6fba7 No need for newline when running 'echo' 2013-08-12 15:22:23 +02:00
Mikael Nordfeldth 542f00f735 printf tries to evaluate "%" in paths, echo does not 2013-08-12 13:18:40 +02:00
Mikael Nordfeldth 20bad68845 Added SSL option to web and cli installers 2013-08-12 13:08:14 +02:00
Evan Prodromou 3fc1d245a1 Merge 1.1.x into master 2013-07-16 10:57:06 -07:00
Evan Prodromou 66f4a39105 Squashed commit of the following:
commit bd23a7da105d635414643dfcedd9c8f710d565b8
Author: Evan Prodromou <evan@e14n.com>
Date:   Sat Jun 29 07:49:03 2013 -0400

    Make the after flag work correctly

commit 5c5845a2f866f0bbffedd8e2e5d1f512f87d5329
Author: Evan Prodromou <evan@e14n.com>
Date:   Sat Jun 29 06:14:43 2013 -0400

    Add an 'after' flag for backup script
2013-06-29 07:52:09 -04:00
Evan Prodromou 4092ee1bd1 Squashed commit of the following:
commit bd23a7da105d635414643dfcedd9c8f710d565b8
Author: Evan Prodromou <evan@e14n.com>
Date:   Sat Jun 29 07:49:03 2013 -0400

    Make the after flag work correctly

commit 5c5845a2f866f0bbffedd8e2e5d1f512f87d5329
Author: Evan Prodromou <evan@e14n.com>
Date:   Sat Jun 29 06:14:43 2013 -0400

    Add an 'after' flag for backup script
2013-06-29 07:49:43 -04:00
Evan Prodromou 0a23946e6b Add messages, directed notices to sim 2013-06-17 20:16:49 -07:00
Evan Prodromou fb3981bb04 Set the site profile on install 2013-06-17 20:16:31 -07:00
Evan Prodromou faf4e7e535 Make favorites in createsim 2013-06-16 02:18:19 +00:00
Jean Baptiste Favre f175512748 Remove static definition of imdaemon.php as valid daemon. 2013-06-15 18:59:17 +02:00
Evan Prodromou 1c1bcd7cc6 Add JSON output for backups
Conflicts:
	lib/useractivitystream.php
2013-05-24 13:51:57 -04:00