Перейти к содержанию

.Дзю.

Администрация
  • Публикаций

    12158
  • Зарегистрирован

  • Посещение

  • Победитель дней

    132

Весь контент .Дзю.

  1. .Дзю.

    Selytales

    Выглядит конечно всрато, что уж говорить. Но надо понимать какой это непосильный труд для энтузиастов того времени. Как и Шоу Нинель Пофиг. Жаль что затраты на его производство несоизмеримо превосходили профит, а шоу так и не обрело должной популярности. К слову, к ранним выпускам шоу Нинель Пофиг, а возможно и данных роликов, приложила руку ныне моя любимая подруга и некогда звезда всея ЕнЕ - Морри Химори, та самая девочка-ведьма из нашумевшей темы (если кто помнит). Смотреть целиком конечно я это не буду...
  2. Я не активный пользователь, в последние то годы, за то олдовый. XD В принципе хотел бы собраться.
  3. .Дзю.

    Москва

    Привет столица, например! А такжезарубежом. В начале октября дико ломимся на Комикон 20!8, с очаровательной Драконом Горничной Тору. (баба моя, если чё!). Вообще традиционно собираемся остановиться в модном отеле неподалёку. Однако памятуя прошлый год, есть мысль побольше лудить и тусоваться со светским народом. Потому во первых интересует кто тоже ломится на Комикон, а так же имеет желание пересечься и дико залудить вне фестиваля. Во вторых, у кого есть возможность вписать двоих человек. Было бы весело например, по старинке, проводить время в олдовой тусовке, за беседами и распитием разных водок. Естественно подгоним бухла. Гудеть будем дня 4, с 4 по 8 октября, тащемта. Дико угарим например! Всем мир!
  4. чёрт, только этого не хватало. Поддержу любое решение Даниеля, в олюбом случае. А подробнее отпишусь позже, когда разберусь во всей этой ситуации. Мы живём что бы меняться - этому нас научил NGE. Может быть всё это действительно знак для перемен!
  5. .Дзю.

    Overwatch

    Ахахаха)
  6. Братцы, Подскажите по Биткоинам, где нормально взять, как организовать? В Личку плиз. Обрисую ситуацию вкратце.

  7. .Дзю.

    overwatch

    Не думаю что нашумевший супер-хит от blizzard нуждается в представлении или лишней рекламе. Дико качественная и драйвовая игрушка. Короче катаем каждый день, особенно вечерком. Кто на гребне этой волны ломитесь в друзья - угарим!! SWINE#21539. Лучше напишите что с ЕнЕ, а то с таким ником ко мне постоянно добавляются разные странные персонажи пытаясь заигрывать = ))) Быть добру!
  8. в OVERWATCH кто рубит, хлопцы?

    1. Upashi

      Upashi

      Я рубил! А потом ОБТ кончилось...

    2. Agronom

      Agronom

      Платный тимфорс нинужен же.

    3. .Дзю.

      .Дзю.

      Agronom, я вчера тоже так думал))) А потом поиграл - очень качественная)

      Кто рубит, добавляйтесь - SWINE 21796. Дико угарим, например)))

  9. .Дзю.

    War Thunder

    есть желающие лампово постримить со мной танки? есть мысль собрать компанию на машинах из girls und panzers и угареть, тащемта)
  10. Отключил ограничение по времени для оценки комментариев
  11. увеличил ограничение в 3 раза Пример можно конкретный?
  12. Ламповый стрим по червячкам! Пис, Широй, Керри. Кому интересно, запись тут - http://akiba.club/blog/Stream/105.html#cut

  13. .Дзю.

    Left 4 Dead

    Набираю народ на версус для угарного стрима! http://eva-not-end.com/Portal/blog/8/entry-2616-%D1%81%D1%82%D1%80%D0%B8%D0%BC-%D0%BF%D0%BE-l4d2-%D0%BD%D0%B0%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC-%D0%BD%D0%B0%D1%80%D0%BE%D0%B4/
  14. некоторые ссылки не работают. с чем может быть связано? Не может хеш утянуть, например Пример http://akiba.club/blog/92.html http://vk.com/video75787450_171404317- не работают http://vk.com/video-63858240_456240721- работают
  15. Спасибо!! Очень сильно выручил! Моё почтение!!
  16. Отлично! Всё работает! Только можно что бы возвращал он код без <video> </video> ?
  17. Да. строка точно такая. Вот код самого файла. Я прикрутил все сервисы таким макаром, кроме ВК который не сдаётся. С твоим кодом сейчас перестало работать, выдаёт ошибку Parse error: syntax error, unexpected '}', expecting variable (T_VARIABLE) or '$' in */Text.class.php on line 168 <?php --------------------------------------------------------- */ require_once(Config::Get('path.root.engine').'/lib/external/Jevix/jevix.class.php'); /** * Модуль обработки текста на основе типографа Jevix * Позволяет вырезать из текста лишние HTML теги и предотвращает различные попытки внедрить в текст JavaScript * <pre> * $sText=$this->Text_Parser($sTestSource); * </pre> * Настройки парсинга находятся в конфиге /config/jevix.php * * @package engine.modules * @since 1.0 */ class ModuleText extends Module { /** * Объект типографа * * @var Jevix */ protected $oJevix; /** * Инициализация модуля * */ public function Init() { /** * Создаем объект типографа и запускаем его конфигурацию */ $this->oJevix = new Jevix(); $this->JevixConfig(); } /** * Конфигурирует типограф * */ protected function JevixConfig() { // загружаем конфиг $this->LoadJevixConfig(); } /** * Загружает конфиг Jevix'а * * @param string $sType Тип конфига * @param bool $bClear Очищать предыдущий конфиг или нет */ public function LoadJevixConfig($sType='default',$bClear=true) { if ($bClear) { $this->oJevix->tagsRules=array(); } $aConfig=Config::Get('jevix.'.$sType); if (is_array($aConfig)) { foreach ($aConfig as $sMethod => $aExec) { foreach ($aExec as $aParams) { if (in_array(strtolower($sMethod),array_map("strtolower",array('cfgSetTagCallbackFull','cfgSetTagCallback')))) { if (isset($aParams[1][0]) and $aParams[1][0]=='_this_') { $aParams[1][0]=$this; } } call_user_func_array(array($this->oJevix,$sMethod), $aParams); } } /** * Хардкодим некоторые параметры */ unset($this->oJevix->entities1['&']); // разрешаем в параметрах символ & if (Config::Get('view.noindex') and isset($this->oJevix->tagsRules['a'])) { $this->oJevix->cfgSetTagParamDefault('a','rel','nofollow',true); } } } /** * Возвращает объект Jevix * * @return Jevix */ public function GetJevix() { return $this->oJevix; } /** * Парсинг текста с помощью Jevix * * @param string $sText Исходный текст * @param array $aError Возвращает список возникших ошибок * @return string */ public function JevixParser($sText,&$aError=null) { // Если конфиг пустой, то загружаем его if (!count($this->oJevix->tagsRules)) { $this->LoadJevixConfig(); } $sResult=$this->oJevix->parse($sText,$aError); return $sResult; } /** * Парсинг текста на предмет видео * Находит теги <pre><video></video></pre> и реобразовываетих в видео * * @param string $sText Исходный текст * @return string */ public function VideoParser($sText) { /** * youtube.com */ $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<iframe width="560" height="315" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>', $sText); /** /** * youtu.be */ $sText = preg_replace('/<video>http:\/\/(?:www\.|)youtu.be\/([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<iframe width="560" height="315" src="http://www.youtube.com/embed/$1?rel=0" frameborder="0" allowfullscreen></iframe>', $sText); /** * twitch */ $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)twitch.tv\/([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<iframe src="https://player.twitch.tv/?channel=$1" frameborder="0" scrolling="no" height="315" width="560" class="youtube"></iframe>', $sText); /** * twitch */ $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)twitch.tv\/([a-zA-Z0-9_\-]+)(&.+)?\/v\/([A-Z]{1}|[0-9]{8}).*<\/video>/Ui', '<iframe src="https://player.twitch.tv/?video=v$3" frameborder="0" scrolling="no" height="315" width="560" class="youtube"></iframe>', $sText); /** * twitch chat */ $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)twitch.tv\/([a-zA-Z0-9_\-]+)(&.+)?\/chat<\/video>/Ui', '<div align="center"><iframe src="https://www.twitch.tv/$1/chat?popout=" frameborder="0" scrolling="no" height="500" width="650"></iframe></div>', $sText); /** * vimeo.com */ $sText = preg_replace('/<video>http:\/\/(?:www\.|)vimeo\.com\/(\d+).*<\/video>/i', '<iframe src="http://player.vimeo.com/video/$1" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>', $sText); /** * rutube.ru */ $sText = preg_replace('/<video>http:\/\/(?:www\.|)rutube\.ru\/tracks\/(\d+)\.html.*<\/video>/Ui', '<OBJECT width="470" height="353"><PARAM name="movie" value="http://video.rutube.ru/$1"></PARAM><PARAM name="wmode" value="window"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><EMBED src="http://video.rutube.ru/$1" type="application/x-shockwave-flash" wmode="window" width="470" height="353" allowFullScreen="true" ></EMBED></OBJECT>', $sText); /** * video.yandex.ru */ $sText = preg_replace('/<video>http:\/\/video\.yandex\.ru\/users\/([a-zA-Z0-9_\-]+)\/view\/(\d+).*<\/video>/i', '<object width="467" height="345"><param name="video" value="http://video.yandex.ru/users/$1/view/$2/get-object-by-url/redirect"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="noscale"></param><embed src="http://video.yandex.ru/users/$1/view/$2/get-object-by-url/redirect" type="application/x-shockwave-flash" width="467" height="345" allowFullScreen="true" scale="noscale" ></embed></object>', $sText); return $sText; #Регулярка для вконтакта ini_set('display_errors', 'On'); error_reporting(E_ALL); $sText="<video>http://vk.com/video-50584238_170993059</video>"; print "$sText\n"; $regExp = '/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video((?:-|)[\d]+)_((?:-|)[\d]+)(?:\?[\s\S]+|)<\/video>/i'; if(preg_match($regExp, $sText)) { preg_match_all($regExp, $sText, $sTextMatches); for($i=0;$i<count($sTextMatches[1]);$i++){ $html = file_get_contents('http://vk.com/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i]); preg_match('/\\\"hash2\\\":\\\"([a-f0-9]+)\\\"/Ui', $html, $matches); $sText = preg_replace('/(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i].'(?:\?[\s\S]+|)/Ui', '<iframe src="http://vk.com/video_ext.php?oid='.$sTextMatches[1][$i].'&id='.$ } } print "$sText\n"; } /** * Парсит текст, применя все парсеры * * @param string $sText Исходный текст * @return string */ public function Parser($sText) { if (!is_string($sText)) { return ''; } $sResult=$this->FlashParamParser($sText); $sResult=$this->JevixParser($sResult); $sResult=$this->VideoParser($sResult); $sResult=$this->CodeSourceParser($sResult); return $sResult; } /** * Заменяет все вхождения короткого тега <param/> на длиную версию <param></param> * Заменяет все вхождения короткого тега <embed/> на длиную версию <embed></embed> * * @param string $sText Исходный текст * @return string */ protected function FlashParamParser($sText) { if (preg_match_all("@(<\s*param\s*name\s*=\s*(?:\"|').*(?:\"|')\s*value\s*=\s*(?:\"|').*(?:\"|'))\s*/?\s*>(?!</param>)@Ui",$sText,$aMatch)) { foreach ($aMatch[1] as $key => $str) { $str_new=$str.'></param>'; $sText=str_replace($aMatch[0][$key],$str_new,$sText); } } if (preg_match_all("@(<\s*embed\s*.*)\s*/?\s*>(?!</embed>)@Ui",$sText,$aMatch)) { foreach ($aMatch[1] as $key => $str) { $str_new=$str.'></embed>'; $sText=str_replace($aMatch[0][$key],$str_new,$sText); } } /** * Удаляем все <param name="wmode" value="*"></param> */ if (preg_match_all("@(<param\s.*name=(?:\"|')wmode(?:\"|').*>\s*</param>)@Ui",$sText,$aMatch)) { foreach ($aMatch[1] as $key => $str) { $sText=str_replace($aMatch[0][$key],'',$sText); } } /** * А теперь после <object> добавляем <param name="wmode" value="opaque"></param> * Решение не фантан, но главное работает :) */ if (preg_match_all("@(<object\s.*>)@Ui",$sText,$aMatch)) { foreach ($aMatch[1] as $key => $str) { $sText=str_replace($aMatch[0][$key],$aMatch[0][$key].'<param name="wmode" value="opaque"></param>',$sText); } } return $sText; } /** * Подсветка исходного кода * * @param string $sText Исходный текст * @return mixed */ public function CodeSourceParser($sText) { $sText=str_replace("<code>",'<pre class="prettyprint"><code>',$sText); $sText=str_replace("</code>",'</code></pre>',$sText); return $sText; } /** * Производить резрезание текста по тегу cut. * Возвращаем массив вида: * <pre> * array( * $sTextShort - текст до тега <cut> * $sTextNew - весь текст за исключением удаленного тега * $sTextCut - именованное значение <cut> * ) * </pre> * * @param string $sText Исходный текст * @return array */ public function Cut($sText) { $sTextShort = $sText; $sTextNew = $sText; $sTextCut = null; $sTextTemp=str_replace("\r\n",'[<rn>]',$sText); $sTextTemp=str_replace("\n",'[<n>]',$sTextTemp); if (preg_match("/^(.*)<cut(.*)>(.*)$/Ui",$sTextTemp,$aMatch)) { $aMatch[1]=str_replace('[<rn>]',"\r\n",$aMatch[1]); $aMatch[1]=str_replace('[<n>]',"\r\n",$aMatch[1]); $aMatch[3]=str_replace('[<rn>]',"\r\n",$aMatch[3]); $aMatch[3]=str_replace('[<n>]',"\r\n",$aMatch[3]); $sTextShort=$aMatch[1]; $sTextNew=$aMatch[1].' <a name="cut"></a> '.$aMatch[3]; if (preg_match('/^\s*name\s*=\s*"(.+)"\s*\/?$/Ui',$aMatch[2],$aMatchCut)) { $sTextCut=trim($aMatchCut[1]); } } return array($sTextShort,$sTextNew,$sTextCut ? htmlspecialchars($sTextCut) : null); } /** * Обработка тега ls в тексте * <pre> * <ls user="admin" /> * </pre> * * @param string $sTag Тег на ктором сработал колбэк * @param array $aParams Список параметров тега * @return string */ public function CallbackTagLs($sTag,$aParams) { $sText=''; if (isset($aParams['user'])) { if ($oUser=$this->User_getUserByLogin($aParams['user'])) { $sText.="<a href=\"{$oUser->getUserWebPath()}\" class=\"ls-user\">{$oUser->getLogin()}</a> "; } } return $sText; } } ?>
  18. надо с тегами видео, да. работоспособность тут проверяю http://akiba.club/ но он почему то ни как не хочет этот текст подменять. ни в каком виде. оставляет без изминений
  19. Ну вот в том то и дело что оно его не преобразует почему-то. ну то есть вообще не трогает. оставляет: <video>http://vk.com/video-50584238_170993059</video>
  20. Код вставки видео вконтакте http://vk.com/video17838299_171567608 Он должен получить хеш видео и на выходе полукчить что-то типа <iframe src="//vk.com/video_ext.php?oid=-107380895&id=456239063&hash=46c2c9d459c7c898&hd=2" width="853" height="480" frameborder="0"></iframe>
  21. Братцы, кто дико рубит в ПХП? Почему данный парсер может не работать? Должен забирать видео в вк по ссылке, получать хеш и менять код $regExp = '/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video([\d]+)_([\d]+)(?:\?[\s\S]+|)<\/video>/Ui'; if(preg_match($regExp, $sText)) { preg_match_all($regExp, $sText, $sTextMatches); for($i=0;$i<count($sTextMatches[1]);$i++){ $html = file_get_contents('http://vk.com/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i]); preg_match('/\\\"hash2\\\":\\\"([a-f0-9]+)\\\"/Ui', $html, $matches); $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i].'(?:\?[\s\S]+|)<\/video>/Ui', '<iframe src="http://vk.com/video_ext.php?oid='.$sTextMatches[1][$i].'&id='.$sTextMatches[2][$i].'&hash='.$matches[1].'" width="560" height="315" frameborder="0"></iframe>', $sText); } }
×
×
  • Создать...