#!/usr/bin/perl
# This code was forked from the LiveJournal project owned and operated
# by Live Journal, Inc. The code has been modified and expanded by 
# Dreamwidth Studios, LLC. These files were originally licensed under
# the terms of the license supplied by Live Journal, Inc, which can
# currently be found at:
#
# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
#
# In accordance with the original license, this code and all its
# modifications are provided under the GNU General Public License. 
# A copy of that license can be found in the LICENSE file included as
# part of this distribution.

use strict;
BEGIN {
    require "$ENV{LJHOME}/cgi-bin/ljlib.pl";
}

use LJ::Worker::TheSchwartz;
use LJ::Entry;

schwartz_decl('LJ::Worker::DeleteEntry');
schwartz_work();

package LJ::Worker::DeleteEntry;
use base 'TheSchwartz::Worker';

sub work {
    my ($class, $job) = @_;
    my $args   = $job->arg;
    my $client = $job->handle->client;

    die "Failed to delete entry.\n" unless
        LJ::delete_entry($args->{'uid'},
                         $args->{'jitemid'},
                         0,   # not quick.  do it all.
                         $args->{'anum'});
    $job->completed;
}

sub keep_exit_status_for { 0 }
sub grab_for { 180 }
sub max_retries { 5 * 24 }  # 5 days * 24 hours
sub retry_delay {
    my ($class, $fails) = @_;
    return ((5*60, 5*60, 15*60, 30*60)[$fails] || 3600);
}
