Another huge change, for PEAR code standards compliance. Function
headers have to be in K&R style (opening brace on its own line),
instead of having the opening brace on the same line as the function
and parameters. So, a little perl magic found all the function
definitions and move the opening brace to the next line (properly
indented... usually).
darcs-hash:20081223193323-84dde-a28e36ecc66672c783c2842d12fc11043c13ab28.gz
Another global search-and-replace update. Here, I've replaced the PHP
keyword 'NULL' with its lowercase version. This is another PEAR code
standards change.
darcs-hash:20081223192129-84dde-4a0182e0ec16a01ad88745ad3e08f7cb501aee0b.gz
The PEAR coding standards decree: no tabs, but indent by four spaces.
I've done a global search-and-replace on all tabs, replacing them by
four spaces. This is a huge change, but it will go a long way to
getting us towards phpcs-compliance. And that means better code
readability, and that means more participation.
darcs-hash:20081223191907-84dde-21e8efe210e6d5d54e935a22d0cee5c7bbfc007d.gz
On identi.ca, certain users (http://identi.ca/derricklo) publish 5-10
automated notices every half hour or hour. This can flood the public
stream, making it unreadable for casual readers.
We don't want to prevent anyone from using the site for personal use.
However, if their personal use clouds up the public space, we can
gently remove them from that public space without interfering with
their personal activity.
So: this change prevents selected people's notices from appearing in
the public stream. It's hand-configured by an administrator, and
probably doesn't scale beyond 10-20 blacklisted users. It's a stopgap
measure.
darcs-hash:20081120183722-84dde-8a8401fbcbb6abb60a8b36de249323586ea0b22c.gz
Zach was doing a lot of integer comparisons on the Foreign_link sync
fields. I switched them to use named bitmasks instead. I also switched
the semantics of bit 3 to be the opposite of what Zach had -- I find
lots of double-negatives in a checkbox to be hard to read.
darcs-hash:20080924150834-5ed1f-54cd945f61e43bc06768037c60c1e6180a8feead.gz
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.
darcs-hash:20080915065616-84dde-1b1e814c2294498a10b763b779cbb62c3f96aa84.gz
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.
darcs-hash:20080826131814-84dde-2c4a809c6fb666dfb4b96d0d61205fe418f4e4b4.gz
Added a checkbox on login or register to remember the current user. If
the login is successful, this sets a cookie with a random code (saved
in the DB). If they come back, and they aren't logged in "normally",
we check to see if they have a rememberme cookie. If so, we log them
in.
However, they can't change settings -- cookie theft is too prevalent.
So we mark a session as having a "real" (password or OpenID) login, or
not. In settings pages, we check to see if the login is "real", and if
not, we redirect to the login page.
darcs-hash:20080624025234-34904-ad20001bf35bf41fcb63a0c357fd929aacc55fdb.gz
Starting the process of remote subscriptions.
First, add the capacity to mint tags. May in the future want to allow
some kind of UUID or URL for unique URIs. New config options for tag
authority and date, and a function for minting tags.
Store URIs in the DB. If the admin changes his/her tag config, this
shouldn't change the URIs in the DB. Unless they really want to make
that happen.
Generate an XRDS document with the appropriate URLs for microblogging.
Also, redefined some stuff in openmicroblogging.txt. And moved the file.
darcs-hash:20080522183421-84dde-fe46f32e4050f2c4b6c850334103007ed7feabf7.gz
Added H1 headers to all pages. Added H2 headers to sections of pages,
where appropriate.
Moved a lot of TODOs around.
Made the public stream the default if no action is specified.
darcs-hash:20080519141219-84dde-f9917a8351596060faa7ff5d231417773764a8fd.gz
Ran everything through php -l, found out that it didn't compile.
So: fixed the am-I-running-in-Laconica check at the top of each file.
Some syntax fixes in shownotice, showstream, common.
darcs-hash:20080517154701-84dde-8d38da89c5b9cb3b40704adb04a4de880c204181.gz
Placeholder for broadcasting notice updates.
Fixup the local url function to include server and path.
Add server and path to configuration array.
Make new notice 303 redirect to shownotice.
Make redirects work.
Add link in streams to notices.
darcs-hash:20080517144642-84dde-c267a6e3bb0717ad5a3a819a7cf65fdd5817ea8e.gz
change the version numbers for an internal 0.1 test release (putting
it on the server!).
Also, added some tweedly date formatting, just to have something
there. Needs some thought.
darcs-hash:20080517140532-84dde-b316b4b425cced5c31fc2ecd0dd81217d5f91365.gz
Threw together a bogus version of common_local_url(), which should
work for now. But eventually it should use pretty URLs if possible.
darcs-hash:20080517135138-84dde-3c69c89ee8080568e92f655cbb3171867a7b38ce.gz
code to upload and change avatars.
combined some code in the settings area, too.
darcs-hash:20080517122045-84dde-8e13994e627805f29679c9533c2f62db81dc0925.gz
Did considerable work on the settings section.
Redesigned the DB to allow avatars. Each avatar image has a size and
an URL. There can be multiple avatars per profile, just different sizes.
Added accessors in Profile for avatar. Show the avatar in lots of
places, where it makes sense. Constants for avatar sizes in common.php.
darcs-hash:20080515162844-84dde-fe0630366e247c02ca8ca9d1cc6b963cfce57a26.gz
Added GNU Affero GPL license block to source code.
Added name "LACONICA". I think it should work fine.
darcs-hash:20080514192648-84dde-a430dc438a4e3741c62ccf30ee7f85ecc968b159.gz