Пример #1
0
        static bool FtpOpen()
        {
            // create connection
            try
            {
                ftpcon                        = new FTPConnection();
                ftpcon.UserName               = Config.ftpsettings.FtpUserName;
                ftpcon.Password               = Config.ftpsettings.FtpPassword;
                ftpcon.ServerAddress          = Config.ftpsettings.FtpServerAddress;
                ftpcon.ServerPort             = int.Parse(Config.ftpsettings.FtpServerPort);
                ftpcon.TransferNotifyInterval = (long)4096;
                ftp = new FtpLib(ref ftpcon);
            }
            catch (Exception)
            {
                Console.WriteLine(Strings.Get("FtpBadConfig"));
                Console.ReadKey();
                return(false);
            }

            // try to connect
            try
            {
                ftp.LogIn();
            }
            catch (Exception)
            {
                Console.WriteLine(Strings.Get("FtpNoConnection"));
                Console.ReadKey();
                return(false);
            }

            // check if folder exists
            if (!Config.ftpsettings.FtpServerFolder.StartsWith("/"))
            {
                Config.ftpsettings.FtpServerFolder = "/" + Config.ftpsettings.FtpServerFolder;
            }
            if (!ftpcon.DirectoryExists(Config.ftpsettings.FtpServerFolder))
            {
                Console.WriteLine(Strings.Get("FtpBadFolder") + Config.ftpsettings.FtpServerFolder);
                Console.ReadKey();
                return(false);
            }
            return(true);
        }
Пример #2
0
        public static void Pull(ref FtpLib ftp)
        {
            // return if disabled
            if (Config.settings.SyncFolders == "")
            {
                return;
            }

            // download changes on server to local
            foreach (string folder in Config.settings.SyncFolders.Split(','))
            {
                Console.WriteLine(Strings.Get("SyncDown") + " " + folder + " ... ");
                FTPSyncSettings ftpsyncsettings = new FTPSyncSettings();
                if (folder == "config")
                {
                    // special case for config folder
                    ftpsyncsettings.Recurse           = false;
                    ftpsyncsettings.WhenMissingLocal  = FTPAction.Copy;
                    ftpsyncsettings.WhenMissingRemote = FTPAction.Noop;
                    ftpsyncsettings.WhenNewerLocal    = FTPAction.Noop;
                    ftpsyncsettings.WhenNewerRemote   = FTPAction.Copy;
                    ftpsyncsettings.WhenLargerLocal   = FTPAction.Noop;
                    ftpsyncsettings.WhenLargerRemote  = FTPAction.Noop;
                }
                else
                {
                    // other folders
                    ftpsyncsettings.Recurse           = false;
                    ftpsyncsettings.WhenMissingLocal  = FTPAction.Copy;
                    ftpsyncsettings.WhenMissingRemote = FTPAction.Delete;
                    ftpsyncsettings.WhenNewerLocal    = FTPAction.Noop;
                    ftpsyncsettings.WhenNewerRemote   = FTPAction.Noop;
                    ftpsyncsettings.WhenLargerLocal   = FTPAction.Noop;
                    ftpsyncsettings.WhenLargerRemote  = FTPAction.Noop;
                }
                Sync(ref ftp, folder, ftpsyncsettings);
            }
        }
Пример #3
0
        public static void Push(ref FtpLib ftp)
        {
            // return if disabled
            if (Config.settings.SyncFolders == "")
            {
                return;
            }
            if (Config.settings.SyncAllowUpload != "true")
            {
                Console.WriteLine(Strings.Get("SyncUpNotAllowed"));
                Console.ReadKey();
                return;
            }

            // upload changes in local folders to server
            foreach (string folder in Config.settings.SyncFolders.Split(','))
            {
                Console.WriteLine(Strings.Get("SyncUp") + " " + folder + " ... ");
                FTPSyncSettings ftpsyncsettings = new FTPSyncSettings();
                if (folder == "config")
                {
                    // skip push for config folder
                    continue;
                }
                else
                {
                    // other folders
                    ftpsyncsettings.Recurse           = false;
                    ftpsyncsettings.WhenMissingLocal  = FTPAction.Delete;
                    ftpsyncsettings.WhenMissingRemote = FTPAction.Copy;
                    ftpsyncsettings.WhenNewerLocal    = FTPAction.Noop;
                    ftpsyncsettings.WhenNewerRemote   = FTPAction.Noop;
                    ftpsyncsettings.WhenLargerLocal   = FTPAction.Noop;
                    ftpsyncsettings.WhenLargerRemote  = FTPAction.Noop;
                }
                Sync(ref ftp, folder, ftpsyncsettings);
            }
        }
Пример #4
0
 static bool Sync(ref FtpLib ftp, string folder, FTPSyncSettings ftpsyncsettings)
 {
     try
     {
         // make list of changes
         string localFolder  = Locations.LocalFolderName_Minecraft + "\\" + folder;
         string remoteFolder = Config.ftpsettings.FtpServerFolder + "/" + folder;
         List <FTPSyncModification> changes = ftp.CompareDirectory(localFolder, remoteFolder, ftpsyncsettings);
         if (changes.Count > 0)
         {
             Console.WriteLine(Strings.Get("Syncing") + " " + folder + " ... ");
             ftp.SynchronizeFiles(changes, false);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(Strings.Get("SyncError") + ex.Message);
         Console.WriteLine(Strings.Get("PressKey"));
         Console.ReadKey();
         return(false);
     }
     return(true);
 }