diff options
Diffstat (limited to 'SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs')
-rw-r--r-- | SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs b/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs new file mode 100644 index 0000000..98d9128 --- /dev/null +++ b/SparkleShare/Windows/SparkleShareInviteOpener/sparkleshare-invite-opener.cs @@ -0,0 +1,69 @@ +// SparkleShare, a collaboration and sharing tool. +// Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + + +using System; +using System.IO; +using System.Net; +using System.Text.RegularExpressions; + +namespace SparkleShare { + + public class SparkleShare { + + public static void Main (string [] args) + { + new SparkleInviteOpen (args [0]); + } + } + + + public class SparkleInviteOpen { + + public SparkleInviteOpen (string url) + { + string xml = ""; + + // Windows sometimes doesn't strip off protocol handlers + url = url.Replace ("sparkleshare://addProject/", ""); + + // Outlook breaks URLs + url = Regex.Replace (url, "(https?:)/([^/])", "$1//$2"); + WebClient web_client = new WebClient (); + + try { + xml = web_client.DownloadString (url); + + } catch (Exception e) { + Console.WriteLine ("Failed downloading invite: " + url + ": " + e.Message); + Environment.Exit (-1); + } + + string file_name = DateTime.UtcNow.Millisecond.ToString () + ".xml"; + + string home_path = Environment.GetFolderPath (Environment.SpecialFolder.UserProfile); + string target_path = Path.Combine (home_path, "SparkleShare", file_name); + + if (xml.Contains ("<sparkleshare>")) { + File.WriteAllText (target_path, xml); + File.SetAttributes (target_path, FileAttributes.Hidden); + Console.WriteLine ("Downloaded invite: " + url); + + // TODO: Start SparkleShare.exe + } + } + } +} |