* no-repeat on some background images in the sprite (#797) * fix deleted comments on the mobile site -- preserve author anonymity (#624 * faulty permalinks on pages with all unicode title (#776) * no more spreadshirt * reorganize comment_tree and _builder.pyx to clean up cache handling * fix styling for Bug #78 * Improve handling of /r/all+all (bug #699), etc (not always a 400 now) * Fix the time listings: sometimes we get passed unicode for self.time * Don't allow private reddits to show in /r/random * Try to allow remote sites to show their own favicons in the reddit toolbar Speed improvements: * CommentBuilder refactor rount 1: * create new sort and parent permacache entries so that we don't need to loa * update sorts and parents when a new comment comes in * update non-date sorts when a new comment vote comes in * add more trace info to timeouts in CommentBuilder * Some misc. performance hacks (incl. adding _utils.pyx) * Increase SR description box limit from 1k to 5k * Fix a bug where we weren't properly allowing hidden items to be hidden on time-filtered listings * Make Subreddit._by_name take a list of names like byID * Upload thumbs to S3 with reduced_redundancy==True * make rss feeds without a 'feed' get parameter act as if the user is not logged in * Require a boto that knows about reduced_redundancy * remove fast_queries from Message.add_props and put the onus on fetching the unread messages from the permacache * Store the list of popular subreddits in the permacache * make SubredditTopBar cacheable per-user. * add (as safe as we can make it) annotation for sql selects to track down requests hitting the db when they shouldn't be. User submitted features: * Merge and clean up Phire's selfs-only/no-selfs patch. * Don't show expired items on time-filtered controversy listings * Also add the 'hide' button to the toolbar just for breakneckridge. Next time someone calls me prickly, breakneckridge had better step up to the plate for me or I'm rolling it back.
==== * Uninstall the python Cassandra package that we previously depended on (it has a namespace conflict with the new package we depend on). To find it: $ python -c "import cassandra; print cassandra.__file__" and rm -r the .egg directory after "site-packages/" * This version relies on cython, so if "make" fails, you may have to install cython via your distro's package manager. $ cd reddit/r2 $ python setup.py develop # possibly with "sudo" depending on your install $ make * Cassandra is now required for the caching layer. An example storage-conf.xml can be found in reddit/srv/cassandra. Make sure that the additional <Keyspace> items are included in your conf file. * remove the query_queue_reader services if they are running. add new gen_time_listings.sh instead. Suggested cron: 0 */2 * * * $SCRIPTS/gen_time_listings.sh year '("month","year")' */5 * * * * $SCRIPTS/gen_time_listings.sh week '("day","week")' * * * * * $SCRIPTS/gen_time_listings.sh hour '("hour",)' where $SCRIPTS is the location of this script directory Features and Bugfixes ==== * Mobile reddit: * templates are in r2/templates of the form *.compact * css is r2/public/static/css/compact.css * beginning of a sass-based (http://sass-lang.com/) compact.scss * reachable via .compact extension or from the "i" subdomain. * Cassandra is now *required*, and votes are currently written out to both cassandra and postgres (part of an eventual migration). * attempt to make the db connection code a little smarter. * A dropped DB connection will mark the connection dead and randomly attempt to reconnect. * A dropped db connection on start will permanently mark the connection as dead. * Calculate the time-filtered top/controversy listings using mapreduce instead of prec_links (new cron job in reddit/scripts) * allow default user/pass for database to be specified with '*' to fallback on db_user and db_pass in the INI file * Search feedback buttons * make deleted comments not show up in your inbox. * move last_visited into cassandra * Swallow rare, race-conditiony POST_save/hide/subscribe problems * Apparently we haven't been breaking properly for the past few weeks.
…z all over the place * The error pages have been broken for the past week. * Fix /r/all+all * Provides about.json to the api for subreddits (it already works for users) * Make sure Accounts have data before checking their name and msgtime * new bigger arrows for mobile site and a the alien is fingerless now * Try to update the _fast_query_timestamps less often to alleviate some of the load it causes on the Accounts DB * Swallow rare, race-conditiony POST_save/hide/subscribe problems
* Make the new targeted self-serve promotion the default * add TheOatmeal's comic to our source. (http://www.theoatmeal.com) * add targetting * add rerunning or suplementing existing campaigns * move all sponsored link listings to be precomputed * deputy moderation * /about/trials and /about/modqueue * Have trials train the spam filter * Allow admins to see all trials, site-wide, at /r/all/about/trials * Allow trials to be ended while votes are still coming in when the jury opinion is near-unanimous * offload scraping to embed.ly * Use boto for s3cp instead of forking curl Additions: * migrated all graphs to use Flot * Implement per-user suspiciousness quota and print over-quota trace * Keep track of how many questionable links a user has outstanding at any given time * add links to the FAQ and walkthru * add a differnt thumbnail for self posts (thanks to licensplate) * Add some visual tracking for comments trees * Relabel: ban / unban => remove / approve * Use big remove / approve buttons when the listing relates to moderation, or when the item has reports or is on trial * Merge unban, ignore, and a new approve this non-banned link into one * Be a little smarter about the way we allow caching of subreddit stylesheets * make cassandra's cache chain cache negative results (and yes that commit message is bigger than the patch) * add All, friends, random, and mod to topbar * add a local render precache (optional) * better noimage.png from paradox460 * Add a 'legacy' mode to CMemcache that will allow us to use it as a drop-in replacement for testing purposes. Modifies python-memcached to use the same 'crc' hashing algorithm that pylibmc does, and removes a feature in python-memcached that we aren't using. Contributed by Joe Terranova <firstname.lastname@example.org> * Everyone sees cake * Added g.system_user Bugfixes: * improve validation of media embed, and remove a todo from link.py by putting all of the child div stuff in pages * Feed/JSON updates * Add selftext to RSS feeds * Add subreddit names to Comments in JSON * add is_self param to indicate self posts * Don't shade the background of child comments of spam * shorted the cache lifetime for AllSR to 1 min * Tell everyone that we actually own the trademarks we claim to own (footer update) * You no longer get an orange alien when one of your reddits sends an automated message to a user
* self service sponsored links (initial version with no targeting) * credit card processing with authorize.net (and corresponding interaction code) * hardcache -- for persistent cache keys with expiration * Awards code * messaging overhaul round 1. Added mark as unread as well as message sorting Additions: * add TedScraper and improve youtube scraper (ala tritelife); move traffic link on sponsored links and make them still visible when the promotion is over * compressify all of our pngs, and set it up so thumbs, sr images, and the sprite get compressed every time they are generated * rate limit logins (naive way) * add a limit to the length of the moderator sidebox. * add over18 thumbnail handling and NSFW label on nsfw content * make NSFW label optional, and make the operation of the pref checkboxes sensible * add the option (for moderators) to remove a subreddit from the default set * Combine the queue handling code to be easily plumbed, and use it to precompute /comments Bugfixes: * trap duplicate vote error * Fixed new mail mouseover on toolbar * spammers can't send empty bodied emails any more (they will get rejected as they should).
=== - add confidence sorting to comments * common values are precomputed for speedier response * best is made the default sort on comment pages - messages will now be delivered once one is moderator/contributor/banned - UI updates to messaging page, including added show parent functionality to messages - Remove the rate-limit on comments on your own self-posts - Give users some leeway in editing their comments: don't show an edit star if the edit is within the first few minutes of a comment's lifetime - Office Assistant will help users when they write to admins Backend === - Replace the postgres-based query_queue with an AMQP based one * Set up amqp queues for async tasks such as search updates and the scrapers * service monitor updates, adding queue-tracking support - Allow find_recent_broken_things to specify both from_time and to_time - add a ini file parameter to disallow db writes (to create read-only reddit instances for crawlers) New features === - self-serve advertisement: * complete overhaul of sponsored link code * functions for talking with authorize.net * added pay domain and https support * added ability to share traffic from sponsored links * auto-reject promotions that are too old and unpaid for - awards - allow widget to have its links to have a target (in case it is iframed) - automatic_reddits: * Don't show automatic_reddits in the horizontal topbar - Listing numbers are always in order with no gaps - add support for sprites for common (r2.lib.contrib.nymph) Admin === - added a takedown page for dealing with DMCA requests properly * status code 404 on takedown pages * JSON returns same string as in the explanation text * nofollow on markdown in explanation * title and image optional - Added /c/(comment_id) for admins - updates to JS to rate-limit voting, commenting, and anything else that could be just as easily done by a script-kiddie to cheat. - make ad frame dynamic and add tracking pixel - add the ability to add a sponsored banner to the rightbox of a reddit - add the ability to show custom css on cnamed and/or non-cnamed versions of a reddit - allow us to ignore reports from report-spammers. Bugfixes === - Fix sorting of duplicate links (patch by Chromakode) - fix traffic bug on main traffic page when it is the first of the month. - toolbar redirects to comments page on self posts rather than generating the frame - half-assed unicode handling in menus giving us bugs again. Switched to the whole-ass approach - added Thing._byID36 - Support /help/foo/bar
…rma without scraping html; added link_title attribute to comments in places where they render in html with their link's title (profile page). updates to iphone page.
* Wrapped -> Templated in cases when there is no thing to be wrapped * cachable templates out of cachable pieces which can be reused * auto-generation of cache keys for cachable content * c.render_style used to propagate current style to children * cut down on the number of c and g variables in thing templates. * buttons in printable.html now in printablebuttons.html with handler classes in r2.lib.pages.things (planned destination of add_props).
…ed translation UI
… None query in organic.py
…t their language preferences and is coming from a non-en-default browser. Also clean up and remvove old subredditbox code.
…be specified as a get parameter. Also support a newwindow option for target=_new. Currently undocumented button types 4 and 5 included as well. Widget supports in place voting. Socialite toolbar included help page and link to xpi file.