<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.veda.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AVideogallery</id>
	<title>Module:Videogallery - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.veda.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AVideogallery"/>
	<link rel="alternate" type="text/html" href="https://en.veda.wiki/index.php?title=Module:Videogallery&amp;action=history"/>
	<updated>2026-04-14T09:56:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://en.veda.wiki/index.php?title=Module:Videogallery&amp;diff=741&amp;oldid=prev</id>
		<title>Sphynkx at 16:37, 31 March 2025</title>
		<link rel="alternate" type="text/html" href="https://en.veda.wiki/index.php?title=Module:Videogallery&amp;diff=741&amp;oldid=prev"/>
		<updated>2025-03-31T16:37:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:37, 31 March 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l88&quot;&gt;Line 88:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 88:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- here i reused as identifier of nonempty videogallery (for setting of category)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- here i reused as identifier of nonempty videogallery (for setting of category)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;i = (vidcnt&amp;gt;1) and &amp;quot;[[Category:Страницы с видео]]&amp;quot; or &amp;quot;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;i = (vidcnt&amp;gt;1) and &amp;quot;[[Category:Страницы с видео]]&amp;quot; or &amp;quot;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return collapseHead .. table.getn(vidtable) .. &#039; videos&#039; .. collapseBody .. &#039;&amp;lt;table border=&#039; .. vidlist_border .. &#039;  cellpadding=5&amp;gt;&#039; .. frame:preprocess(table.concat(vidtable)) .. &#039;&amp;lt;/table&amp;gt;&#039;.. i .. collapseEnd&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return collapseHead .. table.getn(vidtable) .. &#039; videos&#039; .. collapseBody .. &#039;&amp;lt;table &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;class=&quot;video_table&quot; &lt;/ins&gt;border=&#039; .. vidlist_border .. &#039;  cellpadding=5&amp;gt;&#039; .. frame:preprocess(table.concat(vidtable)) .. &#039;&amp;lt;/table&amp;gt;&#039;.. i .. collapseEnd&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return p&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return p&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key lah_wiki_en:diff:1.41:old-621:rev-741:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Sphynkx</name></author>
	</entry>
	<entry>
		<id>https://en.veda.wiki/index.php?title=Module:Videogallery&amp;diff=621&amp;oldid=prev</id>
		<title>Sphynkx at 19:13, 16 October 2024</title>
		<link rel="alternate" type="text/html" href="https://en.veda.wiki/index.php?title=Module:Videogallery&amp;diff=621&amp;oldid=prev"/>
		<updated>2024-10-16T19:13:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:13, 16 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if     string.match(u,&amp;#039;youtube&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if     string.match(u,&amp;#039;youtube&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     id = string.gsub(u,&amp;#039;.*youtube.com%/watch%?v%=(.*)&amp;#039;,&amp;#039;%1&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     id = string.gsub(u,&amp;#039;.*youtube.com%/watch%?v%=(.*)&amp;#039;,&amp;#039;%1&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     ytid = &#039;&amp;lt;span class=&quot;&#039;.. &#039;{{#ifexist: Subtitles:&#039;.. id .. &#039; | | tech }}&#039; .. &#039;&quot;&amp;gt;&amp;lt;br&amp;gt;[[Subtitles:&#039; .. id .. &#039;|(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Субтитры&lt;/del&gt;)]]&amp;lt;/span&amp;gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     ytid = &#039;&amp;lt;span class=&quot;&#039;.. &#039;{{#ifexist: Subtitles:&#039;.. id .. &#039; | | tech }}&#039; .. &#039;&quot;&amp;gt;&amp;lt;br&amp;gt;[[Subtitles:&#039; .. id .. &#039;|(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Subtitles&lt;/ins&gt;)]]&amp;lt;/span&amp;gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     return &amp;#039;&amp;lt;html&amp;gt;&amp;lt;iframe src=&amp;quot;https://www.youtube.com/embed/&amp;#039;..id..&amp;#039;&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;250&amp;quot; frameborder=&amp;quot;1&amp;quot; allowfullscreen=&amp;quot;true&amp;quot; style=&amp;quot;white-space: nowrap; display: -webkit-flex; -webkit-flex-direction: row; display: flex; flex-direction: row;&amp;quot; align=&amp;quot;baseline&amp;quot; seamless&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/html&amp;gt;[[File:Youtube.png|24px|left|link=]]&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     return &amp;#039;&amp;lt;html&amp;gt;&amp;lt;iframe src=&amp;quot;https://www.youtube.com/embed/&amp;#039;..id..&amp;#039;&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;250&amp;quot; frameborder=&amp;quot;1&amp;quot; allowfullscreen=&amp;quot;true&amp;quot; style=&amp;quot;white-space: nowrap; display: -webkit-flex; -webkit-flex-direction: row; display: flex; flex-direction: row;&amp;quot; align=&amp;quot;baseline&amp;quot; seamless&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/html&amp;gt;[[File:Youtube.png|24px|left|link=]]&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     elseif     string.match(u,&amp;#039;yurtube&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     elseif     string.match(u,&amp;#039;yurtube&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sphynkx</name></author>
	</entry>
	<entry>
		<id>https://en.veda.wiki/index.php?title=Module:Videogallery&amp;diff=620&amp;oldid=prev</id>
		<title>Sphynkx at 19:09, 16 October 2024</title>
		<link rel="alternate" type="text/html" href="https://en.veda.wiki/index.php?title=Module:Videogallery&amp;diff=620&amp;oldid=prev"/>
		<updated>2024-10-16T19:09:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:09, 16 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if     string.match(u,&amp;#039;youtube&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     if     string.match(u,&amp;#039;youtube&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     id = string.gsub(u,&amp;#039;.*youtube.com%/watch%?v%=(.*)&amp;#039;,&amp;#039;%1&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     id = string.gsub(u,&amp;#039;.*youtube.com%/watch%?v%=(.*)&amp;#039;,&amp;#039;%1&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     ytid = &#039;&amp;lt;span class=&quot;&#039;.. &#039;{{#ifexist: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Субтитры&lt;/del&gt;:&#039;.. id .. &#039; | | tech }}&#039; .. &#039;&quot;&amp;gt;&amp;lt;br&amp;gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Субтитры&lt;/del&gt;:&#039; .. id .. &#039;|(Субтитры)]]&amp;lt;/span&amp;gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     ytid = &#039;&amp;lt;span class=&quot;&#039;.. &#039;{{#ifexist: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Subtitles&lt;/ins&gt;:&#039;.. id .. &#039; | | tech }}&#039; .. &#039;&quot;&amp;gt;&amp;lt;br&amp;gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Subtitles&lt;/ins&gt;:&#039; .. id .. &#039;|(Субтитры)]]&amp;lt;/span&amp;gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     return &amp;#039;&amp;lt;html&amp;gt;&amp;lt;iframe src=&amp;quot;https://www.youtube.com/embed/&amp;#039;..id..&amp;#039;&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;250&amp;quot; frameborder=&amp;quot;1&amp;quot; allowfullscreen=&amp;quot;true&amp;quot; style=&amp;quot;white-space: nowrap; display: -webkit-flex; -webkit-flex-direction: row; display: flex; flex-direction: row;&amp;quot; align=&amp;quot;baseline&amp;quot; seamless&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/html&amp;gt;[[File:Youtube.png|24px|left|link=]]&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     return &amp;#039;&amp;lt;html&amp;gt;&amp;lt;iframe src=&amp;quot;https://www.youtube.com/embed/&amp;#039;..id..&amp;#039;&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;250&amp;quot; frameborder=&amp;quot;1&amp;quot; allowfullscreen=&amp;quot;true&amp;quot; style=&amp;quot;white-space: nowrap; display: -webkit-flex; -webkit-flex-direction: row; display: flex; flex-direction: row;&amp;quot; align=&amp;quot;baseline&amp;quot; seamless&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/html&amp;gt;[[File:Youtube.png|24px|left|link=]]&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     elseif     string.match(u,&amp;#039;yurtube&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     elseif     string.match(u,&amp;#039;yurtube&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l58&quot;&gt;Line 58:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 58:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   if string.match(c,&amp;#039;&amp;lt;nosub&amp;gt;&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   if string.match(c,&amp;#039;&amp;lt;nosub&amp;gt;&amp;#039;) then  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      c = string.gsub(c,&amp;#039;(.-)(&amp;lt;nosub&amp;gt;)(.*)&amp;#039;,&amp;#039;%1%3&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      c = string.gsub(c,&amp;#039;(.-)(&amp;lt;nosub&amp;gt;)(.*)&amp;#039;,&amp;#039;%1%3&amp;#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      ytid = &#039;&amp;lt;br&amp;gt;&amp;lt;span class=&quot;tech&quot; style=&quot;color: lightgray;&quot;&amp;gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Без субтитров&lt;/del&gt;)&amp;lt;/span&amp;gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      ytid = &#039;&amp;lt;br&amp;gt;&amp;lt;span class=&quot;tech&quot; style=&quot;color: lightgray;&quot;&amp;gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;w/o subtitles&lt;/ins&gt;)&amp;lt;/span&amp;gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   c=format_timestamp(u, c)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   c=format_timestamp(u, c)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sphynkx</name></author>
	</entry>
	<entry>
		<id>https://en.veda.wiki/index.php?title=Module:Videogallery&amp;diff=349&amp;oldid=prev</id>
		<title>Sphynkx: Created page with &quot;-- Module for replacing of combination of EmbedVideo-ext + my Ev-template with more faster lua-implementation -- Test page: https://lahwiki.sphynkx.org.ua/Sandbox/Videogallery -- v.1: Supported services are YouTube, RuTube, EMTube, OK -- v.2: Added optional collapsibility.  -- v.3: function for replacement youtube timestamps into URL in wiki-format. Timestamp is beginning part of line that starts with &#039;:&#039; and after placed hours (optionally), again &#039;:&#039;,minutes (one- or tw...&quot;</title>
		<link rel="alternate" type="text/html" href="https://en.veda.wiki/index.php?title=Module:Videogallery&amp;diff=349&amp;oldid=prev"/>
		<updated>2024-10-10T22:08:31Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- Module for replacing of combination of EmbedVideo-ext + my Ev-template with more faster lua-implementation -- Test page: https://lahwiki.sphynkx.org.ua/Sandbox/Videogallery -- v.1: Supported services are YouTube, RuTube, EMTube, OK -- v.2: Added optional collapsibility.  -- v.3: function for replacement youtube timestamps into URL in wiki-format. Timestamp is beginning part of line that starts with &amp;#039;:&amp;#039; and after placed hours (optionally), again &amp;#039;:&amp;#039;,minutes (one- or tw...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Module for replacing of combination of EmbedVideo-ext + my Ev-template with more faster lua-implementation&lt;br /&gt;
-- Test page: https://lahwiki.sphynkx.org.ua/Sandbox/Videogallery&lt;br /&gt;
-- v.1: Supported services are YouTube, RuTube, EMTube, OK&lt;br /&gt;
-- v.2: Added optional collapsibility. &lt;br /&gt;
-- v.3: function for replacement youtube timestamps into URL in wiki-format. Timestamp is beginning part of line that starts with &amp;#039;:&amp;#039; and after placed hours (optionally), again &amp;#039;:&amp;#039;,minutes (one- or twodigit), &amp;#039;:&amp;#039;, seconds (todigit, leading zero if need). After that is have to be one space and minus. And next is rest of comment etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local p = {} -- p stands for package&lt;br /&gt;
&lt;br /&gt;
ytid=&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
function get_embed(u)&lt;br /&gt;
    if     string.match(u,&amp;#039;youtube&amp;#039;) then &lt;br /&gt;
                                    id = string.gsub(u,&amp;#039;.*youtube.com%/watch%?v%=(.*)&amp;#039;,&amp;#039;%1&amp;#039;)&lt;br /&gt;
                                    ytid = &amp;#039;&amp;lt;span class=&amp;quot;&amp;#039;.. &amp;#039;{{#ifexist: Субтитры:&amp;#039;.. id .. &amp;#039; | | tech }}&amp;#039; .. &amp;#039;&amp;quot;&amp;gt;&amp;lt;br&amp;gt;[[Субтитры:&amp;#039; .. id .. &amp;#039;|(Субтитры)]]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
                                    return &amp;#039;&amp;lt;html&amp;gt;&amp;lt;iframe src=&amp;quot;https://www.youtube.com/embed/&amp;#039;..id..&amp;#039;&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;250&amp;quot; frameborder=&amp;quot;1&amp;quot; allowfullscreen=&amp;quot;true&amp;quot; style=&amp;quot;white-space: nowrap; display: -webkit-flex; -webkit-flex-direction: row; display: flex; flex-direction: row;&amp;quot; align=&amp;quot;baseline&amp;quot; seamless&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/html&amp;gt;[[File:Youtube.png|24px|left|link=]]&amp;#039;&lt;br /&gt;
    elseif     string.match(u,&amp;#039;yurtube&amp;#039;) then &lt;br /&gt;
                                    id = string.gsub(u,&amp;#039;.*yurtube.-/watch%?v%=(.*)&amp;#039;,&amp;#039;%1&amp;#039;)&lt;br /&gt;
                                    ytid=&amp;#039;&amp;#039;&lt;br /&gt;
                                    return &amp;#039;&amp;lt;html&amp;gt;&amp;lt;iframe src=&amp;quot;https://yurtube.sphynkx.org.ua/embed?vid=&amp;#039;..id..&amp;#039;&amp;amp;width=300&amp;amp;height=250&amp;amp;autoplay=no&amp;quot; frameborder=&amp;quot;1&amp;quot; allowfullscreen scrolling=&amp;quot;no&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;250&amp;quot; seamless&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/html&amp;gt;&amp;lt;br&amp;gt;[[File:yurtube.png|24px|left|link=]]&amp;#039;&lt;br /&gt;
    elseif     string.match(u,&amp;#039;rutube&amp;#039;) then &lt;br /&gt;
                                    id = string.gsub(u,&amp;#039;.*rutube.ru/video/(.*)/&amp;#039;,&amp;#039;%1&amp;#039;)&lt;br /&gt;
                                    ytid=&amp;#039;&amp;#039;&lt;br /&gt;
                                    return &amp;#039;&amp;lt;html&amp;gt;&amp;lt;iframe width=&amp;quot;300&amp;quot; height=&amp;quot;250&amp;quot; src=&amp;quot;https://rutube.ru/pl/?pl_video=&amp;#039;..id..&amp;#039;&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;clipboard-write&amp;quot; webkitAllowFullScreen mozallowfullscreen allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/html&amp;gt;&amp;lt;br&amp;gt;[[File:rutube.png|24px|left|link=]]&amp;#039;&lt;br /&gt;
    else return &amp;#039;&amp;lt;div style=&amp;quot;display: block; border: 1px solid red; width:300px; max-width:300px; height:250px; max-height:250px; &amp;quot;&amp;gt; &amp;lt;/div&amp;gt;[[File:Unknown.png|24px|left|link=]]&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--TODO: Here need to convert in comment (c) any sequences of &amp;quot;XX:YY:ZZ&amp;quot; into &amp;quot;XXhYYmZZs&amp;quot; and generate videoURL with this timestamp&lt;br /&gt;
function format_timestamp(u, c)&lt;br /&gt;
local outp=&amp;#039;&amp;#039;&lt;br /&gt;
--for each line in comment..&lt;br /&gt;
for line in string.gmatch(c, &amp;quot;([^\n]+)&amp;quot;) do&lt;br /&gt;
--check if timestamp exists in line&lt;br /&gt;
    t=string.match(line, &amp;#039;:(.-%d:%d%d) &amp;#039;)&lt;br /&gt;
    if t==nil then &lt;br /&gt;
	t=&amp;quot;&amp;quot; &lt;br /&gt;
	else&lt;br /&gt;
--working line backup--	    line=string.gsub(line, &amp;#039;(:)(%d?:?.-):(%d%d)(.-)&amp;#039;, &amp;#039;%1[&amp;#039;..u..&amp;#039;&amp;amp;t=%2m%3s &amp;#039;..t..&amp;#039;]%4&amp;#039;)&lt;br /&gt;
-- reformat to wiki markup and set seconds&lt;br /&gt;
	    line=string.gsub(line, &amp;#039;:(.-%d%d)( %- .-)&amp;#039;, &amp;#039;:[&amp;#039;..u..&amp;#039;&amp;amp;t=%1s &amp;#039;..t..&amp;#039;]%2&amp;#039;)&lt;br /&gt;
-- format munutes part&lt;br /&gt;
	    line=string.gsub(line, &amp;#039;:(%d%ds)&amp;#039;, &amp;#039;m%1&amp;#039;)&lt;br /&gt;
-- format hours part&lt;br /&gt;
	    line=string.gsub(line, &amp;#039;(%d:?):(%d%dm%d%ds)&amp;#039;, &amp;#039;%1h%2&amp;#039;)&lt;br /&gt;
	end -- IF&lt;br /&gt;
-- concatenate everything back&lt;br /&gt;
    outp=outp..line..&amp;#039;\n&amp;#039;&lt;br /&gt;
    end --FOR&lt;br /&gt;
    return outp&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--format final code with iframe&lt;br /&gt;
function format_embed(d, u, t, c)&lt;br /&gt;
  e=get_embed(u)&lt;br /&gt;
  if string.match(c,&amp;#039;&amp;lt;nosub&amp;gt;&amp;#039;) then &lt;br /&gt;
     c = string.gsub(c,&amp;#039;(.-)(&amp;lt;nosub&amp;gt;)(.*)&amp;#039;,&amp;#039;%1%3&amp;#039;)&lt;br /&gt;
     ytid = &amp;#039;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;tech&amp;quot; style=&amp;quot;color: lightgray;&amp;quot;&amp;gt;(Без субтитров)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
  end&lt;br /&gt;
  c=format_timestamp(u, c)&lt;br /&gt;
  return &amp;#039;&amp;lt;b&amp;gt;&amp;#039;..e..d..&amp;#039;&amp;lt;br&amp;gt;&amp;#039;..&amp;#039; [&amp;#039;..u..&amp;#039; &amp;#039;..t..&amp;#039;]&amp;lt;/b&amp;gt;&amp;#039;..ytid..&amp;#039;&amp;lt;br&amp;gt;&amp;#039;..c&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.videos( frame )&lt;br /&gt;
local vidlist = frame.args[&amp;#039;VIDEOS&amp;#039;]&lt;br /&gt;
local vidlist_rows = frame.args[&amp;#039;VIDEO_ROWS&amp;#039;]&lt;br /&gt;
local vidlist_border = frame.args[&amp;#039;VIDEO_BORDER&amp;#039;]&lt;br /&gt;
local collapsed  = frame.args[&amp;#039;COLLAPSED&amp;#039;]==&amp;#039;1&amp;#039; and &amp;#039; mw-collapsed&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
local collapseHead = frame.args[&amp;#039;COLLAPSIBLE&amp;#039;]==&amp;#039;1&amp;#039; and frame:preprocess(&amp;#039;&amp;lt;html&amp;gt;&amp;lt;span class=&amp;quot;toccolours mw-collapsible&amp;#039; .. collapsed ..&amp;#039;&amp;quot; style=&amp;quot;width:8000px; display: table-cell; margin: 0.5em 0 0 2em; clear: both&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;&lt;br /&gt;
local collapseBody = frame.args[&amp;#039;COLLAPSIBLE&amp;#039;]==&amp;#039;1&amp;#039; and frame:preprocess(&amp;#039;&amp;lt;html&amp;gt;&amp;lt;span class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;&lt;br /&gt;
local collapseEnd  = frame.args[&amp;#039;COLLAPSIBLE&amp;#039;]==&amp;#039;1&amp;#039; and frame:preprocess(&amp;#039;&amp;lt;html&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/html&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- escape STAR sign inside the text, that is not a list identifier&lt;br /&gt;
vidlist=string.gsub(vidlist,&amp;#039;([^\n])%*&amp;#039;, &amp;#039;%1&amp;amp;#42;&amp;#039;)&lt;br /&gt;
vidcnt=1&lt;br /&gt;
vidtable = {}&lt;br /&gt;
for i in string.gmatch(vidlist, &amp;#039;%*[^\*]*&amp;#039;) do&lt;br /&gt;
    i=string.gsub(i,&amp;#039;%*(.-)%[(.-) (.-)%](.*)&amp;#039;, format_embed)&lt;br /&gt;
    tr_start = math.fmod( vidcnt, vidlist_rows ) == 1 and &amp;#039;&amp;lt;tr&amp;gt;&amp;#039;  or &amp;quot;&amp;quot;&lt;br /&gt;
    tr_end   = math.fmod( vidcnt, vidlist_rows ) == 0 and &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039; or &amp;quot;&amp;quot;&lt;br /&gt;
    table.insert(vidtable, tr_start..&amp;#039;&amp;lt;td valign=top width=&amp;#039;..100/vidlist_rows..&amp;#039;%&amp;gt;&amp;#039;..i..&amp;#039;&amp;lt;/td&amp;gt;&amp;#039;..tr_end)&lt;br /&gt;
    vidcnt=vidcnt+1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
-- here i reused as identifier of nonempty videogallery (for setting of category)&lt;br /&gt;
i = (vidcnt&amp;gt;1) and &amp;quot;[[Category:Страницы с видео]]&amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
return collapseHead .. table.getn(vidtable) .. &amp;#039; videos&amp;#039; .. collapseBody .. &amp;#039;&amp;lt;table border=&amp;#039; .. vidlist_border .. &amp;#039;  cellpadding=5&amp;gt;&amp;#039; .. frame:preprocess(table.concat(vidtable)) .. &amp;#039;&amp;lt;/table&amp;gt;&amp;#039;.. i .. collapseEnd&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Sphynkx</name></author>
	</entry>
</feed>