Rules = MainForm.ReplaceSpecial.GetRules();
+ if (Rules.Count > 0)
+ {
+ logLine = "[[Expression rationnelle|Expressions rationnelles]] utilisées pour les remplacements de texte '''évolués''' :
\r\n";
+ logLine += ParseRules(Rules, "", "");
+ logLine += "
\r\n";
+ strLog.Append(logLine);
+ }
+
+ string[] Templates = MainForm.SubstTemplates.TemplateList;
+ if (Templates.Length > 0)
+ {
+ logLine = "[[Aide:Modèle|Modèles]] substitués :\r\n";
+
+ foreach (string template in Templates)
+ if (template.Trim() != "")
+ logLine += "*{{m|" + template + "}}\r\n";
+
+ logLine += "
\r\n";
+ strLog.Append(logLine);
+ }
+ }
+
+ Control.ControlCollection MoreOptionsControls = MainForm.MoreOptionsTab.Controls;
+
+ GroupBox groupBox4 = (GroupBox)MoreOptionsControls[MoreOptionsControls.IndexOfKey("groupBox4")];
+ CheckBox chkAppend = (CheckBox)groupBox4.Controls[groupBox4.Controls.IndexOfKey("chkAppend")];
+ RadioButton rdoAppend = (RadioButton)groupBox4.Controls[groupBox4.Controls.IndexOfKey("rdoAppend")];
+ TextBox txtAppendMessage = (TextBox)groupBox4.Controls[groupBox4.Controls.IndexOfKey("txtAppendMessage")];
+ if (chkAppend.Checked)
+ {
+ if (rdoAppend.Checked)
+ logLine = "Texte ajouté à la fin :\r\n";
+ else
+ logLine = "Texte ajouté au début :\r\n";
+ logLine += "" + HttpUtility.HtmlEncode(txtAppendMessage.Text) + "
\r\n";
+ logLine += "
\r\n";
+ strLog.Append(logLine);
+ }
+
+ GroupBox groupBox5 = (GroupBox)MoreOptionsControls[MoreOptionsControls.IndexOfKey("groupBox5")];
+ ComboBox cmboCategorise = (ComboBox)groupBox5.Controls[groupBox5.Controls.IndexOfKey("cmboCategorise")];
+ TextBox txtNewCategory = (TextBox)groupBox5.Controls[groupBox5.Controls.IndexOfKey("txtNewCategory")];
+ TextBox txtNewCategory2 = (TextBox)groupBox5.Controls[groupBox5.Controls.IndexOfKey("txtNewCategory2")];
+ if (cmboCategorise.SelectedIndex > 0)
+ {
+ switch (cmboCategorise.SelectedIndex)
+ {
+ case 1:
+ logLine = "[[Aide:Catégorie|Catégorie]] '''[[:Catégorie:" + txtNewCategory.Text + "|"
+ + txtNewCategory.Text + "]]''' remplacée par catégorie '''[[:Catégorie:"
+ + txtNewCategory2.Text + "|" + txtNewCategory2.Text + "]]'''
\r\n";
+ break;
+ case 2:
+ logLine = "[[Aide:Catégorie|Catégorie]] '''[[:Catégorie:" + txtNewCategory.Text + "|"
+ + txtNewCategory.Text + "]]''' ajoutée
\r\n";
+ break;
+ case 3:
+ logLine = "[[Aide:Catégorie|Catégorie]] '''[[:Catégorie:" + txtNewCategory.Text + "|"
+ + txtNewCategory.Text + "]]''' supprimée
\r\n";
+ break;
+ default:
+ break;
+ }
+
+ logLine += "
\r\n";
+ strLog.Append(logLine);
+ }
+
+ GroupBox ImageGroupBox = (GroupBox)MoreOptionsControls[MoreOptionsControls.IndexOfKey("ImageGroupBox")];
+ ComboBox cmboImages = (ComboBox)ImageGroupBox.Controls[ImageGroupBox.Controls.IndexOfKey("cmboImages")];
+ TextBox txtImageReplace = (TextBox)ImageGroupBox.Controls[ImageGroupBox.Controls.IndexOfKey("txtImageReplace")];
+ TextBox txtImageWith = (TextBox)ImageGroupBox.Controls[ImageGroupBox.Controls.IndexOfKey("txtImageWith")];
+ if (cmboImages.SelectedIndex > 0)
+ {
+ switch (cmboImages.SelectedIndex)
+ {
+ case 1:
+ logLine = "[[Aide:Image|Image]] '''[[:Image:" + txtImageReplace.Text + "|"
+ + txtImageReplace.Text + "]]''' remplacée par image '''[[:Image:"
+ + txtImageWith.Text + "|" + txtImageWith.Text + "]]'''
\r\n";
+ break;
+ case 2:
+ logLine = "[[Aide:Image|Image]] '''[[:Image:" + txtImageReplace.Text + "|"
+ + txtImageReplace.Text + "]]''' supprimée
\r\n";
+ break;
+ case 3:
+ logLine = "[[Aide:Image|Image]] '''[[:Image:" + txtImageReplace.Text + "|"
+ + txtImageReplace.Text + "]]''' commentée avec le commentaire « "
+ + txtImageWith.Text + " »
\r\n";
+ break;
+ default:
+ break;
+ }
+
+ logLine += "
\r\n";
+ strLog.Append(logLine);
+ }
+
+ if (MainForm.CustomModule != null)
+ {
+ logLine = "Module activé :\r\n";
+ //logLine += "" + HttpUtility.HtmlEncode(MainForm.CustomModule) + "
\r\n";
+ //logLine += "
\r\n";
+ logLine += "\r\n" + MainForm.CustomModule + "\r\n";
+ logLine += "
\r\n";
+ strLog.Append(logLine);
+ }
+
+ string title, timestamp, revid, skippedby, reason;
+ logLine = "Articles modifiés :\r\n";
+ foreach (ListViewItem log in lvSaved.Items)
+ {
+ title = log.SubItems[0].Text;
+ timestamp = log.SubItems[1].Text;
+ revid = log.SubItems[2].Text;
+ logLine += "#" + timestamp + " [[:" + title + "]] "
+ + "([{{fullurl:" + title
+ + "|diff=next&oldid=" + revid + "}} diff] • "
+ + "[{{fullurl:" + title + "|action=history}} hist] • "
+ + "modif)\r\n";
+ }
+ logLine += "
\r\n";
+ strLog.Append(logLine);
+
+ logLine = "Articles non modifiés :\r\n";
+ foreach (ListViewItem log in lvIgnored.Items)
+ {
+ title = log.SubItems[0].Text;
+ timestamp = log.SubItems[1].Text;
+ skippedby = log.SubItems[2].Text;
+ reason = log.SubItems[3].Text;
+ logLine += "#" + timestamp + " [[:" + title + "]] ";
+ logLine += "(" + skippedby + " : " + reason + ")\r\n";
+ }
+ strLog.Append(logLine);
+
+ sw.Write(strLog);
+ sw.Close();
+ }
+ }
+ catch (IOException ex)
+ {
+ MessageBox.Show(ex.Message, "File error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+}
Index: AWB/Plugins/FullLog/FullLog.csproj
===================================================================
--- AWB/Plugins/FullLog/FullLog.csproj (revision 0)
+++ AWB/Plugins/FullLog/FullLog.csproj (revision 0)
@@ -0,0 +1,70 @@
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {7932DBE9-9E57-4BB3-A099-CBC968162CA2}
+ Library
+ Properties
+ FullLog
+ FullLog
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ FullLog.cs
+
+
+
+
+ {B5B0008C-A306-4B0D-B91E-5C03DA7014E0}
+ WikiFunctions
+
+
+
+
+ Designer
+ FullLog.cs
+
+
+
+
+
Index: AWB/Plugins/FullLog/FullLog.Designer.cs
===================================================================
--- AWB/Plugins/FullLog/FullLog.Designer.cs (revision 0)
+++ AWB/Plugins/FullLog/FullLog.Designer.cs (revision 0)
@@ -0,0 +1,92 @@
+namespace FullLog
+{
+ partial class FullLogControl
+ {
+ ///
+ /// Variable nécessaire au concepteur.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Nettoyage des ressources utilisées.
+ ///
+ /// true si les ressources managées doivent être supprimées ; sinon, false.
+ 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
+
+ ///
+ /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
+ /// le contenu de cette méthode avec l'éditeur de code.
+ ///
+ private void InitializeComponent()
+ {
+ this.txtRequest = new System.Windows.Forms.TextBox();
+ this.btnOK = new System.Windows.Forms.Button();
+ this.btnCancel = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // txtRequest
+ //
+ this.txtRequest.Location = new System.Drawing.Point(11, 15);
+ this.txtRequest.Name = "txtRequest";
+ this.txtRequest.Size = new System.Drawing.Size(258, 20);
+ this.txtRequest.TabIndex = 5;
+ this.txtRequest.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtRequest_KeyDown);
+ //
+ // btnOK
+ //
+ this.btnOK.Location = new System.Drawing.Point(43, 57);
+ this.btnOK.Name = "btnOK";
+ this.btnOK.Size = new System.Drawing.Size(81, 23);
+ this.btnOK.TabIndex = 4;
+ this.btnOK.Text = "Ok";
+ this.btnOK.UseVisualStyleBackColor = true;
+ this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
+ //
+ // btnCancel
+ //
+ this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.btnCancel.Location = new System.Drawing.Point(156, 57);
+ this.btnCancel.Name = "btnCancel";
+ this.btnCancel.Size = new System.Drawing.Size(81, 23);
+ this.btnCancel.TabIndex = 4;
+ this.btnCancel.Text = "Cancel";
+ this.btnCancel.UseVisualStyleBackColor = true;
+ this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+ //
+ // FullLogControl
+ //
+ this.AcceptButton = this.btnOK;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.CancelButton = this.btnCancel;
+ this.ClientSize = new System.Drawing.Size(280, 94);
+ this.Controls.Add(this.txtRequest);
+ this.Controls.Add(this.btnCancel);
+ this.Controls.Add(this.btnOK);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Name = "FullLogControl";
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Request\'s name";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+ this.Activated += new System.EventHandler(this.FullLogControl_Activated);
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TextBox txtRequest;
+ private System.Windows.Forms.Button btnOK;
+ private System.Windows.Forms.Button btnCancel;
+ }
+}
Index: AWB/Plugins/FullLog/FullLog.resx
===================================================================
--- AWB/Plugins/FullLog/FullLog.resx (revision 0)
+++ AWB/Plugins/FullLog/FullLog.resx (revision 0)
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
Index: AWB/Plugins/FullLog/Properties/AssemblyInfo.cs
===================================================================
--- AWB/Plugins/FullLog/Properties/AssemblyInfo.cs (revision 0)
+++ AWB/Plugins/FullLog/Properties/AssemblyInfo.cs (revision 0)
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Resources;
+
+// 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("FullLog")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Magnolia Prod ©")]
+[assembly: AssemblyProduct("FullLog")]
+[assembly: AssemblyCopyright("Copyright © Magnolia Prod © 2007")]
+[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("9e32baf4-adab-47e5-ac3a-8963d8a96afa")]
+
+// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
+//
+// Version principale
+// Version secondaire
+// Numéro de build
+// Révision
+//
+[assembly: AssemblyVersion("1.2.0.0")]
+[assembly: AssemblyFileVersion("1.2.0.0")]
+[assembly: NeutralResourcesLanguageAttribute("fr")]
Index: AWB/WikiFunctions/FindandReplace.cs
===================================================================
--- AWB/WikiFunctions/FindandReplace.cs (revision 1338)
+++ AWB/WikiFunctions/FindandReplace.cs (working copy)
@@ -132,7 +132,7 @@
ArticleText = RemoveLinks.AddBack(ArticleText);
if (chkAddToSummary.Checked && streditsummary != "")
- EditSummary = ", Replaced: " + summary.Trim();
+ EditSummary = ", rempl. texte : " + summary.Trim(", ".ToCharArray());
return ArticleText;
}
@@ -158,7 +158,7 @@
summary = Matches[0].Value + " → " + Matches[0].Result(Replace);
if (Matches.Count > 1)
- summary += " (" + Matches.Count.ToString() + ")";
+ summary += " (" + Matches.Count.ToString() + "x)";
streditsummary += summary + ", ";
}
Index: AWB/WikiFunctions/IAWBPlugin.cs
===================================================================
--- AWB/WikiFunctions/IAWBPlugin.cs (revision 1338)
+++ AWB/WikiFunctions/IAWBPlugin.cs (working copy)
@@ -79,6 +79,7 @@
ContextMenuStrip EditBoxContextMenu { get; }
TabControl Tab { get; }
WikiFunctions.Parse.FindandReplace FindandReplace { get; }
+ WikiFunctions.MWB.ReplaceSpecial ReplaceSpecial { get; }
WikiFunctions.SubstTemplates SubstTemplates { get; }
string CustomModule { get; }
System.Version AWBVersion { get; }
Index: AWB/WikiFunctions/RegExTypoFix.cs
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: AWB/WikiFunctions/WikiRegexes.cs
===================================================================
--- AWB/WikiFunctions/WikiRegexes.cs (revision 1338)
+++ AWB/WikiFunctions/WikiRegexes.cs (working copy)
@@ -185,9 +185,9 @@
public static readonly Regex Persondata = new Regex(@"\{\{ ?[Pp]ersondata.*?\}\}", RegexOptions.Singleline | RegexOptions.Compiled);
///
- /// Matches {{Link FA|xxx}} (en only)
+ /// Matches {{Link FA|xxx}} (en and fr only)
///
- public static readonly Regex LinkFAs = new Regex(@"\{\{[Ll]ink FA\|.*?\}\}", RegexOptions.Compiled);
+ public static readonly Regex LinkFAs = new Regex(@"\{\{[Ll](?:ink FA|ien (?:AdQ|BA|PdQ))\|.*?\}\}", RegexOptions.Compiled);
///
/// matches