Удаление устаревшего

Конвертер и скрипт восстановления давным-давно морально и программно устарели. Избавляемся.
This commit is contained in:
Exile 2014-12-18 00:33:09 +03:00
commit 141dba0ddd
19 changed files with 6 additions and 1497 deletions

View file

@ -1,21 +0,0 @@
TBDev Yuna Scatari Edition pre6 to TorrentPier 1.0.x converter.
Quick guide:
1. Install and configure TorrentPier 1.0.0 or higher.
2. Import your TBDevYSE database into TorrentPier database (concretely 'comments', 'categories', 'torrents' and 'users' tables).
3. Put the contents of folder 'root' into your TorrentPier root.
4. Configure 'converter/settings.php' for optimal settings.
5. Run convert.php.
6. See 'converter/passwords.php' for new password to login under admin account.
7. Resychronize statistics using admin panel.
8. Make your new tracker popular!
----
9. If you need to notify users for new passwords (which are needed to login in TorrentPier) via TBDevYSE PM system,
copy two files: automatically generated 'converter/passwords.php' and 'for_tbdev/pass.php' to your TBDevYSE root and run pass.php
(Don't forget to remove these files after completion).
You allow to change message text, see $msg in pass.php for this.
10. If you want to redirect peers from older announce to new announce everytime, replace original TBDev's announce.php with
'for_tbdev/announce.php'
Cheers, RoadTrain.
http://torrentpier.me/

View file

@ -1,62 +0,0 @@
<?php
// TorrentPier bridge
define ('TP_ROOT', './../ptv/'); // Absolete or related local path to your TorrentPier installation
define ('USER_ID_DIFF', 1); // User_id difference between TP and TBDev (tp_user_id - tb_user_id)
// TorrentPier Database
$dbhost = 'localhost';
$dbname = 'dbase';
$dbuser = 'user';
$dbpasswd = 'pass';
$dbcharset = 'utf8';
// Start announce
define ('IN_ANNOUNCE', true);
require_once('./include/core_announce.php');
$passkey = @$_GET['passkey'];
if (!$passkey)
{
err('Passkey required');
}
dbconn();
$res = mysql_query("SELECT id FROM users WHERE passkey = " . sqlesc($passkey)) or err(mysql_error());
if (mysql_affected_rows() == 0)
{
err('Invalid passkey! Re-download the .torrent from '.$DEFAULTBASEURL);
}
$user = mysql_fetch_array($res);
$user_id = $user['id'];
mysql_close();
// Init connection to TP database for get passkey
@mysql_connect($dbhost, $dbuser, $dbpasswd);
@mysql_select_db($dbname);
mysql_query("SET NAMES $dbcharset");
// Get passkey for TorrentPier
$user_id += USER_ID_DIFF;
$res = mysql_query("SELECT auth_key FROM bb_bt_users WHERE user_id = $user_id") or err(mysql_error());
if (mysql_affected_rows() == 0)
{
err('Passkey doesn\'t created on new tracker or user doesn\'t exist');
}
$user = mysql_fetch_array($res);
mysql_close();
$_GET['uk'] = $user['auth_key'];
unset($res, $user, $dbpasswd, $passkey, $user_id);
// Execute TP's announce
chdir(TP_ROOT .'bt/');
require('announce.php');

View file

@ -1,44 +0,0 @@
<?php
require_once("include/bittorrent.php");
dbconn();
loggedinorreturn();
$new_tr_url = "http://torrentpier.me/"; // with ending slash
$subject = "Переезд на новый движок";
$msg = '[b]Внимание![/b] Наш трекер переехал на новый движок! Адрес трекера - [url='.$new_tr_url.']'.$new_tr_url.'[/url]
Вся база перенесена на новый движок, регистрироваться заново не надо.
Войти на трекер можно [url='.$new_tr_url.'login.php]здесь[/url]. Ваши данные на новом трекере:
[b]Логин:[/b] %s
[b]Пароль:[/b] %s
Сменить пароль можно после входа на трекер в [url='.$new_tr_url.'profile.php?mode=editprofile]настройках[/url].';
if (empty($_POST['confirm']))
{
stdhead();
echo '
<br />
<center>
<form action="'. $_SERVER['PHP_SELF'] .'" method="post">
<input type="submit" name="confirm" value="Start mass PM" />
</form>
</center>
';
}
else
{
if (!file_exists('passwords.php')) stderr($tracker_lang['error'], 'passwords.php not exists');
include('passwords.php');
stdhead();
foreach ($passwords as $user)
{
$msg_sql = sprintf($msg, $user['username'], $user['new_passwd']);
sql_query("INSERT INTO messages (receiver, added, subject, msg) VALUES({$user['tb_user_id']}, NOW(), ".sqlesc($subject).", ".sqlesc($msg_sql).")");
}
stdmsg('OK', 'Mass PM succesful');
}
stdfoot();

View file

@ -1,261 +0,0 @@
<?php
define ('IN_FORUM', true);
define ('BB_ROOT', './');
require (BB_ROOT .'common.php');
require(BB_ROOT . 'converter/constants.php');
require(BB_ROOT . 'converter/settings.php');
require(BB_ROOT . 'converter/functions.php');
// Start session management
$user->session_start();
if (!IS_ADMIN) die("Restricted access");
while (@ob_end_flush());
ob_implicit_flush();
error_reporting(E_ALL);
@ini_set('display_errors', 1);
?>
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head>
<body style="font: 12px Courier, monospace; white-space: nowrap;">
<?php
if (empty($_POST['confirm']))
{
echo '
<br />
<center>
<form action="'. $_SERVER['PHP_SELF'] .'" method="post">
<input type="submit" name="confirm" value="Start convert" />
</form>
</center>
</body>
';
exit;
}
else
{
@ini_set('memory_limit', '512M');
@ini_set('max_execution_time', @ini_get('max_execution_time') + 1200);
// Step 1: Converting Users
if (CONVERT_USERS)
{
if (CLEAN)
{
tp_users_cleanup();
print_ok ("Users cleared");
}
$max_uid = (int) get_max_val(BB_USERS, 'user_id');
$max_uid = ($max_uid > 1) ? $max_uid : 1;
$users_count = (int) get_count(TB_USERS_TABLE, 'id');
$loops = (int) ceil($users_count / C_USERS_PER_ONCE);
$pass = array();
switch(TR_TYPE)
{
case 'yse':
$_sql = 'avatar, ';
break;
default:
$_sql = '';
break;
}
for ($i = 0; $i < $loops; $i++)
{
$start = $i * C_USERS_PER_ONCE;
$offset = C_USERS_PER_ONCE;
$sql = "
SELECT
id, username, email, status, UNIX_TIMESTAMP(added) AS added, UNIX_TIMESTAMP(last_access) AS last_access,
class, icq, msn, aim, yahoo, website, $_sql
uploaded, downloaded, enabled, language
FROM ". TB_USERS_TABLE ."
ORDER BY id
LIMIT $start, $offset";
$users = DB()->fetch_rowset($sql);
DB()->sql_freeresult();
foreach ($users as $user)
{
$user['id'] += $max_uid;
$user['password'] = make_rand_str(15);
convert_user($user);
$pass[] = array(
'tb_user_id' => $user['id'] - $max_uid,
'username' => $user['username'],
'new_passwd' => $user['password'],
);
}
}
$passf = fopen('./converter/passwords.php', 'w');
$to_write = "<?php \n";
$to_write .= '$passwords = '. var_export($pass, true) .';';
fwrite($passf, $to_write);
fclose($passf);
set_auto_increment(BB_USERS, 'user_id');
print_ok ("Total $users_count users from TBDev converted");
unset($users, $pass, $to_write);
}
if (CONVERT_TORRENTS)
{
require_once(INC_DIR .'functions_post.php');
require_once(INC_DIR .'bbcode.php');
if (CLEAN)
{
tp_categories_cleanup();
tp_forums_cleanup();
tp_topics_cleanup();
print_ok ("Categories, forums and topics cleared");
}
$max_uid = !empty($max_uid) ? $max_uid : 1;
//Create a category for torrents
$max_cat_id = (int) get_max_val(BB_CATEGORIES, 'cat_id');
$tr_cat_id = $max_cat_id + 1;
$tp_cat_data = array(
"cat_id" => $tr_cat_id,
"cat_title" => 'Tracker',
);
tp_add_category($tp_cat_data);
set_auto_increment(BB_CATEGORIES, 'cat_id');
unset($tp_cat_data);
$cats = $db->fetch_rowset("SELECT id, sort, name FROM ". TB_CATEGORIES_TABLE);
DB()->sql_freeresult();
$max_forum_id = (int) get_max_val(BB_FORUMS, 'forum_id');
foreach ($cats as $cat)
{
$cat['id'] += $max_forum_id;
$cat['cat_id'] = $tr_cat_id;
convert_cat($cat);
}
set_auto_increment(BB_FORUMS, 'forum_id');
print_ok ("Categories from TBDev converted");
unset($cats);
// Start of torrents converting
switch(TR_TYPE)
{
case 'yse':
$_sql = 'image1, image2, ';
break;
case 'sky':
$_sql = 'poster, screenshot1, screenshot2, screenshot3, screenshot4, ';
break;
default:
$_sql = '';
break;
}
$max_topic_id = (int) get_max_val(BB_TOPICS, 'topic_id');
$max_post_id = (int) get_max_val(BB_POSTS, 'post_id');
$max_attach_id = (int) get_max_val(BB_ATTACHMENTS, 'attach_id');
$torrents_count = (int) get_count(TB_TORRENTS_TABLE, 'id');
$loops = (int) ceil($torrents_count / C_TORRENTS_PER_ONCE);
for ($i = 0; $i < $loops; $i++)
{
$start = $i * C_TORRENTS_PER_ONCE;
$offset = C_TORRENTS_PER_ONCE;
$sql = "
SELECT
id, info_hash, name, filename, search_text, descr, $_sql
category, UNIX_TIMESTAMP(added) AS added, size, views,
UNIX_TIMESTAMP(last_action) AS lastseed, times_completed, owner, sticky
FROM ". TB_TORRENTS_TABLE ."
ORDER BY id
LIMIT $start, $offset";
$torrents = DB()->fetch_rowset($sql);
DB()->sql_freeresult();
foreach ($torrents as $torrent)
{
$torrent['topic_id'] = $torrent['id'] + $max_topic_id;
$torrent['post_id'] = $torrent['id'] + $max_post_id;
$torrent['attach_id'] = $torrent['id'] + $max_attach_id;
$torrent['owner'] += $max_uid;
$torrent['descr'] = append_images($torrent);
convert_torrent($torrent);
//print_r($torrent);
}
}
set_auto_increment(BB_TOPICS, 'topic_id');
set_auto_increment(BB_POSTS, 'post_id');
print_ok ("Total $torrents_count torrents from TBDev converted");
unset($torrents);
if (CONVERT_COMMENTS)
{
$max_post_id = (int) get_max_val(BB_POSTS, 'post_id');
$max_topic_id = (int) get_max_val(BB_TOPICS, 'topic_id');
$max_attach_id = (int) get_max_val(BB_ATTACHMENTS, 'attach_id');
$comments_count = (int) get_count(TB_COMMENTS_TABLE, 'id');
$loops = (int) ceil($comments_count / C_COMMENTS_PER_ONCE);
for ($i = 0; $i < $loops; $i++)
{
$start = $i * C_COMMENTS_PER_ONCE;
$offset = C_COMMENTS_PER_ONCE;
$sql = "
SELECT
c.id, c.user, c.torrent, c.text, tor.category,
UNIX_TIMESTAMP(c.added) AS added, UNIX_TIMESTAMP(c.editedat) AS editedat, c.ip
FROM ". TB_COMMENTS_TABLE ." c
LEFT JOIN ". TB_TORRENTS_TABLE ." tor ON(tor.id = c.torrent)
WHERE c.torrent <> 0
ORDER BY c.id
LIMIT $start, $offset";
$comments = DB()->fetch_rowset($sql);
DB()->sql_freeresult();
foreach ($comments as $comment)
{
$comment['user'] += $max_uid;
$comment['id'] += $max_post_id;
convert_comment($comment);
}
}
unset($comments);
set_auto_increment(BB_POSTS, 'post_id');
print_ok ("Total $comments_count comments from TBDev converted");
}
}
?>
</div>
<br />
Converting completed.
</body>
</html>
<?php } ?>

View file

@ -1,8 +0,0 @@
<?php
if (!defined('EXCLUDED_USERS_CSV')) { define('EXCLUDED_USERS_CSV', join(',', array(GUEST_UID, BOT_UID,))); }
define('TB_USERS_TABLE', 'users');
define('TB_CATEGORIES_TABLE', 'categories');
define('TB_TORRENTS_TABLE', 'torrents');
define('TB_COMMENTS_TABLE', 'comments');
define('MYBB_FORUMS_TABLE', 'mybb_forums');

View file

@ -1,424 +0,0 @@
<?php
function print_ok ($sql)
{
global $err;
echo ($err) ? "\n<br />" : '';
$err = '';
echo '<div>';
echo "<font color=darkgreen><b>OK</b> - $sql</font>". str_repeat(' ', 256) ."\n<br />";
echo '</div>';
}
function hex2bin($h)
{
if (!is_string($h)) return null;
$r='';
for ($a=0; $a<strlen($h); $a+=2) { $r.=chr(hexdec($h{$a}.$h{($a+1)})); }
return $r;
}
function get_max_val($table_name, $column)
{
$row = DB()->fetch_row("SELECT MAX($column) AS $column FROM $table_name LIMIT 1");
return $row[$column];
}
function get_count($table_name, $column)
{
$row = DB()->fetch_row("SELECT COUNT($column) AS $column FROM $table_name LIMIT 1");
return $row[$column];
}
function set_auto_increment($table_name, $column, $val = null)
{
if (empty($val))
{
$row = DB()->fetch_row("SELECT MAX($column) AS val FROM $table_name LIMIT 1");
DB()->sql_freeresult();
$val = (int) $row['val'] + 1;
}
DB()->query("ALTER TABLE $table_name auto_increment = $val");
}
// Users functions
function tp_users_cleanup()
{
DB()->query('DELETE FROM '. BB_USERS .' WHERE user_id NOT IN('. EXCLUDED_USERS_CSV .')');
DB()->query('TRUNCATE '. BB_BT_USERS);
}
function tp_user_level($tb_class)
{
switch($tb_class)
{
case 0:
case 1:
case 2:
case 3:
$level = 0;
break;
case 4:
$level = 2;
break;
case 5:
case 6:
case 7:
$level = 1;
break;
default:
$level = 0;
break;
}
return $level;
}
function convert_user($user)
{
$user_data = array(
"user_id" => $user['id'],
"user_active" => ($user['enabled'] == 'yes') ? true : false,
"username" => $user['username'],
"user_password" => md5($user['password']),
"user_lastvisit" => $user['last_access'],
"user_regdate" => $user['added'],
"user_level" => tp_user_level($user['class']),
"user_lang" => $user['language'],
"user_dateformat" => "Y-m-d H:i",
"user_opt" => 0,
"user_avatar" => !empty($user['avatar']) ? $user['avatar'] : null,
"user_avatar_type" => !empty($user['avatar']) ? 2 : null,
"user_email" => $user['email'],
"user_website" => $user['website'],
);
$columns = $values = array();
foreach ($user_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_USERS . " ($sql_columns) VALUES($sql_values);");
$bt_user_data = array(
"user_id" => $user['id'],
"auth_key" => make_rand_str(BT_AUTH_KEY_LENGTH),
"u_up_total" => $user['uploaded'],
"u_down_total" => $user['downloaded'],
);
$columns = $values = array();
foreach ($bt_user_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_bt_columns = implode(',', $columns);
$sql_bt_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_BT_USERS . " ($sql_bt_columns) VALUES($sql_bt_values);");
}
//Torrents and categories functions
function tp_categories_cleanup()
{
DB()->query('DELETE FROM '. BB_CATEGORIES);
}
function tp_add_category_old($id, $cat_title)
{
DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES ." (cat_id, cat_title)
VALUES ($id, '". DB()->escape($cat_title) ."')");
return;
}
function tp_add_category($cat_data)
{
$columns = $values = array();
foreach ($cat_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_bt_columns = implode(',', $columns);
$sql_bt_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES . " ($sql_bt_columns) VALUES($sql_bt_values);");
}
function tp_topics_cleanup()
{
DB()->query("TRUNCATE ". BB_ATTACHMENTS);
DB()->query("TRUNCATE ". BB_ATTACHMENTS_DESC);
DB()->query("TRUNCATE ". BB_BT_TORRENTS);
DB()->query("TRUNCATE ". BB_POSTS);
DB()->query("TRUNCATE ". BB_POSTS_HTML);
DB()->query("TRUNCATE ". BB_POSTS_SEARCH);
DB()->query("TRUNCATE ". BB_POSTS_TEXT);
DB()->query("TRUNCATE ". BB_TOPICS);
return;
}
function tp_add_topic($topic_data)
{
$columns = $values = array();
foreach ($topic_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_TOPICS . " ($sql_columns) VALUES($sql_values);");
return;
}
function tp_add_post($post_data)
{
foreach ($post_data as $key => $data)
{
$columns = $values = array();
foreach ($data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES($sql_values);");
}
return;
}
function tp_add_attach($attach_data)
{
foreach ($attach_data as $key => $data)
{
$columns = $values = array();
foreach ($data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES($sql_values);");
}
return;
}
function make_img_path ($name)
{
global $bb_cfg;
return make_url("files/images/" . $name);
}
function append_images($tor)
{
$poster = $screens = '';
switch(TR_TYPE)
{
case 'yse':
if (!empty($tor['image1']))
{
$poster = "[img=right]".make_img_path($tor['image1'])."[/img]";
}
if (!empty($tor['image2']))
{
$screens = '[spoiler="Скриншоты"][img]'.make_img_path($tor['image2'])."[/img][/spoiler]";
}
break;
case 'sky':
if (!empty($tor['poster']))
{
$poster = "[img=right]".make_img_path($tor['poster'])."[/img]";
}
$has_screens = !empty($tor['screenshot1']) || !empty($tor['screenshot2']) || !empty($tor['screenshot3']) || !empty($tor['screenshot4']);
if ($has_screens)
{
$screens .= '[spoiler="Скриншоты"]';
for ($i = 1; $i <= 4; $i++)
{
if (!empty($tor['screenshot'.$i]))
{
$screens .= "[img]".make_img_path($tor['screenshot'.$i])."[/img] \n";
}
}
$screens .= "[/spoiler]";
}
break;
}
return ($poster . $tor['descr'] . $screens);
}
function convert_torrent($torrent)
{
$topic_data = array(
"topic_id" => $torrent['topic_id'],
"forum_id" => $torrent['category'],
"topic_title" => $torrent['name'],
"topic_poster" => $torrent['owner'],
"topic_time" => $torrent['added'],
"topic_views" => $torrent['views'],
"topic_type" => ($torrent['sticky'] == 'yes') ? 1 : 0,
"topic_first_post_id" => $torrent['id'],
"topic_last_post_id" => $torrent['id'],
"topic_attachment" => 1,
"topic_dl_type" => 1,
"topic_last_post_time" => $torrent['added'],
);
tp_add_topic($topic_data);
$post_text = stripslashes(prepare_message(addslashes(unprepare_message($torrent['descr'])), true, true));
$post_data = array(
"posts" => array(
"post_id" => $torrent['post_id'],
"topic_id" => $torrent['topic_id'],
"forum_id" => $torrent['category'],
"poster_id" => $torrent['owner'],
"post_time" => $torrent['added'],
"post_attachment" => 1,
),
"posts_text" => array(
"post_id" => $torrent['post_id'],
"post_text" => $post_text,
),
"posts_search" => array(
"post_id" => $torrent['post_id'],
"search_words" => $torrent['search_text'],
),
);
tp_add_post($post_data);
$attach_data = array(
"attachments" => array(
"attach_id" => $torrent['attach_id'],
"post_id" => $torrent['post_id'],
"user_id_1" => $torrent['owner'],
),
"attachments_desc" => array(
"attach_id" => $torrent['attach_id'],
"physical_filename" => $torrent['id'] . ".torrent",
"real_filename" => $torrent['filename'],
"extension" => "torrent",
"mimetype" => "application/x-bittorrent",
"filesize" => @filesize(get_attachments_dir() .'/'. $torrent['id'] .".torrent"),
"filetime" => $torrent['added'],
"tracker_status" => 1,
),
);
tp_add_attach($attach_data);
//Torrents
if (BDECODE)
{
$filename = get_attachments_dir() .'/'. $torrent['id'] .".torrent";
if (!file_exists($filename))
{
return;
}
if (!function_exists('bdecode_file')) include_once(INC_DIR .'functions_torrent.php');
$tor = bdecode_file($filename);
$info = ($tor['info']) ? $tor['info'] : array();
$info_hash = pack('H*', sha1(bencode($info)));
$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');
}
else
{
$info_hash_sql = hex2bin($torrent['info_hash']);
}
$torrent_data = array(
"info_hash" => $info_hash_sql,
"post_id" => $torrent['post_id'],
"poster_id" => $torrent['owner'],
"topic_id" => $torrent['topic_id'],
"forum_id" => $torrent['category'],
"attach_id" => $torrent['attach_id'],
"size" => $torrent['size'],
"reg_time" => $torrent['added'],
"complete_count" => $torrent['times_completed'],
"seeder_last_seen" => $torrent['lastseed'],
);
$columns = $values = array();
foreach ($torrent_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". $db->escape($value) ."'";
}
$sql_columns = implode(', ', $columns);
$sql_values = implode(', ', $values);
DB()->query("INSERT IGNORE INTO ". BB_BT_TORRENTS . " ($sql_columns) VALUES($sql_values);");
return;
}
// Comments functions
function convert_comment($comment)
{
$post_text = prepare_message($comment['text'], true, true);
$post_data = array(
"posts" => array(
"post_id" => $comment['id'],
"topic_id" => $comment['torrent'],
"forum_id" => $comment['category'],
"poster_id" => $comment['user'],
"post_time" => $comment['added'],
"poster_ip" => encode_ip($comment['ip']),
"post_edit_time" => $comment['editedat'],
"post_edit_count" => $comment['editedat'] ? 1 : 0,
),
"posts_text" => array(
"post_id" => $comment['id'],
"post_text" => $post_text,
),
);
tp_add_post($post_data);
return;
}
//Forums functions
function tp_forums_cleanup()
{
DB()->query('TRUNCATE '. BB_FORUMS);
}
function convert_cat($forum, $allow_torrents = true)
{
$forum_data = array(
"forum_id" => $forum['id'],
"cat_id" => $forum['cat_id'],
"forum_name" => $forum['name'],
"forum_order" => $forum['sort'],
"allow_reg_tracker" => $allow_torrents,
"allow_porno_topic" => $allow_torrents,
);
$columns = $values = array();
foreach ($forum_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_FORUMS . " ($sql_columns) VALUES($sql_values);");
return;
}

View file

@ -1,3 +0,0 @@
<?php
$passwords = array();

View file

@ -1,18 +0,0 @@
<?php
// Tracker type
define('TR_TYPE', 'yse'); // 'sky' (SkyTracker) or 'yse' (TBDev YSE)
// Options
define('CLEAN', true); // Clean TorrentPier's database before converting?
//Users
define('CONVERT_USERS', true); // Converting users is enabled?
define('C_USERS_PER_ONCE', 250); // Number of users converting per once
//Torrents and categories
define('CONVERT_TORRENTS', true); // Converting torrents and categories is enabled?
define('C_TORRENTS_PER_ONCE', 400); // Number of torrents converting per once
define('BDECODE', false); // Recalculate info_hash using bdecode?
//Comments
define('CONVERT_COMMENTS', true); // Converting comments is enabled?
define('C_COMMENTS_PER_ONCE', 400); // Number of comments converting per once
//Mybb forums & topics
define('CONVERT_MYBB_FORUMS', false); // Converting forums is enabled?
define('C_FORUMS_PER_ONCE', 100); // Number of forums converting per once

View file

@ -1,98 +0,0 @@
<?php
define('IN_FORUM', true);
define('BB_ROOT', './');
require(BB_ROOT .'common.php');
require(INC_DIR .'functions_torrent.php');
require(BB_ROOT . 'converter/settings.php');
require(BB_ROOT . 'converter/functions.php');
// Init userdata
$user->session_start();
while (@ob_end_flush());
ob_implicit_flush();
?>
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head>
<body style="font: 12px Courier, monospace; white-space: nowrap;">
<?php
if (empty($_POST['confirm']))
{
echo '
<br />
<center>
<form action="'. $_SERVER['PHP_SELF'] .'" method="post">
<input type="submit" name="confirm" value="Recover" />
</form>
</center>
</body>
';
exit;
}
else
{
@ini_set('memory_limit', '512M');
@ini_set('max_execution_time', @ini_get('max_execution_time') + 1200);
$torrents_count = (int) get_count(BB_BT_TORRENTS, 'attach_id');
$loops = (int) ceil($torrents_count / C_TORRENTS_PER_ONCE);
$not_exist = array();
$attach_dir = get_attachments_dir() .'/';
for ($i = 0; $i < $loops; $i++)
{
$start = $i * C_TORRENTS_PER_ONCE;
$offset = C_TORRENTS_PER_ONCE;
$sql = "SELECT
tor.attach_id, tor.topic_id, ad.physical_filename
FROM ". BB_BT_TORRENTS ." tor
LEFT JOIN ". BB_ATTACHMENTS_DESC ." ad ON(ad.attach_id = tor.attach_id)
ORDER BY tor.attach_id
LIMIT $start, $offset";
$torrents = DB()->fetch_rowset($sql);
DB()->sql_freeresult();
foreach ($torrents as $torrent)
{
$filename = $attach_dir . $torrent['physical_filename'];
if (!file_exists($filename))
{
$not_exist[] = '<a href="viewtopic.php?t='. $torrent['topic_id'] .'">'. $filename .'</a>';
}
else
{
$tor = bdecode_file($filename);
$info = (!empty($tor['info'])) ? $tor['info'] : array();
$info_hash = pack('H*', sha1(bencode($info)));
$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');
DB()->query("UPDATE ". BB_BT_TORRENTS ."
SET info_hash = '$info_hash_sql'
WHERE attach_id = {$torrent['attach_id']}");
}
}
}
print_ok ("Completed");
if (!empty($not_exist))
{
print_ok ("These torrents doesn't exist in filesystem: ". implode(', ', array_unique($not_exist)));
}
}

View file

@ -1,8 +0,0 @@
<?php
if (!defined('EXCLUDED_USERS_CSV')) { define('EXCLUDED_USERS_CSV', join(',', array(GUEST_UID, BOT_UID,))); }
define('TB_USERS_TABLE', 'users');
define('TB_CATEGORIES_TABLE', 'categories');
define('TB_TORRENTS_TABLE', 'torrents');
define('TB_COMMENTS_TABLE', 'comments');
define('MYBB_FORUMS_TABLE', 'mybb_forums');

View file

@ -1,430 +0,0 @@
<?php
function print_ok ($sql)
{
global $err;
echo ($err) ? "\n<br />" : '';
$err = '';
echo '<div>';
echo "<font color=darkgreen><b>OK</b> - $sql</font>". str_repeat(' ', 256) ."\n<br />";
echo '</div>';
}
function hex2bin($h)
{
if (!is_string($h)) return null;
$r='';
for ($a=0; $a<strlen($h); $a+=2) { $r.=chr(hexdec($h{$a}.$h{($a+1)})); }
return $r;
}
function get_max_val($table_name, $column)
{
$row = DB()->fetch_row("SELECT MAX($column) AS $column FROM $table_name LIMIT 1");
return $row[$column];
}
function get_count($table_name, $column)
{
$row = DB()->fetch_row("SELECT COUNT($column) AS $column FROM $table_name LIMIT 1");
return $row[$column];
}
function set_auto_increment($table_name, $column, $val = null)
{
if (empty($val))
{
$row = DB()->fetch_row("SELECT MAX($column) AS val FROM $table_name LIMIT 1");
DB()->sql_freeresult();
$val = (int) $row['val'] + 1;
}
DB()->query("ALTER TABLE $table_name auto_increment = $val");
}
//Users functions
function tp_users_cleanup()
{
DB()->query('DELETE FROM '. BB_USERS .' WHERE user_id NOT IN('. EXCLUDED_USERS_CSV .')');
DB()->query('TRUNCATE '. BB_BT_USERS);
}
function tp_user_level($tb_class)
{
switch($tb_class)
{
case 0:
case 1:
case 2:
case 3:
$level = 0;
break;
case 4:
$level = 2;
break;
case 5:
case 6:
case 7:
$level = 1;
break;
default:
$level = 0;
break;
}
return $level;
}
function convert_user($user)
{
$user_data = array(
"user_id" => $user['id'],
"user_active" => ($user['enabled'] == 'yes') ? true : false,
"username" => $user['username'],
"user_password" => md5($user['password']),
"user_lastvisit" => $user['last_access'],
"user_regdate" => $user['added'],
"user_level" => tp_user_level($user['class']),
"user_lang" => $user['language'],
"user_dateformat" => "Y-m-d H:i",
"user_opt" => $user['opt'], // Added
"user_avatar" => !empty($user['avatar']) ? $user['avatar'] : null,
"user_avatar_type" => !empty($user['avatar']) ? 2 : null,
"user_email" => $user['email'],
"user_website" => $user['website'],
"user_icq" => $user['icq'],
"user_skype" => $user['skype'],
"user_twitter" => $user['twitter'],
"user_gender" => $user['gender'],
"user_birthday" => $user['user_birthday'],
);
$columns = $values = array();
foreach ($user_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_USERS . " ($sql_columns) VALUES ($sql_values);");
$bt_user_data = array(
"user_id" => $user['id'],
"auth_key" => make_rand_str(BT_AUTH_KEY_LENGTH),
"u_up_total" => $user['uploaded'],
"u_down_total" => $user['downloaded'],
);
$columns = $values = array();
foreach ($bt_user_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_bt_columns = implode(',', $columns);
$sql_bt_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_BT_USERS . " ($sql_bt_columns) VALUES ($sql_bt_values);");
}
//Torrents and categories functions
function tp_categories_cleanup()
{
DB()->query('DELETE FROM '. BB_CATEGORIES);
}
function tp_add_category_old($id, $cat_title)
{
DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES ." (cat_id, cat_title)
VALUES ($id, '". DB()->escape($cat_title) ."')");
return;
}
function tp_add_category($cat_data)
{
$columns = $values = array();
foreach ($cat_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_bt_columns = implode(',', $columns);
$sql_bt_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES . " ($sql_bt_columns) VALUES ($sql_bt_values);");
}
function tp_topics_cleanup()
{
DB()->query("TRUNCATE ". BB_ATTACHMENTS);
DB()->query("TRUNCATE ". BB_ATTACHMENTS_DESC);
DB()->query("TRUNCATE ". BB_BT_TORRENTS);
DB()->query("TRUNCATE ". BB_POSTS);
DB()->query("TRUNCATE ". BB_POSTS_HTML);
DB()->query("TRUNCATE ". BB_POSTS_SEARCH);
DB()->query("TRUNCATE ". BB_POSTS_TEXT);
DB()->query("TRUNCATE ". BB_TOPICS);
return;
}
function tp_add_topic($topic_data)
{
$columns = $values = array();
foreach ($topic_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_TOPICS . " ($sql_columns) VALUES ($sql_values);");
return;
}
function tp_add_post($post_data)
{
foreach ($post_data as $key => $data)
{
$columns = $values = array();
foreach ($data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES ($sql_values);");
}
return;
}
function tp_add_attach($attach_data)
{
foreach ($attach_data as $key => $data)
{
$columns = $values = array();
foreach ($data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES ($sql_values);");
}
return;
}
function make_img_path ($name)
{
global $bb_cfg;
return make_url("files/images/" . $name);
}
function append_images($tor)
{
$poster = $screens = '';
switch(TR_TYPE)
{
case 'yse':
if (!empty($tor['image1']))
{
$poster = "[img=right]".make_img_path($tor['image1'])."[/img]";
}
if (!empty($tor['image2']))
{
$screens = '[spoiler="Скриншоты"][img]'.make_img_path($tor['image2'])."[/img][/spoiler]";
}
break;
case 'sky':
if (!empty($tor['poster']))
{
$poster = "[img=right]".make_img_path($tor['poster'])."[/img]";
}
$has_screens = !empty($tor['screenshot1']) || !empty($tor['screenshot2']) || !empty($tor['screenshot3']) || !empty($tor['screenshot4']);
if ($has_screens)
{
$screens .= '[spoiler="Скриншоты"]';
for ($i = 1; $i <= 4; $i++)
{
if (!empty($tor['screenshot'.$i]))
{
$screens .= "[img]".make_img_path($tor['screenshot'.$i])."[/img] \n";
}
}
$screens .= "[/spoiler]";
}
break;
}
return ($poster . $tor['descr'] . $screens);
}
function convert_torrent($torrent)
{
$topic_data = array(
"topic_id" => $torrent['topic_id'],
"forum_id" => $torrent['category'],
"topic_title" => $torrent['name'],
"topic_poster" => $torrent['owner'],
"topic_time" => $torrent['added'],
"topic_views" => $torrent['views'],
"topic_type" => ($torrent['sticky'] == 'yes') ? 1 : 0,
"topic_first_post_id" => $torrent['id'],
"topic_last_post_id" => $torrent['id'],
"topic_attachment" => 1,
"topic_dl_type" => 1,
"topic_last_post_time" => $torrent['added'],
);
tp_add_topic($topic_data);
$post_text = stripslashes(prepare_message(addslashes(unprepare_message($torrent['descr'])), true, true));
$post_data = array(
"posts" => array(
"post_id" => $torrent['post_id'],
"topic_id" => $torrent['topic_id'],
"forum_id" => $torrent['category'],
"poster_id" => $torrent['owner'],
"post_time" => $torrent['added'],
"post_attachment" => 1,
),
"posts_text" => array(
"post_id" => $torrent['post_id'],
"post_text" => $post_text,
),
"posts_search" => array(
"post_id" => $torrent['post_id'],
"search_words" => $torrent['search_text'],
),
);
tp_add_post($post_data);
$attach_data = array(
"attachments" => array(
"attach_id" => $torrent['attach_id'],
"post_id" => $torrent['post_id'],
"user_id_1" => $torrent['owner'],
),
"attachments_desc" => array(
"attach_id" => $torrent['attach_id'],
"physical_filename" => $torrent['id'] . ".torrent",
"real_filename" => $torrent['filename'],
"extension" => "torrent",
"mimetype" => "application/x-bittorrent",
"filesize" => @filesize(get_attachments_dir() .'/'. $torrent['id'] .".torrent"),
"filetime" => $torrent['added'],
"tracker_status" => 1,
),
);
tp_add_attach($attach_data);
//Torrents
if (BDECODE)
{
$filename = get_attachments_dir() .'/'. $torrent['id'] .".torrent";
if (!file_exists($filename))
{
return;
}
if (!function_exists('bdecode_file')) include_once('./includes/functions_torrent.php');
$tor = bdecode_file($filename);
$info = ($tor['info']) ? $tor['info'] : array();
$info_hash = pack('H*', sha1(bencode($info)));
$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');
}
else
{
$info_hash_sql = hex2bin($torrent['info_hash']);
}
$torrent_data = array(
"info_hash" => $info_hash_sql,
"post_id" => $torrent['post_id'],
"poster_id" => $torrent['owner'],
"topic_id" => $torrent['topic_id'],
"forum_id" => $torrent['category'],
"attach_id" => $torrent['attach_id'],
"size" => $torrent['size'],
"reg_time" => $torrent['added'],
"complete_count" => $torrent['times_completed'],
"seeder_last_seen" => $torrent['lastseed'],
);
$columns = $values = array();
foreach ($torrent_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(', ', $columns);
$sql_values = implode(', ', $values);
DB()->query("INSERT IGNORE INTO ". BB_BT_TORRENTS . " ($sql_columns) VALUES($sql_values);");
return;
}
//Comments functions
function convert_comment($comment)
{
$post_text = prepare_message($comment['text'], true, true);
$post_data = array(
"posts" => array(
"post_id" => $comment['id'],
"topic_id" => $comment['torrent'],
"forum_id" => $comment['category'],
"poster_id" => $comment['user'],
"post_time" => $comment['added'],
"poster_ip" => encode_ip($comment['ip']),
"post_edit_time" => $comment['editedat'],
"post_edit_count" => $comment['editedat'] ? 1 : 0,
),
"posts_text" => array(
"post_id" => $comment['id'],
"post_text" => $post_text,
),
);
tp_add_post($post_data);
return;
}
//Forums functions
function tp_forums_cleanup()
{
DB()->query('TRUNCATE '. BB_FORUMS);
}
function convert_cat($forum, $allow_torrents = true)
{
$forum_data = array(
"forum_id" => $forum['id'],
"cat_id" => $forum['cat_id'],
"forum_name" => $forum['name'],
"forum_order" => $forum['sort'],
"allow_reg_tracker" => $allow_torrents,
"allow_dl_topic" => $allow_torrents,
);
$columns = $values = array();
foreach ($forum_data as $column => $value)
{
$columns[] = $column;
$values[] = "'". DB()->escape($value) ."'";
}
$sql_columns = implode(',', $columns);
$sql_values = implode(',', $values);
DB()->query("INSERT IGNORE INTO ". BB_FORUMS . " ($sql_columns) VALUES ($sql_values);");
return;
}

View file

@ -1,3 +0,0 @@
<?php
$passwords = array();

View file

@ -1,18 +0,0 @@
<?php
// Tracker type
define('TR_TYPE', 'yse'); // 'sky' (SkyTracker) or 'yse' (TBDev YSE)
// Options
define('CLEAN', true); // Clean TorrentPier's database before converting?
//Users
define('CONVERT_USERS', true); // Converting users is enabled?
define('C_USERS_PER_ONCE', 250); // Number of users converting per once
//Torrents and categories
define('CONVERT_TORRENTS', true); // Converting torrents and categories is enabled?
define('C_TORRENTS_PER_ONCE', 400); // Number of torrents converting per once
define('BDECODE', false); // Recalculate info_hash using bdecode?
//Comments
define('CONVERT_COMMENTS', true); // Converting comments is enabled?
define('C_COMMENTS_PER_ONCE', 400); // Number of comments converting per once
//Mybb forums & topics
define('CONVERT_MYBB_FORUMS', false); // Converting forums is enabled?
define('C_FORUMS_PER_ONCE', 100); // Number of forums converting per once

View file

@ -1,97 +0,0 @@
<?php
define('IN_FORUM', true);
define('BB_ROOT', './');
require(BB_ROOT .'common.php');
require(INC_DIR .'functions_torrent.php');
require(BB_ROOT . 'converter/settings.php');
require(BB_ROOT . 'converter/functions.php');
// Init userdata
$user->session_start();
while (@ob_end_flush());
ob_implicit_flush();
?><!DOCTYPE html>
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head>
<body style="font: 12px Courier, monospace; white-space: nowrap;">
<?php
if (empty($_POST['confirm']))
{
echo '
<br />
<center>
<form action="'. $_SERVER['PHP_SELF'] .'" method="post">
<input type="submit" name="confirm" value="Recover" />
</form>
</center>
</body>
';
exit;
}
else
{
@ini_set('memory_limit', '512M');
@ini_set('max_execution_time', @ini_get('max_execution_time') + 1200);
$torrents_count = (int) get_count(BB_BT_TORRENTS, 'attach_id');
$loops = (int) ceil($torrents_count / C_TORRENTS_PER_ONCE);
$not_exist = array();
$attach_dir = get_attachments_dir() .'/';
for ($i = 0; $i < $loops; $i++)
{
$start = $i * C_TORRENTS_PER_ONCE;
$offset = C_TORRENTS_PER_ONCE;
$sql = "SELECT
tor.attach_id, tor.topic_id, ad.physical_filename
FROM ". BB_BT_TORRENTS ." tor
LEFT JOIN ". BB_ATTACHMENTS_DESC ." ad ON(ad.attach_id = tor.attach_id)
ORDER BY tor.attach_id
LIMIT $start, $offset";
$torrents = DB()->fetch_rowset($sql);
DB()->sql_freeresult();
foreach ($torrents as $torrent)
{
$filename = $attach_dir . $torrent['physical_filename'];
if (!file_exists($filename))
{
$not_exist[] = '<a href="viewtopic.php?t='. $torrent['topic_id'] .'">'. $filename .'</a>';
}
else
{
$tor = bdecode_file($filename);
$info = (!empty($tor['info'])) ? $tor['info'] : array();
$info_hash = pack('H*', sha1(bencode($info)));
$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');
DB()->query("UPDATE ". BB_BT_TORRENTS ."
SET info_hash = '$info_hash_sql'
WHERE attach_id = {$torrent['attach_id']}");
}
}
}
print_ok ("Completed");
if (!empty($not_exist))
{
print_ok ("These torrents doesn't exist in filesystem: ". implode(', ', array_unique($not_exist)));
}
}

View file

@ -1000,6 +1000,8 @@ CREATE TABLE IF NOT EXISTS `bb_topics` (
`topic_moved_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`topic_attachment` tinyint(1) NOT NULL DEFAULT '0',
`topic_dl_type` tinyint(1) NOT NULL DEFAULT '0',
`attach_ext_id` tinyint(4) NOT NULL DEFAULT '0',
`filesize` mediumint(8) unsigned NOT NULL DEFAULT '0',
`topic_last_post_time` int(11) NOT NULL DEFAULT '0',
`topic_show_first_post` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`topic_id`),
@ -1012,7 +1014,7 @@ CREATE TABLE IF NOT EXISTS `bb_topics` (
-- ----------------------------
-- Records of bb_topics
-- ----------------------------
INSERT INTO `bb_topics` VALUES ('1', '1', 'Добро пожаловать в TorrentPier II', '2', UNIX_TIMESTAMP(), '2', '0', '0', '0', '0', '1', '1', '0', '0', '0', '1414658247', '0');
INSERT INTO `bb_topics` VALUES ('1', '1', 'Добро пожаловать в TorrentPier II', '2', UNIX_TIMESTAMP(), '2', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', UNIX_TIMESTAMP(), '0');
-- ----------------------------
-- Table structure for `bb_topics_watch`

View file

@ -60,4 +60,6 @@ DELETE FROM `bb_config` WHERE `config_name` = 'active_ads';
DELETE FROM `bb_cron` WHERE `cron_script` = 'attach_maintenance.php';
DROP TABLE IF EXISTS `bb_attachments_config`;
DROP TABLE IF EXISTS `bb_attach_quota`;
DROP TABLE IF EXISTS `bb_quota_limits`;
DROP TABLE IF EXISTS `bb_quota_limits`;
ALTER TABLE `bb_topics` ADD `attach_ext_id` TINYINT(4) NOT NULL DEFAULT '0' AFTER `topic_dl_type`;
ALTER TABLE `bb_topics` ADD `filesize` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER `attach_ext_id`;