Make interest limit a tunable, and increase limit on number of 
interests for paid accounts.

        Patch by denise. 

diffs (188 lines):

diff -r e297eaa982ef -r 9e8abb4a632f bin/upgrading/en.dat
--- a/bin/upgrading/en.dat      Sun Jun 14 20:52:55 2009 +0000
+++ b/bin/upgrading/en.dat      Mon Jun 15 04:09:00 2009 +0000
@@ -1276,7 +1276,7 @@ error.interest.bytes.chars=Sorry, you ha
 
 error.interest.chars=Sorry, you have listed an interest with [[chars]] 
characters.  Each interest has a limit of [[chars_max]] characters.  Any 
changes you made to your interests were not saved.  Go back and remove, or 
modify "[[int]]".
 
-error.interest.excessive=Sorry, you have listed too many interests.  The limit 
is 150, but you have listed [[intcount]].  Any changes you made to your 
interests were not saved.  Go back and remove some interests.
+error.interest.excessive2=Sorry, you have listed too many interests.  The 
limit for your account type is [[maxinterests]], but you have listed 
[[intcount]].  Any changes you made to your interests were not saved.  Go back 
and remove some interests.
 
 error.interest.invalid=Sorry, you have listed an interest with invalid 
characters.  Any changes you made to your interests were not saved.  Go back 
and remove, or modify "[[int]]".
 
diff -r e297eaa982ef -r 9e8abb4a632f cgi-bin/LJ/Setting/Interests.pm
--- a/cgi-bin/LJ/Setting/Interests.pm   Sun Jun 14 20:52:55 2009 +0000
+++ b/cgi-bin/LJ/Setting/Interests.pm   Mon Jun 15 04:09:00 2009 +0000
@@ -36,8 +36,10 @@ sub error_check {
     my @interrors = ();
 
     # Don't bother validating the interests if there are already too many
-    if ($intcount > 150) {
-        $class->errors("interests" => LJ::Lang::ml('error.interest.excessive', 
{ intcount => $intcount }));
+    my $maxinterests = $u->get_cap( 'interests' );
+
+    if ($intcount > $maxinterests) {
+        $class->errors("interests" => 
LJ::Lang::ml('error.interest.excessive2', { intcount => $intcount, maxinterests 
=> $maxinterests }));
         return 1;
     }
 
diff -r e297eaa982ef -r 9e8abb4a632f cgi-bin/LJ/Widget/CreateAccountProfile.pm
--- a/cgi-bin/LJ/Widget/CreateAccountProfile.pm Sun Jun 14 20:52:55 2009 +0000
+++ b/cgi-bin/LJ/Widget/CreateAccountProfile.pm Mon Jun 15 04:09:00 2009 +0000
@@ -192,7 +192,10 @@ sub handle_post {
 
     # count interests
     my $intcount = scalar @ints;
-    $from_post{errors}->{interests} = LJ::Lang::ml('error.interest.excessive', 
{ intcount => $intcount }) if $intcount > 150;
+    my $maxinterests = $u->get_cap( 'interests' );
+
+    $from_post{errors}->{interests} = 
LJ::Lang::ml('error.interest.excessive2', { intcount => $intcount, maxinterests 
=> $maxinterests })
+        if $intcount > $maxinterests;
 
     # clean interests, and make sure they're valid
     my @interrors;
diff -r e297eaa982ef -r 9e8abb4a632f cgi-bin/LJ/Widget/FriendInterests.pm
--- a/cgi-bin/LJ/Widget/FriendInterests.pm      Sun Jun 14 20:52:55 2009 +0000
+++ b/cgi-bin/LJ/Widget/FriendInterests.pm      Mon Jun 15 04:09:00 2009 +0000
@@ -46,11 +46,13 @@ sub handle_post {
         $deleted = 1;
     }
     if (@toadd) {
-        if ($intcount + scalar @toadd > 150) {
+        my $maxinterests = $u->get_cap( 'interests' );
+
+        if ($intcount + scalar @toadd > $maxinterests) {
             if ($deleted) {
-                die BML::ml('/interests.bml.results.del_and_toomany', 
{'intcount' => 150});
+                die BML::ml('/interests.bml.results.del_and_toomany', 
{'intcount' => $maxinterests});
             } else {
-                die BML::ml('/interests.bml.results.toomany', {'intcount' => 
150});
+                die BML::ml('/interests.bml.results.toomany', {'intcount' => 
$maxinterests});
             }
         } else {
             my $dbh = LJ::get_db_writer();
diff -r e297eaa982ef -r 9e8abb4a632f etc/config.pl
--- a/etc/config.pl     Sun Jun 14 20:52:55 2009 +0000
+++ b/etc/config.pl     Mon Jun 15 04:09:00 2009 +0000
@@ -300,6 +300,7 @@
             'checkfriends' => 0,
             'checkfriends_interval' => 300,
             'friendsviewupdate' => 30,
+            'interests' => 150,
             'makepoll' => 0,
             'maxfriends' => 500,
             'moodthemecreate' => 0,
@@ -370,6 +371,7 @@
             'getselfemail' => 0,
             google_analytics => 0,
             'inbox_max' => 2000,
+            'interests' => 150,
             'makepoll' => 0,
             'mass_privacy' => 0,
             'maxfriends' => 1000,
@@ -425,6 +427,7 @@
             'getselfemail' => 1,
             google_analytics => 1,
             'inbox_max' => 4000,
+            'interests' => 200,
             'makepoll' => 1,
             'mass_privacy' => 1,
             'maxfriends' => 1500,
@@ -478,6 +481,7 @@
             'getselfemail' => 1,
             google_analytics => 1,
             'inbox_max' => 6000,
+            'interests' => 250,
             'makepoll' => 1,
             'mass_privacy' => 1,
             'maxfriends' => 2000,
@@ -538,6 +542,7 @@
             'getselfemail' => 1,
             google_analytics => 1,
             'inbox_max' => 6000,
+            'interests' => 250,
             'makepoll' => 1,
             'mass_privacy' => 1,
             'maxfriends' => 2000,
@@ -589,6 +594,7 @@
             'getselfemail' => 1,
             google_analytics => 1,
             'inbox_max' => 6000,
+            'interests' => 250,
             'makepoll' => 1,
             'mass_privacy' => 1,
             'maxfriends' => 2000,
diff -r e297eaa982ef -r 9e8abb4a632f htdocs/interests.bml
--- a/htdocs/interests.bml      Sun Jun 14 20:52:55 2009 +0000
+++ b/htdocs/interests.bml      Mon Jun 15 04:09:00 2009 +0000
@@ -25,6 +25,8 @@ body<=
     my $did_post = LJ::did_post();
 
     my $remote = LJ::get_remote();
+
+    my $maxinterests = $remote->get_cap( 'interests' );
 
     my $table = sub { $_[0]->{'journaltype'} eq 'C' ? 'comminterests' : 
'userinterests' };
 
@@ -103,8 +105,8 @@ body<=
         # account for the case where we bypass the POST due to the referer
         return $ML{'error.invalidform'} unless !$did_post || 
LJ::check_form_auth();
 
-        if ($count >= 150) {
-            $ret .= "<?h1 $ML{'.add.toomany.head'} h1?><?p " 
.BML::ml(".add.toomany.text", {'maxinterests' => "150"}) ." p?>";
+        if ($count >= $maxinterests) {
+            $ret .= "<?h1 $ML{'.add.toomany.head'} h1?><?p " 
.BML::ml(".add.toomany.text", {'maxinterests' => $maxinterests}) ." p?>";
             return $ret;
         }
 
@@ -171,7 +173,7 @@ body<=
         }
 
         my @matches = sort { $magic{$b} <=> $magic{$a} } keys %magic;
-        if (@matches > 150) { @matches = @matches[0..149]; }
+        if (@matches > $maxinterests) { @matches = @matches[0..( $maxinterests 
- 1 )]; }
         my $sth = $dbr->prepare("SELECT userid, user FROM useridmap WHERE 
userid IN (" . join(",",@matches) . ")");
         $sth->execute;
         my %username;
@@ -323,7 +325,7 @@ body<=
             $deleted = 1;
         }
         if (@toadd) {
-            if ($intcount + scalar @toadd > 150) {
+            if ($intcount + scalar @toadd > $maxinterests) {
                 $toomany = 1;
             } else {
                 my $dbh = LJ::get_db_writer();
@@ -346,11 +348,11 @@ body<=
         my $ret = "<?h1 $ML{'.results.header'} h1?><?p ";
         if ($deleted) {
             $ret .= $added   ? $ML{'.results.both'}
-                  : $toomany ? BML::ml('.results.del_and_toomany', {'intcount' 
=> 150})
+                  : $toomany ? BML::ml('.results.del_and_toomany', {'intcount' 
=> $maxinterests})
                   : $ML{'.results.deleted'};
         } else {
             $ret .= $added   ? $ML{'.results.added'}
-                  : $toomany ? BML::ml('.results.toomany', {'intcount' => 150})
+                  : $toomany ? BML::ml('.results.toomany', {'intcount' => 
$maxinterests})
                   : $ML{'.results.nothing'};
         }
 
diff -r e297eaa982ef -r 9e8abb4a632f htdocs/manage/profile/index.bml
--- a/htdocs/manage/profile/index.bml   Sun Jun 14 20:52:55 2009 +0000
+++ b/htdocs/manage/profile/index.bml   Mon Jun 15 04:09:00 2009 +0000
@@ -743,12 +743,14 @@ body<=
 
         # update interests
         unless ($POST{'interests_absent'}) {
+            my $maxinterests = $u->get_cap( 'interests' );
+
             my @ints = LJ::interest_string_to_list($POST{'interests'});
             my $intcount = scalar(@ints);
             my @interrors = ();
 
             # Don't bother validating the interests if there are already too 
many
-            return LJ::bad_input( BML::ml('error.interest.excessive', { 
intcount => $intcount }) ) if $intcount > 150;
+            return LJ::bad_input( BML::ml('error.interest.excessive2', { 
intcount => $intcount, maxinterests => $maxinterests } ) ) if $intcount > 
$maxinterests;
 
             # Clean interests, and make sure they're valid
             my @valid_ints = LJ::validate_interest_list(\...@interrors, @ints);
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to