Исправление в XBT closed

Started by Mikotka on 2011-10-06 08:36 — 26 replies, 8536 views

#1
Пока обнаружил два бага при работе ТП2 с XBT

1. Не отображается процент скаченного личерами
2. Не работает золото/серебро

Первый баг фиксится легко

открыть attach_mod/displaying_torrent.php

Найти
$sql = "SELECT
                    tr.user_id, tr.ip, tr.port, tr.uploaded, tr.downloaded, tr.remain,
                    tr.seeder, tr.releaser, tr.speed_up, tr.speed_down, tr.update_time,

Добавить в запрос
tr.complete_percent,
Найти
    $template->assign_block_vars("$x_full.porthead", array());
                            }
                        }
                        $compl_size = ($peer['remain'] && $tor_size && $tor_size > $peer['remain']) ? ($tor_size - $peer['remain']) : 0;
                        $compl_perc = ($compl_size) ? floor($compl_size * 100 / $tor_size) : 0;

Заменить на
                       $template->assign_block_vars("$x_full.porthead", array());
                            }
                        }
                        $compl_size = ($peer['remain'] && $tor_size && $tor_size > $peer['remain']) ? ($tor_size - $peer['remain']) : 0;
if($bb_cfg['announce_type'] == 'xbt')
                            {$compl_perc = $peer['complete_percent'];}
                            else
                            {
                        $compl_perc = ($compl_size) ? floor($compl_size * 100 / $tor_size) : 0;
                        }
Найти
if ($peer['seeder'])
                    {
                        $seeders .= '<nobr><a href="'. $u_prof_href .'" class="seedmed">'. $peer['username'] .'</a>,</nobr> ';
                        $seed_count = $peer['username'];
                    }
                    else
                    {
                      $compl_size = (@$peer['remain'] && $tor_size && $tor_size > $peer['remain']) ? ($tor_size - $peer['remain']) : 0;
                        $compl_perc = ($compl_size) ? floor($compl_size * 100 / $tor_size) : 0;
Удалить или закомментировать
                         $compl_size = (@$peer['remain'] && $tor_size && $tor_size > $peer['remain']) ? ($tor_size - $peer['remain']) : 0;
                        $compl_perc = ($compl_size) ? floor($compl_size * 100 / $tor_size) : 0;

открыть includes/ucp/torrent_userprofile.php

Найти
$compl_perc = ($compl_size) ? floor($compl_size * 100 / $leeching[$i]['size']) : 0;
Заменить на
if($bb_cfg['announce_type'] == 'xbt')
                            {$compl_perc = $leeching[$i]['complete_percent'];}
                            else
                            {
                        $compl_perc = ($compl_size) ? floor($compl_size * 100 / $leeching[$i]['size']) : 0;
                        }

А вот со вторым багом пока не разобрался. В Си я ни бильмеса не соображаю, а похоже лезть в исходники хобота надо 🙁

UPD. Проценты подправлены по замечаниям
#2
С меня шоколадка =)
#3
Chumaster59,
Шоколадка от Харухи-тян... Я прям опасаюсь 🙂
#4
сорцы под ubuntu/debian нужны....
#5
XANDER-CAGE,
Сорцы чего? Если хобота, то они одни и теже.
#6
Mikotka, хобот я поставил, на конец. p/s поменял дефолтный код, на твой кодец в итоге нотис

Notice: Undefined index: complete_percent in /home/torrent/www/attach_mod/displaying_torrent.php on line 575

{$compl_perc = $peer['complete_percent'];}
#7
XANDER-CAGE,
p/s поменял дефолтный код, на твой кодец в итоге нотис
Нотис по сравнению с нерабочим кодом - фигня.

Чтобы избавится, просто удалите строки с вызовом в этом месте. Как выяснилось оно там вообще не нужно. Атавизм очередной

То есть найти
// Count only & only names modes
дальнейший код должен выглядеть так
else
                {
                    if ($peer['seeder'])
                    {
                        $seeders .= '<nobr><a href="'. $u_prof_href .'" class="seedmed">'. $peer['username'] .'</a>,</nobr> ';
                        $seed_count = $peer['username'];
                    }
                    else
                    {
                             $leechers .= '<nobr><a href="'. $u_prof_href .'" class="leechmed">'. $peer['username'] .'</a>';
                        $leechers .= ($s_mode == 'names') ? ' ['. $compl_perc .'%]' : '';
                        $leechers .= ',</nobr> ';
                        $leech_count = $peer['username'];
                    }
                }
#8
хм, в профиле в графе скачиваемых раздач 0%
#9
Chumaster59,
Угу. Про профиль забыл. Исправил исходный пост
#10
что за вторая проблема то?