Commit Graph

55 Commits

Author SHA1 Message Date
Mikael Nordfeldth
de55d8f83b plugins onAutoload now only overloads if necessary (extlibs etc.)
lib/plugin.php now has a parent onAutoload function that finds most common
files that are used in plugins (actions, dataobjects, forms, libs etc.) if
they are put in the standardised directories ('actions', 'classes', 'forms',
'lib' and perhaps some others in the future).
2013-08-28 16:10:30 +02:00
Mikael Nordfeldth
3a7261f70a IMPORTANT: Making prev. Memcached_DataObject working again with schemaDef
Lots of the Memcached_DataObject classes stopped working when upgraded to
Managed_DataObject because they lacked schemaDef().

I have _hopefully_ made it so that all the references to the table uses
each class' schemaDef, rather than the more manual ColumnDef stuff. Not
all plugins have been tested thoroughly yet.

NOTE: This is applied with getKV calls instead of staticGet, as it was
important for PHP Strict Standards compliance to avoid calling the non-
static functions statically. (unfortunately DB and DB_DataObject still do
this within themselves...)
2013-08-21 09:48:42 +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
3ad3535cd8 Merge commit 'refs/merge-requests/230' of git://gitorious.org/statusnet/mainline into merge-requests/230 2013-08-12 12:37:46 +02:00
Evan Prodromou
3fc1d245a1 Merge 1.1.x into master 2013-07-16 10:57:06 -07:00
Jean Baptiste Favre
f1a3d5a386 PHP 5.4 Fix GetValidDaemons function definition for Xmpp & TwitterBridge plugins 2013-06-19 13:25:28 +02:00
Jean Baptiste Favre
a10a34a3cf Make TwitterBridge plugin use Queueing system 2013-02-18 23:22:08 +01:00
Evan Prodromou
206c090688 Squashed commit of the following:
commit 7ef19ab918cc9805abb8d01e8220ae4ed63155d7
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 12:53:29 2012 -0400

    Show link to facebook account on profile block

    If you've logged in with Facebook, show a link to that account on the profile block.

commit b56967479c009d702150791944dbd80746ee3ba1
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 12:28:34 2012 -0400

    Add profile link from profile block to Twitter account

    Add a profile link to Twitter for accounts that are linked via Twitter login.

commit 181e441fd03c6034e737f6a3dae115557aa3e1aa
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 11:57:56 2012 -0400

    OpenID shows other account links

commit ef7357883dad9e34af2746e1c6a41ea826d7c992
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 11:53:12 2012 -0400

    Add a profile link for OpenIDs

    OpenID plugin now adds a profile link for each OpenID on the account.

commit 093d26b95bc453686d24c42f5a8f4739cb338fd2
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 11:15:18 2012 -0400

    Better array access

commit 49d47257efdcae2101b589a1f825872bdd70667c
Author: Evan Prodromou <evan@status.net>
Date:   Mon Jul 9 10:57:16 2012 -0400

    Show list of other accounts in profile block

    We add a group of "rel-me" links to other user accounts on the Web.

    This is mostly useful for when you've used OpenID, Twitter, or
    Facebook login to associate a remote account.

    There's an extension to the profileblock recipe to show the links as
    little icons; there's a new hook in accountprofileblock to get such
    links from plugins.

    There's a modification to the base theme to show the icons correctly
    (I think).
2012-07-09 12:56:09 -04:00
Jean Baptiste Favre
184290b5cf Add my name to TwitterBridgePlugin onPluginVersion function 2011-12-18 12:17:28 +01:00
Zach Copley
9a51caa485 Automatically allow admins to use the Twitter admin panel if the TwitterBridge plugin is installed 2011-07-13 23:02:52 +00:00
Siebrand Mazeland
d750a943ed Add missing translator documentation. 2011-06-19 12:31:36 +02:00
Siebrand Mazeland
199404c74a Update translator documentation.
Update whitespace.
i18n/L10n fixes.
2011-06-18 17:20:36 +02:00
Brion Vibber
d2cd5b3353 Tweak which should fix ActivityStreams output for Twitter profiles (if remote_profile entries didn't match, we ended up losing id/URI).
Explicitly uses the Twitter profile URL as profile URI if matching, without having to check the db.
2011-03-30 11:22:32 -07:00
Evan Prodromou
683bd3f2b5 don't push twitter stuff public if its not public 2011-03-28 12:56:18 -04:00
Zach Copley
b7d0746694 Merge branch '0.9.x' into 1.0.x
Conflicts:
	actions/confirmaddress.php
	actions/emailsettings.php
	actions/hostmeta.php
	actions/imsettings.php
	actions/login.php
	actions/profilesettings.php
	actions/showgroup.php
	actions/smssettings.php
	actions/urlsettings.php
	actions/userauthorization.php
	actions/userdesignsettings.php
	classes/Memcached_DataObject.php
	index.php
	lib/accountsettingsaction.php
	lib/action.php
	lib/common.php
	lib/connectsettingsaction.php
	lib/designsettings.php
	lib/personalgroupnav.php
	lib/profileaction.php
	lib/userprofile.php
	plugins/ClientSideShorten/ClientSideShortenPlugin.php
	plugins/Facebook/FBConnectSettings.php
	plugins/Facebook/FacebookPlugin.php
	plugins/NewMenu/NewMenuPlugin.php
	plugins/NewMenu/newmenu.css
2011-02-28 15:39:43 -08:00
Evan Prodromou
e53793edf4 make 'admin' a safe user name
'admin' is a pretty common username that people try when installing;
it was blacklisted because all of our admin panels were at /admin/*,
which would conflict with the admin user's namespace.

Changed the location of all admin panels to /panel/*, blacklisted the
nickname 'panel', and allowed 'admin'. Tested with a fresh install;
seems to work great.
2011-01-23 10:18:35 -05:00
Brion Vibber
56e2bc10d9 Cleanup stray PHP 4-style references in hook calls for navigation bars. We can't replace the live action from here, and don't need a reference to keep the object mutable. Dumping the references helps ensure we don't end up getting errors when things calling the hooks might forget to use the reference and the PHP error reporting settings expose this fact at us. 2011-01-18 12:34:27 -08:00
Brion Vibber
37994e3ff1 Merge branch 'master' into 0.9.x 2010-11-19 15:53:29 -08:00
Brion Vibber
94f2f96f2e Ticket #2724: gracefully handle attempts to delete or fave/unfave a remote Twitter notice if a failure occurs.
Most annoying error case being where the notice was already faved or deleted on Twitter! :)
Such errors will now just fail out and log a note to the syslog -- the rest of what we were doing will continue on unhindered, so you can still delete, favorite, etc and it just won't sync the info over in that case.
2010-11-19 15:51:08 -08:00
Brion Vibber
9cbda32768 Pull out the 'tweetctl' queue for now; these should go over control signals, and actual handling isn't implemented yet anyway. 2010-11-02 16:51:07 -07:00
Brion Vibber
62408fef09 Work in progress on twitter import daemon 2010-10-29 14:12:40 -07:00
Brion Vibber
d743539cf7 Fixups for twitter streaming daemon 2010-10-29 13:41:15 -07:00
Brion Vibber
0eaa26476c Split the guts of Twitter status -> notice import from twitterstatusfetcher daemon into TwitterImport class which can be called from other places, letting us reuse code for the streaming API. 2010-10-05 13:57:32 -07:00
Siebrand Mazeland
16d234f9af Remove superfluous whitespace 2010-09-18 23:49:49 +02:00
Siebrand Mazeland
ba6538ed78 * i18n/L10n updates
* whitespace updates.
2010-09-18 17:45:18 +02:00
Evan Prodromou
42f1ec85ea change the event we use for deleting a linked status on Twitter 2010-09-08 16:40:37 -04:00
Evan Prodromou
e40ed1fd56 move notice_to_status initialization code to run-once script 2010-09-08 16:10:07 -04:00
Evan Prodromou
9793e4ceb4 Store foreign ID for synch info, not user ID 2010-09-07 10:53:11 -04:00
Evan Prodromou
49af35b44d add modified column to twitter_synch_status 2010-09-07 04:32:01 -04:00
Evan Prodromou
86b6d7b722 save synch status for different timelines 2010-09-07 04:17:36 -04:00
Evan Prodromou
b059a19e0f delete Twitter notice if it was posted from here 2010-09-07 04:00:59 -04:00
Evan Prodromou
ba8a24073f Notify Twitter when StatusNet user faves/disfaves a Twitter notice 2010-09-07 04:00:59 -04:00
Evan Prodromou
df88624d49 use bigint for status_ids 2010-09-07 04:00:58 -04:00
Evan Prodromou
299da9e462 SQL syntax error when initializing notice_to_status table 2010-09-07 04:00:58 -04:00
Evan Prodromou
6c7262c8ca Delete Notice_to_status when a notice is deleted 2010-09-07 04:00:58 -04:00
Evan Prodromou
a1981770ce Save notice-to-status mapping in its own table
Introduce a table mapping notices to Twitter statuses. Initialize
this table at checkSchema() time. Save the mapping when we push
or pull statuses. Use the table to determine if a notice has a
Twitter equivalent.
2010-09-07 04:00:58 -04:00
Brion Vibber
4cbbfdab84 Fix for #2635: use ssl-sometimes settings for Twitter settings & auth pages 2010-09-02 10:55:26 -07:00
Brion Vibber
c56939d596 Remove the 'Enable Twitter import' checkbox from Twitter admin panel by default; can be re-added with setting:
addPlugin('TwitterBridge', array('adminImportControl' => true, ....));

Added a note on the label that it requires manual daemon setup. (Note that by default the admin panel won't be shown, so it's no biggie to be hiding this for now.)
2010-08-02 13:00:50 -07:00
Brion Vibber
5f4c6ec626 Skip enqueueing to outgoing bridges on incoming remote messages. Twitter, Facebook, RSSCloud, and OStatus checks were enqueued on these when they'd never do anything but churn the queue servers.
Notice::isLocal() can replace a number of manual checks for $notice->is_local being LOCAL_PUBLIC or LOCAL_NONPUBLIC.
2010-06-03 16:58:45 -07:00
Zach Copley
32c08f53de Show global key and secret, if defined, in Twitter bridge admin panel 2010-03-03 01:49:14 +00:00
Zach Copley
ca21f1da86 - Have Twitter bridge check for a global key and secret if it can't
find one in the local config
- Refuse to work at all if the consumer key and secret aren't set
2010-03-02 16:49:29 -08:00
Zach Copley
27a49361eb - Make 'Sign in with Twitter' optional
- Updates to the Twitter bridge plugin README
2010-03-01 22:41:07 -08:00
Zach Copley
6b2d67216e Initial Twitter bridge admin panel 2010-03-01 21:35:24 -08:00
Zach Copley
02957d2854 Add Julien C to author comments 2010-01-26 00:19:46 -08:00
Julien C
7fc5588c5d Allow logging in using Twitter
Signed-off-by: Julien C <chaumond@gmail.com>
2010-01-26 00:18:11 -08:00
Brion Vibber
ec145b73fc Major refactoring of queue handlers to support running multiple sites in one daemon.
Key changes:
* Initialization code moved from common.php to StatusNet class;
  can now switch configurations during runtime.
* As a consequence, configuration files must now be idempotent...
  Be careful with constant, function or class definitions.
* Control structure for daemons/QueueManager/QueueHandler has been refactored;
  the run loop is now managed by IoMaster run via scripts/queuedaemon.php
  IoManager subclasses are woken to handle socket input or polling, and may
  cover multiple sites.
* Plugins can implement notice queue handlers more easily by registering a
  QueueHandler class; no more need to add a daemon.

The new QueueDaemon runs from scripts/queuedaemon.php:

* This replaces most of the old *handler.php scripts; they've been refactored
  to the bare handler classes.
* Spawns multiple child processes to spread load; defaults to CPU count on
  Linux and Mac OS X systems, or override with --threads=N
* When multithreaded, child processes are automatically respawned on failure.
* Threads gracefully shut down and restart when passing a soft memory limit
  (defaults to 90% of memory_limit), limiting damage from memory leaks.
* Support for UDP-based monitoring: http://www.gitorious.org/snqmon

Rough control flow diagram:
QueueDaemon -> IoMaster -> IoManager
                           QueueManager [listen or poll] -> QueueHandler
                           XmppManager [ping & keepalive]
                           XmppConfirmManager [poll updates]

Todo:

* Respawning features not currently available running single-threaded.
* When running single-site, configuration changes aren't picked up.
* New sites or config changes affecting queue subscriptions are not yet
  handled without a daemon restart.
* SNMP monitoring output to integrate with general tools (nagios, ganglia)
* Convert XMPP confirmation message sends to use stomp queue instead of polling
* Convert xmppdaemon.php to IoManager?
* Convert Twitter status, friends import polling daemons to IoManager
* Clean up some error reporting and failure modes
* May need to adjust queue priorities for best perf in backlog/flood cases

Detailed code history available in my daemon-work branch:
http://www.gitorious.org/~brion/statusnet/brion-fixes/commits/daemon-work
2010-01-12 20:45:09 -08:00
Zach Copley
20af83d316 Add version info for Facebook, TwitterBridge and RSSCloud plugins 2010-01-08 00:09:23 -08:00
Brion Vibber
4b5e977a7b New _m() gettext wrapper with smart detection of plugin domains. Plugin base class registers your gettext files if present at initialization.
update_pot.sh replaced with update_po_templates.php which can do core, plugins, or all (default).
Top-level Makefile added to build .mo files for plugins as well as core.

As described on list:
http://lists.status.net/pipermail/statusnet-dev/2009-December/002869.html
2009-12-08 12:17:11 -08:00
Zach Copley
cff12603cf Make imported Twitter notices show up via real time plugins. 2009-12-04 20:17:42 +00:00
Brion Vibber
fd650715fa Warning cleanup: drop reference on router parameter to RouterInitialized event handlers.
We don't (and don't need to) pass a reference here, and the mix can trigger warnings.
2009-10-29 13:55:37 -04:00