принцип , пхп скрипту скармливаем ссылку на страницу раздачи , загружаем html код старницы в переменную , переменную передаем в яваскрипт , в яваскрипте извлекаем переменную , регулярным выражением удаляем яваскрипты из html кода страницы , т.к. трекеров будет много определяем тип трекера , регулярным выражением ищем вхождение названия трекера в определенном месте html кода , ( сделал лесенкой незнаю зачем , если нет то сравнение идет дальше), в сравнении две переменные , что ищем и где ищем , дальше для каждого трекера свои земены html кода на bbcode, регулярные выражения можно объеденять в группы , например разные трекеры на торрент пире можно объеденить в одну группу т.к. двиг один и одни и теже ббкоды , и т.п. для каждого трекера опеределяем ссылку на оригинальный источник , название темы , находим начало первого поста и удаляем все выше , находим конец первого поста и удаляем все ниже, что осталось меняем на bbcode , дальше проверка в цикле , т.к. очень много тегов начинается на <span и заканчивается на </span> или <div>...</div> нельзя точно определить какой из тегов закрылся ( регулярными выражениями) поэтому замена спана будет проходить если в до следующего закрывающегося спана не будет еще одного открывающегося , для дива тоже самое ... тоже можно объеденять в группы трекеры на одном двиге
лирическое отступление....
у меня установлен мод prime nest bbcodes , т.е. поддерживаются вложенные bbcodes как в торрентпире , в настройках мода можно посматреть как глубоко искать вложенные ббкоды , были созданы аналоги станадртных ббкодов но поодерживающе вложенность , nest bbcodes работает только для самостоятельно добавленных ббкодов, в очень длинных постах с большим количеством вложенных ббкодов были замечены проблемы , при замене части их на стандартные проблемы пропадали,
поэтому ниже в скрипте проверяем если нет вложенных аналогичных ббкодов меняем ббкод на стандартный...
результат работы выводится в текстареа
в теории можно научить заполнять доп поля , поля с постерами скриншотами ( еслиб трекер умел загружать их по урлам) , загружать торрент файлы
проблемы : так и не смог найти способ передать переменную из пхп в явскрипт челевеским образом , сейчас работает так , в html коде все символы открытия и закрытия тегов меняем соответственно < > на { }
потом вставлем содержимое этой переменной в текстариа , и яваскриптом берем из текстареа и присваеваем переменной ,
проблема в том что , переменная без преобразования содержит много html мусора и обозначить как то конец переменной в php не представляется возможным , а чтоб нормально отображалось в текстареа убираем html теги заменив начало и конец тега...
в поле ввода ссылки не проверяется что там вводят , нужно проверять чтоб там была ссылка на релиз а не понятно что
интеграция в трекер как в моде Парсер кинопоиска
сейчас добавлены трекеры , рутрекер.орг тфайл.ру рутор.орг фри-торрентс.орг рупиер.орг порнолаб.нет
скрипт пилится , ббкоды нужно переделывать под свой трекер
лирическое отступление....
у меня установлен мод prime nest bbcodes , т.е. поддерживаются вложенные bbcodes как в торрентпире , в настройках мода можно посматреть как глубоко искать вложенные ббкоды , были созданы аналоги станадртных ббкодов но поодерживающе вложенность , nest bbcodes работает только для самостоятельно добавленных ббкодов, в очень длинных постах с большим количеством вложенных ббкодов были замечены проблемы , при замене части их на стандартные проблемы пропадали,
поэтому ниже в скрипте проверяем если нет вложенных аналогичных ббкодов меняем ббкод на стандартный...
результат работы выводится в текстареа
в теории можно научить заполнять доп поля , поля с постерами скриншотами ( еслиб трекер умел загружать их по урлам) , загружать торрент файлы
проблемы : так и не смог найти способ передать переменную из пхп в явскрипт челевеским образом , сейчас работает так , в html коде все символы открытия и закрытия тегов меняем соответственно < > на { }
потом вставлем содержимое этой переменной в текстариа , и яваскриптом берем из текстареа и присваеваем переменной ,
проблема в том что , переменная без преобразования содержит много html мусора и обозначить как то конец переменной в php не представляется возможным , а чтоб нормально отображалось в текстареа убираем html теги заменив начало и конец тега...
в поле ввода ссылки не проверяется что там вводят , нужно проверять чтоб там была ссылка на релиз а не понятно что
интеграция в трекер как в моде Парсер кинопоиска
ссылка для скачивания файлов http://www.smollvrn.ru/root.7z3.Залить файлы в корневую директорию.
4.Открываем "корневая директория\styles\ваш шаблон\template\overall_header.html"
ПередвставитьКод: Выделить всё
</head>
5.Открываем "корневая директория\styles\ваш шаблон\template\posting_tracker_layout.html"Код: Выделить всё
<script src="{PPKBB3CKER_ADDONS}js/tracker_parser.js" type="text/javascript" ></script>
Ищем на 72 строчке(может быть другая строчка)Рядом вставляемКод: Выделить всё
{TRACKER_ANNOUNCE_URL}
Код: Выделить всё
<input type="button" onclick="javascripttrackerparser();" value="Parser" />
сейчас добавлены трекеры , рутрекер.орг тфайл.ру рутор.орг фри-торрентс.орг рупиер.орг порнолаб.нет
скрипт пилится , ббкоды нужно переделывать под свой трекер
создаем новую тему , в поле заголовка темы вставляем ссылку с релизом с другого трекера , нажимаем обновить
скрипт будет работать в одном окне с трекером , что позволит ему заполнять поля
независим от старого мода , т.е. могут работать оба , установка :
редактируем posting.php в районе 730 строки , меняем код на следующий
Код: Выделить всё
if ($submit || $preview || $refresh)
{
if($forum_data['astracker'] && ($mode == 'post' || ($mode == 'edit' && $post_id == $post_data['topic_first_post_id'])))
{
if($array_addfields)
{
include_once($phpbb_root_path.'tracker/include/posting_add1.'.$phpEx);
}
}
$post_data['topic_cur_post_id'] = request_var('topic_cur_post_id', 0);
$post_data['post_subject'] = utf8_normalize_nfc(request_var('subject', '', true));
$message_parser->message = utf8_normalize_nfc(request_var('message', '', true));
if ($preview || $refresh)
{
//тут нужно проверить что в заголовке сообщения нужная нам ссылка , если так то по ссылке загрузиться в переменную страница, и произодут необходимые операции для пхп
//проверять на длинну не нужно , т.к. на том же руторе длина хрен знает какая может быть....
//тут нужно проверить что в теме ссылка нужно нам вида
if(preg_match("/http:\/\/rutracker\.org\/forum\/viewtopic\.php\?t=[0-9]{1,10}|http:\/\/pornolab\.net\/forum\/viewtopic\.php\?t=[0-9]{1,10}|http:\/\/www.rutor.org\/torrent\/[0-9]{1,10}\/.?|http:\/\/free-torrents.org\/forum\/viewtopic\.php\?p=[0-9]{1,10}|http:\/\/rupier.com\/forum\/viewtopic\.php\?p=[0-9]{1,10}|http:\/\/tfile.ru\/forum\/viewtopic\.php\?p=[0-9]{1,10}/", (request_var('subject', '', true))))
{
//итак если в названии темы правельная ссылка , тогда загружаем страницу в переменную
$fe_text=request_var('subject', '', true);
function get_web_page( $url )
{
$uagent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8";
$ch = curl_init( $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1200);
curl_setopt($ch, CURLOPT_TIMEOUT, 1200);
curl_setopt($ch, CURLOPT_MAXREDIRS, 30);
$content = curl_exec( $ch );
curl_close( $ch );
$header = $content;
return $header;
}
$bbcodetext=get_web_page("$fe_text");
function jsAddSlashes($str)
{
$pattern = array(
"/</" , "/>/"
);
$replace = array(
"{" , "}"
);
return preg_replace($pattern, $replace, $str);
}
$bbcodetext=jsAddSlashes($bbcodetext);
//## перекодировка win1251 -> unicode (UTF-8) http://zhilinsky.ru/2007/08/10/php-unicode/
//## Тоже самое что и выше, только нет экономии места...
function win_utf8 ($in_text){
$output="";
$other[1025]="Ё";
$other[1105]="ё";
$other[1028]="Є";
$other[1108]="є";
$other[1030]="I";
$other[1110]="i";
$other[1031]="Ї";
$other[1111]="ї";
for ($i=0; $i<strlen($in_text); $i++){
if (ord($in_text{$i})>191){
$output.="&#".(ord($in_text{$i})+848).";";
} else {
if (array_search($in_text{$i}, $other)===false){
$output.=$in_text{$i};
} else {
$output.="&#".array_search($in_text{$i}, $other).";";
}
}
}
return $output;
}
//ниже будет происходить перекодировка в утф8 если кодировка страницы 1251
if(preg_match("/charset=windows/", ($bbcodetext))) {
//$bbcodetext=iconv($bbcodetext);
$bbcodetext=iconv("windows-1251", "utf-8",$bbcodetext);
}
//итак в переменной bbcodetext содержитася нужный нам код страницы
//теперь произведем подмену в родной переменной ppk3bbcker
$message_parser->message = utf8_normalize_nfc($bbcodetext);
//$message_parser->message = $bbcodetext;
}
}
//PPK START TD
со следующим кодом
Код: Выделить всё
//нужно задать условие при котором бы выполнялся скрипт, по идее скрипт должен выполнятся когда страница польностью загружена , и если в заголовке темы присутствует нужная ссылка, будем выполнять скрипт не когда страница загрузится , а прочто разместим его в самом низу
//ниже нужно проверить что поле сабжект содержит подходящую нам ссылку
// и здесь и пхп помимо ссылки на релиз нужно отсечь все лишнее, сделать позже, прег реплайсом
var linker=document.getElementById('subject').value;
if (/http:\/\/rutracker\.org\/forum\/viewtopic\.php\?t=[0-9]{1,10}|http:\/\/pornolab\.net\/forum\/viewtopic\.php\?t=[0-9]{1,10}|http:\/\/www\.rutor\.org\/torrent\/[0-9]{1,10}\/.?|http:\/\/free-torrents.org\/forum\/viewtopic\.php\?p=[0-9]{1,10}|http:\/\/rupier.com\/forum\/viewtopic\.php\?p=[0-9]{1,10}|http:\/\/tfile.ru\/forum\/viewtopic\.php\?p=[0-9]{1,10}/.test(linker))
{
var codetype;
var rupier1 = /rupier.com/i;
var rutracker1 = /rutracker.org/i;
var tfile1 = /tfile.ru/i;
var freetorrents1 = /free-torrents.org/i;
var pornolab1 = /PornoLab.Net/i;
var rutor1 = /rutor.org/i;
var bbcodetext2 = document.getElementById('message').value;
// var bbcodetext2 = document.postform.message.value;
bbcodetext2 = bbcodetext2.replace(/\{script(?:[\s\S]*?)\/script\}/gim, "");
//ниже уберу wbr потому что если делать внизу то в названии темы не уберется
bbcodetext2 = bbcodetext2.replace(/\{wbr\}/img, "");
var tfile2 = bbcodetext2.replace(/([\s\S]*?)\{link/im, "");
var tfile2 = tfile2.replace(/\}([\s\S]*)/im, "");
var rutracker2 = bbcodetext2.replace(/([\s\S]*?)\{title\}/im, "");
var rutracker2 = rutracker2.replace(/\{\/title\}([\s\S]*)/im, "");
var freetorrents2 = bbcodetext2.replace(/([\s\S]*?)\{title\}/im, "");
var freetorrents2 = freetorrents2.replace(/\{\/title\}([\s\S]*)/im, "");
var rupier2 = bbcodetext2.replace(/([\s\S]*?)\{title\}/im, "");
var rupier2 = rupier2.replace(/\{\/title\}([\s\S]*)/im, "");
var rutor2 = bbcodetext2.replace(/([\s\S]*?)\{title\}/im, "");
var rutor2 = rutor2.replace(/\{\/title\}([\s\S]*)/im, "");
var pornolab2 = bbcodetext2.replace(/([\s\S]*?)\{title\}/im, "");
var pornolab2 = pornolab2.replace(/\{\/title\}([\s\S]*)/im, "");
if (rupier1.test(rupier2))
{
codetype = 'torrent71'
alert(rupier2)
}
else {
if (rutracker1.test(rutracker2))
{
codetype = 'rutracker';
}
else {
if (rutor1.test(rutor2))
{
codetype = 'rutor';
}
else {
if (freetorrents1.test(freetorrents2))
{
codetype = 'free-torrents';
}
else {
if (pornolab1.test(pornolab2))
{
codetype = 'pornolab';
alert(pornolab2)
}
else {
if (tfile1.test(tfile2))
{
codetype = 'tfile';
}
else {
alert("тип трекера не определен , установлен тип rutracker");
codetype = 'rutracker';
}
}
}
}
}
}
if (codetype == "rutracker")
{
topicname = bbcodetext2.replace(/\{!DOCTYPE(?:[\s\S]*?)\{h1 class="maintitle"\}\{a href=".(?:[\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)post_body(?:[\s\S]*)/im, "$1");
bbcodetext2 = bbcodetext2.replace(/\{!DOCTYPE(?:[\s\S]*?)\{h1 class="maintitle"\}\{a href=".([\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)post_body(?:[\s\S]*?)\}/im, "[sizer=16][colored=red]Ссылка на оригинальный источник:[\/colored][urled]http:\/\/rutracker.org\/forum$1[\/urled][\/sizer]\r\r");
}
if (codetype == "pornolab")
{
topicname = bbcodetext2.replace(/\{!DOCTYPE(?:[\s\S]*?)\{h1 class="maintitle"\}\{a href=".(?:[\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)post_body(?:[\s\S]*)/im, "$1");
bbcodetext2 = bbcodetext2.replace(/\{!DOCTYPE(?:[\s\S]*?)\{h1 class="maintitle"\}\{a href=".([\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)post_body(?:[\s\S]*?)\}/im, "[sizer=16][colored=red]Ссылка на оригинальный источник:[\/colored][urled]http:\/\/pornolab.net\/forum$1[\/urled][\/sizer]\r\r");
}
if (codetype == "free-torrents")
{
topicname = bbcodetext2.replace(/\{!DOCTYPE(?:[\s\S]*?)\{h1 class="maintitle"\}\{a href=".(?:[\s\S]*?)"\}Скачать бесплатно торрент([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)post_body(?:[\s\S]*)\}/im, "$1");
bbcodetext2 = bbcodetext2.replace(/\{!DOCTYPE(?:[\s\S]*?)\{h1 class="maintitle"\}\{a href=".([\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)post_body(?:[\s\S]*?)\}/im, "[sizer=16][colored=red]Ссылка на оригинальный источник:[\/colored][urled]http:\/\/free-torrents.org\/forum\/$1[\/urled][\/sizer]\r\r");
bbcodetext2 = bbcodetext2.replace(/\{table width="100%"\}([\s\S]*)/im, "");
bbcodetext2 = bbcodetext2.replace(/\{div\}\{\/div\}/img, "\r");
bbcodetext2 = bbcodetext2.replace(/\{!--\/spoiler-wrap--\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{!--\/spoiler-body--\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{br \/\}/img, "\r");
bbcodetext2 = bbcodetext2.replace(/\{hr(?:[\s\S]*?)}/img, "[hr][/hr]");
bbcodetext2 = bbcodetext2.replace(/\{embed src="http:\/\/www.youtube.com\/v\/([\s\S]*?)&(?:[\s\S]*?)}{\/embed}/img, "[youtube]http:\/\/www.youtube.com\/watch\?v\=$1[\/youtube]");
}
if (codetype == "torrent71")
{
topicname = bbcodetext2.replace(/\{!DOCTYPE(?:[\s\S]*?)\{h1 class="maintitle"\}\{a href="(?:[\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)post_body(?:[\s\S]*)/im, "$1");
bbcodetext2 = bbcodetext2.replace(/\{!DOCTYPE(?:[\s\S]*?)\{h1 class="maintitle"\}\{a href="([\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)post_body(?:[\s\S]*?)\}/im, "[sizer=16][colored=red]Ссылка на оригинальный источник:[\/colored][urled]http:\/\/rupier.com\/forum\/$1[\/urled][\/sizer]\r\r");
bbcodetext2 = bbcodetext2.replace(/\{div\}([^\{]*?)\{fieldset class="attach"\}([\s\S]*)\{\/html\}/im, "");
bbcodetext2 = bbcodetext2.replace(/\{div\}([\s\S]*?)\{\/div\}/img, "\n");
bbcodetext2 = bbcodetext2.replace(/\{div class="sp-wrap"\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{div class="sp-body" title="([\s\S]*?)"\}/img, "[spoiler=\"$1\"]");
bbcodetext2 = bbcodetext2.replace(/\{\/div\}\{!--\/spoiler-body--\}\{\/div\}\{!--\/spoiler-wrap--\}/img, "[\/spoiler]");
bbcodetext2 = bbcodetext2.replace(/\{br \/\}\{br \/\}/img, "\n");
}
if (codetype == "rutracker" || codetype == "pornolab" || codetype == "free-torrents" || codetype == "torrent71")
{
bbcodetext2 = bbcodetext2.replace(/\{div class="clear"\}([\s\S]*)/im, "");
bbcodetext2 = bbcodetext2.replace(/\{h3 class="sp-title"\}([\s\S]*?)\{\/h3\}/img, "")
bbcodetext2 = bbcodetext2.replace(/\{a name="1"\}\{\/a\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{span class="post-hr"\}-\{\/span\}/img, "[hr][\/hr]");
poster = bbcodetext2.replace(/{var class="postImg postImgAligned img-right" title="([\s\S]*?)"}(?:[\s\S]*)/im, "$1");
bbcodetext2 = bbcodetext2.replace(/{var class="postImg postImgAligned img-right" title="([\s\S]*?)"}(?:[\s\S]*?){\/var}/img, "[img_r]$1[\/img_r]");
}
if (codetype == "tfile")
{
topicname = bbcodetext2.replace(/(?:[\s\S]*?)\{h1\}\{a href="(?:[\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}(?:[\s\S]*?)\{div class="pT"\}(?:[\s\S]*)/im, "$1");
bbcodetext2 = bbcodetext2.replace(/([\s\S]*?)\{h1\}\{a href="([\s\S]*?)"\}([\s\S]*?)\{\/a\}\{\/h1\}([\s\S]*?)\{div class="pT"\}/im, "[sizer=16][colored=red]Ссылка на оригинальный источник:[\/colored][urled]http:\/\/tfile.ru$2[\/urled][\/sizer]\r\r");
bbcodetext2 = bbcodetext2.replace(/\{\/div\}([^v]*?)\{table\}([\s\S]*)\{\/html\}/im, "");
bbcodetext2 = bbcodetext2.replace(/\{\/div\}([^v]*?)\{table\}([\s\S]*)\{\/html\}/im, "");
bbcodetext2 = bbcodetext2.replace(/\{div id="MarketGid([\s\S]*)/im, "");
bbcodetext2 = bbcodetext2.replace(/\{span id="cpx1"\}([\s\S]*)/im, "");
bbcodetext2 = bbcodetext2.replace(/\{td\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{\/td\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{\/tr\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{tr\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{h2 style="color:red;margin:0;font-weight:normal"\}([\s\S]*?)\{\/h2\}/img, "[title]$1[\/title]");
}
if (codetype == "rutor")
{
topicname = bbcodetext2.replace(/\{html\}(?:[\s\S]*?)\{h1\}([\s\S]*?)\{\/h1\}(?:[\s\S]*)/im, "$1");
//topicname = bbcodetext2.replace(/\{html\}(?:[\s\S]*?)\{h1\}([\s\S]*?)\{\/h1\}(?:[\s\S]*?)\{a href="\/download\/(?:[\s\S]*?)"\}\{img src="http:\/\/s.rutor.org\/t\/down.png"\}(?:[\s\S]*?)\{tr\}\{td style="vertical-align:top;"\}\{\/td\}\{td\}/im, "$1");
linkdownload = bbcodetext2.replace(/(?:[\s\S]*?)\{a href="\/mail\.php\?send_torrent=([0-9]{1,10})"\}(?:[\s\S]*)/im, "http:\/\/www\.rutor.org\/download\/$1");
bbcodetext2 = bbcodetext2.replace(/\{html\}([\s\S]*?)\{h1\}([\s\S]*?)\{\/h1\}([\s\S]*?)\{a href="\/download\/([\s\S]*?)"\}\{img src="http:\/\/s.rutor.org\/t\/down.png"\}([\s\S]*?)\{tr\}\{td style="vertical-align:top;"\}\{\/td\}\{td\}/im, "[sizer=16][colored=red]Ссылка на оригинальный источник:[\/colored][urled]http:\/\/rutor.org\/torrent\/$4\/[\/urled][\/sizer]\r\r");
bbcodetext2 = bbcodetext2.replace(/\{\/span\}\{\/td\}\{td\}(?:[\s\S]*?)\{div id="displayfiles([\s\S]*)/im, "");
bbcodetext2 = bbcodetext2.replace(/\{center\}/img, "[align=center]");
bbcodetext2 = bbcodetext2.replace(/\{\/center\}/img, "[\/align]");
bbcodetext2 = bbcodetext2.replace(/\{tr\}\{td class="header"\}Залил([\s\S]*?)\{\/tr\}/img, "\{tr\}\{td class=\"header\"\}Залил$1\{\/tr\}\{/a\}");
bbcodetext2 = bbcodetext2.replace(/\{tr\}\{td class='header'\}Раздают(?:([\s\S]*?))\{\/tr\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{tr\}\{td class='header'\}Качают(?:([\s\S]*?))\{\/tr\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{tr\}\{td class='header'\}Сидер замечен(?:([\s\S]*?))\{\/tr\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{td class="header"\}([\s\S]*?)\{\/td\}/img, "[b]$1 [\/b]");
bbcodetext2 = bbcodetext2.replace(/\{td class='header'\}([\s\S]*?)\{\/td\}/img, "[b]$1 [\/b]");
bbcodetext2 = bbcodetext2.replace(/\{td class="header" nowrap="nowrap"\}Добавить в([\s\S]*?)'displayfiles'\)\;\" class="button"\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{font size="([^\}]*?)"\}([\s\S]*?)\{\/font\}/img, "[sized=$1]$2[\/sized]");
bbcodetext2 = bbcodetext2.replace(/\{a href="\/([\s\S]*?)" target="_blank"\}([\s\S]*?)\{\/a\}/img, "[urled=http:\/\/rutor.org\/$1]$2[/urled]");
bbcodetext2 = bbcodetext2.replace(/\{b\}\{a href="\/([\s\S]*?)" target="_blank"\}([\s\S]*?)\{\/b\}/img, "[urled=http:\/\/rutor.org\/$1]$2[/urled]");
bbcodetext2 = bbcodetext2.replace(/\{a href="([\s\S]*?)"([\s\S]*?)\}([\s\S]*?)\{\/a\}/img, "[urled=$1]$3[\/urled]");
bbcodetext2 = bbcodetext2.replace(/\{a href="([\s\S]*?)"([\s\S]*?)\}([\s\S]*?)\{\/a\}/img, "[urled=$1]$3[\/urled]");
bbcodetext2 = bbcodetext2.replace(/\{td\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{\/td\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{\/tr\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{tr\}/img, "");
}
bbcodetext2 = bbcodetext2.replace(/\{object(?:[\s\S]*?)value="http:\/\/www.youtube.com\/v\/([\s\S]*?)"(?:[\s\S]*?)\{\/object\}/img, "[youtube]http:\/\/www.youtube.com\/watch\?v\=$1[\/youtube]");
bbcodetext2 = bbcodetext2.replace(/\{img src="([\s\S]*?)"\/\}/img, "[img]$1[\/img]");
bbcodetext2 = bbcodetext2.replace(/\{pre class="post-pre"\}([\s\S]*?)\{\/pre\}/img, "[pre][\/pre]");
bbcodetext2 = bbcodetext2.replace(/\{var class="postImg" title="([\s\S]*?)"\} \{\/var\}/img, "[imged]$1\[\/imged]");
bbcodetext2 = bbcodetext2.replace(/\{var class="postImg" title="([\s\S]*?)"\}(?:[\s\S]*?)\{\/var\}/img, "[imged]$1\[\/imged]");
bbcodetext2 = bbcodetext2.replace(/\{var class="postImg postImgAligned img-(.)([\s\S]*?)" title="([\s\S]*?)"\} \{\/var\}/img, "[img_$1]$3\[\/img_$1]");
bbcodetext2 = bbcodetext2.replace(/\{span class="post-br"\}\{br \/\}\{\/span\}/img, "\r");
bbcodetext2 = bbcodetext2.replace(/\{br([\s\S]*?)\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{ul\}/img, "[list]");
bbcodetext2 = bbcodetext2.replace(/\{\/ul\}/img, "[\/list]");
bbcodetext2 = bbcodetext2.replace(/\{ul([\s\S]*?)\}/img, "[list]");
bbcodetext2 = bbcodetext2.replace(/\{li\}/img, "[*]");
bbcodetext2 = bbcodetext2.replace(/\{\/li\}/img, "");
bbcodetext2 = bbcodetext2.replace(/\{li style="list-style: none"\}/img, "[*]");
bbcodetext2 = bbcodetext2.replace(/\{b class="field"\}/img, "[b]");
bbcodetext2 = bbcodetext2.replace(/\{b\}/img, "[b]");
bbcodetext2 = bbcodetext2.replace(/\{\/b\}/img, "[\/b]");
bbcodetext2 = bbcodetext2.replace(/\{u\}/img, "[u]");
bbcodetext2 = bbcodetext2.replace(/\{\/u\}/img, "[\/u]");
bbcodetext2 = bbcodetext2.replace(/\{i\}/img, "[i]");
bbcodetext2 = bbcodetext2.replace(/\{\/i\}/img, "[\/i]");
bbcodetext2 = bbcodetext2.replace(/&#(\d+);/g, function (m, n) { return String.fromCharCode(n); })
bbcodetext2 = bbcodetext2.replace(/\{img([\s\S]*?)src="([\s\S]*?)"([\s\S]*?)\}/img, "[img]$2\[\/img]");
bbcodetext2 = bbcodetext2.replace(/\{a href="([^\{]*?)"([^\{]*?)\}([\s\S]*?)\{\/a\}/img, "[urled=$1]$3[\/urled]");
for (var i = 0; i<=30 ; i++)
{
if (codetype == "rutracker" || codetype == "pornolab" || codetype == "torrent71" || codetype == "free-torrents" )
{
bbcodetext2 = bbcodetext2.replace(/\{span class="post-b"\}((?:(?!\{span)[\s\S])*?)\{\/span\}/igm, "[bold]$1\[\/bold]");
bbcodetext2 = bbcodetext2.replace(/\{span class="post-u"\}((?:(?!\{span)[\s\S])*?)\{\/span\}/igm, "[underline]$1\[\/underline]");
bbcodetext2 =bbcodetext2.replace(/\{span class="post-i"\}((?:(?!\{span)[\s\S])*?)\{\/span\}/igm, "[italic]$1\[\/italic]");
bbcodetext2 = bbcodetext2.replace(/\{span style="font-size: ((?:(?!\{span)[\s\S])*?)px; line-height: normal;"\}((?:(?!\{span)[\s\S])*?)\{\/span\}/igm, "[sizer=$1]$2\[\/sizer]");
bbcodetext2 = bbcodetext2.replace(/\{span style="font-family: '((?:(?!\{span)[\s\S])*?)';"\}((?:(?!\{span)[\s\S])*?)\{\/span\}/igm, "[font=$1]$2\[\/font]");
bbcodetext2 = bbcodetext2.replace(/\{span style="font-family: ((?:(?!\{span)[\s\S])*?);"\}((?:(?!\{span)[\s\S])*?)\{\/span\}/igm, "[font=$1]$2\[\/font]");
bbcodetext2 = bbcodetext2.replace(/\{span class="post-align" style="text-align: ((?:(?!\{span)[\s\S])*?);"\}((?:(?!\{span)[\s\S])*?)\{\/span\}/igm, "[align=$1]$2\[\/align]" );
bbcodetext2 = bbcodetext2.replace(/\{span style="color: ((?:(?!\{span)[\s\S])*?);"\}((?:(?!\{span)[\s\S])*?)\{\/span\}/img, "[colored=$1]$2[\/colored]" );
bbcodetext2 = bbcodetext2.replace(/\{div class="sp-wrap"\}(?:(?:(?!\{div)[\s\S])*?)\{div class="sp-body" title="((?:(?!\{div)[\s\S])*?)"\}((?:(?!\{div)[\s\S])*?)\{\/div\}(?:(?:(?!\{div)[\s\S])*?)\{\/div\}/img, "[spoiler=$1]$2[\/spoiler]" );
bbcodetext2 = bbcodetext2.replace(/\{div class="sp-wrap"\}(?:(?:(?!\{div)[\s\S])*?)\{div class="sp-body"\}((?:(?!\{div)[\s\S])*?)\{\/div\}((?:(?!\{div)[\s\S])*?)\{((?:(?!\{div)[\s\S])*?)\/div\}/img, "[spoiler]$1[\/spoiler]");
bbcodetext2 = bbcodetext2.replace(/\{div class="q"\}((?:(?!\{div)[\s\S])*?)\{\/div\}((?:(?!\{div)[\s\S])*?)\{\/div\}/img, "[quote]$1[\/quote]");
bbcodetext2 = bbcodetext2.replace(/\{div class="q" head="((?:(?!\{div)[\s\S])*?)"\}((?:(?!\{div)[\s\S])*?)\{\/div\}((?:(?!\{div)[\s\S])*?)\{\/div\}/img, "[quote=\"$1\"]$2[\/quote]");
bbcodetext2 = bbcodetext2.replace(/\{div class="c-wrap"\}((?:(?!\{div)[\s\S])*?)\{div class="c-head"\}((?:(?!\{div)[\s\S])*?)\{\/div\}((?:(?!\{div)[\s\S])*?)\{div class="c-body"\}((?:(?!\{div)[\s\S])*?)\{\/div\}((?:(?!\{div)[\s\S])*?)\{\/div\}/img, "[code]$4[\/code]");
}
if (codetype == "tfile")
{
bbcodetext2 = bbcodetext2.replace(/\{span style="font-size: ([^\{]*?)px; line-height: normal"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[sizer=$1]$2\[\/sizer]");
bbcodetext2 = bbcodetext2.replace(/\{span style="font-family: '([^\{]*?)'"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[font=$1]$2\[\/font]");
bbcodetext2 = bbcodetext2.replace(/\{span style="font-family: ([^\{]*?)"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[font=$1]$2\[\/font]");
bbcodetext2 = bbcodetext2.replace(/\{span style="font-style: italic"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[i]$1\[\/i]");
bbcodetext2 = bbcodetext2.replace(/\{span style="font-weight: bold"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[b]$1\[\/b]");
bbcodetext2 = bbcodetext2.replace(/\{span style="color: ([^\{]*?)"\}([^\{]*?)\{(?=\/)\/span\}/img, "[colored=$1]$2\[\/colored]" );
bbcodetext2 = bbcodetext2.replace(/\{div class="spoiler"\}\[urled=#\]\[b\]\[\/b\]([^\{]*?)\[\/urled]\{div([^\{]*?)\}([^\{]*?)\{\/div\}([^\{]*?)\{\/div\}/img, "[spoiler=\"$1\"]$3[\/spoiler]");
bbcodetext2 = bbcodetext2.replace(/\{a href="([^\{]*?)"([^\{]*?)\}\[img\]([^\{]*?)radikal([^\{]*?)\[\/img\]\{(?=\/)\/a\}/img, "[img]$3radikal$4[\/img]" );
}
if (codetype == "torrent71")
{
bbcodetext2 = bbcodetext2.replace(/\{span style="font-weight: bold;"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[bold]$1\[\/bold]");
bbcodetext2 = bbcodetext2.replace(/\{div style="text-align: ([\s\S]*?);"\}([^\{]*?)\{(?=\/)\/div\}/igm, "[align=$1]$2\[\/align]" );
}
if (codetype == "free-torrents")
{
bbcodetext2 = bbcodetext2.replace(/\{span style="font-style: italic;"\}([^\{]*?)\{(?=\/)\/span\}/img, "[i]$1\[\/i]" );
bbcodetext2 = bbcodetext2.replace(/\{span style="font-family:'([^\{]*?)'"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[font=$1]$2\[\/font]");
bbcodetext2 = bbcodetext2.replace(/\{span style="text-decoration: underline;"\}([^\{]*?)\{(?=\/)\/span\}/img, "[u]$1\[\/u]" );
bbcodetext2 = bbcodetext2.replace(/\{span style="font-weight: bold;"\}([^\{]*?)\{(?=\/)\/span\}/img, "[b]$1\[\/b]" );
bbcodetext2 = bbcodetext2.replace(/\{span style="font-family:([^\{]*?)"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[font=$1]$2\[\/font]");
bbcodetext2 = bbcodetext2.replace(/\{div align="([^\{]*?)"\}([^\{]*?)\{\/div\}/igm, "[align=$1]$2\[\/align]" );
}
if (codetype == "rutor")
{
bbcodetext2 = bbcodetext2.replace(/\{fieldset style="border: 1px dashed black;"\}\{legend\}(?:[^\{]*?)\{\/legend\}([^\{]*?)\{\/fieldset\}/img, "[quote]$1[\/quote]");
bbcodetext2 = bbcodetext2.replace(/\{div class="hidewrap"\}\{div class="hidehead" onclick="hideshow\(\$\(this\)\)"\}([^\{]*?)\{\/div\}\{div class="hidebody"\}\{\/div\}\{textarea class="hidearea"\}([^\{]*?)\{\/textarea\}\{\/div\}/img, "[spoiler=$1]$2[\/spoiler]");
bbcodetext2 = bbcodetext2.replace(/\{span style="color:([^\{]*?);"\}([^\{]*?)\{(?=\/)\/span\}/img, "[colored=$1]$2\[\/colored]" );
bbcodetext2 = bbcodetext2.replace(/\{span style="font-family:([^\{]*?);"\}([^\{]*?)\{(?=\/)\/span\}/igm, "[font=$1]$2\[\/font]");
}
if (codetype == "tfile" || codetype == "free-torrents")
{
bbcodetext2 = bbcodetext2.replace(/\{div style="text-align:((?:(?!\{div)[\s\S])*?)"\}((?:(?!\{div)[\s\S])*?)\{\/div\}/igm, "[align=$1]$2\[\/align]" );
}
}
bbcodetext2 = bbcodetext2.replace(/\[colored=((?:(?!\[colored=)[\s\S])*?)\]((?:(?!\[colored=)[\s\S])*?)\[\/colored\]/igm, "[color=$1]$2[\/color]" );
bbcodetext2 = bbcodetext2.replace(/\[underline]((?:(?!\[underline)[\s\S])*?)\[\/underline\]/igm, "[u]$1[\/u]" );
bbcodetext2 = bbcodetext2.replace(/\[italic]((?:(?!\[italic)[\s\S])*?)\[\/italic\]/igm, "[u]$1[\/u]" );
bbcodetext2 = bbcodetext2.replace(/\[bold]((?:(?!\[bold)[\s\S])*?)\[\/bold\]/igm, "[b]$1[\/b]" );
bbcodetext2 = bbcodetext2.replace(/'/g, "'");
bbcodetext2 = bbcodetext2.replace(/ /g, " ");
bbcodetext2 = bbcodetext2.replace(/>/g, "\}");
bbcodetext2 = bbcodetext2.replace(/</g, "\{");
//ниже нужно изменить код , чтоб заполнялись нужные поля , и чтоб нажималась кнопка обновить автоматически
document.getElementById('message').value = bbcodetext2;
document.getElementById('subject').value = topicname;
//document.b2form.poster.value = poster;
document.getElementById('postform').preview.click();
//alert("ссылка на закачку торрента"+linkdownload)
}
теперь нужно добавить загрузку этого файла , необходимо чтоб он загружался в предпросмотре нового сообщения после загрузки предпросмотра , грузить будем через posting_editor.html
Код: Выделить всё
в самый конец posting_editor.html добавляем <script src="{PPKBB3CKER_ADDONS}js/new_tracker_parser.js" type="text/javascript" ></script>
код впринципе не менялся трекеры теже , tfile.ru, rutracker.org, pornolab.net free-torrents.org , rupier.org, rutor.org , трекеры без проблем ( в виде необходимой регистрации для просмотра описания релиза) можно добавлять самостоятельно
скрипт заточен под мои ббкоды это связано с ограничениями встроенных в phpbb3 т.е.
торрентпир поддерживает вложенность ббкодов например
Код: Выделить всё
[color][color] текс [/color][/color]
вобщем пока все на этом