[dw-free] Allow importing of your journal from another LiveJournal-based site.
[commit: http://hg.dwscoalition.org/dw-free/rev/6f6d5695a676]
http://bugs.dwscoalition.org/show_bug.cgi?id=114
Ignore limit on tags when importing entries.
Patch by
mark.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=114
Ignore limit on tags when importing entries.
Patch by
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Files modified:
- cgi-bin/DW/Worker/ContentImporter/Local/Entries.pm
- cgi-bin/DW/Worker/ContentImporter/Local/Tags.pm
- cgi-bin/ljprotocol.pl
- cgi-bin/taglib.pl
-------------------------------------------------------------------------------- diff -r d62f415767a4 -r 6f6d5695a676 cgi-bin/DW/Worker/ContentImporter/Local/Entries.pm --- a/cgi-bin/DW/Worker/ContentImporter/Local/Entries.pm Sun Mar 01 19:21:55 2009 +0000 +++ b/cgi-bin/DW/Worker/ContentImporter/Local/Entries.pm Sun Mar 01 23:32:50 2009 +0000 @@ -139,6 +139,7 @@ sub post_event { u => $u, noauth => 1, nonotify => 1, + ignore_tags_max => 1, } ); diff -r d62f415767a4 -r 6f6d5695a676 cgi-bin/DW/Worker/ContentImporter/Local/Tags.pm --- a/cgi-bin/DW/Worker/ContentImporter/Local/Tags.pm Sun Mar 01 19:21:55 2009 +0000 +++ b/cgi-bin/DW/Worker/ContentImporter/Local/Tags.pm Sun Mar 01 23:32:50 2009 +0000 @@ -36,9 +36,9 @@ sub merge_tags { my ( $class, $u, $tags ) = @_; foreach my $tag ( @{ $tags || [] } ) { - LJ::Tags::create_usertag( $u, $tag->{name} ); + LJ::Tags::create_usertag( $u, $tag->{name}, { ignore_max => 1 } ); } } -1; \ No newline at end of file +1; diff -r d62f415767a4 -r 6f6d5695a676 cgi-bin/ljprotocol.pl --- a/cgi-bin/ljprotocol.pl Sun Mar 01 19:21:55 2009 +0000 +++ b/cgi-bin/ljprotocol.pl Sun Mar 01 23:32:50 2009 +0000 @@ -1465,6 +1465,7 @@ sub postevent my $logtag_opts = { remote => $u, + ignore_max => $flags->{ignore_tags_max} ? 1 : 0, }; if (ref $taginput eq 'ARRAY') { diff -r d62f415767a4 -r 6f6d5695a676 cgi-bin/taglib.pl --- a/cgi-bin/taglib.pl Sun Mar 01 19:21:55 2009 +0000 +++ b/cgi-bin/taglib.pl Sun Mar 01 23:32:50 2009 +0000 @@ -668,7 +668,8 @@ sub get_security_breakdown { # as a comma separated list of user-supplied tags which are then canonicalized # and used. 'remote' is the remote user taking the actions (required). # 'err_ref' is ref to scalar to return error messages in. optional, and may -# not be set by all error conditions. +# not be set by all error conditions. 'ignore_max' if specified will ignore +# a user's max tags limit. # returns: 1 on success, undef on error # </LJFUNC> sub update_logtags { @@ -780,7 +781,7 @@ sub update_logtags { # at this point we have enough information to determine if they're going to break their # max, so let's do that so we can bail early enough to prevent a rollback operation - my $max = $u->get_cap('tags_max'); + my $max = $opts->{ignore_max} ? 0 : $u->get_cap('tags_max'); if (@to_create && $max && $max > 0) { my $total = scalar(keys %$utags) + scalar(@to_create); return $err->(LJ::Lang::ml('taglib.error.toomany', { max => $max })) if $total > $max; @@ -1025,7 +1026,8 @@ sub reset_cache { # des-opts: Optional; hashref, possible keys being 'display' and value being whether or # not this tag should be a display tag and 'parenttagid' being the tagid of a # parent tag for hierarchy. 'err_ref' optional key should be a ref to a scalar -# where we will store text about errors. +# where we will store text about errors. 'ignore_max' if set will ignore the +# user's max tags limit when creating this tag. # returns: undef on error, else a hashref of { keyword => tagid } for each keyword defined # </LJFUNC> sub create_usertag { @@ -1049,7 +1051,7 @@ sub create_usertag { return undef unless $isvalid; # check to ensure we don't exceed the max of tags - my $max = $u->get_cap('tags_max'); + my $max = $opts->{ignore_max} ? 0 : $u->get_cap('tags_max'); if ($max && $max > 0) { my $cur = scalar(keys %{ LJ::Tags::get_usertags($u) || {} }); return $err->(LJ::Lang::ml('taglib.error.toomany', { max => $max })) --------------------------------------------------------------------------------