fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2011-12-01 07:59 am

[dw-free] better organization of LJ functions

[commit: http://hg.dwscoalition.org/dw-free/rev/b9af037b2e58]

http://bugs.dwscoalition.org/show_bug.cgi?id=3965

Change LJ::note_recent_action to LJ::DB::note_recent_action. Involves a move
from ljlib.pl to LJ/DB.pm

Patch by [personal profile] kareila.

Files modified:
  • bin/upgrading/base-data.sql
  • cgi-bin/LJ/DB.pm
  • cgi-bin/LJ/Sendmail.pm
  • cgi-bin/ljlib.pl
--------------------------------------------------------------------------------
diff -r 984172d13ad7 -r b9af037b2e58 bin/upgrading/base-data.sql
--- a/bin/upgrading/base-data.sql	Thu Dec 01 15:53:52 2011 +0800
+++ b/bin/upgrading/base-data.sql	Thu Dec 01 15:59:07 2011 +0800
@@ -772,7 +772,7 @@
 REPLACE INTO schematables (des, public_browsable, redist_mode, redist_where, tablename) VALUES ('Clustered. Stores ESN journal subscriptions data. A flag on event target (a journal) is written here saying whether there are known listeners out there.', '0', 'off', NULL, 'has_subs');
 REPLACE INTO schematables (des, public_browsable, redist_mode, redist_where, tablename) VALUES ('Clustered. Stores IP addresses for spam reports, temporarily, whether the journal in which the anonymous comment was posted in has enabled IP tracking or not. Used with the [dbtable[spamreports]] table.\n\r\nThe LJ::record_anon_comment_ip function gets the anonymous comment IP, and records it here.\r\n\r\nA maintenance task cleans out IPs after 5 days - so anonymous comments deleted after 5 days are fairly useless, and reports about them are quietly discarded by the comment deletion system.', '0', 'off', NULL, 'tempanonips');
 REPLACE INTO schematables (des, public_browsable, redist_mode, redist_where, tablename) VALUES ('Clustered. Stores Jabber roster data.', '0', 'off', NULL, 'jabroster');
-REPLACE INTO schematables (des, public_browsable, redist_mode, redist_where, tablename) VALUES ('Clustered. Stores a log count of generic actions that have happened, like a post action (which calls LJ::note_recent_action()).\n\r\nA maintenance task moves these logged summaries from the various clusters to the global [dbtable[actionhistory]] table.', '0', 'off', NULL, 'recentactions');
+REPLACE INTO schematables (des, public_browsable, redist_mode, redist_where, tablename) VALUES ('Clustered. Stores a log count of generic actions that have happened, like a post action (which calls LJ::DB::note_recent_action()).\n\r\nA maintenance task moves these logged summaries from the various clusters to the global [dbtable[actionhistory]] table.', '0', 'off', NULL, 'recentactions');
 REPLACE INTO schematables (des, public_browsable, redist_mode, redist_where, tablename) VALUES ('Clustered. Stores blobs (binary large objects) of on-disk data.\n\r\nBlob* files/classes for storing Blobs need to be added either to a local path or a remote Blob server (\"remote Blob server\" support has since been removed in favor of MogileFS).\r\n\r\nNotes: blobids aren\'t necessarily unique between domains; global userpicids may collide with the counter used for the rest. So, the type must be in the key. domain IDs are set up in etc/config.pl.', '0', 'off', NULL, 'userblob');
 REPLACE INTO schematables (des, public_browsable, redist_mode, redist_where, tablename) VALUES ('Clustered. Stores comments, such as OpenID comments, awaiting user approval.', '0', 'off', NULL, 'pendcomments');
 REPLACE INTO schematables (des, public_browsable, redist_mode, redist_where, tablename) VALUES ('Clustered. Stores community invitations received.', '0', 'off', NULL, 'inviterecv');
diff -r 984172d13ad7 -r b9af037b2e58 cgi-bin/LJ/DB.pm
--- a/cgi-bin/LJ/DB.pm	Thu Dec 01 15:53:52 2011 +0800
+++ b/cgi-bin/LJ/DB.pm	Thu Dec 01 15:59:07 2011 +0800
@@ -490,6 +490,31 @@
 }
 
 
+sub note_recent_action {
+    my ( $cid, $action ) = @_;
+
+    # make sure they gave us an action (and it's not a long string)
+    return undef if ! $action || length( $action ) > 20;
+
+    # fall back to selecting a random cluster if none specified
+    $cid = LJ::DB::random_cluster() unless defined $cid;
+
+    # accept a user object
+    $cid = ref $cid ? $cid->{clusterid} + 0 : $cid + 0;
+
+    return undef unless $cid;
+
+    my $dbcm = LJ::get_cluster_master( $cid )
+        or return undef;
+
+    # append to recentactions table
+    $dbcm->do( "INSERT INTO recentactions VALUES (?)", undef, $action );
+    return undef if $dbcm->err;
+
+    return 1;
+}
+
+
 package LJ;
 
 use Carp qw(confess);  # import confess into package LJ
diff -r 984172d13ad7 -r b9af037b2e58 cgi-bin/LJ/Sendmail.pm
--- a/cgi-bin/LJ/Sendmail.pm	Thu Dec 01 15:53:52 2011 +0800
+++ b/cgi-bin/LJ/Sendmail.pm	Thu Dec 01 15:59:07 2011 +0800
@@ -162,7 +162,8 @@
     # at this point $msg is a MIME::Lite
 
     # note that we sent an email
-    LJ::note_recent_action(undef, $msg->attr('content-type') =~ /plain/i ? 'email_send_text' : 'email_send_html');
+    LJ::DB::note_recent_action( undef, $msg->attr('content-type') =~ /plain/i
+                                       ? 'email_send_text' : 'email_send_html' );
 
     my $enqueue = sub {
         my $starttime = [gettimeofday()];
diff -r 984172d13ad7 -r b9af037b2e58 cgi-bin/ljlib.pl
--- a/cgi-bin/ljlib.pl	Thu Dec 01 15:53:52 2011 +0800
+++ b/cgi-bin/ljlib.pl	Thu Dec 01 15:59:07 2011 +0800
@@ -1678,30 +1678,6 @@
 }
 
 
-sub note_recent_action {
-    my ($cid, $action) = @_;
-
-    # fall back to selecting a random cluster
-    $cid = LJ::DB::random_cluster() unless defined $cid;
-
-    # accept a user object
-    $cid = ref $cid ? $cid->{clusterid}+0 : $cid+0;
-
-    return undef unless $cid;
-
-    # make sure they gave us an action
-    return undef if !$action || length($action) > 20;;
-
-    my $dbcm = LJ::get_cluster_master($cid)
-        or return undef;
-
-    # append to recentactions table
-    $dbcm->do( "INSERT INTO recentactions VALUES (?)", undef, $action );
-    return undef if $dbcm->err;
-
-    return 1;
-}
-
 sub is_web_context {
     return $ENV{MOD_PERL} ? 1 : 0;
 }
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org