gnu-social/_darcs/inventories/20080922225224-84dde-625df9...

869 lines
40 KiB
Plaintext

Starting with tag:
[TAG 0.5.0
Evan Prodromou <evan@controlezvous.ca>**20080731050646]
[add edo's tagcloud code
Evan Prodromou <evan@prodromou.name>**20080731132302]
[extend length of source for notices
Evan Prodromou <evan@prodromou.name>**20080731152731]
[added conneg for action/userbyid so that foaf can be delivered to clients that want application/rdf+xml
ehs@pobox.com**20080801164623]
[update .pot from source code
Evan Prodromou <evan@prodromou.name>**20080803232102]
[change no-such-user error to a 404 instead of a 400
Evan Prodromou <evan@prodromou.name>**20080804132001]
[use an outstanding unconfirmed email address for password recovery if available
Evan Prodromou <evan@prodromou.name>**20080804130914]
[better handling of unconfirmed email addresses
Evan Prodromou <evan@prodromou.name>**20080804133253]
[use noreply address as fallback if no incoming email address exists
Evan Prodromou <evan@prodromou.name>**20080804133933]
[add commands to turn sms notification on and off
Evan Prodromou <evan@prodromou.name>**20080804190749]
[ignore OTR messages over Jabber (I think)
Evan Prodromou <evan@prodromou.name>**20080806002134]
[make init of lang environment happen earlier, or when user language may have changed
Evan Prodromou <evan@prodromou.name>**20080806034515]
[Set the C locate to avoid tr_TR php bug see http://www.topolis.lt/php/#35050
mikec@mikenz.geek.nz**20080804133727]
[Add other languages to drop down
Mike Cochrane <mikec@mikenz.geek.nz>**20080805020520]
[fixup locale stuff from mikenz
Evan Prodromou <evan@prodromou.name>**20080806040433]
[fix config global
Evan Prodromou <evan@prodromou.name>**20080806122119]
[update French translation with msgmerge
Evan Prodromou <evan@prodromou.name>**20080806161748]
[LOG_ERROR -> LOG_ERR (again)
Evan Prodromou <evan@prodromou.name>**20080807234227]
[emergency fixup for bad notices in notice search
Evan Prodromou <evan@prodromou.name>**20080811175318]
[make tag dropoff configurable
Evan Prodromou <evan@prodromou.name>**20080811175820]
[Twitter-compatible API - /statuses/update.format now decodes HTML chars, such as &amp;
zach@copley.name**20080731224911]
[Twitter-compatible API: filled in the source attr for notices accessed via API
zach@copley.name**20080809001240]
[fix problem with new notices
Evan Prodromou <evan@prodromou.name>**20080811181158]
[correct sitemapindex output
Evan Prodromou <evan@prodromou.name>**20080811200058]
[fix some errors in sitemaps
Evan Prodromou <evan@prodromou.name>**20080812011600
Only show notices that don't have a remote URL. That should include
only local notices.
Also, don't do an avatar sitemap; apparently nobody indexes these
anyways.
]
[correctly show URL for rare notice without an URI
Evan Prodromou <evan@prodromou.name>**20080812121832]
[get rid of dataobject.ini -- again
Evan Prodromou <evan@prodromou.name>**20080813180239]
[auto-load OAuthRequest
Evan Prodromou <evan@prodromou.name>**20080813195408]
[move user registration to a single static method
Evan Prodromou <evan@prodromou.name>**20080814002038]
[Twitter-compatible API: removed redundant decoding step; already taken care of by util.php's common_render_content()
zach@copley.name**20080813193327]
[Twitter-compatible API: support for new in_reply_to_status_id in statuses/update
zach@copley.name**20080815185317]
[name omb_listener param so we can refer to it in error msg
Evan Prodromou <evan@prodromou.name>**20080816151057]
[make settings and search menus localisable
Evan Prodromou <evan@prodromou.name>**20080817150244]
[move command-line scripts to their own dir
Evan Prodromou <evan@prodromou.name>**20080813154603]
[accept 140-character UTF-8 strings to content
Evan Prodromou <evan@prodromou.name>**20080817151751]
[debug for content too long
Evan Prodromou <evan@prodromou.name>**20080817152419]
[use UTF-8 as the internal encoding
Evan Prodromou <evan@prodromou.name>**20080817153024]
[remove hack to count bytes, not chars, in JS, since we now use chars
Evan Prodromou <evan@prodromou.name>**20080817153143]
[typo in forgotten password string
Evan Prodromou <evan@prodromou.name>**20080817163324]
[accept 140 chars in API, too
Evan Prodromou <evan@prodromou.name>**20080817192710]
[use mb_substr for xmpp daemon check
Evan Prodromou <evan@prodromou.name>**20080818025549]
[first step towards adding favorites to the system
Evan Prodromou <evan@prodromou.name>**20080813142637]
[Database uses UTF-8 by default
Evan Prodromou <evan@prodromou.name>**20080817151728]
[restore fave table lost when doing utf8 upgrade
Evan Prodromou <evan@prodromou.name>**20080817152108]
[trim whitespace in laconica.sql
Evan Prodromou <evan@prodromou.name>**20080817152133]
[set internal encoding in XMPP daemon
Evan Prodromou <evan@prodromou.name>**20080818033049]
[broadcast remote notices
Evan Prodromou <evan@prodromou.name>**20080819182724]
[add remote flag to broadcast of notices
Evan Prodromou <evan@prodromou.name>**20080819182824]
[add database tables for foreign services
Evan Prodromou <evan@prodromou.name>**20080819221214]
[Twitter-compatible API - running all strings through gettext() now
zach@controlyourself.ca**20080819002903]
[Twitter-compatible API - moved show() to the right file
zach@controlyourself.ca**20080819003931]
[Twitter-compatible API - /statuses/destroy method implemented
zach@controlyourself.ca**20080819194610]
[Twitter-compatible API - Added /statuses/followers to methods that
zach@controlyourself.ca**20080819195431
require bareauth only if no nickname/id is supplied.
]
[Twitter-compatible API - /statuses/show - better err msg if notice doesn't exist
zach@controlyourself.ca**20080819202318]
[Twitter-compatible API - RESTfulness checks as per Twitter
zach@controlyourself.ca**20080819214923]
[add Cincinnati Bell Wireless
Evan Prodromou <evan@prodromou.name>**20080821125306]
[include external libs in a subdir to make install easier
Evan Prodromou <evan@prodromou.name>**20080822131714]
[local-only is optional on public timeline
Evan Prodromou <evan@prodromou.name>**20080822210307]
[add note to config.php.sample about localonly
Evan Prodromou <evan@prodromou.name>**20080822210415]
[fix include path bug
Evan Prodromou <evan@prodromou.name>**20080822210654]
[better error reporting in user authorization action
Evan Prodromou <evan@prodromou.name>**20080822212111]
[XMPP bounce message when too long (ticket #112)
CiaranG <ciaran@ciarang.com>**20080818213031]
[Fix bug in xmpp on/off (ticket #528)
CiaranG <ciaran@ciarang.com>**20080819071321]
[Define xmpp daemon claim timeout time
CiaranG <ciaran@ciarang.com>**20080822185955]
[XMPP sub/unsub and help commands
CiaranG <ciaran@ciarang.com>**20080822191032]
[Fixed attempt to read nonexistent match in JID regex
CiaranG <ciaran@ciarang.com>**20080822191751]
[Escape profile url in xmpp in case fancy urls off (Ticket #521)
CiaranG <ciaran@ciarang.com>**20080823052534]
[Prevent jabber.php error by checking key exists
CiaranG <ciaran@ciarang.com>**20080823053548]
[request token is not readonly
Evan Prodromou <evan@prodromou.name>**20080824011706]
[be a little more liberal for sites that accidentally put whitespace before the xml decl
Evan Prodromou <evan@prodromou.name>**20080824013803]
[move README to main dir
Evan Prodromou <evan@prodromou.name>**20080824113719]
[big scarygram warning in config.php.sample about using DB_DataObject's debug mode
Evan Prodromou <evan@prodromou.name>**20080824171202]
[notify user of remote subscriptions
Evan Prodromou <evan@prodromou.name>**20080824200517]
[use mb_strlen instead of strlen in xmpp daemon
Evan Prodromou <evan@prodromou.name>**20080825173105]
[use common_sql_now() instead of DB_DataObject_Cast
Evan Prodromou <evan@prodromou.name>**20080825182338]
[change DataObject_Cast to use sql_now
Evan Prodromou <evan@prodromou.name>**20080825183005]
[use better SQL date, fix security problem with OpenID logins
Evan Prodromou <evan@prodromou.name>**20080825184104]
[never allow blank passwords
Evan Prodromou <evan@prodromou.name>**20080825185245]
[optionally turn encryption on or off in the XMPP connection
Evan Prodromou <evan@prodromou.name>**20080826131814
For identi.ca, we had some problems with the XMPP daemon getting
"stuck" in I/O through the encrypted (by default) XMPP socket. Turning
off encryption helped. So, now it's an option.
]
[only send local messages to public XMPP stream
Evan Prodromou <evan@prodromou.name>**20080826205341]
[use notice URI if it's not local and it's an HTTP URL
Evan Prodromou <evan@prodromou.name>**20080826210314]
[fix error storing uris of remote notices
Evan Prodromou <evan@prodromou.name>**20080826211108]
[import upstream XMPPHP with @ciarang's fix
Evan Prodromou <evan@prodromou.name>**20080827124430]
[fixup whitespace
Evan Prodromou <evan@prodromou.name>**20080827131603]
[don't show unknown (debug) errors
Evan Prodromou <evan@prodromou.name>**20080827132346]
[XMPP daemon that doesn't eat messages - note change to XMPPHP as well (Ticket #551)
CiaranG <ciaran@ciarang.com>**20080826200057]
[restoring upstream XMLStream.php after pulling ciarang's patch
Evan Prodromou <evan@prodromou.name>**20080827133048]
[add back in a session start handler
Evan Prodromou <evan@prodromou.name>**20080827135422]
[don't do too many broadcasts or confirms before checking the message queue
Evan Prodromou <evan@prodromou.name>**20080827142336]
[get language before setting it.
Evan Prodromou <evan@prodromou.name>**20080828005323]
[add session token check to password change
Evan Prodromou <evan@prodromou.name>**20080829014515]
[code for session token
Evan Prodromou <evan@prodromou.name>**20080829015304]
[fix random function name
Evan Prodromou <evan@prodromou.name>**20080829021854]
[return after failed token
Evan Prodromou <evan@prodromou.name>**20080829023731]
[add CSRF protection to avatar
Evan Prodromou <evan@prodromou.name>**20080829023919]
[CSRF protection in deletenotice
Evan Prodromou <evan@prodromou.name>**20080829025127]
[show error in delete notice
Evan Prodromou <evan@prodromou.name>**20080829025559]
[add a token for CSRF avoidance
Evan Prodromou <evan@prodromou.name>**20080829034854]
[CSRF protection for OpenID form
Evan Prodromou <evan@prodromou.name>**20080829035934]
[swap around some stuff to show the form correctly on a CSRF error in openidlogin
Evan Prodromou <evan@prodromou.name>**20080829040925]
[CSRF protection in openidsettings
Evan Prodromou <evan@prodromou.name>**20080829042908]
[add csrf protection to profile settings
Evan Prodromou <evan@prodromou.name>**20080829043909]
[CSRF protection in smssettings.php
Zach Copley <zach@controlyourself.ca>**20080829035118]
[CSRF protection in imsettings.php
Zach Copley <zach@controlyourself.ca>**20080829035707]
[CSRF protection for subscription/unsubscription
Evan Prodromou <evan@prodromou.name>**20080829051104]
[better client error on CSRF problem with subscribe/unsubscribe
Evan Prodromou <evan@prodromou.name>**20080829051628]
[csrf protection in userauthorization
Evan Prodromou <evan@prodromou.name>**20080829052732]
[session token in userauthorization form
Evan Prodromou <evan@prodromou.name>**20080829052847]
[CSRF protection in recoverpassword
Zach Copley <zach@controlyourself.ca>**20080829052824]
[CSRF protection in user registration
Evan Prodromou <evan@prodromou.name>**20080829054017]
[CSRF protection in emailsettings
Zach Copley <zach@controlyourself.ca>**20080829053337]
[CSRF protection in remotesubscribe
Zach Copley <zach@controlyourself.ca>**20080829054038]
[clean up username entered at login
Evan Prodromou <evan@prodromou.name>**20080829225258]
[break up monolithic xmppdaemon into multiple queue handlers
Evan Prodromou <evan@prodromou.name>**20080827205407
Eventually, the poor xmppdaemon has become overloaded with extra
tasks. So, I've broken it up. Now, we have 5 background scripts, and
more coming:
* xmppdaemon.php - handles incoming XMPP messages only.
* xmppqueuehandler.php - sends notices from the queue out through XMPP.
* smsqueuehandler.php - sends notices from the queue out over SMS
* ombqueuehandler.php - sends notices from the queue out over OMB
* xmppconfirmhandler.php - sends confirmation requests out over XMPP.
This is in addition to maildaemon.php, which takes incoming messages.
None of these are "true" daemons -- they don't daemonize themselves
automatically. Use nohup or another tool to background them. monit can
also be useful to keep them running.
At some point, these might become fork()'ing daemons, able to handle
more than one notice at a time. For now, I'm just running multiple
instances, hoping they don't interfere.
]
[remove unimplemented methods from XmppDaemon
Evan Prodromou <evan@prodromou.name>**20080827210429]
[change queue_item to use a compound primary key
Evan Prodromou <evan@prodromou.name>**20080827211239
Breaking up to use multiple queue handlers means we need multiple
queue items for the same notice. So, change the queue_item table to
have a compound pkey, (notice_id,transport).
]
[got two lines reversed
Evan Prodromou <evan@prodromou.name>**20080827211940]
[change return in queue function
Evan Prodromou <evan@dev.controlezvous.ca>**20080828001414]
[correct presence in jabber function
Evan Prodromou <evan@prodromou.name>**20080828001936]
[don't clear claims immediately
Evan Prodromou <evan@prodromou.name>**20080828002610]
[correct return values from start() in queue handlers
Evan Prodromou <evan@prodromou.name>**20080828003013]
[extend QueueHandler
Evan Prodromou <evan@prodromou.name>**20080828003829]
[XmppQueueHandler extends QueueHandler too
Evan Prodromou <evan@prodromou.name>**20080828004224]
[$this->log to common_log in Queue_item
Evan Prodromou <evan@prodromou.name>**20080828004503]
[return correct values for success in handling messages
Evan Prodromou <evan@prodromou.name>**20080828011002]
[misprint of omb as oms
Evan Prodromou <evan@prodromou.name>**20080828012619]
[return results of broadcasting by sms
Evan Prodromou <evan@prodromou.name>**20080828012635]
[add a bash script to start all the daemons
Evan Prodromou <evan@prodromou.name>**20080828134856]
[add a script to stop daemons, too
Evan Prodromou <evan@prodromou.name>**20080828135011]
[harmonize csrf and queues
Evan Prodromou <evan@prodromou.name>**20080829174012]
[split public stream to its own queue handler
Evan Prodromou <evan@prodromou.name>**20080829181702
Add another queue handler for the public stream. Should further
parallelize the work of sending out messages.
]
[fix name of instantiated class
Evan Prodromou <evan@prodromou.name>**20080829182112]
[a little more robust confirm handler
Evan Prodromou <evan@prodromou.name>**20080829182349]
[many jabber queue management changes
Evan Prodromou <evan@prodromou.name>**20080829200352
Added a method to QueueManager to let subclasses do stuff when idle.
Needed so that XMPP queue manager can service its message queue.
Cleaned up jabber_broadcast_message quite a bit. Use custom joins
instead of loop-and-query, should fix some problems with users who are
getting messages even after turning off notification. Only build $msg
and $entry once, and use the XMPPHP function for messages with a
payload, rather than rolling our own.
]
[lost $sent_to in jabber_public_notice
Evan Prodromou <evan@prodromou.name>**20080829200859]
[strip script ending from end of xmppdaemon
Evan Prodromou <evan@prodromou.name>**20080829202613]
[add 'raw' to payload to allow getting to the raw xml
Evan Prodromou <evan@prodromou.name>**20080830000314]
[forward messages from queuehandler to listener
Evan Prodromou <evan@prodromou.name>**20080830040717
The queuehandler sends messages to the user. If the user replies, the
messages are typically sent directly to the queuehandler (including
resource), not the default bot JID.
We add a little code for the xmppqueuehandler to periodically service
its queue of received messages. Received messages are forwarded to the
listener to deal with. We use XEP 33, 'addresses', to note the
original sender.
The xmppdaemon checks to see if the 'from' on a message is the daemon
address. If so, it looks for a XEP 33 'addresses' stanza, with an
'ofrom' address, which shows who it was originally is from.
This should let us send from one resource ID and still process
incoming messages in a different connection.
]
[strtolower jids for comparison
Evan Prodromou <evan@prodromou.name>**20080830052143]
[typo preventing detection of addresses
Evan Prodromou <evan@prodromou.name>**20080830052810]
[use common log in error handler rather than echo
Evan Prodromou <evan@prodromou.name>**20080830053052]
[log transport when claiming a notice
Evan Prodromou <evan@prodromou.name>**20080830054933]
[better logging in ombqueuehandler
Evan Prodromou <evan@prodromou.name>**20080830055416]
[get address from addresses
Evan Prodromou <evan@prodromou.name>**20080830055640]
[better debugging output for forwarded messages
Evan Prodromou <evan@prodromou.name>**20080830055938]
[debug xml input
Evan Prodromou <evan@prodromou.name>**20080830060732]
[log fetch
Evan Prodromou <evan@prodromou.name>**20080830062246]
[correctly use attrs array rather than nonexistent attunction
Evan Prodromou <evan@prodromou.name>**20080830062744]
[less sleeping, slightly
Evan Prodromou <evan@prodromou.name>**20080830064431]
[don't clear old claims
Evan Prodromou <evan@prodromou.name>**20080830070135]
[require mail for sms, not omb
Evan Prodromou <evan@prodromou.name>**20080830070309]
[sms handler was handling omb wrongly
Evan Prodromou <evan@prodromou.name>**20080830071007]
[forgot to get the profile in public queue handler
Evan Prodromou <evan@prodromou.name>**20080830071232]
[some fixes from on the jabber server
evan@controlezvous.ca**20080830083502]
[get rid of Laconica_XMPP and ignore priority
Evan Prodromou <evan@prodromou.name>**20080830084423]
[check for self in forwards, too
Evan Prodromou <evan@prodromou.name>**20080830085607]
[eliminate loops in forwarding
Evan Prodromou <evan@prodromou.name>**20080830090148]
[make XMPP take a priority for presence
Evan Prodromou <evan@prodromou.name>**20080830091430]
[use priority in connection
Evan Prodromou <evan@prodromou.name>**20080830091522]
[forgot to use the array for avoiding dupes
Evan Prodromou <evan@prodromou.name>**20080830094252]
[check the state of the queue before diving in to process it
Evan Prodromou <evan@prodromou.name>**20080830095709]
[better check for ready state on connection
Evan Prodromou <evan@prodromou.name>**20080830171441]
[public queue handler and xmpp confirm handler service their message queues
Evan Prodromou <evan@prodromou.name>**20080830172217]
[add initialization info to the queue handlers
Evan Prodromou <evan@prodromou.name>**20080831020325]
[add some sanity-check stuff for long-running daemons
Evan Prodromou <evan@prodromou.name>**20080831023844]
[halt sending HTML in Jabber
Evan Prodromou <evan@prodromou.name>**20080831114642]
[separate out presence from connection, send different presence types from queuehandlers
Evan Prodromou <evan@prodromou.name>**20080902012604]
[slightly more robust connection code
Evan Prodromou <evan@prodromou.name>**20080902030331]
[restore HTML in output, remove rump pubsub event code
Evan Prodromou <evan@prodromou.name>**20080902030403]
[dnd -> available, just looks bad as dns
Evan Prodromou <evan@prodromou.name>**20080902030910]
[switch around how XMLStream does processing
Evan Prodromou <evan@prodromou.name>**20080831003210]
[debug logging in __process
Evan Prodromou <evan@prodromou.name>**20080831012136]
[floor
Evan Prodromou <evan@prodromou.name>**20080831013132]
[int div games
Evan Prodromou <evan@prodromou.name>**20080831013603]
[slightly better int math
Evan Prodromou <evan@prodromou.name>**20080831014404]
[use updated xmpphp library
Evan Prodromou <evan@prodromou.name>**20080902163718]
[add reconnect handlers to main XMPP-handling scripts
Evan Prodromou <evan@prodromou.name>**20080902165319]
[better connection handling in scripts
Evan Prodromou <evan@prodromou.name>**20080902165735]
[set the reconnect timeout
Evan Prodromou <evan@prodromou.name>**20080902171740]
[variable name conflict on reconnect
Evan Prodromou <evan@prodromou.name>**20080902172039]
[reconnect timeout
Evan Prodromou <evan@prodromou.name>**20080902172256]
[license block on util.js
Evan Prodromou <evan@prodromou.name>**20080827013835]
[try to make the reply button do the right thing if there's no notification box.
Evan Prodromou <evan@prodromou.name>**20080827015010]
[move broadcast in OMB postnotice for bad case
Evan Prodromou <evan@prodromou.name>**20080828221420]
[Tags_without_fancy
Garret Buell <terragb@gmail.com>**20080831233401
Change common_tag_link to format the tag link based on the setting of $config['site']['fancy']
]
[Allow_multicase_tags
Garret Buell <terragb@gmail.com>**20080901001241
Make "#test", "#Test", and "#tEsT" all preserve appearance but link to the same tag
]
[Elide_Tags
Garret Buell <terragb@gmail.com>**20080901025932
Make "#sanfrancisco", "#SanFrancisco", "#san_francisco", "#San.Francisco", and "#SAN-FRANCISCO" all link to http://identi.ca/tag/sanfrancisco but preserve appearance
]
[RequirePassword
Garret Buell <terragb@gmail.com>**20080830195036
Require a password with at least 6 characters when registering.
]
[Resolve remote subscribe and omb problems with quotes (Tickets #604 and #567)
CiaranG <ciaran@ciarang.com>**20080904065504]
[Fix typo in presence message (x3)
CiaranG <ciaran@ciarang.com>**20080904081542]
[Some Notice::saveNew cleanups.
Ori Avtalion <ori@avtalion.name>**20080902173804
* No need to check $source's value before inserting
* No need to update the notice if the $uri was known in advance
]
[fix bad args in postnotice for new notices
Evan Prodromou <evan@prodromou.name>**20080904195720]
[Fix typo in finishremotesubscribe
CiaranG <ciaran@ciarang.com>**20080904201921]
[scripts daemonize themselves
Evan Prodromou <evan@prodromou.name>**20080904184031]
[add .pid to pidfile names
Evan Prodromou <evan@prodromou.name>**20080904190254]
[more robust code for setting daemon uid/gid
Evan Prodromou <evan@prodromou.name>**20080904191031]
[add newline at the end of pidfile
Evan Prodromou <evan@prodromou.name>**20080904191517]
[new format for startdaemons; not sure how to do stopdaemons so punting
Evan Prodromou <evan@prodromou.name>**20080904192220]
[better feedback when starting daemons
Evan Prodromou <evan@prodromou.name>**20080904192851]
[make confirmhandler a subclass of queuehandler
Evan Prodromou <evan@prodromou.name>**20080904193118]
[abstract XMPP-related queue handling to a common superclass
Evan Prodromou <evan@prodromou.name>**20080904194035]
[change xmppqueuedaemon to jabberqueuedaemon in startdaemons
Evan Prodromou <evan@prodromou.name>**20080904194346]
[require xmppqueuehandler in jabberqueuehandler
Evan Prodromou <evan@prodromou.name>**20080904194456]
[better logging for confirm handler update
Evan Prodromou <evan@prodromou.name>**20080904203502]
[add some processTime() to the send loops to avoid filling the buffer
Evan Prodromou <evan@prodromou.name>**20080904213257]
[better @ links
Evan Prodromou <evan@prodromou.name>**20080904224129]
[use a join for omb broadcast
Evan Prodromou <evan@prodromou.name>**20080905004701]
[change sms broadcast to use a join
Evan Prodromou <evan@prodromou.name>**20080905022019]
[return in the status textarea will submit the form
Evan Prodromou <evan@prodromou.name>**20080905045415]
[do submit on keydown
Evan Prodromou <evan@prodromou.name>**20080905045736]
[stop default handling of return in browser
Evan Prodromou <evan@prodromou.name>**20080905050356]
[set focus to status text area
Evan Prodromou <evan@prodromou.name>**20080905050824]
[free and unset DB_DataObjects after we're done with them
Evan Prodromou <evan@prodromou.name>**20080906015501]
[free memory in SMS daemon, too
Evan Prodromou <evan@prodromou.name>**20080906015621]
[debugging for omb
Evan Prodromou <evan@prodromou.name>**20080907193402]
[lots of debugging code in OMB send
Evan Prodromou <evan@prodromou.name>**20080907195242]
[remove some debugging code from omb.php
Evan Prodromou <evan@prodromou.name>**20080907200344]
[error checking in subscriptions
Evan Prodromou <evan@prodromou.name>**20080908201020]
[Disallow 'tag' and 'tags' as usernames. Fixes ticket #584
Ori Avtalion <ori@avtalion.name>**20080905114534]
[Fix for reply arrow in profile page
Michael Landers <ez4u2sai@gmail.com>**20080905090848]
[Fix confusing comment in config.sample.php (Ticket #616)
CiaranG <ciaran@ciarang.com>**20080905162732]
[add a sample RewriteBase
Evan Prodromou <evan@prodromou.name>**20080910180050]
[add a line for mail domain
Evan Prodromou <evan@prodromou.name>**20080910154632]
[update information about queues
Evan Prodromou <evan@prodromou.name>**20080910154754]
[reverse order of queries for galleries
Evan Prodromou <evan@prodromou.name>**20080911144742]
[LOG_ERROR -> LOG_ERR
Evan Prodromou <evan@prodromou.name>**20080913161107]
[duplicate confirmation to avoid where clause
Evan Prodromou <evan@prodromou.name>**20080913164333]
[only use MyISAM for tables with fulltext indices
Evan Prodromou <evan@prodromou.name>**20080915053955]
[cache noticesWithFriends in memcached
Evan Prodromou <evan@prodromou.name>**20080915065616
noticesWithFriends is turning out to be one of our most expensive
queries. The join is costly, and this method is hit over and over and
over by desktop clients and other API users.
So, I've added a first pass at caching the results. I store a "window"
of notices -- equal to the first 3 pages of notices, plus one for
pagination -- in the memcached cache. If with-friends notices are
requests, I fetch the whole window out of the cache and grab the slice
requested. If the requested notices are outside the window, we just do
the query. If there's nothing in the cache, we request the window and
store it, then return a slice.
I had to add a NoticeWrapper class that works like DB_DataObject
(well, just the fetch() part...) but just holds an array of notices
instead of a DB cursor.
Finally, saving a new notice blows away the caches for subscribed users.
]
[$INSTALLDIR -> INSTALLDIR
Evan Prodromou <evan@prodromou.name>**20080915070413]
[array_count -> count
Evan Prodromou <evan@prodromou.name>**20080915070951]
[subscriptions clear user with-friends cache, too
Evan Prodromou <evan@prodromou.name>**20080915071500]
[compress window-getting to one function
Evan Prodromou <evan@prodromou.name>**20080915071835]
[misused instance attribute in noticewrapper
Evan Prodromou <evan@prodromou.name>**20080915072553]
[another attribute error
Evan Prodromou <evan@prodromou.name>**20080915072738]
[make NoticeWrapper extend Notice so methods work
Evan Prodromou <evan@prodromou.name>**20080915073006]
[fix cache deletion code
Evan Prodromou <evan@prodromou.name>**20080915073215]
[fixup SQL code
Evan Prodromou <evan@prodromou.name>**20080915073412]
[can actually take all the data in the window
Evan Prodromou <evan@prodromou.name>**20080920174700]
[blow subscriptions cache when the user deletes a notice
Evan Prodromou <evan@prodromou.name>**20080920175339]
[use common-config instead of $config in common_language
Evan Prodromou <evan@prodromou.name>**20080922172631]
[data classes for invitations
Evan Prodromou <evan@prodromou.name>**20080823191015]
[start the invite form
Evan Prodromou <evan@prodromou.name>**20080825192946]
[add invite to htaccess.sample
Evan Prodromou <evan@prodromou.name>**20080825193149]
[add invite to the nav menu
Evan Prodromou <evan@prodromou.name>**20080825193235]
[invite fancy url
Evan Prodromou <evan@prodromou.name>**20080825193333]
[fix the invite url
Evan Prodromou <evan@prodromou.name>**20080825193450]
[fix instructions
Evan Prodromou <evan@prodromou.name>**20080825193738]
[skip preview, just send the darn thing
Evan Prodromou <evan@prodromou.name>**20080826021227]
[added a created timestamp to invitations
Evan Prodromou <evan@prodromou.name>**20080826023116]
[clean up some whitespace in DB script
Evan Prodromou <evan@prodromou.name>**20080826024015]
[helper functions that take a user object
Evan Prodromou <evan@prodromou.name>**20080827001348]
[updates for invitations
Evan Prodromou <evan@prodromou.name>**20080827001927
Add the code to registration to handle invitation codes.
Some edge cases on invitations: is the user already subbed to this
person? Tell them. Is the person already on the system? Sub the user
to them, then, and tell the user.
Add some code to User to auto-sub invitees whenever the email address
changes. Call it from a new registration with an invite code, and also
from confirmaddress.
Some whitespace cleanup in the files touched.
]
[correct output on invitations
Evan Prodromou <evan@prodromou.name>**20080827003529]
[save invitation code and improve format of outgoing mail
Evan Prodromou <evan@prodromou.name>**20080827004410]
[fix format for subject
Evan Prodromou <evan@prodromou.name>**20080827004755]
[fix runon string in invites format
Evan Prodromou <evan@prodromou.name>**20080827004854]
[send personal message through to send_invitation function
Evan Prodromou <evan@prodromou.name>**20080827005155]
[lost the names when making a new function send_invitation
Evan Prodromou <evan@prodromou.name>**20080827005418]
[fix format string, again again
Evan Prodromou <evan@prodromou.name>**20080827010138]
[Invite -> Invitation
Evan Prodromou <evan@prodromou.name>**20080827010515]
[removed the preview, so use "Send" for the button
Evan Prodromou <evan@prodromou.name>**20080827011921]
[add a foreign_link table with prefs for the link
Evan Prodromou <evan@prodromou.name>**20080827032423]
[update to translation
Evan Prodromou <evan@prodromou.name>**20080827185817]
[Bounce oversized XMPP messages back to user (Ticket #112)
CiaranG <ciaran@ciarang.com>**20080814083856]
[XMPP daemon updates including help, sub and subsub commands, plus subscribe/unsubcribe logic broken out into standalone module for sharing
CiaranG <ciaran@ciarang.com>**20080816083422]
[Added missing subs.php
CiaranG <ciaran@ciarang.com>**20080816153917]
[remove custom xmppdaemon error handler
Evan Prodromou <evan@prodromou.name>**20080830162128]
[merge in changes for CSRF, too
Evan Prodromou <evan@prodromou.name>**20080830162223]
[initial non-Ajax version of favorites
Evan Prodromou <evan@prodromou.name>**20080908181624]
[change input buttons to submit buttons
Evan Prodromou <evan@prodromou.name>**20080908182353]
[fix requires in dis/favor and correct url in form
Evan Prodromou <evan@prodromou.name>**20080908182559]
[correct action for showfavorites in disfavor
Evan Prodromou <evan@prodromou.name>**20080908182716]
[better styling for favor/disfavor buttons
Evan Prodromou <evan@prodromou.name>**20080908183515]
[styling on the favor/disfavor forms to show inline
Evan Prodromou <evan@prodromou.name>**20080908201751]
[write our own submit so there's no <p>
Evan Prodromou <evan@prodromou.name>**20080908202226]
[move fave form, float right
Evan Prodromou <evan@prodromou.name>**20080908202717]
[make favorites form use Ajax
Evan Prodromou <evan@prodromou.name>**20080908211610]
[missed a closing curly
Evan Prodromou <evan@prodromou.name>**20080908211656]
[enjitqueuehandler added
Evan Prodromou <evan@prodromou.name>**20080916174105]
[rationalize with repository version
Evan Prodromou <evan@prodromou.name>**20080916174400]
[change some more tables to InnoDB
Evan Prodromou <evan@prodromou.name>**20080916174515]
[Database and classes for direct messages
Evan Prodromou <evan@prodromou.name>**20080916185126]
[inbox and outbox for direct messages
Evan Prodromou <evan@prodromou.name>**20080916195346
Added an inbox and outbox for direct messages.
Factored common code to mailbox.php. Factored common code with
stream.php to personal.php.
]
[fixup CSS for messages
Evan Prodromou <evan@prodromou.name>**20080916195620]
[correctly show top
Evan Prodromou <evan@prodromou.name>**20080916200445]
[instructions for inbox and outbox
Evan Prodromou <evan@prodromou.name>**20080916200703]
[correct title on inbox and outbox
Evan Prodromou <evan@prodromou.name>**20080916200942]
[Twitter integration - SQL ref data for Twitter
zach@controlyourself.ca**20080822034054]
[Twitter integration - Oh look, a Twitter settings tab.
zach@controlyourself.ca**20080822034157]
[Twitter-integration - Twitter settings tab now saves Twitter credentials
zach@controlyourself.ca**20080826225615]
[Twitter integration - Add and remove Twitter accnt now working
Zach Copley <zach@controlyourself.ca>**20080827000327]
[Twitter integration - Foreign_user::getForeignUser() to retrieve
Zach Copley <zach@controlyourself.ca>**20080827005444
Foreign_user by multi-part key: user_id + service
]
[Twitter integration - decided to change Twitter to service ID #1
Zach Copley <zach@controlyourself.ca>**20080827021635]
[fork daemon
Evan Prodromou <evan@prodromou.name>**20080626224011]
[fork daemon
Evan Prodromou <evan@prodromou.name>*-20080626224011]
[translation updates
Evan Prodromou <evan@prodromou.name>**20080817160451]
[Twitter integration - support for new foreign_link table and prefs now save/update
Zach Copley <zach@controlyourself.ca>**20080828072205]
[Twitter integration - Notices now broadcast (directly) to Twitter from linked accts.
Zach Copley <zach@controlyourself.ca>**20080828192509]
[CSRF protection for invites.php
Zach Copley <zach@controlyourself.ca>**20080829045441]
[CSRF protection in twittersettings.php
Zach Copley <zach@controlyourself.ca>**20080829045724]
[Conflated Avatar and Profile settings + removed a bunch of unnecessary whitespace
Zach Copley <zach@controlyourself.ca>**20080905194732]
[Moved avatar upload down below timezone on profile settings
Zach Copley <zach@controlyourself.ca>**20080906070651]
[Fold password form into profile settings
Zach Copley <zach@controlyourself.ca>**20080907053604]
[Twitter integration - added $config option for source attribute when posting to Twitter
Zach Copley <zach@controlyourself.ca>**20080907062118]
[Twitter integration - wording change
Zach Copley <zach@controlyourself.ca>**20080907063339]
[Disallow 'api' nickname
Zach Copley <zach@controlyourself.ca>**20080909000650]
[Twitter-compatible API - JSONP callbacks for all methods emitting JSON
Zach Copley <zach@controlyourself.ca>**20080910025013]
[integrate local changes with Zach's
Evan Prodromou <evan@prodromou.name>**20080916210813]
[Initial support for PostgreSQL
CiaranG <ciaran@ciarang.com>**20080909072224]
[Fix remote sub when redirected via login (Ticket #618)
CiaranG <ciaran@ciarang.com>**20080909202259]
[PostgreSQL - reply.modified needs a default
CiaranG <ciaran@ciarang.com>**20080910073741]
[Fix unquoted array key, causes b0rkage on some php setups (via @bopuc)
CiaranG <ciaran@ciarang.com>**20080911163558]
[PostgreSQL: Make tag cloud query work - also fixes what is surely an ignored error in the mysql query
CiaranG <ciaran@ciarang.com>**20080911192348]
[PostgreSQL: support for full text searching (notice and people)
CiaranG <ciaran@ciarang.com>**20080914201744]
[PostgreSQL: Quote table name in manually formed query - fixes profile settings update
CiaranG <ciaran@ciarang.com>**20080915070256]
[Further updates to sample config
CiaranG <ciaran@ciarang.com>**20080915081246]
[Fix missing nickname in rss replies to title
CiaranG <ciaran@ciarang.com>**20080915190953]
[Get correct configured language when all else fails
CiaranG <ciaran@ciarang.com>**20080916172706]
[rationalize with ciarang's pgsql changes
Evan Prodromou <evan@prodromou.name>**20080916214134]
[add in ciarang's changes to config.php.sample
Evan Prodromou <evan@prodromou.name>**20080916214206]
[use common_local_url() in tagging, add canonicalization function
Evan Prodromou <evan@prodromou.name>**20080917112234]
[move rendering stuff that doesn't depend on notice to a separate function
Evan Prodromou <evan@prodromou.name>**20080917112730]
[newmessage and showmessage
Evan Prodromou <evan@controlyourself.ca>**20080917174741]
[add new message link to showstream
Evan Prodromou <evan@controlyourself.ca>**20080917175356]
[don't show message link on your own page
Evan Prodromou <evan@controlyourself.ca>**20080917175512]
[fancy urls for show message, new message
Evan Prodromou <evan@controlyourself.ca>**20080917180244]
[to parameter is an ID not a nickname
Evan Prodromou <evan@controlyourself.ca>**20080917185142]
[not a nickname so don't canonicalize
Evan Prodromou <evan@controlyourself.ca>**20080917185723]
[correct urls from fancy url for show-message
Evan Prodromou <evan@controlyourself.ca>**20080917185950]
[fix missing variable in save-new-message
Evan Prodromou <evan@controlyourself.ca>**20080917190306]
[skip over Mailbox::handle to Action::handle
Evan Prodromou <evan@controlyourself.ca>**20080917190445]
[fix titles in showmessage
Evan Prodromou <evan@controlyourself.ca>**20080917190745]
[save created date
Evan Prodromou <evan@controlyourself.ca>**20080917191652]
[some minor fixes for new messages
Evan Prodromou <evan@controlyourself.ca>**20080917192121]
[style for message form
Evan Prodromou <evan@controlyourself.ca>**20080918021421]
[rearrange paragraphs in message form
Evan Prodromou <evan@controlyourself.ca>**20080918021727]
[change id of message textarea
Evan Prodromou <evan@controlyourself.ca>**20080918021926]
[no instructions for 'to' dropdown
Evan Prodromou <evan@controlyourself.ca>**20080918022410]
[set message form label to display inline
Evan Prodromou <evan@controlyourself.ca>**20080918022558]
[try to move the message box up a bit
Evan Prodromou <evan@controlyourself.ca>**20080918022756]
[scootch it down a bit again
Evan Prodromou <evan@controlyourself.ca>**20080918022841]
[return correct data structure for messages in showmessage
Evan Prodromou <evan@controlyourself.ca>**20080918023032]
[fetch -> find
Evan Prodromou <evan@controlyourself.ca>**20080918025232]
[fix htaccess so pass message param correctly
Evan Prodromou <evan@controlyourself.ca>**20080918025428]
[more id -> message shenanigans
Evan Prodromou <evan@controlyourself.ca>**20080918025543]
[remove tabs from showmessage
Evan Prodromou <evan@controlyourself.ca>**20080918025713]
[split favor forms code
Evan Prodromou <evan@controlyourself.ca>**20080918032048]
[big changes to the README, part 1
Evan Prodromou <evan@controlyourself.ca>**20080918135502]
[if favor/disfavor submitted through ajax, return micro-html of form
Evan Prodromou <evan@controlyourself.ca>**20080918135608]
[Gee, maybe I shouldn't try to write DOM code from memory
Evan Prodromou <evan@controlyourself.ca>**20080918140533]
[ah, turns out each() stuff is called as a method
Evan Prodromou <evan@controlyourself.ca>**20080918140756]
[get the zeroth form in the returned array
Evan Prodromou <evan@controlyourself.ca>**20080918145545]
[replace -> replaceWith
Evan Prodromou <evan@controlyourself.ca>**20080918150120]
[ajaxForm on returned forms
Evan Prodromou <evan@controlyourself.ca>**20080918150438]
[have to add the ajaxHidden thing, too
Evan Prodromou <evan@controlyourself.ca>**20080918150753]
[dis -> fav
Evan Prodromou <evan@controlyourself.ca>**20080918151642]
[correct background of dis/favor form on hover
Evan Prodromou <evan@controlyourself.ca>**20080918151907]
[input changes
Evan Prodromou <evan@controlyourself.ca>**20080918152124]
[add favor/disfavor to profile
Evan Prodromou <evan@controlyourself.ca>**20080918152612]
[don't notify you favor your own notice
Evan Prodromou <evan@controlyourself.ca>**20080918152823]
[correct a couple of bugs
Evan Prodromou <evan@controlyourself.ca>**20080922190937]
[clear and rebuild db scripts
Evan Prodromou <evan@controlyourself.ca>**20080922195824]
[add additional licenses into extlib subdir
Evan Prodromou <evan@controlyourself.ca>**20080922212120]
[hide IM settings if xmpp disabled
Evan Prodromou <evan@controlyourself.ca>**20080922214003]
[finish the README file
Evan Prodromou <evan@controlyourself.ca>**20080922223239]
[A working stopdaemons.sh, and no parameter needed for startdaemons.sh
CiaranG <ciaran@ciarang.com>**20080906202242]
[merge CiaranG's changes for subs
Evan Prodromou <evan@prodromou.name>**20080922225031]