<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Неофициальный форум DLNA Home Media Server &mdash; kinokrad.co]]></title>
	<link rel="self" href="https://hms.lostcut.net/extern.php?action=feed&amp;tid=396&amp;type=atom" />
	<updated>2017-05-30T19:40:22Z</updated>
	<generator>PunBB</generator>
	<id>https://hms.lostcut.net/viewtopic.php?id=396</id>
		<entry>
			<title type="html"><![CDATA[Re: kinokrad.co]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=9125#p9125" />
			<content type="html"><![CDATA[<p>Там ссылки для фильмов зашифрованы в <br /></p><div class="codebox"><pre><code>var filmSourceM = &quot;#06807407407003a02f02f06d02d06306406e02e06b06906e06f06b07206106402e06306f02f06606906c06507302f06407704d05406f07704d07506904506805a07206803104106403006c02d03405102f03103403903603203503603703503102f04e06906b06907406102e04b06f06a06506d07906106b06102e03203003103602e04804405206907002e06d070034&quot;;</code></pre></div><p>Функция расшифровки этой лабуды будет такая (это просто unicode коды по три байта, тевёртый всегда ноль - выкинут):<br /></p><div class="codebox"><pre><code>///////////////////////////////////////////////////////////////////////////////
// Декодирование ссылок для HTML5 плеера
string Html5Decode(string sEncoded) {
  if ((sEncoded==&quot;&quot;) || (Pos(&quot;.&quot;, sEncoded) &gt; 0)) return sEncoded;
  if (sEncoded[1]==&quot;#&quot;) sEncoded = Copy(sEncoded, 2, Length(sEncoded)-1);
  string sDecoded = &quot;&quot;;
  for (int i=1; i &lt;= Length(sEncoded); i+=3) {
    sDecoded += &quot;\\u0&quot; + Copy(sEncoded, i, 3);
  }
  return HmsJsonDecode(sDecoded);
}</code></pre></div><p>Теперь можно искать на странице такой зашифрованный текст и расшифровывать:<br /></p><div class="codebox"><pre><code>if (HmsRegExMatch(&#039;filmSourceM\\s*=\\s*&quot;(.*?)&quot;&#039;, sHtml, sLink, 1, PCRE_SINGLELINE)) {
    // Создаём ссылку на конкретный фильм
    sLink = Html5Decode(sLink);
    CreateMediaItem(PodcastItem, mpTitle, sLink);

}</code></pre></div><p>В случае сериалов, там вообще не зашиврована, как я понял, ссылка на json плейлист серий:<br /></p><div class="codebox"><pre><code>this.videoplayer = new Uppod({
  m:&quot;video&quot;,
  uid:&quot;videoplayer_315702&quot;,
  pl:&#039;/playlist?315702&amp;html5=1&#039;,
  vast_preroll: &#039;https://homenick.biz/assets/vendor/f182fd17d9dd8f0a94c699e799a14491.xml?v=3.0&#039;,
  st:&#039;uppodvideo&#039;
});</code></pre></div><p>Короче, участок кода в подкасте теперь может быть примерно такой:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>  // =========================================================================
  // Сбор информации о фильме
  if (HmsRegExMatch(&#039;Год:.*?(\\d{4})&#039;, sHtml, sVal)) PodcastItem[mpiYear] = sVal;
  if (HmsRegExMatch(&#039;Продолжительность.*?(\\d{2}:\\d{2}:\\d{2})&#039;, sHtml, sVal)) gsTime = sVal+&#039;.000&#039;;
  if (HmsRegExMatch(&#039;Продолжительность.*?(\\d+)\\s*мин&#039;, sHtml, sVal)) gsTime = HmsTimeFormat(StrToInt(sVal)*60)+&#039;.000&#039;;
  if (HmsRegExMatch(&#039;Жанр:(.*?)&lt;/li&gt;&#039;    , sHtml, sVal)) PodcastItem[mpiGenre    ] = HmsHtmlToText(sVal);
  if (HmsRegExMatch(&#039;Страна:(.*?)&lt;/li&#039;  , sHtml, sVal)) PodcastItem[mpiCountry  ] = HmsHtmlToText(sVal);
  if (HmsRegExMatch(&#039;Перевод:(.*?)&lt;/li&#039; , sHtml, sVal)) PodcastItem[mpiTranslate] = HmsHtmlToText(sVal);
  if (HmsRegExMatch(&#039;Качество:(.*?)&lt;/li&#039;, sHtml, sVal)) PodcastItem[mpiQuality  ] = HmsHtmlToText(sVal);
  if (HmsRegExMatch(&#039;Режиссёр:(.*?)&lt;/li&#039;, sHtml, sVal)) PodcastItem[mpiDirector ] = HmsHtmlToText(sVal);
  if (HmsRegExMatch(&#039;(&lt;div[^&gt;]+&quot;description&quot;.*?)&lt;br&#039;, sHtml, sVal)) PodcastItem[mpiComment] = HmsHtmlToText(sVal);
  // =========================================================================
  
  // Ищем ссылки на видео или плейлист сериала
  if (HmsRegExMatch(&quot;pl:&#039;(/playlist.*?)&#039;&quot;, sHtml, sLink, 1, PCRE_SINGLELINE)) {
    // Загружаем плейлист серий
    sData = HmsDownloadURL(gsUrlBase + sLink, &#039;Referer: &#039;+mpFilePath, true);
    // Создаём список серий
    CreateSeriesFromPlaylist(PodcastItem, sData);
  
  } else if (HmsRegExMatch(&#039;filmSourceM\\s*=\\s*&quot;(.*?)&quot;&#039;, sHtml, sLink, 1, PCRE_SINGLELINE)) {
    // Создаём ссылку на конкретный фильм
    sLink = Html5Decode(sLink);
    CreateMediaItem(PodcastItem, mpTitle, sLink);

  } else {
    
    CreateErrorItem(&#039;Не удалось найти ссылку на фильм на странице сайта.&#039;);
    
  }</code></pre></div><p>Естественно там же в коде должна быть добавлена функция Html5Decode(...) из примера выше.</p></div></div>]]></content>
			<author>
				<name><![CDATA[WendyH]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=2</uri>
			</author>
			<updated>2017-05-30T19:40:22Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=9125#p9125</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[kinokrad.co]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=9123#p9123" />
			<content type="html"><![CDATA[<p>Разработка подкаста!!!</p>]]></content>
			<author>
				<name><![CDATA[михаил]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=760</uri>
			</author>
			<updated>2017-05-30T11:26:57Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=9123#p9123</id>
		</entry>
</feed>
