This commit is contained in:
2019-02-06 00:49:12 +03:00
commit 8dbb1bb605
4796 changed files with 506072 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
<?page
title=>Live LJR to LJ export.
body<=
<?h1 Welcome! h1?>
<?p
Here you can <a href="rlj2lj.bml">create or change</a> lj-gate or <a href="rlj_delete.bml">delete the gate</a>.
p?>
<?p
<a href="lj-gate-faq.html">LJ-gate FAQ</a>
p?>
<=body
page?>

View File

@@ -0,0 +1,144 @@
<?_info
nocache=>1
_info?>
<?page
title=><?_ml .title _ml?>
body<=
<?h1 Update LJR -> LJ live export parameters. h1?>
<br/>
<?_code
use strict;
use DBI;
use vars qw(%POST);
use XMLRPC::Lite;
use Digest::MD5 qw(md5_hex);
my $ret;
# copied from update.bml
if ($LJ::SERVER_DOWN) {
return LJ::server_down_html();
}
my $remote = LJ::get_remote();
# Errors that are unlikely to change between starting
# to compose an entry and submitting it.
if ($remote) {
if ($remote->underage) {
return BML::redirect("$LJ::SITEROOT/agecheck/?s=1");
}
if ($remote->identity) {
return "Non-$LJ::SITENAME users can't post, as they don't actually have journals here.\n";
}
if (! LJ::get_cap($remote, "can_post")) {
return $LJ::MSG_NO_POST || $ML{'.error.cantpost'};
}
}
else {
return "Please login.\n";
}
my $qhost = $LJ::DBINFO{'master'}->{'host'};
my $quser = $LJ::DBINFO{'master'}->{'user'};
my $qpass = $LJ::DBINFO{'master'}->{'pass'};
my $qsock = $LJ::DBINFO{'master'}->{'sock'};
my $qport = $LJ::DBINFO{'master'}->{'port'};
#my $qdb = $LJ::DBINFO{'master'}->{'dbname'};
my $qdb = "prod_ljgate";
my $alien=$POST{'alien'};
my $alienpass=$POST{'alienpass'};
my $mode=$POST{'mode'};
my $xmlrpc;
my $get_chal;
my $chal;
my $response;
my $login;
#åÓÌÉ ÎÁÍ ÕÖÅ ÐÅÒÅÄÁÌÉ ÐÁÒÁÍÅÔÒÙ, ÄÏÂÁ×ÌÑÅÍ ÐÏÌØÚÏ×ÁÔÅÌÅÊ...
if ($mode eq "add") {
$xmlrpc = new XMLRPC::Lite;
$xmlrpc->proxy("http://www.livejournal.com/interface/xmlrpc");
$get_chal = $xmlrpc->call("LJ.XMLRPC.getchallenge");
$chal = $get_chal->result->{'challenge'};
$response = md5_hex($chal . md5_hex($alienpass));
$login = $xmlrpc->call('LJ.XMLRPC.login', {
'username' => $alien,
'auth_method' => 'challenge',
'auth_challenge' => $chal,
'auth_response' => $response,
});
if($login->fault){
$ret .= "Got error: " . $login->faultstring . "<br>";
$ret .= "<a href=rlj2lj.bml>Retry.</a>";
return $ret;
}
#ó×ÑÚÙ×ÁÅÍÓÑ Ó ÂÁÚÏÊ
my $dbh = DBI->connect(
"DBI:mysql:mysql_socket=$qsock;hostname=$qhost;port=$qport;database=$qdb",
$quser, $qpass,
) || die localtime(time) . ": Can't connect to database\n";
my $sqh;
$sqh = $dbh->prepare("delete from our_user where our_user = ?");
$sqh->execute($remote->{'user'});
$sqh = $dbh->prepare("insert INTO our_user (our_user,our_pass) VALUES(?, ?)");
$sqh->execute($remote->{'user'}, $remote->{'password'});
$sqh = $dbh->prepare("INSERT INTO alien (alien,alienpass) VALUES(?, ?)");
$sqh->execute($alien, $alienpass);
#õÚÎÁ£Í ID Ó×ÅÖÅÄÏÂÁ×ÌÅÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ
#...ÎÁ Ó×Ï£Í ÓÅÒ×ÅÒÅ
$sqh = $dbh->prepare("SELECT userid FROM our_user WHERE our_user=?");
$sqh->execute($remote->{'user'});
my $userid=$sqh->fetchrow_array;
#...É ÎÁ ÞÕÖÏÍ
$sqh = $dbh->prepare("SELECT alienid FROM alien WHERE alien=?");
$sqh->execute($alien);
my $alienid=$sqh->fetchrow_array;
#äÏÂÁ×ÌÑÅÍ ÎÏ×ÕÀ ÚÁÐÉÓØ × ÔÁÂÌÉÃÕ ÖÕÒÎÁÌÏ×,
#ËÏÔÏÒÙÅ ËÏÐÉÒÕÀÔÓÑ Ó ÎÁÛÅÇÏ ÓÅÒ×ÅÒÁ ×Ï×ÎÅ
$sqh = $dbh->prepare("INSERT INTO rlj2lj(userid,alienid) VALUES (?,?)");
$sqh->execute($userid, $alienid);
$ret .= "<br/>Export parameters updated:&nbsp;";
$ret .= "<a href=http://lj.rossia.org/users/$remote->{'user'}>$remote->{'user'}</a> is exported to <a href=http://www.livejournal.com/users/$alien>$alien</a>.";
$ret .= "<br/><br/><a href=/lj-gate/>LJ-gate root</a>";
$dbh->disconnect;
} else {
$ret .= "<form method=\"post\" action=\"rlj2lj.bml\">\n";
$ret .= LJ::html_hidden(mode => 'add');
$ret .= "<br>";
$ret .= "<b>Livejournal.com</b><br>";
$ret .= "<div class='formitemDesc'>" . BML::ml('Username') . "</div>";
$ret .= LJ::html_text({'name' => 'alien',
'size' => 15,
'maxlength' => 15,
});
$ret .= "<div class='formitemDesc'>" . BML::ml('Password') . "</div>";
$ret .= LJ::html_text({'name' => 'alienpass',
'size' => 30,
'maxlength' => 31,
'type' => "password",});
$ret .= "<br>";
$ret .= LJ::html_submit('confirm', $ML{'.confirm.submit'});
$ret .= "</form>\n";
};
return $ret;
_code?>
<=body
page?>

View File

@@ -0,0 +1,104 @@
<?_info
nocache=>1
_info?>
<?page
title=><?_ml .title _ml?>
body<=
<?h1 Remove LJR -> LJ live export. h1?>
<br/>
<?_code
use strict;
use DBI;
use vars qw(%POST);
# copied from update.bml
if ($LJ::SERVER_DOWN) {
return LJ::server_down_html();
}
my $remote = LJ::get_remote();
# Errors that are unlikely to change between starting
# to compose an entry and submitting it.
if ($remote) {
if ($remote->underage) {
return BML::redirect("$LJ::SITEROOT/agecheck/?s=1");
}
if ($remote->identity) {
return "Non-$LJ::SITENAME users can't post, as they don't actually have journals here.\n";
}
if (! LJ::get_cap($remote, "can_post")) {
return $LJ::MSG_NO_POST || $ML{'.error.cantpost'};
}
}
else {
return "Please login.\n";
}
my $qhost = $LJ::DBINFO{'master'}->{'host'};
my $quser = $LJ::DBINFO{'master'}->{'user'};
my $qpass = $LJ::DBINFO{'master'}->{'pass'};
my $qsock = $LJ::DBINFO{'master'}->{'sock'};
my $qport = $LJ::DBINFO{'master'}->{'port'};
#my $qdb = $LJ::DBINFO{'master'}->{'dbname'};
my $qdb = "prod_ljgate";
my $dbh = DBI->connect(
"DBI:mysql:mysql_socket=$qsock;hostname=$qhost;port=$qport;database=$qdb",
$quser, $qpass,
) || die localtime(time) . ": Can't connect to database\n";
my $sqh;
#ID ÕÄÁÌÑÅÍÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ LJR
my $user_id;
#ID ÕÄÁÌÑÅÍÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ LiveJournal
my $alien_id;
#÷Ù×ÏÄÉÍ ÆÏÒÍÕ ÉÌÉ ÄÏÂÁ×ÌÑÅÍ ÐÏÌØÚÏ×ÁÔÅÌÑ × ÂÁÚÕ?
my $mode=$POST{'mode'};
#÷Ù×ÏÄ
my $ret;
#åÓÌÉ ÎÁÍ ÕÖÅ ÐÅÒÅÄÁÌÉ ÐÁÒÁÍÅÔÒÙ, ÕÄÁÌÑÅÍ ÐÏÌØÚÏ×ÁÔÅÌÑ...
if ($mode eq "del") {
#úÁÂÉÒÁÅÍ ÉÚ ÔÁÂÌÉÃÙ our_user ID, ÌÏÇÉÎ É ÐÁÒÏÌØ ÕÄÁÌÑÅÍÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ
my $sqh=$dbh->prepare("SELECT userid FROM our_user WHERE our_user=?");
$sqh->execute($remote->{'user'});
$user_id = $sqh->fetchrow_array;
#úÁÂÉÒÁÅÍ ÉÚ ÔÁÂÌÉÃÙ rlj2lj ID ÐÏÌØÚÏ×ÁÔÅÌÑ ÞÕÖÏÇÏ ÒÅÓÕÒÓÁ
$sqh = $dbh->prepare("SELECT alienid FROM rlj2lj WHERE userid=?");
$sqh->execute ($user_id);
$alien_id = $sqh->fetchrow_array;
#õÄÁÌÑÅÍ ÚÁÐÉÓØ ÉÚ ÔÁÂÌÉÃÙ rlj2lj
$sqh = $dbh->prepare("DELETE FROM rlj2lj WHERE userid=?");
$sqh->execute($user_id);
#õÄÁÌÑÅÍ ÄÁÎÎÙÅ Ï ÞÕÖÏÍ ÐÏÌØÚÏ×ÁÔÅÌÅ
$sqh = $dbh->prepare("DELETE FROM alien WHERE alienid=?");
$sqh->execute($alien_id);
#õÄÁÌÑÅÍ ÄÁÎÎÙÅ Ï ÎÁÛÅÍ ÐÏÌØÚÏ×ÁÔÅÌÅ
$sqh = $dbh->prepare("DELETE FROM our_user WHERE userid=?");
$sqh->execute($user_id);
#õÄÁÌÑÅÍ ÄÁÎÎÙÅ Ï ÐÏÓÔÉÎÇÁÈ
$sqh = $dbh->prepare("DELETE FROM rlj_lj_id WHERE userid=?");
$sqh->execute($user_id);
$ret .= "<br/>Live LJR -> LJ export removed.";
$ret .= "<br/><br/><a href=/lj-gate/>LJ-gate root</a>";
}
#...× ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ×Ù×ÏÄÉÍ ÆÏÒÍÕ
else {
$ret .= "<form method=\"post\" action=\"rlj_delete.bml\">\n";
$ret .= LJ::html_hidden(mode => 'del');
$ret .= LJ::html_submit('confirm', 'Remove export!');
};
$dbh->disconnect;
return $ret;
_code?>
<=body
page?>