83 lines
4.2 KiB
Plaintext
Executable File
83 lines
4.2 KiB
Plaintext
Executable File
<?page
|
||
title=><?_ml .title _ml?>
|
||
body<=
|
||
<?_code
|
||
{
|
||
sub process ($)
|
||
{
|
||
my ($id) = @_;
|
||
my $ftext = '<lj ';
|
||
my $rtext = '<ljr ';
|
||
|
||
my $dbh = LJ::get_db_writer();
|
||
|
||
# Process entry subject lines in own journal
|
||
|
||
$dbh->do("update logtext2 set subject = replace(subject, \'" . $ftext . "\', \'" . $rtext . "\') where journalid = ? and subject like \'%\' + \'" . $ftext . "\' + \'%\'", undef, $id);
|
||
|
||
# Process entry bodies in own journal
|
||
|
||
$dbh->do("update logtext2 set event = replace(event, \'" . $ftext . "\', \'" . $rtext . "\') where journalid = ? and event like \'%\' + \'" . $ftext . "\' + \'%\'", undef, $id);
|
||
|
||
# Process entry subject lines in communities
|
||
|
||
$dbh->do("update logtext2 left join log2 on logtext2.journalid=log2.journalid and logtext2.jitemid=log2.jitemid left join community on logtext2.journalid=community.userid set subject = replace(subject, \'" . $ftext . "\', \'" . $rtext . "\') where journalid = ? and subject like \'%\' + \'" . $ftext . "\' + \'%\'", undef, $id);
|
||
|
||
# Process entry bodies in own journal
|
||
|
||
$dbh->do("update logtext2 set event = replace(event, \'" . $ftext . "\', \'" . $rtext . "\') where journalid = ? and event like \'%\' + \'" . $ftext . "\' + \'%\'", undef, $id);
|
||
|
||
|
||
$dbh->do("update talktext2 left join talk2 on talktext2.journalid=talk2.journalid and talktext2.jtalkid=talk2.jtalkid set talktext2.body = replace(talktext2.body, \'" . $ftext . "\', \'" . $rtext . "\') where talk2.posterid = ? and talktext2.body like \'%\' + \'" . $ftext . "\' + \'%\'", undef, $id);
|
||
|
||
|
||
return 1;
|
||
}
|
||
|
||
use strict;
|
||
use vars qw(%GET %POST);
|
||
|
||
my $remote = LJ::get_remote();
|
||
return LJ::bad_input($ML{'error.noremote'})
|
||
unless $remote;
|
||
|
||
my $authas = $remote->{'user'};
|
||
my $u = LJ::get_authas_user($authas);
|
||
return LJ::bad_input($ML{'error.invalidauth'})
|
||
unless $u;
|
||
my $id = $remote->{'userid'};
|
||
|
||
# process form submission
|
||
if (LJ::did_post()) {
|
||
|
||
my $res = process($id);
|
||
|
||
# error updating?
|
||
return "<?h1 Что-то не сработало! h1?>\n"
|
||
unless $res;
|
||
|
||
# success
|
||
return "<?h1 Конвертация успешно проведена. h1?>\n";
|
||
}
|
||
|
||
# update form
|
||
|
||
my $ret;
|
||
|
||
$ret .= "<?h1 Переход на новый тэг ljr user. h1?><p>Мы ввели новую систему тэгов lj user и lj comm, которая позволяет легко различать пользователей разных сайтов и устраняет путаницу. Но есть одно "но": тэг lj user без дополнительного аргумента site теперь означает пользователя www.livejournal.com - а пользователи lj.rossia.org обозначаются тэгом ljr user. Если вы уже неоднократно использовали в своих записях lj user, имея в виду пользователей lj.rossia.org, здесь вы можете автоматически поправить все свои записи по новым правилам.</p><p>Имейте в виду, что это опасная операция: вы доверяете программе делать изменения в своих записях в базе данных. Конечно, мы тестировали эту программу, но любая программа все равно глупая. Действительно ли вы этого хотите? Если вы не абсолютно уверены, лучше не надо.</p><p>Технически, программа делает следующее: находит все ваши записи (включая записи в сообщества), меняет \"<lj \" на \"<ljr \", потом делает то же в заголовках записей и в оставленных вами где бы то ни было комментариях.</p><p>Вы сейчас работаете как пользователь <b>";
|
||
|
||
$ret .= $remote->{'user'};
|
||
|
||
$ret .= "</b>\n";
|
||
|
||
$ret .= "<form method='post' action='translatetoljruser.bml'>\n";
|
||
$ret .= "<input type=submit value='Update to new ljr user tag'>";
|
||
$ret .= "</form>\n\n";
|
||
|
||
return $ret;
|
||
}
|
||
_code?>
|
||
<=body
|
||
page?>
|
||
|