Cleanup repository from old deprecated scripts and server configs

This commit is contained in:
Yuriy Pikhtarev 2017-02-03 02:03:10 +03:00
commit 648c1bcbcb
No known key found for this signature in database
GPG key ID: 3A9B5A757B48ECC6
20 changed files with 2 additions and 2019 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,82 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
// 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,65 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
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,269 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
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,33 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
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,426 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
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,26 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
$passwords = array();

View file

@ -1,42 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
// 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,110 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
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,33 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
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,432 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
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,26 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
$passwords = array();

View file

@ -1,42 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
// 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,109 +0,0 @@
<?php
/**
* MIT License
*
* Copyright (c) 2005-2017 TorrentPier
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
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,5 +0,0 @@
$ mkdir /tmp/nginx
$ mkdir /tmp/nginx/fastcgi_temp
$ mkdir /tmp/nginx/client_temp
$ mkdir /var/log/nginx/

View file

@ -1,31 +0,0 @@
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
fastcgi_temp_path /tmp/nginx/fastcgi_temp 1 2;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

View file

@ -1,154 +0,0 @@
user www www;
worker_processes auto;
#error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
worker_rlimit_nofile 1024;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] $request '
# '"$status" $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#log_format IP .$remote_addr.;
access_log off;
server_tokens off;
reset_timedout_connection on;
sendfile on;
# http://en.wikipedia.org/wiki/Asynchronous_I/O
# aio sendfile;
output_buffers 1 64k;
tcp_nopush on;
tcp_nodelay on;
send_lowat 12000;
log_not_found off;
keepalive_timeout 65;
limit_req_zone $binary_remote_addr zone=one:16m rate=5r/s;
gzip on;
gzip_vary on;
gzip_min_length 2048;
gzip_comp_level 5;
gzip_http_version 1.0;
gzip_proxied any;
gzip_disable "msie6";
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
client_max_body_size 10m;
large_client_header_buffers 4 8k;
client_body_temp_path /tmp/nginx/client_temp 1 2;
server {
#listen 80 default sndbuf=32k rcvbuf=8k accept_filter=httpready;
#listen [::]:80 default sndbuf=32k rcvbuf=8k accept_filter=httpready;
listen 80 default sndbuf=32k rcvbuf=8k;
server_name sitedomain.ru;
charset utf8;
access_log off;
location / {
root /var/www;
index index.php index.html index.htm;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
# pass the PHP scripts to FastCGI server listening on /tmp/php.sock
location ~ \.php$ {
#limit_req zone=one burst=20 nodelay;
#limit_req_log_level info;
root /var/www;
fastcgi_index index.php;
fastcgi_pass unix:/tmp/php.sock; # 127.0.0.1:9000;
fastcgi_intercept_errors on;
# FreeBSD Optimization
fastcgi_pass_request_body off;
client_body_in_file_only clean;
fastcgi_param REQUEST_BODY_FILE $request_body_file;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
include fastcgi_params;
}
# rewrite to XBTT (old)
# location ^~ /bt/ {
# access_log off;
# if ( $query_string ~ "^uk=([^&?]{10})[&?]+(.*)$" ) {
# set $uk $1;
# set $qs $2&ip=$remote_addr;
# }
# if ( $query_string ~ "^uk=([^&?]{10})[&?]+((.*&|)ip=.*)$" ) {
# set $uk $1;
# set $qs $2;
# }
# if ( $qs ) {
# rewrite ^.*/([a-z]+)(\.php|)$ /$uk/$1?$qs break;
# }
# rewrite ^/?(.*)$ /$1?ip=$remote_addr&$query_string break;
# proxy_pass http://127.0.0.1:2710/;
# }
# cache static files
location ~* \.(jpg|jpeg|gif|png|css|js|ico)$ {
root /var/www;
access_log off;
expires 30d;
add_header Cache-Control public;
}
# sitemap rewrite
rewrite ^/sitemap.xml$ /internal_data/sitemap/sitemap.xml;
# deny access to admin folder
location ~ \/admin|backup\/ {
deny all;
#allow YOUR_IP;
}
# deny access to system folder
location ~ \/(install|internal_data|library)\/ {
deny all;
}
# deny access to git folder
location ~ /\.git {
deny all;
}
# deny access to .htaccess, if apache's document root concurs with nginx's one
location ~ /\.ht {
deny all;
}
# deny access to critical files
location ~ \.(.*sql|tpl|db|inc|log|md)$ {
deny all;
}
}
}

View file

@ -1,104 +0,0 @@
source torrentpier
{
type = mysql
sql_host = localhost
sql_user = user
sql_pass = pass
sql_db = dbase
sql_query_pre = SET NAMES utf8
sql_query_pre = SET CHARACTER_SET_RESULTS=utf8
sql_query_pre = SET CHARACTER_SET_CLIENT=utf8
}
source topics: torrentpier
{
sql_query = \
SELECT topic_id, forum_id, topic_title \
FROM bb_topics \
WHERE topic_id BETWEEN $start AND $end
sql_query_range = SELECT MIN(topic_id), MAX(topic_id) FROM bb_topics
sql_range_step = 100000
sql_attr_uint = forum_id
sql_ranged_throttle = 50
sql_query_info = SELECT * FROM bb_topics WHERE topic_id = $id
}
source posts: torrentpier
{
sql_query = \
SELECT pt.post_id, pt.post_text, t.topic_title, t.topic_id, t.forum_id \
FROM bb_posts_text pt \
LEFT JOIN bb_topics t on pt.post_id = t.topic_first_post_id \
WHERE pt.post_id BETWEEN $start AND $end
sql_query_range = SELECT MIN(post_id), MAX(post_id) FROM bb_posts_text
sql_range_step = 100000
sql_attr_uint = topic_id
sql_attr_uint = forum_id
sql_ranged_throttle = 50
sql_query_info = SELECT * FROM bb_posts_text WHERE post_id = $id
}
source users: torrentpier
{
sql_query = \
SELECT user_id, username \
FROM bb_users \
WHERE user_id BETWEEN $start AND $end
sql_query_range = SELECT 1, MAX(user_id) FROM bb_users
sql_range_step = 1000
sql_query_info = SELECT * FROM bb_users WHERE user_id = $id
}
index topics
{
docinfo = extern
morphology = stem_enru
charset_type = utf-8
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42C->U+430..U+44C, U+42E..U+42F->U+44E..U+44F, U+430..U+44C, U+44E..U+44F, U+0401->U+0435, U+0451->U+0435, U+042D->U+0435, U+044D->U+0435
min_prefix_len = 0
min_infix_len = 0
min_word_len = 1
min_stemming_len = 4
enable_star = 1
phrase_boundary = :, - , . , $
phrase_boundary_step = 1
html_strip = 1
path = ./sphinx/data/topics
source = topics
}
index posts: topics
{
path = ./sphinx/data/posts
source = posts
}
index users: topics
{
path = ./sphinx/data/users
source = users
}
indexer
{
mem_limit = 256M
}
searchd
{
listen = 127.0.0.1:3312
log = ./sphinx/log/searchd.log
query_log = ./sphinx/log/query.log
read_timeout = 5
max_children = 15
max_matches = 5000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
pid_file = ./sphinx/searchd.pid
}