From: <fr...@us...> - 2009-06-28 09:38:27
|
Revision: 2969 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2969&view=rev Author: framug Date: 2009-06-28 09:37:31 +0000 (Sun, 28 Jun 2009) Log Message: ----------- For being MP 1.1 compliant. Modified Paths: -------------- trunk/plugins/WebEPGfr/WebEPGfr.xmp Added Paths: ----------- trunk/plugins/WebEPGfr/ICSharpCode.SharpZipLib.dll trunk/plugins/WebEPGfr/xmltv.dtd Added: trunk/plugins/WebEPGfr/ICSharpCode.SharpZipLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/WebEPGfr/ICSharpCode.SharpZipLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/plugins/WebEPGfr/WebEPGfr.xmp =================================================================== --- trunk/plugins/WebEPGfr/WebEPGfr.xmp 2009-06-28 07:12:11 UTC (rev 2968) +++ trunk/plugins/WebEPGfr/WebEPGfr.xmp 2009-06-28 09:37:31 UTC (rev 2969) @@ -1,4 +1,4 @@ -<MPinstaler> +<MPInstaller> <ver>1.00.000</ver> <FileList> <File> @@ -8,7 +8,7 @@ <Source>skin\Xface\Media\button_WebEPGfr.png</Source> <Id>02010</Id> <Option>OutputFileName=\button_WebEPGfr.png|</Option> - <Guid>b8b28c57-ecfd-424e-9270-456be89c319d</Guid> + <Guid>93d70ec9-82c3-4ffd-b5be-7d3bac009584</Guid> </File> <File> <FileName>buttonNF_WebEPGfr.png</FileName> @@ -17,34 +17,16 @@ <Source>skin\Xface\Media\buttonNF_WebEPGfr.png</Source> <Id>02010</Id> <Option>OutputFileName=\buttonNF_WebEPGfr.png|</Option> - <Guid>20a03b0e-2e80-4ebf-b6d7-ae8822e7967b</Guid> + <Guid>7945a518-fd6d-41c9-bef9-a895991dec57</Guid> </File> <File> - <FileName>common.window.kazer.xml</FileName> - <Type>Skin</Type> - <SubType>Xface</SubType> - <Source>skin\Xface\common.window.kazer.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>0feb8d80-78ee-44e2-bf93-6c22767e7c29</Guid> - </File> - <File> - <FileName>common.window.ZguideTV.xml</FileName> - <Type>Skin</Type> - <SubType>Xface</SubType> - <Source>skin\Xface\common.window.ZguideTV.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>d4ec8609-5b2e-4631-bb51-1be2cb5f84dc</Guid> - </File> - <File> <FileName>hover_kazer.png</FileName> <Type>Media</Type> <SubType>BlueTwo</SubType> <Source>skin\BlueTwo\Media\hover_kazer.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_kazer.png|</Option> - <Guid>d79e0125-dff7-4d18-9a90-5bcd5d2c34bc</Guid> + <Guid>4797dc3f-24c1-411c-89e4-43c7f12fc832</Guid> </File> <File> <FileName>hover_kazer.png</FileName> @@ -53,7 +35,7 @@ <Source>skin\BlueTwo wide\Media\hover_kazer.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_kazer.png|</Option> - <Guid>3b8bf2c6-a254-45f2-814d-e77869b095d7</Guid> + <Guid>c8106c4b-c9c5-4290-b488-bf05c69fe424</Guid> </File> <File> <FileName>hover_kazer.png</FileName> @@ -62,7 +44,7 @@ <Source>skin\Xface\Media\hover_kazer.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_kazer.png|</Option> - <Guid>f24a329b-0270-47d0-81de-c5cde3be9ee0</Guid> + <Guid>7e40aa06-e46a-4cb7-8cbf-552b205f3e1e</Guid> </File> <File> <FileName>hover_WebEPGfr.png</FileName> @@ -71,7 +53,7 @@ <Source>skin\Xface\Media\hover_WebEPGfr.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_WebEPGfr.png|</Option> - <Guid>95837ce0-5068-43f4-9bf6-7da2dd1a3c77</Guid> + <Guid>2882f119-d4f6-4580-b67b-95427c662b5b</Guid> </File> <File> <FileName>Hover_WebEPGfr.png</FileName> @@ -80,7 +62,7 @@ <Source>skin\BlueTwo\Media\Hover_WebEPGfr.png</Source> <Id>02010</Id> <Option>OutputFileName=\Hover_WebEPGfr.png|</Option> - <Guid>83d17e4d-bf8b-4c1a-9c26-7c30fb4231b6</Guid> + <Guid>ef7353bb-a756-44ee-a706-79a18e492144</Guid> </File> <File> <FileName>Hover_WebEPGfr.png</FileName> @@ -89,7 +71,7 @@ <Source>skin\BlueTwo wide\Media\Hover_WebEPGfr.png</Source> <Id>02010</Id> <Option>OutputFileName=\Hover_WebEPGfr.png|</Option> - <Guid>0a9a6a30-e645-47c0-ae26-b936458b3b9a</Guid> + <Guid>a0a737e8-9e56-4cb7-9514-177bfbe76ec4</Guid> </File> <File> <FileName>hover_ZguideTV.png</FileName> @@ -98,7 +80,7 @@ <Source>skin\Xface\Media\hover_ZguideTV.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_ZguideTV.png|</Option> - <Guid>a75e40c1-69e6-4c70-bda0-5ba49f1bf276</Guid> + <Guid>4bcd658b-6b1f-4159-8212-3fc754ddf72e</Guid> </File> <File> <FileName>Hover_ZguideTV.png</FileName> @@ -107,7 +89,7 @@ <Source>skin\BlueTwo\Media\Hover_ZguideTV.png</Source> <Id>02010</Id> <Option>OutputFileName=\Hover_ZguideTV.png|</Option> - <Guid>2dc2853d-3dfe-4cec-ae6b-e2652d6ce510</Guid> + <Guid>f9508846-3dce-418f-acfc-0af70792461e</Guid> </File> <File> <FileName>Hover_ZguideTV.png</FileName> @@ -116,61 +98,16 @@ <Source>skin\BlueTwo wide\Media\Hover_ZguideTV.png</Source> <Id>02010</Id> <Option>OutputFileName=\Hover_ZguideTV.png|</Option> - <Guid>51715ccb-ff13-4980-b9c0-81da378a9660</Guid> + <Guid>6164cca6-9d1b-4cde-b5cb-2089d4f4fd64</Guid> </File> <File> - <FileName>kazer.xml</FileName> - <Type>Skin</Type> - <SubType>Blue3</SubType> - <Source>skin\Blue3\kazer.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>2cb5ebe8-c02b-4d36-b241-b01d3b7433a3</Guid> - </File> - <File> - <FileName>kazer.xml</FileName> - <Type>Skin</Type> - <SubType>Blue3wide</SubType> - <Source>skin\Blue3wide\kazer.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>39ffa99d-41e6-4fc6-b72f-53d60362280a</Guid> - </File> - <File> - <FileName>kazer.xml</FileName> - <Type>Skin</Type> - <SubType>BlueTwo</SubType> - <Source>skin\BlueTwo\kazer.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>2eb49896-62fc-46c4-bfc6-448e87c058bc</Guid> - </File> - <File> - <FileName>kazer.xml</FileName> - <Type>Skin</Type> - <SubType>BlueTwo wide</SubType> - <Source>skin\BlueTwo wide\kazer.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>256a63ff-9783-49f2-9cf7-40083572a2c5</Guid> - </File> - <File> - <FileName>kazer.xml</FileName> - <Type>Skin</Type> - <SubType>Xface</SubType> - <Source>skin\Xface\kazer.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>b28ff92d-5007-4d66-a987-a29a057a1b93</Guid> - </File> - <File> <FileName>kazer_logo.png</FileName> <Type>Media</Type> <SubType>Blue3</SubType> <Source>skin\Blue3\Media\kazer_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\kazer_logo.png|</Option> - <Guid>10bdb1d6-0fcd-4229-85a0-0ef4c3797b0a</Guid> + <Guid>6db658a3-9e84-44bf-a4f3-58d0eb78799e</Guid> </File> <File> <FileName>kazer_logo.png</FileName> @@ -179,7 +116,7 @@ <Source>skin\Blue3wide\Media\kazer_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\kazer_logo.png|</Option> - <Guid>24895c0e-aa50-4169-95fc-e9413d4b9c57</Guid> + <Guid>bbbd8492-3a7c-49ac-a307-15a020f66797</Guid> </File> <File> <FileName>kazer_logo.png</FileName> @@ -188,7 +125,7 @@ <Source>skin\BlueTwo\Media\kazer_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\kazer_logo.png|</Option> - <Guid>ecfcf5cf-12d5-4b94-a6ec-ddafadd4cdca</Guid> + <Guid>83fd4069-326b-41b2-9d2a-769e61b9ff96</Guid> </File> <File> <FileName>kazer_logo.png</FileName> @@ -197,7 +134,7 @@ <Source>skin\BlueTwo wide\Media\kazer_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\kazer_logo.png|</Option> - <Guid>58c3293f-c001-4d66-ae46-de683c618dfa</Guid> + <Guid>e02a83b0-2027-4c6d-a210-5ba49fad03fc</Guid> </File> <File> <FileName>kazer_logo.png</FileName> @@ -206,25 +143,16 @@ <Source>skin\Xface\Media\kazer_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\kazer_logo.png|</Option> - <Guid>b3915c44-1221-4144-ac29-deb9fbba1bb9</Guid> + <Guid>d5f3fc7c-e3b6-4329-a8d7-9902d2c75425</Guid> </File> <File> - <FileName>WebEPGfr.dll</FileName> - <Type>Plugin</Type> - <SubType>Window</SubType> - <Source>bin\Release\WebEPGfr.dll</Source> - <Id>01010</Id> - <Option /> - <Guid>da81a90a-e930-47f2-8096-d3891baa8b82</Guid> - </File> - <File> <FileName>WebEPGfr_logo.png</FileName> <Type>Media</Type> <SubType>Blue3</SubType> <Source>skin\Blue3\Media\WebEPGfr_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\WebEPGfr_logo.png|</Option> - <Guid>1fc69541-f8f4-46f8-bf20-8dddf52749e0</Guid> + <Guid>31c4ed71-514c-45f4-a8e7-be7e5a6578eb</Guid> </File> <File> <FileName>WebEPGfr_logo.png</FileName> @@ -233,7 +161,7 @@ <Source>skin\Blue3wide\Media\WebEPGfr_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\WebEPGfr_logo.png|</Option> - <Guid>99cfba63-6690-48a7-8304-d2aaa59dc61d</Guid> + <Guid>8347af4a-890e-483e-b655-4fee37061da6</Guid> </File> <File> <FileName>WebEPGfr_logo.png</FileName> @@ -242,7 +170,7 @@ <Source>skin\BlueTwo\Media\WebEPGfr_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\WebEPGfr_logo.png|</Option> - <Guid>2a25ffcb-fd21-4190-a61b-2585025defc7</Guid> + <Guid>ded02dc6-6259-45de-915d-ba690bea7948</Guid> </File> <File> <FileName>WebEPGfr_logo.png</FileName> @@ -251,107 +179,197 @@ <Source>skin\BlueTwo wide\Media\WebEPGfr_logo.png</Source> <Id>02010</Id> <Option>OutputFileName=\WebEPGfr_logo.png|</Option> - <Guid>00c7a8dd-1770-42e2-83bc-ec95156b92ec</Guid> + <Guid>33e88de6-c88a-4748-b684-120f0f8ce842</Guid> </File> <File> + <FileName>ZguideTV_logo.png</FileName> + <Type>Media</Type> + <SubType>Xface</SubType> + <Source>skin\Xface\Media\ZguideTV_logo.png</Source> + <Id>02010</Id> + <Option>OutputFileName=\ZguideTV_logo.png|</Option> + <Guid>13fcb2f8-0b92-4fe3-ab5a-164cb30d9aa8</Guid> + </File> + <File> + <FileName>ZGuideTV_logo.png</FileName> + <Type>Media</Type> + <SubType>Blue3</SubType> + <Source>skin\Blue3\Media\ZGuideTV_logo.png</Source> + <Id>02010</Id> + <Option>OutputFileName=\ZGuideTV_logo.png|</Option> + <Guid>dce1cd24-9605-4864-8312-e6259339a24a</Guid> + </File> + <File> + <FileName>ZGuideTV_logo.png</FileName> + <Type>Media</Type> + <SubType>Blue3wide</SubType> + <Source>skin\Blue3wide\Media\ZGuideTV_logo.png</Source> + <Id>02010</Id> + <Option>OutputFileName=\ZGuideTV_logo.png|</Option> + <Guid>60c7166d-ac74-4808-9468-a032852376b2</Guid> + </File> + <File> + <FileName>ZGuideTV_logo.png</FileName> + <Type>Media</Type> + <SubType>BlueTwo</SubType> + <Source>skin\BlueTwo\Media\ZGuideTV_logo.png</Source> + <Id>02010</Id> + <Option>OutputFileName=\ZGuideTV_logo.png|</Option> + <Guid>69d71735-8428-4b6b-b003-d53bf946564e</Guid> + </File> + <File> + <FileName>ZGuideTV_logo.png</FileName> + <Type>Media</Type> + <SubType>BlueTwo wide</SubType> + <Source>skin\BlueTwo wide\Media\ZGuideTV_logo.png</Source> + <Id>02010</Id> + <Option>OutputFileName=\ZGuideTV_logo.png|</Option> + <Guid>9bff237b-2351-4e5b-a27e-6ffca28213b9</Guid> + </File> + <File> + <FileName>xmltv.dtd</FileName> + <Type>Other</Type> + <SubType /> + <Source>xmltv.dtd</Source> + <Id>04010</Id> + <Option /> + <Guid>f5986182-3944-424c-815f-a83db8e78b83</Guid> + </File> + <File> + <FileName>ICSharpCode.SharpZipLib.dll</FileName> + <Type>Other</Type> + <SubType /> + <Source>ICSharpCode.SharpZipLib.dll</Source> + <Id>04010</Id> + <Option /> + <Guid>4cf81821-eeba-4f66-a17b-4ae5cd9d3b35</Guid> + </File> + <File> + <FileName>WebEPGfr.dll</FileName> + <Type>Plugin</Type> + <SubType>Window</SubType> + <Source>bin\Release\WebEPGfr.dll</Source> + <Id>01010</Id> + <Option /> + <Guid>198235b9-1b44-49e2-9546-c593a6c77300</Guid> + </File> + <File> <FileName>WebEPGfr_planification.dll</FileName> <Type>Plugin</Type> <SubType>Process</SubType> <Source>WebEPGfr_planification\bin\Release\WebEPGfr_planification.dll</Source> <Id>01020</Id> <Option /> - <Guid>e50b70bd-275e-48f1-a798-14fef079400b</Guid> + <Guid>fe5264fb-7421-447a-bfa8-8b26cfdd5815</Guid> </File> <File> - <FileName>ZguideTV.xml</FileName> + <FileName>common.window.kazer.xml</FileName> <Type>Skin</Type> + <SubType>Xface</SubType> + <Source>skin\Xface\common.window.kazer.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>e0d6dbd8-dd11-4e93-9dec-4a35ebcda3d9</Guid> + </File> + <File> + <FileName>common.window.ZguideTV.xml</FileName> + <Type>Skin</Type> + <SubType>Xface</SubType> + <Source>skin\Xface\common.window.ZguideTV.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>f5df9d3f-6f10-4fa8-850a-37001650b423</Guid> + </File> + <File> + <FileName>kazer.xml</FileName> + <Type>Skin</Type> <SubType>Blue3</SubType> - <Source>skin\Blue3\ZguideTV.xml</Source> + <Source>skin\Blue3\kazer.xml</Source> <Id>02010</Id> <Option /> - <Guid>f679aef6-a116-4830-a7ef-34e0919490c6</Guid> + <Guid>21a1f7cf-84eb-4a63-ba2f-5c20054dfa0a</Guid> </File> <File> - <FileName>ZguideTV.xml</FileName> + <FileName>kazer.xml</FileName> <Type>Skin</Type> <SubType>Blue3wide</SubType> - <Source>skin\Blue3wide\ZguideTV.xml</Source> + <Source>skin\Blue3wide\kazer.xml</Source> <Id>02010</Id> <Option /> - <Guid>2773730e-231b-4e29-ac1a-d3852e04f643</Guid> + <Guid>44cc8969-19a9-4c2f-bf05-45056320badf</Guid> </File> <File> - <FileName>ZguideTV.xml</FileName> + <FileName>kazer.xml</FileName> <Type>Skin</Type> <SubType>BlueTwo</SubType> - <Source>skin\BlueTwo\ZguideTV.xml</Source> + <Source>skin\BlueTwo\kazer.xml</Source> <Id>02010</Id> <Option /> - <Guid>10db5dc9-9b96-406c-bdf6-5d260b0a3e69</Guid> + <Guid>b2187a03-83b4-4af0-89f5-8989d9b173b8</Guid> </File> <File> - <FileName>ZguideTV.xml</FileName> + <FileName>kazer.xml</FileName> <Type>Skin</Type> <SubType>BlueTwo wide</SubType> - <Source>skin\BlueTwo wide\ZguideTV.xml</Source> + <Source>skin\BlueTwo wide\kazer.xml</Source> <Id>02010</Id> <Option /> - <Guid>d3477671-0992-4512-b651-cf8eb9453771</Guid> + <Guid>a6bceed0-dd96-4d5a-869d-c2157038c73e</Guid> </File> <File> - <FileName>ZguideTV.xml</FileName> + <FileName>kazer.xml</FileName> <Type>Skin</Type> <SubType>Xface</SubType> - <Source>skin\Xface\ZguideTV.xml</Source> + <Source>skin\Xface\kazer.xml</Source> <Id>02010</Id> <Option /> - <Guid>ad1a0895-499f-4d50-a820-2bc4c87115fe</Guid> + <Guid>a9d33bd1-c79f-496d-8bb3-9eaf5180cd6d</Guid> </File> <File> - <FileName>ZguideTV_logo.png</FileName> - <Type>Media</Type> - <SubType>Xface</SubType> - <Source>skin\Xface\Media\ZguideTV_logo.png</Source> - <Id>02010</Id> - <Option>OutputFileName=\ZguideTV_logo.png|</Option> - <Guid>f32d8b28-81c6-40c2-ae57-c43575b17171</Guid> - </File> - <File> - <FileName>ZGuideTV_logo.png</FileName> - <Type>Media</Type> + <FileName>ZguideTV.xml</FileName> + <Type>Skin</Type> <SubType>Blue3</SubType> - <Source>skin\Blue3\Media\ZGuideTV_logo.png</Source> + <Source>skin\Blue3\ZguideTV.xml</Source> <Id>02010</Id> - <Option>OutputFileName=\ZGuideTV_logo.png|</Option> - <Guid>b3add72e-5e9b-4542-9cfa-7163d6e581b2</Guid> + <Option /> + <Guid>d58f9e52-0c50-4237-b427-eca3e11772d2</Guid> </File> <File> - <FileName>ZGuideTV_logo.png</FileName> - <Type>Media</Type> + <FileName>ZguideTV.xml</FileName> + <Type>Skin</Type> <SubType>Blue3wide</SubType> - <Source>skin\Blue3wide\Media\ZGuideTV_logo.png</Source> + <Source>skin\Blue3wide\ZguideTV.xml</Source> <Id>02010</Id> - <Option>OutputFileName=\ZGuideTV_logo.png|</Option> - <Guid>8aaac1a8-a227-4fc8-a7bb-dd4af5baab6d</Guid> + <Option /> + <Guid>d5ab5487-afb1-4d5b-bacf-ad44968bc841</Guid> </File> <File> - <FileName>ZGuideTV_logo.png</FileName> - <Type>Media</Type> + <FileName>ZguideTV.xml</FileName> + <Type>Skin</Type> <SubType>BlueTwo</SubType> - <Source>skin\BlueTwo\Media\ZGuideTV_logo.png</Source> + <Source>skin\BlueTwo\ZguideTV.xml</Source> <Id>02010</Id> - <Option>OutputFileName=\ZGuideTV_logo.png|</Option> - <Guid>5d934557-96d3-43b7-8b03-3370d56a2c1e</Guid> + <Option /> + <Guid>54202d2b-321f-4c61-ad4a-38eaffe085d0</Guid> </File> <File> - <FileName>ZGuideTV_logo.png</FileName> - <Type>Media</Type> + <FileName>ZguideTV.xml</FileName> + <Type>Skin</Type> <SubType>BlueTwo wide</SubType> - <Source>skin\BlueTwo wide\Media\ZGuideTV_logo.png</Source> + <Source>skin\BlueTwo wide\ZguideTV.xml</Source> <Id>02010</Id> - <Option>OutputFileName=\ZGuideTV_logo.png|</Option> - <Guid>749f93e7-2b8e-451a-ba13-193ed5878f5a</Guid> + <Option /> + <Guid>60d87739-cdbf-4db3-b2d8-a2d82359c5d4</Guid> </File> + <File> + <FileName>ZguideTV.xml</FileName> + <Type>Skin</Type> + <SubType>Xface</SubType> + <Source>skin\Xface\ZguideTV.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>9da749a9-7add-4d0f-94ef-462bcdde4a36</Guid> + </File> </FileList> <StringList /> <Actions /> @@ -359,11 +377,11 @@ <SetupGroupMappings /> <Option> <BuildFileName>D:\SVN\MP-Plugins\WebEPGfr\WebEPGfr.MPE1</BuildFileName> - <ProiectFileName>D:\SVN\MP-Plugins\WebEPGfr\WebEPGfr.xmp</ProiectFileName> - <ProiectName>WebEPGfr</ProiectName> + <ProjectFileName>D:\SVN\MP-Plugins\WebEPGfr\WebEPGfr.xmp</ProjectFileName> + <ProjectName>WebEPGfr</ProjectName> <Author>framug, lopeztuparles, -ltb-</Author> <UpdateURL>http://www.team-mediaportal.com</UpdateURL> - <Version>1.1</Version> + <Version>1.2</Version> <Description>French EPG/TV downloader. Téléchargement d'un fichier guide EPG en provenance de kazer.org ou ZguideTV.</Description> <Group>EPG/TV</Group> @@ -460,9 +478,9 @@ <ForumURL /> <WebURL /> <WikiURL /> - <CreationDate>11-04-09</CreationDate> + <CreationDate>28-06-09</CreationDate> <SingleGroupSelect>False</SingleGroupSelect> <ClearSkinCache>False</ClearSkinCache> <UseRealPathInPackage>False</UseRealPathInPackage> </Properties> -</MPinstaler> \ No newline at end of file +</MPInstaller> \ No newline at end of file Added: trunk/plugins/WebEPGfr/xmltv.dtd =================================================================== --- trunk/plugins/WebEPGfr/xmltv.dtd (rev 0) +++ trunk/plugins/WebEPGfr/xmltv.dtd 2009-06-28 09:37:31 UTC (rev 2969) @@ -0,0 +1,525 @@ +<!-- DTD for TV listings + +This is a DTD to represent a TV listing. It doesn't explicitly group +programmes by day or by channel, instead broadcast time and channel +are attributes of the 'programme' element. Optionally, data about the +TV channels used can be stored in 'channel' elements. + +Data about a TV programme are stored in the subelements of element +'programme', but metadata such as when it will be broadcast are stored +as attributes. + +Many of the details have a 'lang' attribute so that you can +store them in multiple languages or have mixed languages in a single +listing. This 'lang' should be the two-letter code such as 'en' or +'fr_FR'. Or you can just leave it out and let your reader take a +guess. + +Unless otherwise specified, an element containing CDATA must have some +text if it is written. + +An example XML file for this DTD might look like this: + +<tv generator-info-name="my listings generator"> + <channel id="3sat.de"> + <display-name lang="de">3SAT</display-name> + </channel> + <channel id="das-erste.de"> + <display-name lang="de">ARD</display-name> + <display-name lang="de">Das Erste</display-name> + </channel> + + <programme start="200006031633" channel="3sat.de"> + <title lang="de">blah</title> + <title lang="en">blah</title> + <desc lang="de"> + Blah Blah Blah. + </desc> + <credits> + <director>blah</director> + <actor>a</actor> + <actor>b</actor> + </credits> + <date>19901011</date> + <country>ES</country> + <episode-num system="xmltv_ns">2 . 9 . 0/1</episode-num> + <video> + <aspect>16:9</aspect> + </video> + <rating system="MPAA"> + <value>PG</value> + <icon src="pg_symbol.png" /> + </rating> + <star-rating> + <value>3/3</value> + </star-rating> + </programme> + <programme> ... </programme> + ... +</tv> + +This describes two channels and then a programme broadcast on one of +the channels, then some more programmes. Almost everything in the DTD +is optional, so you can write files which are much simpler than this +example. + +All dates and times in this DTD follow the same format, loosely based +on ISO 8601. They can be 'YYYYMMDDhhmmss' or some initial +substring, for example if you only know the year and month you can +have 'YYYYMM'. You can also append a timezone to the end; if no +explicit timezone is given, UTC is assumed. Examples: +'200007281733 BST', '200209', '19880523083000 +0300'. (BST == +0100.) + +Unless specified otherwise, textual element content may not contain +newlines - this is to make it easy to convert into line-oriented +formats, and to avoid the question of what exactly a newline would +mean in the middle of someone's name or whatever. Leading and +trailing whitespace in element content is not significant. + +At present versions of this DTD correspond to releases of the 'xmltv' +package, which is a set of programs to generate and manipulate files +conforming to this DTD. Written by Ed Avis (ed...@me...) and +Gottfried Szing, thanks to others for suggestions. + +$Id: xmltv.dtd 1127 2004-10-19 15:32:04Z mrmario64 $ + +--> + +<!-- The root element, tv. + +Date should be the date when the listings were originally produced in +whatever format; if you're converting data from another source, then +use the date given by that source. The date when the conversion +itself was done is not important. + +To indicate the source of the listings, there are three attributes you +can define: + +'source-info-url' is a URL describing the data source in +some human-readable form. So if you are getting your listings from +SAT.1, you might set this to the URL of a page explaining how to +subscribe to their feed. If you are getting them from a website, the +URL might be the index of the site or at least of the TV listings +section. + +'source-info-name' is the link text for that URL; it should +generally be the human-readable name of your listings supplier. +Sometimes the link text might be printed without the link itself, in +hardcopy listings for example. + +'source-data-url' is where the actual data is grabbed from. This +should link directly to the machine-readable data files if possible, +but it's not rigorously defined what 'actual data' means. If you are +parsing the data from human-readable pages, then it's more appropriate +to link to them with the source-info stuff and omit this attribute. + +To publicize your wonderful program which generated this file, you can +use 'generator-info-name' (preferably in the form 'progname/version') +and 'generator-info-url' (a link to more info about the program). +--> +<!ELEMENT tv (channel*, programme*)> +<!ATTLIST tv date CDATA #IMPLIED + source-info-url CDATA #IMPLIED + source-info-name CDATA #IMPLIED + source-data-url CDATA #IMPLIED + generator-info-name CDATA #IMPLIED + generator-info-url CDATA #IMPLIED > + +<!-- channel - details of a channel + +Each 'programme' element (see below) should have an attribute +'channel' giving the channel on which it is broadcast. If you want to +provide more detail about channels, you can give some 'channel' +elements before listing the programmes. The 'id' attribute of the +channel should match what is given in the 'channel' attribute of the +programme. + +Typically, all the channels used in a particular TV listing will be +included and then the programmes using those channels. But it's +entirely optional to include channel details - you can just leave out +channel elements or provide only some of them. It is also okay to +give just channels and no programmes, if you just want to describe +what TV channels are available in a certain area. + +Each channel has one id attribute, which must be unique and should +preferably be in the form suggested by RFC2838 (the 'broadcast' +element of the grammar in that RFC, in other words, a DNS-like name +but without any URI scheme). Then one or more display names which are +shown to the user. You might want a different display name for +different languages, but also you can have more than one name for the +same language. Names listed earlier are considered 'more canonical'. + +Since the display name is just there as a way for humans to refer to +the channel, it's acceptable to just put the channel number if it's +fairly universal among viewers of the channel. But remember that this +isn't an official statement of what channel number has been +allocated, and the same number might be used for a different channel +somewhere else. + +The ordering of channel elements makes no difference to the meaning of +the file, since they are looked up by id and not by their position. +However it makes things like diffing easier if you write the channel +elements sorted by ASCII order of their ids. +--> +<!ELEMENT channel (display-name+, icon*, url*) > +<!ATTLIST channel id CDATA #REQUIRED > + +<!-- A user-friendly name for the channel - maybe even a channel +number. List the most canonical / common ones first and the most +obscure names last. The lang attribute follows RFC 1766. +--> +<!ELEMENT display-name (#PCDATA)> +<!ATTLIST display-name lang CDATA #IMPLIED> + +<!-- A URL where you can find out more about the element that contains +it (programme or channel). This might be the official site, or a fan +page, whatever you like really. + +If multiple url elements are given, the most authoritative or official +(which might conflict...) sites should be listed first. +--> +<!ELEMENT url (#PCDATA)> + +<!-- programme - details of a single programme transmission + +A show will be exactly the same whether it is broadcast at 18:00 or +19:00, and on whichever channel. Technical details like broadcast +time don't affect the content of the programme itself, so they are +included as attributes of this element. Start time and channel are +the two that you must include. + +Sometimes VCR programming systems like PDC or VPS have their own +notion of 'start time' which is different from the actual start time, +so there are attributes for that. In practice, stop time will usually +be the start time of the next programme, but if you can get it more +accurate, good for you. Similarly, you can specify a code for +Gemstar's Showview or VideoPlus programming systems. + +TV listings sometimes have the problem of listing two or more +programmes in the same timeslot, such as 'News; Weather'. We call +this a 'clump' of programmes, and the 'clumpidx' attribute +differentiates between two programmes sharing the same timeslot and +channel. In this case News would have clumpidx="0/2" and Weather +would have clumpidx="1/2". If you don't have this problem, be +thankful! + +It's intended that start time and stop time, when both are present, +make a half-closed interval: a programme is considered to be +broadcasting _at_ its start time but to stop just before its stop +time. In this way a programme from 11:00 to 12:00 does not overlap +with another programme from 12:00 to 13:00, not even for a moment. +Nor is there any gap between the two. + +To do: Some means of indicating breaks between programmes on the same +channel. The 'channel' attribute references the 'id' of a channel +element, but the DTD doesn't give a way to specify this constraint. +Perhaps there is some better XML syntax we could use for that. +--> +<!ELEMENT programme (title+, sub-title*, desc*, credits?, date?, + category*, language?, orig-language?, length?, + icon*, url*, country*, episode-num*, video?, audio?, + previously-shown?, premiere?, last-chance?, new?, + subtitles*, rating*, star-rating? )> +<!ATTLIST programme start CDATA #REQUIRED + stop CDATA #IMPLIED + pdc-start CDATA #IMPLIED + vps-start CDATA #IMPLIED + showview CDATA #IMPLIED + videoplus CDATA #IMPLIED + channel CDATA #REQUIRED + clumpidx CDATA "0/1" > + +<!-- Programme title, eg 'The Simpsons'. --> +<!ELEMENT title (#PCDATA)> +<!ATTLIST title lang CDATA #IMPLIED> + +<!-- Sub-title or episode title, eg 'Datalore'. Should probably be +called 'secondary title' to avoid confusion with captioning! +--> +<!ELEMENT sub-title (#PCDATA)> +<!ATTLIST sub-title lang CDATA #IMPLIED> + +<!-- Description of the programme or episode. + +Unlike other elements, long bits of whitespace here are treated as +equivalent to a single space and newlines are permitted, so you can +break lines and write a pretty-looking paragraph if you wish. +--> +<!ELEMENT desc (#PCDATA)> +<!ATTLIST desc lang CDATA #IMPLIED> + +<!-- Credits for the programme. + +People are listed in decreasing order of importance; so for example +the starring actors appear first followed by the smaller parts. As +with other parts of this file format, not mentioning a particular +actor (for example) does not imply that he _didn't_ star in the film - +so normally you'd list only the few most important people. + +Adapter can be either somebody who adapted a work for television, or +somebody who did the translation from another language. Maybe these +should be separate, but if so how would 'translator' fit in with the +'language' element? +--> +<!ELEMENT credits (director*, actor*, writer*, adapter*, producer*, + presenter*, commentator*, guest* )> +<!ELEMENT director (#PCDATA)> +<!ELEMENT actor (#PCDATA)> +<!ELEMENT writer (#PCDATA)> +<!ELEMENT adapter (#PCDATA)> +<!ELEMENT producer (#PCDATA)> +<!ELEMENT presenter (#PCDATA)> +<!ELEMENT commentator (#PCDATA)> +<!ELEMENT guest (#PCDATA)> + + +<!-- The date the programme or film was finished. This will probably +be the same as the copyright date. +--> +<!ELEMENT date (#PCDATA)> + +<!-- Type of programme, eg 'soap', 'comedy' or whatever the +equivalents are in your language. There's no predefined set of +categories and it's okay for a programme to belong to several. +--> +<!ELEMENT category (#PCDATA)> +<!ATTLIST category lang CDATA #IMPLIED> + +<!-- The language the programme will be broadcast in. This does not +include the language of any subtitles, but it is affected by dubbing +into a different language. For example, if a French film is dubbed +into English, language=en and orig-language=fr. + +There are two ways to specify the language. You can use the +two-letter codes such as en or fr, or you can give a name such as +'English' or 'Deutsch'. In the latter case you might want to use the +'lang' attribute, for example + +<language lang="fr">Allemand</language> +--> +<!ELEMENT language (#PCDATA)> +<!ATTLIST language lang CDATA #IMPLIED> + +<!-- The original language, before dubbing. The same remarks as for +'language' apply. +--> +<!ELEMENT orig-language (#PCDATA)> +<!ATTLIST orig-language lang CDATA #IMPLIED> + +<!-- The true length of the programme, not counting advertisements or +trailers. But this does take account of any bits which were cut out +of the broadcast version - eg if a two hour film is cut to 110 minutes +and then padded with 20 minutes of advertising, length will be 110 +minutes even though end time minus start time is 130 minutes. +--> +<!ELEMENT length (#PCDATA)> +<!ATTLIST length units (seconds | minutes | hours) #REQUIRED> + +<!-- An icon associated with the element that contains it. +src: uri of image +width, height: (optional) dimensions of image + +These dimensions are pixel dimensions for the time being, eventually +this will change to be more like HTML's 'img'. +--> +<!ELEMENT icon EMPTY> +<!ATTLIST icon src CDATA #REQUIRED + width CDATA #IMPLIED + height CDATA #IMPLIED> + +<!-- The value of the element that contains it. This is for elements +that can have both a textual 'value' and an icon. At present there is +no 'lang' attribute here because things like 'PG' are not translatable +(although a document explaining what 'PG' actually means would be). +It happens that 'value' is used only for this sort of thing. +--> +<!ELEMENT value (#PCDATA)> + +<!-- A country where the programme was made or one of the countries in +a joint production. You can give the name of a country, in which case +you might want to specify the language in which this name is written, +or you can give a two-letter uppercase country code, in which case the +lang attribute should not be given. For example, + +<country lang="en">Italy</country> +<country>GB</country> +--> +<!ELEMENT country (#PCDATA)> +<!ATTLIST country lang CDATA #IMPLIED> + +<!-- Episode number + +Not the title of the episode, its number or ID. There are several +ways of numbering episodes, so the 'system' attribute lets you specify +which you mean. + +There are two predefined numbering systems, 'xmltv_ns' and +'onscreen'. + +xmltv_ns: This is intended to be a general way to number episodes and +parts of multi-part episodes. It is three numbers separated by dots, +the first is the series or season, the second the episode number +within that series, and the third the part number, if the programme is +part of a two-parter. All these numbers are indexed from zero, and +they can be given in the form 'X/Y' to show series X out of Y series +made, or episode X out of Y episodes in this series, or part X of a +Y-part episode. If any of these aren't known they can be omitted. +You can put spaces whereever you like to make things easier to read. + +(NB 'part number' is not used when a whole programme is split in two +for purely scheduling reasons; it's intended for cases where there +really is a 'Part One' and 'Part Two'. The format doesn't currently +have a way to represent a whole programme that happens to be split +across two or more timeslots.) + +Some examples will make things clearer. The first episode of the +second series is '1.0.0/1' . If it were a two-part episode, then the +first half would be '1.0.0/2' and the second half '1.0.1/2'. If you +know that an episode is from the first season, but you don't know +which episode it is or whether it is part of a multiparter, you could +give the episode-num as '0..'. Here the second and third numbers have +been omitted. If you know that this is the first part of a three-part +episode, which is the last episode of the first series of thirteen, +its number would be '0 . 12/13 . 0/3'. The series number is just '0' +because you don't know how many series there are in total - perhaps +the show is still being made! + +The other predefined system, onscreen, is to simply copy what the +programme makers write in the credits - 'Episode #FFEE' would +translate to '#FFEE'. + +You are encouraged to use one of these two if possible; if xmltv_ns is +not general enough for your needs, let me know. But if you want, you +can use your own system and give the 'system' attribute as a URL +describing the system you use. +--> +<!ELEMENT episode-num (#PCDATA)> +<!ATTLIST episode-num system CDATA "onscreen"> + +<!-- Video details: the subelements describe the picture quality as +follows: + +present: whether this programme has a picture (no, in the +case of radio stations broadcast on TV or 'Blue'), legal values are +'yes' or 'no'. Obviously if the value is 'no', the other elements are +meaningless. + +colour: 'yes' for colour, 'no' for black-and-white. + +aspect: The horizontal:vertical aspect ratio, eg '4:3' or '16:9'. +--> +<!ELEMENT video (present?, colour?, aspect?)> +<!ELEMENT present (#PCDATA)> +<!ELEMENT colour (#PCDATA)> +<!ELEMENT aspect (#PCDATA)> + +<!-- Audio details, similar to video details above. + +present: whether this programme has any sound at all, 'yes' or 'no'. + +stereo: Description of the stereo-ness of the sound. Legal values +are currently 'mono' and 'stereo' and 'surround'; others like 'quad' +might be added later. +--> +<!ELEMENT audio (present?, stereo?)> +<!ELEMENT stereo (#PCDATA)> + +<!-- When and where the programme was last shown, if known. Normally +in TV listings 'repeat' means 'previously shown on this channel', but +if you don't know what channel the old screening was on (but do know +that it happened) then you can omit the 'channel' attribute. +Similarly you can omit the 'start' attribute if you don't know when +the previous transmission was (though you can of course give just the +year, etc.). + +The absence of this element does not say for certain that the +programme is brand new and has never been screened anywhere before. +--> +<!ELEMENT previously-shown EMPTY> +<!ATTLIST previously-shown start CDATA #IMPLIED + channel CDATA #IMPLIED > + +<!-- 'Premiere'. Different channels have different meanings for this +word - sometimes it means a film has never before been seen on TV in +that country, but other channels use it to mean 'the first showing of +this film on our channel in the current run'. It might have been +shown before, but now they have paid for another set of showings, +which makes the first in that set count as a premiere! + +So this element doesn't have a clear meaning, just use it to represent +where 'premiere' would appear in a printed TV listing. You can use +the content of the element to explain exactly what is meant, for +example: + +<premiere lang="en"> + First showing on national terrestrial TV +</premiere> + +The textual content is a 'paragraph' as for <desc>. If you don't want +to give an explanation, just write empty content: + +<premiere /> +--> +<!ELEMENT premiere (#PCDATA)> +<!ATTLIST premiere lang CDATA #IMPLIED> + +<!-- Last-chance. In a way this is the opposite of premiere. Some +channels buy the rights to show a movie a certain number of times, and +the first may be flagged 'premiere', the last as 'last showing'. + +For symmetry with premiere, you may use the element content to give a +'paragraph' describing exactly what is meant - it's unlikely to be the +last showing ever! Otherwise, explicitly put empty content: + +<last-chance /> +--> +<!ELEMENT last-chance (#PCDATA)> +<!ATTLIST last-chance lang CDATA #IMPLIED> + +<!-- New. This is the first screened programme from a new show that +has never been shown on television before - if not worldwide then at +least never before in this country. After the first episode or +programme has been shown, subsequent ones are no longer 'new'. +Similarly the second series of an established programme is not 'new'. + +Note that this does not mean 'new season' or 'new episode' of an +existing show. You can express part of that using the episode-num +stuff. +--> +<!ELEMENT new EMPTY> + +<!-- Subtitles. These can be either 'teletext' (sent digitally, and +displayed at the viewer's request) or 'onscreen' (superimposed on the +picture and impossible to get rid of). You can have multiple subtitle +streams to handle different languages. Language for subtitles is +specified in the same way as for programmes. +--> +<!ELEMENT subtitles (language?)> +<!ATTLIST subtitles type (teletext | onscreen) #IMPLIED> + +<!-- Rating. Various bodies decide on classifications for films - +usually a minimum age you must be to see it. In principle the same +could be done for ordinary TV programmes. Because there are many +systems for doing this, you can also specify the rating system used +(which in practice is the same as the body which made the rating). +--> +<!ELEMENT rating (value, icon*)> +<!ATTLIST rating system CDATA #IMPLIED> + +<!-- 'Star rating' - many listings guides award a programme a score as +a quick guide to how good it is. The value of this element should be +'N / M', for example one star out of a possible five stars would be +'1 / 5'. Zero stars is also a possible score (and not the same as +'unrated'). You should try to map whatever wacky system your listings +source uses to a number of stars: so for example if they have thumbs +up, thumbs sideways and thumbs down, you could map that to two, one or +zero stars out of two. Whitespace between the numbers and slash is +ignored. +--> +<!ELEMENT star-rating (value, icon*)> + +<!-- (Why are things like 'stereo', which must be one of a small +number of values, stored as the contents of elements rather than as +attributes? Because they are data rather than metadata. Attributes +are used for things like the language or encoding of element contents, +or for programme transmission details.) --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |