From: <fr...@us...> - 2008-01-07 03:11:40
|
Revision: 1218 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1218&view=rev Author: framug Date: 2008-01-06 19:11:37 -0800 (Sun, 06 Jan 2008) Log Message: ----------- begin dev, not useable for the moment please, read ReadMe-LisMoi.txt file. Added Paths: ----------- trunk/plugins/kazer/ trunk/plugins/kazer/Properties/ trunk/plugins/kazer/Properties/AssemblyInfo.cs trunk/plugins/kazer/ReadMe-LisMoi.txt trunk/plugins/kazer/kazer.cs trunk/plugins/kazer/kazer.csproj trunk/plugins/kazer/kazer.ico trunk/plugins/kazer/kazer.sln trunk/plugins/kazer/kazerSetup.Designer.cs trunk/plugins/kazer/kazerSetup.cs trunk/plugins/kazer/kazerSetup.resx Added: trunk/plugins/kazer/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/kazer/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/kazer/Properties/AssemblyInfo.cs 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Les informations générales relatives à un assembly dépendent de +// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations +// associées à un assembly. +[assembly: AssemblyTitle("kazer")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("kazer")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly +// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de +// COM, affectez la valeur true à l'attribut ComVisible sur ce type. +[assembly: ComVisible(false)] + +// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM +[assembly: Guid("b7c11044-8a0c-4235-a346-44787491d5d0")] + +// Les informations de version pour un assembly se composent des quatre valeurs suivantes : +// +// Version principale +// Version secondaire +// Numéro de build +// Révision +// +// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de révision et de build par défaut +// en utilisant '*', comme indiqué ci-dessous : +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/kazer/ReadMe-LisMoi.txt =================================================================== --- trunk/plugins/kazer/ReadMe-LisMoi.txt (rev 0) +++ trunk/plugins/kazer/ReadMe-LisMoi.txt 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,23 @@ +English version +- This plugin is not useable for the moment, it is under devlopment. +kazer website www.kazer.org offers free customized XML file by user. +Informations (in french language) are created with xmltv. +1/ Purpose will be to download a TVGuide XML file from kazer. +2/ Modifying kazer xml guide with a correct MediaPortal channels mapping +to avoid creating not needed channels in MediaPortal TVDatabase. +3/ Replacing MediaPortal TVGuide.xml by the downloaded modified one. +Process will be executed in a few seconds maybe in replacement of webepg +wich may take a long time (some minutes or some hours, depending on number +of channels to grab). + +Version fran\xE7aise +- Ce plugin n'est pas utilisable pour le moment, il est en cours de d\xE9veloppement. +Le site de kazer www.kazer.org fourni gratuitement un fichier XML personnalis\xE9 par utilisateur. +Les informations de kazer sont cr\xE9\xE9es avec xmltv. +1/ Le but sera de t\xE9l\xE9charger un fichier XML du Guide t\xE9l\xE9 \xE0 partir de kazer. +2/ Modifier l'xml de kazer avec un mappage correct des cha\xEEnes de MediaPortal +pour \xE9viter de cr\xE9er des cha\xEEnes non d\xE9sir\xE9es dans la base de donn\xE9es TV de MediaPortal. +3/ Remplacer le TVGuide.xml de MediaPortal par celui t\xE9l\xE9charg\xE9 et modifi\xE9. +La proc\xE9dure durera quelque secondes et, si c'est satisfaisant, remplacera peut-\xEAtre \xE0 terme +webepg qui peut prendre pas mal de temps (quelques minutes ou quelques heures, \xE7a d\xE9pend du nombre +de canaux \xE0 r\xE9cup\xE9rer). Added: trunk/plugins/kazer/kazer.cs =================================================================== --- trunk/plugins/kazer/kazer.cs (rev 0) +++ trunk/plugins/kazer/kazer.cs 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,148 @@ +#region using +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using MediaPortal.GUI.Library; // sera n\xE9cessaire lorsque le plugin aura son skin +#endregion + +namespace kazer +{ + public class kazer : GUIWindow, ISetupForm + { +// D\xE9finition des boutons du skin +// en commentaire pour l'instant +/* + [SkinControlAttribute(2)] protected GUIButtonControl BoutonDownload = null; + [SkinControlAttribute(3)] protected GUIButtonControl BoutonMaj = null; +*/ + +#region public + +// Retourne le nom du plugin visible dans le menu de configuration + public string PluginName() + { + return "kazer"; + } + +// Retourne la description du plugin visible dans le menu de configuration + public string Description() + { + return "Permet de r\xE9cup\xE9rer un guide t\xE9l\xE9 \xE0 partir du site de kazer"; + } + +// Retourne le nom de l'auteur du plugin + public string Author() + { + return "framug"; + } + +// affichage de la configuration du plugin + public void ShowPlugin() + { +// on appelle la fen\xEAtre de config situ\xE9e dans kazerSetup.cs + Form setup = new kazerSetup(); +// Vas-y, affiche la ! + setup.ShowDialog(); + } + +// Indique si le plugin peut \xEAtre activ\xE9/d\xE9sactiv\xE9 + public bool CanEnable() + { + return true; // oui, dans ce cas-l\xE0 + } + +// Donne l'ID du plugin appartenant \xE0 la config + public int GetWindowId() + { + return 10123; // au hasard mais, pour les plugins, cela doit \xEAtre > 10000 + } + +// Indique si le plugin est activ\xE9 par defaut; + public bool DefaultEnabled() + { + return false; // non + } + +// Indique si le plugin poss\xE8de son propre \xE9cran de configuration + public bool HasSetup() + { + return true; // bien s\xFBr + } + +/// <summary> +/// Si le plugin doit avoir son propre bouton dans le menu principal de Media Portal alors, la +/// methode doit retourner true sinon, on ne le verra que dans le menu plugins +/// </summary> +/// <param name="strButtonText">Le texte du bouton dans MediaPortal</param> +/// <param name="strButtonImage">L'image du bouton ou, vide par d\xE9faut</param> +/// <param name="strButtonImageFocus">L'image du bouton ou, vide par d\xE9faut</param> + /// <param name="strPictureImage">La sous-image du bouton ou, vide par d\xE9faut</param> +/// <returns>true : Le plugin aura son propre bouton sur le menu principal +/// false : Le plugin n'aura pas son propre bouton sur le menu principal</returns> + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = PluginName(); + strButtonImage = String.Empty; + strButtonImageFocus = String.Empty; + strPictureImage = String.Empty; +// Je pr\xE9f\xE8re true, comme \xE7a, les utilisateurs peuvent choisir s'ils veulent +// le plugin sur l'\xE9cran principal ou, dans le menu plugins + return true; + } +#endregion + +#region override +// N\xE9cessaire pour un plugin windows sinon, c'est consid\xE9r\xE9 comme un plugin process + public override int GetID + { + get + { + return 10123; + } + set + { + } + } + +// Appel\xE9 au d\xE9marrage de MediaPortal + public override bool Init() + { +// en commentaire pour l'instant +/* + return Load(GUIGraphicsContext.Skin + @"\kazer.xml"); +*/ + return true; + } + +// Appel\xE9 \xE0 chaque action utilisateur + protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) + { +// en commentaire pour l'instant +/* + if (control == BoutonDownload) + Download(); + if (control == BoutonMaj) + MiseAjour(); +*/ + base.OnClicked(controlId, control, actionType); + } + +#endregion + +#region private + + private void Download() + { + //l\xE0, on fera le traitement du t\xE9l\xE9chargement de l'XML de kazer + } + + private void MiseAjour() + { + //l\xE0, on fera la maj du tvguide + } + +#endregion + + } // fin de la classe kazer +} // fin du namespace Added: trunk/plugins/kazer/kazer.csproj =================================================================== --- trunk/plugins/kazer/kazer.csproj (rev 0) +++ trunk/plugins/kazer/kazer.csproj 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,79 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{1F927022-1A44-432D-B98B-82ECBF9765A7}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>kazer</RootNamespace> + <AssemblyName>kazer</AssemblyName> + <ApplicationIcon>kazer.ico</ApplicationIcon> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="Core, Version=0.2.3.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Core\bin\Release\Core.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.DirectoryServices" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.2.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\xbmc\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="kazerSetup.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="kazerSetup.Designer.cs"> + <DependentUpon>kazerSetup.cs</DependentUpon> + </Compile> + <Compile Include="kazer.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="kazerSetup.resx"> + <SubType>Designer</SubType> + <DependentUpon>kazerSetup.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <Content Include="kazer.ico" /> + <Content Include="ReadMe-LisMoi.txt" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> + <PropertyGroup> + <PostBuildEvent> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/kazer/kazer.ico =================================================================== (Binary files differ) Property changes on: trunk/plugins/kazer/kazer.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/kazer/kazer.sln =================================================================== --- trunk/plugins/kazer/kazer.sln (rev 0) +++ trunk/plugins/kazer/kazer.sln 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "kazer", "kazer.csproj", "{1F927022-1A44-432D-B98B-82ECBF9765A7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F927022-1A44-432D-B98B-82ECBF9765A7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/kazer/kazerSetup.Designer.cs =================================================================== --- trunk/plugins/kazer/kazerSetup.Designer.cs (rev 0) +++ trunk/plugins/kazer/kazerSetup.Designer.cs 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,238 @@ +namespace kazer +{ + partial class kazerSetup + { + /// <summary> + /// Variable nécessaire au concepteur. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Nettoyage des ressources utilisées. + /// </summary> + /// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Code généré par le Concepteur Windows Form + + /// <summary> + /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas + /// le contenu de cette méthode avec l'éditeur de code. + /// </summary> + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(kazerSetup)); + this.label1 = new System.Windows.Forms.Label(); + this.lien_site_kazer = new System.Windows.Forms.LinkLabel(); + this.label2 = new System.Windows.Forms.Label(); + this.kazer_UserName = new System.Windows.Forms.TextBox(); + this.Config_Sauver = new System.Windows.Forms.Button(); + this.Config_Quitter = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.Repertoire_XMLTV = new System.Windows.Forms.TextBox(); + this.Config_Parcourir = new System.Windows.Forms.Button(); + this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabGeneral = new System.Windows.Forms.TabPage(); + this.Nom_Fichier_Guide = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.Version = new System.Windows.Forms.Label(); + this.tabMapping = new System.Windows.Forms.TabPage(); + this.tabControl1.SuspendLayout(); + this.tabGeneral.SuspendLayout(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 3); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(342, 78); + this.label1.TabIndex = 1; + this.label1.Text = resources.GetString("label1.Text"); + // + // lien_site_kazer + // + this.lien_site_kazer.AutoSize = true; + this.lien_site_kazer.Location = new System.Drawing.Point(320, 40); + this.lien_site_kazer.Name = "lien_site_kazer"; + this.lien_site_kazer.Size = new System.Drawing.Size(33, 13); + this.lien_site_kazer.TabIndex = 2; + this.lien_site_kazer.TabStop = true; + this.lien_site_kazer.Tag = ""; + this.lien_site_kazer.Text = "kazer"; + this.lien_site_kazer.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 101); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(174, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Nom d\'utilisateur kazer (userhash) : "; + // + // kazer_UserName + // + this.kazer_UserName.Location = new System.Drawing.Point(205, 98); + this.kazer_UserName.Name = "kazer_UserName"; + this.kazer_UserName.Size = new System.Drawing.Size(100, 20); + this.kazer_UserName.TabIndex = 4; + this.kazer_UserName.TextChanged += new System.EventHandler(this.kazer_UserName_TextChanged); + // + // Config_Sauver + // + this.Config_Sauver.Location = new System.Drawing.Point(380, 288); + this.Config_Sauver.Name = "Config_Sauver"; + this.Config_Sauver.Size = new System.Drawing.Size(78, 24); + this.Config_Sauver.TabIndex = 5; + this.Config_Sauver.Text = "Sauver"; + this.Config_Sauver.UseVisualStyleBackColor = true; + this.Config_Sauver.Click += new System.EventHandler(this.Config_Sauver_Click); + // + // Config_Quitter + // + this.Config_Quitter.Location = new System.Drawing.Point(489, 288); + this.Config_Quitter.Name = "Config_Quitter"; + this.Config_Quitter.Size = new System.Drawing.Size(78, 24); + this.Config_Quitter.TabIndex = 6; + this.Config_Quitter.Text = "Quitter"; + this.Config_Quitter.UseVisualStyleBackColor = true; + this.Config_Quitter.Click += new System.EventHandler(this.Config_Quitter_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 142); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(147, 13); + this.label3.TabIndex = 7; + this.label3.Text = "Répertoire XMLTV en sortie : "; + // + // Repertoire_XMLTV + // + this.Repertoire_XMLTV.Location = new System.Drawing.Point(205, 137); + this.Repertoire_XMLTV.Name = "Repertoire_XMLTV"; + this.Repertoire_XMLTV.Size = new System.Drawing.Size(253, 20); + this.Repertoire_XMLTV.TabIndex = 8; + // + // Config_Parcourir + // + this.Config_Parcourir.Location = new System.Drawing.Point(489, 134); + this.Config_Parcourir.Name = "Config_Parcourir"; + this.Config_Parcourir.Size = new System.Drawing.Size(75, 24); + this.Config_Parcourir.TabIndex = 9; + this.Config_Parcourir.Text = "Parcourir"; + this.Config_Parcourir.UseVisualStyleBackColor = true; + this.Config_Parcourir.Click += new System.EventHandler(this.Config_Parcourir_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabGeneral); + this.tabControl1.Controls.Add(this.tabMapping); + this.tabControl1.Location = new System.Drawing.Point(-4, 1); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(587, 281); + this.tabControl1.TabIndex = 10; + // + // tabGeneral + // + this.tabGeneral.Controls.Add(this.Nom_Fichier_Guide); + this.tabGeneral.Controls.Add(this.label4); + this.tabGeneral.Controls.Add(this.Version); + this.tabGeneral.Controls.Add(this.Config_Parcourir); + this.tabGeneral.Controls.Add(this.Repertoire_XMLTV); + this.tabGeneral.Controls.Add(this.lien_site_kazer); + this.tabGeneral.Controls.Add(this.label3); + this.tabGeneral.Controls.Add(this.label2); + this.tabGeneral.Controls.Add(this.kazer_UserName); + this.tabGeneral.Controls.Add(this.label1); + this.tabGeneral.Location = new System.Drawing.Point(4, 22); + this.tabGeneral.Name = "tabGeneral"; + this.tabGeneral.Padding = new System.Windows.Forms.Padding(3); + this.tabGeneral.Size = new System.Drawing.Size(579, 255); + this.tabGeneral.TabIndex = 0; + this.tabGeneral.Text = "Général"; + this.tabGeneral.UseVisualStyleBackColor = true; + // + // Nom_Fichier_Guide + // + this.Nom_Fichier_Guide.Location = new System.Drawing.Point(205, 176); + this.Nom_Fichier_Guide.Name = "Nom_Fichier_Guide"; + this.Nom_Fichier_Guide.Size = new System.Drawing.Size(127, 20); + this.Nom_Fichier_Guide.TabIndex = 12; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 183); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(110, 13); + this.label4.TabIndex = 11; + this.label4.Text = "Nom du fichier guide :"; + // + // Version + // + this.Version.AutoSize = true; + this.Version.Location = new System.Drawing.Point(483, 14); + this.Version.Name = "Version"; + this.Version.Size = new System.Drawing.Size(93, 39); + this.Version.TabIndex = 10; + this.Version.Text = "Version 1.0\r\nNon fonctionnelle.\r\nEn cours de dev."; + // + // tabMapping + // + this.tabMapping.Location = new System.Drawing.Point(4, 22); + this.tabMapping.Name = "tabMapping"; + this.tabMapping.Padding = new System.Windows.Forms.Padding(3); + this.tabMapping.Size = new System.Drawing.Size(579, 255); + this.tabMapping.TabIndex = 1; + this.tabMapping.Text = "Correspondance de chaînes"; + this.tabMapping.UseVisualStyleBackColor = true; + // + // kazerSetup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(579, 324); + this.Controls.Add(this.Config_Quitter); + this.Controls.Add(this.Config_Sauver); + this.Controls.Add(this.tabControl1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "kazerSetup"; + this.Text = "Configuration de kazer"; + this.tabControl1.ResumeLayout(false); + this.tabGeneral.ResumeLayout(false); + this.tabGeneral.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.LinkLabel lien_site_kazer; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox kazer_UserName; + private System.Windows.Forms.Button Config_Sauver; + private System.Windows.Forms.Button Config_Quitter; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox Repertoire_XMLTV; + private System.Windows.Forms.Button Config_Parcourir; + private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabGeneral; + private System.Windows.Forms.TabPage tabMapping; + private System.Windows.Forms.Label Version; + private System.Windows.Forms.TextBox Nom_Fichier_Guide; + private System.Windows.Forms.Label label4; + } +} \ No newline at end of file Added: trunk/plugins/kazer/kazerSetup.cs =================================================================== --- trunk/plugins/kazer/kazerSetup.cs (rev 0) +++ trunk/plugins/kazer/kazerSetup.cs 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,153 @@ +#region using +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Diagnostics; +using MediaPortal.Profile; // n\xE9cessaire pour Settings +using MediaPortal.Configuration; // pour lire et ecrire le xml de config +#endregion + +namespace kazer +{ + public partial class kazerSetup : Form + { + public kazerSetup() + { + InitializeComponent(); // g\xE9n\xE9r\xE9 par visual studio, ne pas toucher +// On va lire le XML de configuration + LireXMLConfig(); +// On va initialiser des variables par d\xE9faut + Initialise_variables(); + } + +// On a cliqu\xE9 sur le lien du site kazer + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { +// On cha\xEEne sur le site de kazer + Process.Start("http://www.kazer.org"); + } + +// On a cliqu\xE9 sur le nom d'utilisateur + private void kazer_UserName_TextChanged(object sender, EventArgs e) + { +// Rien pour l'instant mais, si kazer nous donne son hashcode, on pourrait peut-\xEAtre +// faire saisir le nom d'utilisateur en clair et, calculer ainsi le userhash nous-m\xEAme + } + +// On a cliqu\xE9 sur le bouton Parcourir + private void Config_Parcourir_Click(object sender, EventArgs e) + { +// On appelle la fen\xEAtre de s\xE9lection de dossier de windows + using (folderBrowserDialog1 = new FolderBrowserDialog()) + { +// Baratin de la fen\xEAtre + folderBrowserDialog1.Description = "Selectionnez le dossier o\xF9 se trouve votre r\xE9pertoire XMLTV"; +// On ne veut pas de bouton cr\xE9er un nouveau dossier + folderBrowserDialog1.ShowNewFolderButton = false; + folderBrowserDialog1.SelectedPath = Repertoire_XMLTV.Text; + DialogResult dialogResult = folderBrowserDialog1.ShowDialog(this); + +// On a cliqu\xE9 sur OK alors, on renseigne la boite de texte Repertoire_XMLTV + if (dialogResult == DialogResult.OK) + { + Repertoire_XMLTV.Text = folderBrowserDialog1.SelectedPath; + } + } // fin du using + } + +// On a cliqu\xE9 sur le bouton Sauver + private void Config_Sauver_Click(object sender, EventArgs e) + { +// On va \xE9crire le XML de configuration si les contr\xF4les de saisie sont corrects + if (ControleSaisie()) + { + EcrireXMLConfig(); + } + } + +// On a cliqu\xE9 sur le bouton Quitter + private void Config_Quitter_Click(object sender, EventArgs e) + { +// On ferme la fen\xEAtre de configuration + Close(); + } + +// Contr\xF4le de saisie + private bool ControleSaisie() + { +// Le nom d'utilisateur, le r\xE9pertoire XMLTV et le nom du fichier guide sont obligatoires + if (kazer_UserName.Text == "" && Repertoire_XMLTV.Text == "" && Nom_Fichier_Guide.Text == "") + { + MessageBox.Show("Le nom d'utilisateur, le r\xE9pertoire XMLTV et le nom du fichier guide sont obligatoires"); + return false; + } + else + { + if (kazer_UserName.Text == "") + { + MessageBox.Show("Le nom d'utilisateur est obligatoire"); + return false; + } + if (Repertoire_XMLTV.Text == "") + { + MessageBox.Show("Le r\xE9pertoire XMLTV est obligatoire"); + return false; + } + if (Nom_Fichier_Guide.Text == "") + { + MessageBox.Show("Le nom du fichier guide est obligatoire"); + return false; + } + return true; + } + } + +// Ecrire le XML de configuration + private void EcrireXMLConfig() + { + using (Settings ecrirexml = new Settings(Config.GetFile(Config.Dir.Config, "kazer.xml"))) + { + ecrirexml.SetValue("kazer", "userhash", kazer_UserName.Text.ToString()); + ecrirexml.SetValue("kazer", "Repertoire XMLTV", Repertoire_XMLTV.Text.ToString()); + ecrirexml.SetValue("kazer", "Nom du fichier guide", Nom_Fichier_Guide.Text.ToString()); + } + } + +// Lire le XML de configuration + private void LireXMLConfig() + { + using (Settings lirexml = new Settings(Config.GetFile(Config.Dir.Config, "kazer.xml"))) + { + kazer_UserName.Text = lirexml.GetValueAsString("kazer", "userhash", ""); + Repertoire_XMLTV.Text = lirexml.GetValueAsString("kazer", "Repertoire XMLTV", ""); + Nom_Fichier_Guide.Text = lirexml.GetValueAsString("kazer", "Nom du fichier guide", ""); + } + } + +// Initialiser des variables par d\xE9faut + private void Initialise_variables() + { +// Je r\xE9cup\xE8re l'info du r\xE9pertoire XMLTV qui est configur\xE9 dans MediaPortal + if (Repertoire_XMLTV.Text == "") + { + using (Settings lirexml = new Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + Repertoire_XMLTV.Text = lirexml.GetValueAsString("xmltv", "folder", ""); + } + + } + +// Le nom du fichier guide est TVguide.xml par d\xE9faut, dans MediaPortal + if (Nom_Fichier_Guide.Text == "") + { + Nom_Fichier_Guide.Text = "TVguide.xml"; + } + } + + } // fin de la classe kazerSetup + +} // fin du namespace \ No newline at end of file Added: trunk/plugins/kazer/kazerSetup.resx =================================================================== --- trunk/plugins/kazer/kazerSetup.resx (rev 0) +++ trunk/plugins/kazer/kazerSetup.resx 2008-01-07 03:11:37 UTC (rev 1218) @@ -0,0 +1,218 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <data name="label1.Text" xml:space="preserve"> + <value> +Ce plugin est destiné aux utilisateurs francophones. +Il permet de générer un guide télé utilisable par MediaPortal. +Pour cela, vous devez au préalable vous inscrire sur le site de +pour définir les chaînes que vous souhaitez récupérer. + +</value> + </data> + <metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>12, 8</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAMAICAQAAAAAADoAgAANgAAABAQEAAAAAAAKAEAAB4DAAAwMAAAAAAAAKgOAABGBAAAKAAAACAA + AABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA + AADAwMAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAd3d3d3d3 + d3d3d3d3d3d3cH//////f/////9//////3B/9wAH/3/3AAf/f/cAB/9wf3AAAH9/cAAAf39wAAB/cH8A + AAAPfwAAAA9/AAAAD3B/AAAAD38AAAAPfwAAAA9wfwAAAA9/AAAAD38AAAAPcH9wAAB/f3AAAH9/cAAA + f3B/9wAH/3/3AAf/f/cAB/9wf/////9//////3//////cHd3d3d3d3d3d3d3d3d3d3B//////3////// + f/////9wf/////9//////3/3AAf/cH//////f/////9/cAAAf3B//////3//////fwAAAA9wf/////9/ + /////38AAAAPcH//////f/////9/AAAAD3B//////3//////f3AAAH9wf/////9//////3/3AAf/cH// + ////f/////9//////3B3d3d3d3d3d3d3d3d3d3dwf/////9//////3//////cH//////f/cAB/9///// + /3B//////39wAAB/f/////9wf/////9/AAAAD3//////cH//////fwAAAA9//////3B//////38AAAAP + f/////9wf/////9/cAAAf3//////cH//////f/cAB/9//////3B//////3//////f/////9wd3d3d3d3 + d3d3d3d3d3d3cP////8AAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABKAAAABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAIAAAIAAAACAgACAAAAAgACAAICAAADAwMAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP// + /wB3d3d3d3d3d38A9/APfwD3cAAHAABwAAdwAAcAAHAAB38A9/APfwD3d3d3d3d3d3d///f//38A93// + 9///cAAHf//3//9wAAd///f//38A93d3d3d3d3d3f//38A9///d///cAAH//93//9wAAf//3f//38A9/ + //d3d3d3d3d3dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAoAAAAMAAAAGAAAAABAAgAAAAAAIAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + gAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwADA3MAA8MqmAAQEBAAICAgADAwMABEREQAWFhYAHBwcACIi + IgApKSkAVVVVAE1NTQBCQkIAOTk5AIB8/wBQUP8AkwDWAP/szADG1u8A1ufnAJCprQAAADMAAABmAAAA + mQAAAMwAADMAAAAzMwAAM2YAADOZAAAzzAAAM/8AAGYAAABmMwAAZmYAAGaZAABmzAAAZv8AAJkAAACZ + MwAAmWYAAJmZAACZzAAAmf8AAMwAAADMMwAAzGYAAMyZAADMzAAAzP8AAP9mAAD/mQAA/8wAMwAAADMA + MwAzAGYAMwCZADMAzAAzAP8AMzMAADMzMwAzM2YAMzOZADMzzAAzM/8AM2YAADNmMwAzZmYAM2aZADNm + zAAzZv8AM5kAADOZMwAzmWYAM5mZADOZzAAzmf8AM8wAADPMMwAzzGYAM8yZADPMzAAzzP8AM/8zADP/ + ZgAz/5kAM//MADP//wBmAAAAZgAzAGYAZgBmAJkAZgDMAGYA/wBmMwAAZjMzAGYzZgBmM5kAZjPMAGYz + /wBmZgAAZmYzAGZmZgBmZpkAZmbMAGaZAABmmTMAZplmAGaZmQBmmcwAZpn/AGbMAABmzDMAZsyZAGbM + zABmzP8AZv8AAGb/MwBm/5kAZv/MAMwA/wD/AMwAmZkAAJkzmQCZAJkAmQDMAJkAAACZMzMAmQBmAJkz + zACZAP8AmWYAAJlmMwCZM2YAmWaZAJlmzACZM/8AmZkzAJmZZgCZmZkAmZnMAJmZ/wCZzAAAmcwzAGbM + ZgCZzJkAmczMAJnM/wCZ/wAAmf8zAJnMZgCZ/5kAmf/MAJn//wDMAAAAmQAzAMwAZgDMAJkAzADMAJkz + AADMMzMAzDNmAMwzmQDMM8wAzDP/AMxmAADMZjMAmWZmAMxmmQDMZswAmWb/AMyZAADMmTMAzJlmAMyZ + mQDMmcwAzJn/AMzMAADMzDMAzMxmAMzMmQDMzMwAzMz/AMz/AADM/zMAmf9mAMz/mQDM/8wAzP//AMwA + MwD/AGYA/wCZAMwzAAD/MzMA/zNmAP8zmQD/M8wA/zP/AP9mAAD/ZjMAzGZmAP9mmQD/ZswAzGb/AP+Z + AAD/mTMA/5lmAP+ZmQD/mcwA/5n/AP/MAAD/zDMA/8xmAP/MmQD/zMwA/8z/AP//MwDM/2YA//+ZAP// + zABmZv8AZv9mAGb//wD/ZmYA/2b/AP//ZgAhAKUAX19fAHd3dwCGhoYAlpaWAMvLywCysrIA19fXAN3d + 3QDj4+MA6urqAPHx8QD4+PgA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAoK + CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK + CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH + BwcHBwcHBwcHBwcHBwcHBwcHBwcKCgf//////////////////wf//////////////////wf///////// + /////////wcKCgf////z7EMKCkPs8////wf////z7EMKCkPs8////wf////z7EMKCkPs8////wcKCgf/ + //BDCgoKCgoKQ/D//wf///BDCgoKCgoKQ/D//wf///BDCgoKCgoKQ/D//wcKCgf/80MKCgoKCgoKCkPz + /wf/80MKCgoKCgoKCkPz/wf/80MKCgoKCgoKCkPz/wcKCgf/7AoKCgoKCgoKCgrs/wf/7AoKCgoKCgoK + Cgrs/wf/7AoKCgoKCgoKCgrs/wcKCgf/QwoKCgoKCgoKCgpD/wf/QwoKCgoKCgoKCgpD/wf/QwoKCgoK + CgoKCgpD/wcKCgf/CgoKCgoKCgoKCgoK/wf/CgoKCgoKCgoKCgoK/wf/CgoKCgoKCgoKCgoK/wcKCgf/ + CgoKCgoKCgoKCgoK/wf/CgoKCgoKCgoKCgoK/wf/CgoKCgoKCgoKCgoK/wcKCgf/QwoKCgoKCgoKCgpD + /wf/QwoKCgoKCgoKCgpD/wf/QwoKCgoKCgoKCgpD/wcKCgf/7AoKCgoKCgoKCgrs/wf/7AoKCgoKCgoK + Cgrs/wf/7AoKCgoKCgoKCgrs/wcKCgf/80MKCgoKCgoKCkPz/wf/80MKCgoKCgoKCkPz/wf/80MKCgoK + CgoKCkPz/wcKCgf///BDCgoKCgoKQ/D//wf///BDCgoKCgoKQ/D//wf///BDCgoKCgoKQ/D//wcKCgf/ + ///z7EMKCkPs8////wf////z7EMKCkPs8////wf////z7EMKCkPs8////wcKCgf///////////////// + /wf//////////////////wf//////////////////wcKCgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH + BwcHBwcHBwcHBwcHBwcHBwcHBwcKCgf//////////////////wf//////////////////wf///////// + /////////wcKCgf//////////////////wf//////////////////wf////z7EMKCkPs8////wcKCgf/ + /////////////////wf//////////////////wf///BDCgoKCgoKQ/D//wcKCgf///////////////// + /wf//////////////////wf/80MKCgoKCgoKCkPz/wcKCgf//////////////////wf///////////// + /////wf/7AoKCgoKCgoKCgrs/wcKCgf//////////////////wf//////////////////wf/QwoKCgoK + CgoKCgpD/wcKCgf//////////////////wf//////////////////wf/CgoKCgoKCgoKCgoK/wcKCgf/ + /////////////////wf//////////////////wf/CgoKCgoKCgoKCgoK/wcKCgf///////////////// + /wf//////////////////wf/QwoKCgoKCgoKCgpD/wcKCgf//////////////////wf///////////// + /////wf/7AoKCgoKCgoKCgrs/wcKCgf//////////////////wf//////////////////wf/80MKCgoK + CgoKCkPz/wcKCgf//////////////////wf//////////////////wf///BDCgoKCgoKQ/D//wcKCgf/ + /////////////////wf//////////////////wf////z7EMKCkPs8////wcKCgf///////////////// + /wf//////////////////wf//////////////////wcKCgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH + BwcHBwcHBwcHBwcHBwcHBwcHBwcKCgf//////////////////wf//////////////////wf///////// + /////////wcKCgf//////////////////wf////z7EMKCkPs8////wf//////////////////wcKCgf/ + /////////////////wf///BDCgoKCgoKQ/D//wf//////////////////wcKCgf///////////////// + /wf/80MKCgoKCgoKCkPz/wf//////////////////wcKCgf//////////////////wf/7AoKCgoKCgoK + Cgrs/wf//////////////////wcKCgf//////////////////wf/QwoKCgoKCgoKCgpD/wf///////// + /////////wcKCgf//////////////////wf/CgoKCgoKCgoKCgoK/wf//////////////////wcKCgf/ + /////////////////wf/CgoKCgoKCgoKCgoK/wf//////////////////wcKCgf///////////////// + /wf/QwoKCgoKCgoKCgpD/wf//////////////////wcKCgf//////////////////wf/7AoKCgoKCgoK + Cgrs/wf//////////////////wcKCgf//////////////////wf/80MKCgoKCgoKCkPz/wf///////// + /////////wcKCgf//////////////////wf///BDCgoKCgoKQ/D//wf//////////////////wcKCgf/ + /////////////////wf////z7EMKCkPs8////wf//////////////////wcKCgf///////////////// + /wf//////////////////wf//////////////////wcKCgcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcH + BwcHBwcHBwcHBwcHBwcHBwcHBwcKCv///////wAA////////AAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAD + AAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAA + AAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAD + AAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAA + AAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAD + AAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAA + AAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAA== +</value> + </data> +</root> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |