Committer: sbelyaev
LJSUP-9307: Delayed entries bugfix. Option 'cluster' is added to 'delayed entry poster' worker.U branches/delayed_entries/bin/worker/delayed-entries-poster U branches/delayed_entries/cgi-bin/LJ/DelayedEntry/Scheduler.pm U branches/delayed_entries/cgi-bin/LJ/DelayedEntry.pm U branches/delayed_entries/cgi-bin/ljprotocol.pl U branches/delayed_entries/htdocs/editjournal.bml U branches/delayed_entries/htdocs/update.bml
Modified: branches/delayed_entries/bin/worker/delayed-entries-poster =================================================================== --- branches/delayed_entries/bin/worker/delayed-entries-poster 2011-08-20 11:28:42 UTC (rev 19796) +++ branches/delayed_entries/bin/worker/delayed-entries-poster 2011-08-22 02:59:07 UTC (rev 19797) @@ -15,8 +15,28 @@ use LJ::DelayedEntry::Scheduler; +my $cluster; + +sub options { + my $self = shift; + return ( + 'cluster|c=i' => \$cluster, + $self->SUPER::options(), + ); +} + +sub call_for_cluster { + my $coderef = shift; + my $opts = shift || {}; + + my $dbr = ($LJ::IS_DEV_SERVER) ? + LJ::get_cluster_reader($cluster) : LJ::DBUtil->get_inactive_db($cluster, $opts->{verbose}); + $coderef->($cluster, $dbr); +} + + sub work { - LJ::foreach_cluster( sub { LJ::DelayedEntry::Scheduler::on_pulse(@_); } ); + call_for_cluster( sub { LJ::DelayedEntry::Scheduler::on_pulse(@_); } ); return 1 if __PACKAGE__->should_quit; return 0; } @@ -25,4 +45,3 @@ sleep LJ::DelayedEntry::Scheduler::pulse_time(); ; } - Modified: branches/delayed_entries/cgi-bin/LJ/DelayedEntry/Scheduler.pm =================================================================== --- branches/delayed_entries/cgi-bin/LJ/DelayedEntry/Scheduler.pm 2011-08-20 11:28:42 UTC (rev 19796) +++ branches/delayed_entries/cgi-bin/LJ/DelayedEntry/Scheduler.pm 2011-08-22 02:59:07 UTC (rev 19797) @@ -6,7 +6,7 @@ use warnings; use Data::Dumper; -my $PULSE_TIME = 1 * 10; +my $PULSE_TIME = 1 * 60; sub pulse_time { return $PULSE_TIME; Modified: branches/delayed_entries/cgi-bin/LJ/DelayedEntry.pm =================================================================== --- branches/delayed_entries/cgi-bin/LJ/DelayedEntry.pm 2011-08-20 11:28:42 UTC (rev 19796) +++ branches/delayed_entries/cgi-bin/LJ/DelayedEntry.pm 2011-08-22 02:59:07 UTC (rev 19797) @@ -1389,10 +1389,6 @@ sub __get_now { my $dt = DateTime->now->set_time_zone('UTC'); - if ($dt->is_dst) { - $dt->subtract( hours => 1 ); - } - # make the proper date format return sprintf("%04d-%02d-%02d %02d:%02d", $dt->year, $dt->month, @@ -1413,9 +1409,9 @@ minute => $req->{'min'}, time_zone => $req->{timezone}, ); - if ($dt->is_dst) { - $dt->subtract( hours => 1 ); - } + #if ($dt->is_dst) { + # $dt->subtract( hours => 1 ); + #} $dt->set_time_zone( 'UTC' ); Modified: branches/delayed_entries/cgi-bin/ljprotocol.pl =================================================================== --- branches/delayed_entries/cgi-bin/ljprotocol.pl 2011-08-20 11:28:42 UTC (rev 19796) +++ branches/delayed_entries/cgi-bin/ljprotocol.pl 2011-08-22 02:59:07 UTC (rev 19797) @@ -65,6 +65,7 @@ LJ::tosagree_str('protocol' => 'title') } ], "157" => [ E_TEMP, "Tags error" ], + "158" => [ E_TEMP, "You have no rights to make this entry sticky"], # Client Errors "200" => [ E_PERM, "Missing required argument(s)" ], @@ -1972,7 +1973,7 @@ !( LJ::check_rel($ownerid, $posterid, 'S') || LJ::check_rel($ownerid, $posterid, 'M') ) ) { - return fail($err, 174); + return fail($err, 158); } my $qallowmask = $req->{'allowmask'}+0; @@ -2251,6 +2252,14 @@ "UNIX_TIMESTAMP($qeventtime), $rlogtime, $anum)"); return $fail->($err,501,$dberr) if $dberr; + if ( $req->{type} && $req->{type} eq 'sticky' && + $uowner->{'journaltype'} eq 'C' && + !( LJ::check_rel($ownerid, $posterid, 'S') || + LJ::check_rel($ownerid, $posterid, 'M') ) ) + { + return fail($err, 158); + } + # post become 'sticky post' if ( $req->{type} && $req->{type} eq 'sticky' ) { $uowner->set_sticky($jitemid); Modified: branches/delayed_entries/htdocs/editjournal.bml =================================================================== --- branches/delayed_entries/htdocs/editjournal.bml 2011-08-20 11:28:42 UTC (rev 19796) +++ branches/delayed_entries/htdocs/editjournal.bml 2011-08-22 02:59:07 UTC (rev 19797) @@ -267,7 +267,7 @@ 'ver' => $LJ::PROTOCOL_VER, 'username' => $u->{'user'}, 'usejournal' => $usejournal, - 'timezone' => $POST{'delayed_timezone'} || $POST{'delayed_timezone'}, + 'timezone' => $POST{'timezone'} || $POST{'timezone'}, 'itemid' => $itemid, 'delayedid' => $delayedid, 'type' => $POST{'type'} || $POST{'type'}, Modified: branches/delayed_entries/htdocs/update.bml =================================================================== --- branches/delayed_entries/htdocs/update.bml 2011-08-20 11:28:42 UTC (rev 19796) +++ branches/delayed_entries/htdocs/update.bml 2011-08-22 02:59:07 UTC (rev 19797) @@ -460,7 +460,7 @@ 'password' => $POST{'password'}, 'usejournal' => ($usejournalu) ? $usejournalu->user : undef, 'tz' => 'guess', - 'timezone' => $POST{'delayed_timezone'} || $POST{'delayed_timezone'}, + 'timezone' => $POST{'timezone'} || $POST{'timezone'}, 'type' => $POST{'type'} || $POST{'type'}, );