Sannis Опубликовано 5 Января 2008 Жалоба Поделиться Опубликовано 5 Января 2008 Название: (SnS) Magnet-ссылкиДобавил: SannisДобавлен: 05 Янв 2008Обновлен: 29 Янв 2010Категория: IP.Board 2.3.x Добавляет в парсер форума поддержку Magnet ссылок. При вводе ссылки как простым текстом, так и с использованием тегов url или magnet отображается имя файла и его размер. Пример смотрите на скриншоте. Плюс добавляет кнопку для магнет ссылок в форму быстрого и полного ответа для сборки от IgorekM. Понимает варианты:magnet:?xt=urn:tree:tiger:OVF4U6PFHS5FNSN4WU5HMUYEGH4EHRA2PHSZ4PQ&xl=721186816&dn=Amelie.avi [url]magnet:?xt=urn:tree:tiger:OVF4U6PFHS5FNSN4WU5HMUYEGH4EHRA2PHSZ4PQ&xl=721186816&dn=Amelie.avi[/url] [magnet]magnet:?xt=urn:tree:tiger:OVF4U6PFHS5FNSN4WU5HMUYEGH4EHRA2PHSZ4PQ&xl=721186816&dn=Amelie.avi[/magnet] [url="magnet:?xt=urn:tree:tiger:OVF4U6PFHS5FNSN4WU5HMUYEGH4EHRA2PHSZ4PQ&xl=721186816&dn=Amelie.avi"]Амели[/url] [magnet="magnet:?xt=urn:tree:tiger:OVF4U6PFHS5FNSN4WU5HMUYEGH4EHRA2PHSZ4PQ&xl=721186816&dn=Amelie.avi"]Амели[/magnet] В конечном варианте преобразует всё к тегу [magnet] P.S. Инструкция для 1.3 поддерживает теги url и magnet, для 2.3 в архиве 2 инструкции. Использовать нужно только одну из них!!! Доступна демонстрация работы мода: 1.3, 2.3. P.P.S. Для желающих отблагодарить автора — реквизиты в профиле. Нажмите здесь, чтобы скачать файл Ссылка на комментарий Поделиться на других сайтах Прочее
DerSpinner Опубликовано 10 Января 2008 Жалоба Поделиться Опубликовано 10 Января 2008 можно для ИПБ 2,3,1 ? будем благодарны очень очень=)именно Вашу версию=) Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 10 Января 2008 Автор Жалоба Поделиться Опубликовано 10 Января 2008 Со временем, со временем, если актуально будет. Моды — это почти как ганджа, сразу много не бывает Ссылка на комментарий Поделиться на других сайтах Прочее
DerSpinner Опубликовано 11 Января 2008 Жалоба Поделиться Опубликовано 11 Января 2008 прошуп рощения за флуд (целью данного флуда являеться поднятие темы, чтобы больше народу отписалось о редактировании сий замечательной интерпретации магнет-линкс мода под ипб 2,3,1 и мозговитый программер понял, сколько народу сможет осчастливить) но пойдём другим путём:как можно вручную адаптировать под 2,3,1 , как понимаю надо будет заменить ипкласс... а ещё?=) Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 11 Января 2008 Жалоба Поделиться Опубликовано 11 Января 2008 нетдостаточно сделать изменения в class_bbcodeс кнопкой похуже. но если уж работает схема , то в принципе зачем еще одна кнопка Sannisмой вариант был такой $txt = preg_replace_callback( "/^magnet:\?xt=urn:tree:tiger:(.+?)&xl=(.+?)&dn=(.+?)$/im", array( &$this, 'regex_magnet_tag' ), $txt ); $txt = preg_replace( "#\[magnet\](\S+?)\[/magnet\]#ie", "\$this->regex_magnet_tag('\\1')", $txt ); $txt = preg_replace( "#\[magnet\s*=\s*\"\;\s*(\S+?)\s*\"\;\s*\](.*?)\[\/magnet\]#ie" , "\$this->regex_magnet_tag('\\1','\\2')", $txt ); $txt = preg_replace( "#\[magnet\s*=\s*(\S+?)\s*\](.*?)\[\/magnet\]#ie" , "\$this->regex_magnet_tag('\\1','\\2')", $txt ); function regex_magnet_tag($txt,$name="") { global $ibforums,$std; if(is_array($txt)) { $size = $std->size_format($txt[2]); return "<a href='magnet:?xt=urn:tree:tiger:".$txt[1]."&xl=".$txt[2]."&dn=".$txt[3]."' target='_blank'>".$txt[3]." (".$size.")</a>"; } else { preg_match("/^magnet:\?xt=urn:tree:tiger:(.+?)&xl=(.+?)&dn=(.+?)$/i",$txt,$m); if(count($m)<2) { return $txt; } else { if($name!="") $m[3]=$name; if($m[3]=="") $m[3]="Magnet-file"; if($m[2]=="") { $m[2]="? ".$ibforums->lang['sf_k']; } else { $m[2]=$std->size_format($m[2]); } return "<a href='".$m[0]."' target='_blank'>".$m[3]." (".$m[2].")</a>"; } } } $txt = preg_replace( "#<a href=[\"']magnet:(\S+?)['\"].+?".">(.+?) \((.+?)\)</a>#" , "\[magnet=magnet:\\1\]\\2[/magnet\]" , $txt ); Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 11 Января 2008 Автор Жалоба Поделиться Опубликовано 11 Января 2008 Версия для 2.3.х включена в архив и следовательно доступна для тестирования. Во избежание недоразумений лучше проверить работу мода на домашнем сервере для начала Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 11 Января 2008 Жалоба Поделиться Опубликовано 11 Января 2008 вот это глюк if( preg_match( "/\[\/(html|quote|code|sql)/i", $url['name']) OR preg_match( "/\[\/(html|quote|code|sql)/i", $url['extraname']) ) { return $url['html']; } Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 11 Января 2008 Автор Жалоба Поделиться Опубликовано 11 Января 2008 Обновил. Как-то пытался смоделировать условия для необходимости этого ретёрна, не смог Это ж надо так постараться))) Тем более там в регэкспе идёт проверка на угловые скобки... Ссылка на комментарий Поделиться на других сайтах Прочее
DerSpinner Опубликовано 12 Января 2008 Жалоба Поделиться Опубликовано 12 Января 2008 (изменено) В версии для 2.3 за ненадобностью убрана поддержка кода [magnet], теперь ссылки работают только через тег [url]. хм. а если не убирать "старые моды" , который делал как:[magnet=Магнет_сыль]Название[/magnet] оно останеться работать? будет пониматься? Просто с помощью этого мода будет гораздно удобнеее новичкам, но и не хотелось бы переучивать старичков=) п.с. Спасибо Саннису и Архару - гут работу проделали Изменено 12 Января 2008 пользователем DerSpinner Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 12 Января 2008 Автор Жалоба Поделиться Опубликовано 12 Января 2008 Перекачайте и поверьте. Как добавлять кнопки в 2.3 написано тут, только название тега измените. Добавлю инструкцию потом. Ссылка на комментарий Поделиться на других сайтах Прочее
DerSpinner Опубликовано 12 Января 2008 Жалоба Поделиться Опубликовано 12 Января 2008 (изменено) # В конечном варианте преобразует всё к тегу [magnet] тег магнет будет: [url="magnet:?xt=urn:tree:tiger:OVF4U6PFHS5FNSN4WU5HMUYEGH4EHRA2PHSZ4PQ&xl=721186816&dn=Amelie.avi"]Амели[/url] Просто те моды которые выкладывались ранее, чтобы просто был ббкод делал без ковычек (если не ошибаюсь подправить надо здесь: return $magnet['st'].'<a href="magnet:?xt=urn:tree:tiger:'.$magnet['hash'].'&xl='.$magnet['size'].'&dn='.$magnet['name'].'" target="_blank">'.$magnet['extraname']."</a>".$magnet['extrasize'].$magnet['end'];или я сново туплю? :_( (убрал , спасибо Архару за пояснение) Спасибо огромное ещё раз! Изменено 12 Января 2008 пользователем DerSpinner Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 12 Января 2008 Жалоба Поделиться Опубликовано 12 Января 2008 он там есть# - ./sources/classes/bbcode/class_bbcode(_legacy).php==# - ./sources/classes/bbcode/class_bbcode.php# - ./sources/classes/bbcode/class_bbcode_legacy.php такое обозначение я тоже часто использовал, и постоянно кто-то его не понимал Ссылка на комментарий Поделиться на других сайтах Прочее
DerSpinner Опубликовано 12 Января 2008 Жалоба Поделиться Опубликовано 12 Января 2008 обясню почему такое внимание ковычкам: когда они есть, он открывает новое окно - и тогда спрашивает.без ковычек - в текущем окне=) попробовал методом тыка поубирать ковычки в коде - так и не получилось.... Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 12 Января 2008 Автор Жалоба Поделиться Опубликовано 12 Января 2008 Это в описании для упрощения, а дальше отдельно для 2х файлов написано, должны понять, не совсем же глупцы собрались DerSpinner, кавычки роли не играют, он понимает и без них и с апострофами. Различия в инструкциях в том, что в одной используется только код url, а в другой можно постить и url и magnet, но при редактировании будет преобразовываться к magnet. А по функциональности они идентичны. Ссылка на комментарий Поделиться на других сайтах Прочее
DerSpinner Опубликовано 12 Января 2008 Жалоба Поделиться Опубликовано 12 Января 2008 (изменено) я понимаю... использую:(SnS) Magnet links for 2.3 with [magnet] tag просто суть вопроса в том, что он делает так: [magnet="магнет"]название файла[/magnet] и випрос в том как можно сделать чтобы: [magnet=магнет]название файла[/magnet] было=) Изменено 12 Января 2008 пользователем DerSpinner Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 12 Января 2008 Автор Жалоба Поделиться Опубликовано 12 Января 2008 Сейчас проверю. Серьёзно по-разному? Нэ вэрю. Если нужно без лишнего окна, то нужно из приведённого выше фрагмента убратьtarget="_blank" Проверил, у меня и без кавычек работает... Ссылка на комментарий Поделиться на других сайтах Прочее
DerSpinner Опубликовано 12 Января 2008 Жалоба Поделиться Опубликовано 12 Января 2008 (изменено) т.е. из: // Return link html return $magnet['st'].'<a href="magnet:?xt=urn:tree:tiger:'.$magnet['hash'].'&xl='.$magnet['size'].'&dn='.$magnet['name'].'" target="_blank">'.$magnet['extraname']."</a>".$magnet['extrasize'].$magnet['end']; этого? не ругаейтесь только сильно =) суть не в том, что без ковычек не работает (ибо работает) а втом, чтобы бы магнеты преобразовывались в: [magnet=магнет]название файла[/magnet] т.е. сам ТТХ (магнет) не заключен в ковычки. вот. Изменено 12 Января 2008 пользователем DerSpinner Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 12 Января 2008 Автор Жалоба Поделиться Опубликовано 12 Января 2008 Да. Так что, у вас без кавычек нормуль всё? Ссылка на комментарий Поделиться на других сайтах Прочее
[Sergy] Опубликовано 22 Января 2008 Жалоба Поделиться Опубликовано 22 Января 2008 Здравствуйте! столкнулся с такой проблемой! что если файл назвал русскими символами то он не может правильно работать на форуме!Тоесть если имя файла на EN открывает вот так magnet:?xt=urn:tree:tiger:YHMB7PD7PVTM2XPYFO5TPWWNU7PNNKXS6RDT62A&xl=708366336&dn=Wiedzmin_CD1.aviА если на RU то вот так http://magnet:?xt=urn:tree:tiger:PGTERNBUJ...0%B0%D0%BD).mp3Пытался найти решение проблемы но я так нечего и не смог придумать!!! Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 23 Января 2008 Жалоба Поделиться Опубликовано 23 Января 2008 на регулярки влияет setlocale Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 23 Января 2008 Автор Жалоба Поделиться Опубликовано 23 Января 2008 Да, можно в регулярках мода заменить(\w+[^\s\[\]\<]+)на([^\s\[\]\<]+) [sergy], пишите подробнее. При публикации ссылки с русским названием у неё пишется размер? Во всех браузерах так открывается? Ссылка на комментарий Поделиться на других сайтах Прочее
[Sergy] Опубликовано 23 Января 2008 Жалоба Поделиться Опубликовано 23 Января 2008 [sergy], пишите подробнее. При публикации ссылки с русским названием у неё пишется размер? Во всех браузерах так открывается?Sannis, проблема в том что когда в магнет ссылке есть хотябы 1 русская буква он не читает её как magnet ссылку а как http ссылку! тоесть вот что получается когда в магнете есть хотябы 1 русский символ! [url="http://magnet:?xt=urn:tree:tiger%3a%50GTERNBUJ73FNDMUYXRDGLWEMFKK3XBK52RMM6Q&xl=7913472&dn=%D0%9A%D0%B0%D1%82%D1%8F+(%D0%9C%D0%B0%D0%BC%D0%B0%D0%BD).mp3"]Катя (Маман).mp3[/url] httр://magnet:?xt=urn:tree:tiger:PGTERNBUJ73FNDMUYXRDGLWEMFKK3XBK52RMM6Q&xl=7913472&dn=%D0%9A%D0%B0%D1%82%D1%8F+(%D0%9C%D0%B0%D0%BC%D0%B0%D0%BD).mp3"]Катя (Маман).mp3 после русского любова 1 символа он перестаёт понимать что это магнет ссылка! Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 23 Января 2008 Автор Жалоба Поделиться Опубликовано 23 Января 2008 Сделайте как я выше написал. И ещё одно уточнение: в именах магнетов могут быть пробелы? Я ими не пользуюсь, так что не знаю, если могут быть, тогда поправлю чтобы и с ними работала автозамена. P.S. Что означают восклицательные знаки в вашем сообщении? Добавлено: Фикс для 1.3:В ./sources/lib/post_parser.php найти добавленные строки и заменить на следующие: //-------------------------------------- // (SnS) Magnet links for 1.3 //-------------------------------------- $txt = preg_replace( "#\[url\]magnet:\?xt=urn:tree:tiger:(.*?)&xl=(.*?)&dn=([^\[]+)\[/url\]#ie" , "\$this->regex_build_magnet(array('st' => '', 'hash' => '\\1', 'size' => '\\2', 'name' => '\\3'))", $txt ); $txt = preg_replace( "#\[magnet\]magnet:\?xt=urn:tree:tiger:(.*?)&xl=(.*?)&dn=([^\[]+)\[/magnet\]#ie" , "\$this->regex_build_magnet(array('st' => '', 'hash' => '\\1', 'size' => '\\2', 'name' => '\\3'))", $txt ); $txt = preg_replace( "#\[magnet\s*=\s*(?:\"\;|\")\s*magnet:\?xt=urn:tree:tiger:(.*?)&xl=(.*?)&dn=([^\[]+)\s*(?:\"\;|\")\s*\](.*?)\[/magnet\]#ie" , "\$this->regex_build_magnet(array('st' => '', 'hash' => '\\1', 'size' => '\\2', 'name' => '\\3', 'extraname' => '\\4'))", $txt ); $txt = preg_replace( "#\[url\s*=\s*(?:\"\;|\")\s*magnet:\?xt=urn:tree:tiger:(.*?)&xl=(.*?)&dn=([^\[]+)\s*(?:\"\;|\")\s*\](.*?)\[/url\]#ie" , "\$this->regex_build_magnet(array('st' => '', 'hash' => '\\1', 'size' => '\\2', 'name' => '\\3', 'extraname' => '\\4'))", $txt ); $txt = preg_replace( "#\[magnet\s*=\s*magnet:\?xt=urn:tree:tiger:(.*?)&xl=(.*?)&dn=([^\[]+)\s*\](.*?)\[/magnet\]#ie" , "\$this->regex_build_magnet(array('st' => '', 'hash' => '\\1', 'size' => '\\2', 'name' => '\\3', 'extraname' => '\\4'))", $txt ); $txt = preg_replace( "#\[url\s*=\s*magnet:\?xt=urn:tree:tiger:(.*?)&xl=(.*?)&dn=([^\[]+)\s*\](.*?)\[/url\]#ie" , "\$this->regex_build_magnet(array('st' => '', 'hash' => '\\1', 'size' => '\\2', 'name' => '\\3', 'extraname' => '\\4'))", $txt ); $txt = preg_replace( "#(^|\s)magnet:\?xt=urn:tree:tiger:(.*?)&xl=(.*?)&dn=([^\s\[]+)#ie" , "\$this->regex_build_magnet(array('st' => '\\1', 'hash' => '\\2', 'size' => '\\3', 'name' => '\\4'))", $txt ); Ссылка на комментарий Поделиться на других сайтах Прочее
[Sergy] Опубликовано 23 Января 2008 Жалоба Поделиться Опубликовано 23 Января 2008 Sannis А для 2.3 нельзя??? Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 23 Января 2008 Автор Жалоба Поделиться Опубликовано 23 Января 2008 Что означают восклицательные знаки в вашем сообщении?Что означают множественные знаки вопроса в вашем сообщении? Фикс для 2.3 будет после того как вы ответите на все заданные вопросы. Освобожусь я для разборок с 2.х завтра. P.S. Да, если в имени файла есть пробелы, то постить такой магнет можно будет только с использованием тега... Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения