示例#1
0
        //static int Main(string[] args)
        static void Main()
        {
            try
            {
                XmlConfig config = new XmlConfig();
                FormatInfo.SetInvariantCulture();
                Application.CurrentCulture = FormatInfo.CurrentFormat.CurrentCulture;
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                RemoteRunSource remoteRunSource = new RemoteRunSource();
                remoteRunSource.RunsourceDllFilename = config.GetExplicit("RunsourceDllFilename");
                remoteRunSource.RunsourceClassName   = config.GetExplicit("RunsourceClassName");
                remoteRunSource.TraceClassName       = config.GetExplicit("TraceClassName");
                // ATTENTION si CreateRunSourceDomain = true runsource.launch.exe ne peut pas mettre à jour runsource.runsource.exe
                remoteRunSource.CreateRunSourceDomain = config.Get("CreateRunSourceDomain").zTryParseAs <bool>(false);
                IRunSource runSource = remoteRunSource.GetRunSource();
                runSource.AllowMultipleExecution = config.Get("AllowMultipleExecution").zTryParseAs(false);
                // ATTENTION Trace exists in both 'runsource.runsource.exe' and 'runsource.dll'
                // donc il faut utiliser RemoteRunSource.GetTrace()
                ITrace trace = remoteRunSource.GetTrace();
                trace.SetWriter(config.Get("Log"), config.Get("Log/@option").zTextDeserialize(FileOption.None));

                // ATTENTION appeler DeleteGeneratedAssemblies() après SetRunSourceConfig()
                //RunSourceForm form = new RunSourceForm(runSource, trace, config, GetRunSourceRestartParameters());
                RunSourceForm_v3 form = new RunSourceForm_v3(runSource, trace, config, GetRunSourceRestartParameters());

                form.SetRestartRunsource += FormSetRestartRunsource;
                Application.Run(form);
                SetRunSourceRestartParameters();
            }
            catch (Exception ex)
            {
                zerrf.ErrorMessageBox(ex);
            }
        }
示例#2
0
        static void Main()
        {
            try
            {
                // load runsource.runsource.config.xml (config of runsource.runsource.exe)
                XmlConfig config = new XmlConfig();
                FormatInfo.SetInvariantCulture();
                Application.CurrentCulture = FormatInfo.CurrentFormat.CurrentCulture;
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                RemoteRunSource remoteRunSource = new RemoteRunSource();
                remoteRunSource.RunsourceDllFilename  = config.GetExplicit("RunsourceDllFilename");
                remoteRunSource.RunsourceClassName    = config.GetExplicit("RunsourceClassName");
                remoteRunSource.TraceManagerClassName = config.GetExplicit("TraceManagerClassName");
                remoteRunSource.TraceClassName        = config.GetExplicit("TraceClassName");
                // ATTENTION si CreateRunSourceDomain = true runsource.launch.exe ne peut pas mettre à jour runsource.runsource.exe
                remoteRunSource.CreateRunSourceDomain = config.Get("CreateRunSourceDomain").zTryParseAs <bool>(false);
                IRunSource runSource = remoteRunSource.GetRunSource();
                //remoteRunSource.LoadRunsourceCommand();
                //runSource.AllowMultipleExecution = config.Get("AllowMultipleExecution").zTryParseAs(false);
                ///////////////////////// donc il faut utiliser RemoteRunSource.GetTrace()
                //ITrace trace = remoteRunSource.GetTrace();
                //trace.SetWriter(config.Get("Log"), config.Get("Log/@option").zTextDeserialize(FileOption.None));

                // ATTENTION Trace exists in both 'runsource.runsource.exe' and 'runsource.dll'
                // both Trace are connected to TraceManager and can be used
                string     logFile       = config.Get("Log");
                FileOption logFileOption = config.Get("Log/@option").zTextDeserialize(FileOption.None);
                TraceManager.Current.AddTrace(Trace.Current);
                //TraceManager.Current.SetWriter(logFile, logFileOption);
                TraceManager.Current.SetWriter(WriteToFile.Create(logFile, logFileOption));

                ITraceManager remoteTraceManager = remoteRunSource.GetTraceManager();
                remoteTraceManager.AddTrace(remoteRunSource.GetTrace());
                //remoteTraceManager.SetWriter(logFile, logFileOption);
                remoteTraceManager.SetWriter(WriteToFile.Create(logFile, logFileOption));

                // ATTENTION appeler DeleteGeneratedAssemblies() après SetRunSourceConfig()
                //RunSourceForm form = new RunSourceForm(runSource, trace, config, GetRunSourceRestartParameters());
                //RunSourceForm_v3 form = new RunSourceForm_v3(runSource, trace, config, GetRunSourceRestartParameters());
                //RunSourceFormExe form = new RunSourceFormExe(runSource, trace, config, GetRunSourceRestartParameters());
                RunSourceFormExe form = new RunSourceFormExe(runSource, config, remoteRunSource, GetRunSourceRestartParameters());
                RunSourceFormExe.Current = form;

                form.SetRestartRunsource += FormSetRestartRunsource;
                Application.Run(form);

                TraceManager.Current.RemoveTrace(Trace.Current);
                TraceManager.Current.RemoveTrace(remoteRunSource.GetTrace());
                SetRunSourceRestartParameters();
            }
            catch (Exception ex)
            {
                zerrf.ErrorMessageBox(ex);
            }
        }
示例#3
0
 private Dictionary<PrintType, string> CreatePostTypeDirectories()
 {
     Dictionary<PrintType, string> postTypeDirectories = new Dictionary<PrintType, string>();
     postTypeDirectories.Add(PrintType.Print, _printList1Config.GetExplicit("FindPrints/PostTypeDirectories/Print"));
     postTypeDirectories.Add(PrintType.Book, _printList1Config.GetExplicit("FindPrints/PostTypeDirectories/Book"));
     postTypeDirectories.Add(PrintType.Comics, _printList1Config.GetExplicit("FindPrints/PostTypeDirectories/Comics"));
     postTypeDirectories.Add(PrintType.UnknowEBook, _printList1Config.GetExplicit("FindPrints/PostTypeDirectories/UnknowEBook"));
     postTypeDirectories.Add(PrintType.Unknow, _printList1Config.GetExplicit("FindPrints/PostTypeDirectories/UnknowPostType"));
     return postTypeDirectories;
 }
示例#4
0
        private static DebridLinkFr_v3 CreateDebridLinkFr(XmlConfig config)
        {
            DebridLinkFr_v3 debrider    = new DebridLinkFr_v3();
            XmlConfig       localConfig = config.GetConfig("LocalConfig");

            debrider.Login             = localConfig.GetExplicit("DownloadAutomateManager/DebridLink/Login");
            debrider.Password          = localConfig.GetExplicit("DownloadAutomateManager/DebridLink/Password");
            debrider.PublicKey         = localConfig.GetExplicit("DownloadAutomateManager/DebridLink/PublicKey");
            debrider.ConnexionLifetime = DebridLinkFr_v3.GetConnexionLifetime(localConfig.GetExplicit("DownloadAutomateManager/DebridLink/ConnexionLifetime"));
            debrider.ConnexionFile     = config.GetExplicit("DebridLink/ConnexionFile");
            //debrider.ServerTimeFile = XmlConfig.CurrentConfig.GetExplicit("DebridLink/ServerTimeFile");
            return(debrider);
        }
示例#5
0
        public static DebridLinkFr_v2 CreateDebridLinkFr(bool trace = false)
        {
            //XmlConfig config;
            XmlConfig       localConfig = GetLocalConfig();
            DebridLinkFr_v2 debrider    = new DebridLinkFr_v2();

            debrider.Login             = localConfig.GetExplicit("DownloadAutomateManager/DebridLink/Login");
            debrider.Password          = localConfig.GetExplicit("DownloadAutomateManager/DebridLink/Password");
            debrider.PublicKey         = localConfig.GetExplicit("DownloadAutomateManager/DebridLink/PublicKey");
            debrider.ConnexionLifetime = DebridLinkFr_v2.GetConnexionLifetime(localConfig.GetExplicit("DownloadAutomateManager/DebridLink/ConnexionLifetime"));
            debrider.ConnexionFile     = @"c:\pib\dev_data\exe\runsource\download\sites\debrid-link.fr\connexion\Connexion.txt";
            //debrider.ServerTimeFile = XmlConfig.CurrentConfig.GetExplicit("DebridLink/ServerTimeFile");
            DebridLinkFr_v2.Trace = trace;
            return(debrider);
        }
示例#6
0
        //public static PrintTitleManager CreatePrintTitleManager(int version = 3, int gapDayBefore = 0, int gapDayAfter = 0)
        public PrintTitleManager Create()
        {
            // version 2 : utilise le nouveau PrintTitleManager, l'ancien pattern de date FindPrints/Dates/Date avec l'ancien FindDateManager
            // version 3 : version 2 + le nouveau pattern de date FindPrints/Dates/DateNew avec le nouveau FindDateManager_new
            // version 4 (not used) : version 3 + découpe le titre avec "du" ou "-" (PrintTitleManager)
            // version 5 : version 3 +  new find date
            // version 6 : version 5 +  printTitleManager version 2

            if (_version < 3 || _version > 6)
            {
                throw new PBException("bad version {0}", _version);
            }

            //_printList1Config = XmlConfig.CurrentConfig.GetConfig("PrintList1Config");

            FindDateManager findDateManager = CreateFindDateManager();

            PrintTitleManager printTitleManager = new PrintTitleManager();

            printTitleManager.FindDateManager   = findDateManager;
            printTitleManager.FindNumberManager = new FindNumberManager(_printList1Config.GetElements("FindPrints/Numbers/Number"), compileRegex: true);
            printTitleManager.FindSpecial       = new RegexValuesList(_printList1Config.GetElements("FindPrints/Specials/Special"), compileRegex: true);
            printTitleManager.PrintDirectory    = _printList1Config.GetExplicit("FindPrints/UnknowPrintDirectory");
            printTitleManager.SplitTitle        = _splitTitle;
            //if (_version == 4)
            //    printTitleManager.SplitTitle = true;
            //else
            //    printTitleManager.SplitTitle = false;
            if (_version == 6)
            {
                printTitleManager.Version = 2;
            }
            return(printTitleManager);
        }
示例#7
0
        private void InitCradleOfRomeWatcher()
        {
            XmlConfig config = XmlConfig.CurrentConfig;

            gCradleWatcher = new PB_Library.CradleOfRomeWatcher();
            gCradleWatcher.CradleProgram = config.Get("CradleOfRomeWatcher/Program");
            if (gCradleWatcher.CradleProgram == null)
            {
                return;
            }
            gCradleWatcher.CradleFileDirectory        = config.GetExplicit("CradleOfRomeWatcher/FileDirectory");
            gCradleWatcher.CradleFileSaveDirectory    = config.Get("CradleOfRomeWatcher/FileSaveDirectory");
            gCradleWatcher.CradleFileArchiveDirectory = config.Get("CradleOfRomeWatcher/FileArchiveDirectory");
            //gCradleWatcher.Notify += new PB_Library.NotifyDelegate(Trace);
            gCradleWatcher.Notify += new PB_Library.NotifyDelegate(TraceMessage);
            //gCradleWatcher.CraddleFilesSaved += new CraddleFilesSavedDelegate(CraddleFilesSaved);
            gCradleWatcher.BlitzLevelType = PB_Library.CradleOfRomeBlitzLevelType.Hard;
            if (config.Get("CradleOfRomeWatcher/StartWatcher").zTryParseAs(false))
            {
                gCradleWatcher.Start();
            }

            Trace.WriteLine("CradleOfRomeWatcher/Program : \"{0}\"", gCradleWatcher.CradleProgram);
            Trace.WriteLine("CradleOfRomeWatcher/FileDirectory : \"{0}\"", gCradleWatcher.CradleFileDirectory);
            Trace.WriteLine("CradleOfRomeWatcher/FileSaveDirectory : \"{0}\"", gCradleWatcher.CradleFileSaveDirectory);
            Trace.WriteLine("CradleOfRomeWatcher/FileArchiveDirectory : \"{0}\"", gCradleWatcher.CradleFileArchiveDirectory);
            Trace.WriteLine("CradleOfRomeWatcher/StartWatcher : {0}", gCradleWatcher.IsStarted());
        }
示例#8
0
        public static void Test_Authorization()
        {
            XmlConfig config = new XmlConfig(_configFile);
            string    txt    = $"{config.GetExplicit("UserName")}:{config.GetExplicit("LicenseCode")}";

            Trace.WriteLine($"txt : \"{txt}\" {txt.Length}");
            byte[] authBytes = Encoding.UTF8.GetBytes(txt.ToCharArray());
            Trace.WriteLine($"convert to bytes : {authBytes.Length}");
            string base64String = Convert.ToBase64String(authBytes);

            Trace.WriteLine($"convert to base 64 string : \"{base64String}\" {base64String.Length}");
            string authorization = "Basic " + base64String;

            // authorization : "Basic cGJhbWJvdToxQzJDMTQwRS1CMTlFLTQ2QjMtQTM0Mi03NkZGMUM1MDQ1M0U=" 66
            //Authorization:    Basic cGJhbWJvdToxQzJDMTQwRS1CMTlFLTQ2QjMtQTM0Mi03NkZGMUM1MDQ1M0U =
            Trace.WriteLine($"authorization : \"{authorization}\" {authorization.Length}");
        }
示例#9
0
        public static void GetAllDebribAccount()
        {
            if (__login != null)
            {
                return;
            }
            string LocalConfigFile = XmlConfig.CurrentConfig.Get("LocalConfig");

            if (!zFile.Exists(LocalConfigFile))
            {
                throw new PBException("error LocalConfig not found \"{0}\"", LocalConfigFile);
            }
            XmlConfig localConfig = new XmlConfig(LocalConfigFile);

            //Trace.WriteLine("LocalConfig : \"{0}\"", RunSource.CurrentRunSource.Config.Get("LocalConfig"));
            __login    = localConfig.GetExplicit("DownloadAutomateManager/Alldebrid/Login");
            __password = localConfig.GetExplicit("DownloadAutomateManager/Alldebrid/Password");
            //Trace.WriteLine("login       : {0}", __login == null ? "login is null" : "login is not null");
            //Trace.WriteLine("password    : {0}", __password == null ? "password is null" : "password is not null");
        }
示例#10
0
文件: Program.cs 项目: 24/source_04
        //static int Main(string[] args)
        static void Main()
        {
            try
            {
                Trace.CurrentTrace.SetLogFile("log.txt", LogOptions.None);

                XmlConfig config = new XmlConfig();
                FormatInfo.SetInvariantCulture();
                Application.CurrentCulture = FormatInfo.CurrentFormat.CurrentCulture;
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                RemoteRunSource remoteRunSource = new RemoteRunSource();
                remoteRunSource.RunsourceDllFilename = config.GetExplicit("RunsourceDllFilename");
                remoteRunSource.RunsourceClassName   = config.GetExplicit("RunsourceClassName");
                //remoteRunSource.CreateRunSourceDomain = config.Get("CreateRunSourceDomain").zTryParseAs<bool>(true);
                // attention si CreateRunSourceDomain = true runsource.launch.exe ne peut pas mettre à jour runsource.runsourced32.exe
                remoteRunSource.CreateRunSourceDomain = config.Get("CreateRunSourceDomain").zTryParseAs <bool>(false);
                RunSourceForm form = new RunSourceForm(remoteRunSource.GetRunSource(), config, GetRunSourceRestartParameters());

                //form.UpdateRunsourceFiles += FormUpdateRunsourceFiles;
                form.SetRestartRunsource += FormSetRestartRunsource;
                Application.Run(form);
                //if (_projectFiles != null)
                SetRunSourceUpdateAndRestartParameters();

                //if (_updateProgram)
                //{
                //    _updateProgram = false;
                //    return 1;
                //}
                //else
                //    return 0;
            }
            catch (Exception ex)
            {
                zerrf.ErrorMessageBox(ex);
                //return 0;
            }
        }
示例#11
0
        private static HttpWebRequest CreateHttpWebRequest(string url, string method)
        {
            HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create(url);

            XmlConfig config = new XmlConfig(_configFile);

            byte[] authBytes = Encoding.UTF8.GetBytes($"{config.GetExplicit("UserName")}:{config.GetExplicit("LicenseCode")}".ToCharArray());
            request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(authBytes);
            request.Method  = method;
            request.Timeout = 600000;

            // Specify Response format to JSON or XML (application/json or application/xml)
            //request.ContentType = "application/json";
            return(request);
        }
示例#12
0
        public static OcrWebService CreateOcrWebService()
        {
            XmlConfig     config        = new XmlConfig(_configFile);
            OcrWebService ocrWebService = new OcrWebService(config.GetExplicit("UserName"), config.GetExplicit("LicenseCode"));

            //ocrWebService.UserName = config.GetExplicit("UserName");
            //ocrWebService.LicenseCode = config.GetExplicit("LicenseCode");
            if (_cacheDirectory != null)
            {
                UrlCache urlCache = new UrlCache(_cacheDirectory);
                urlCache.UrlFileNameType = UrlFileNameType.Host | UrlFileNameType.Path;
                urlCache.IndexedFile     = true;
                ocrWebService.HttpManager.SetCacheManager(urlCache);
            }
            return(ocrWebService);
        }
示例#13
0
        //private static string GetScanZone(QuestionsParameters parameters, string imageFile)
        //{
        //    // format: "top:left:height:width,...", example "zone=0:0:100:100,50:50:50:50"
        //    if (parameters.PageColumn == 1)
        //        return null;
        //    else if (parameters.PageColumn == 2)
        //    {
        //        int width;
        //        int height;
        //        zimg.GetImageWidthHeight(imageFile, out width, out height);
        //        string zone;
        //        switch (parameters.PageRotate)
        //        {
        //            case PageRotate.NoRotate:
        //            case PageRotate.Rotate180:
        //                int width2 = width / 2;
        //                zone = $"0:0:{width2}:{height},{width2}:0:{width - width2}:{height}";
        //                break;
        //            case PageRotate.Rotate90:
        //            case PageRotate.Rotate270:
        //                int height2 = height / 2;
        //                zone = $"0:0:{width}:{height2},0:{height2}:{width}:{height - height2}";
        //                break;
        //            default:
        //                throw new PBException($"unknow page rotation {parameters.PageRotate}");
        //        }
        //        return zone;
        //    }
        //    else
        //        throw new PBException($"can't create scan zone for {parameters.PageColumn} columns");
        //}

        //private OcrRequest CreateOcrRequest()
        //{
        //    return new OcrRequest { Language = "french,english", OutputFormat = "txt" };
        //}

        //private OcrWebService CreateOcrWebService()
        //{
        //    XmlConfig config = XmlConfig.CurrentConfig;
        //    XmlConfig ocrWebServiceConfig = config.GetConfig("OcrWebServiceConfig");
        //    OcrWebService ocrWebService = new OcrWebService(ocrWebServiceConfig.GetExplicit("UserName"), ocrWebServiceConfig.GetExplicit("LicenseCode"), _timeout);
        //    //ocrWebService.UserName = ocrWebServiceConfig.GetExplicit("UserName");
        //    //ocrWebService.LicenseCode = ocrWebServiceConfig.GetExplicit("LicenseCode");
        //    string cacheDirectory = config.Get("OcrWebServiceCacheDirectory");
        //    if (cacheDirectory != null)
        //    {
        //        UrlCache urlCache = new UrlCache(cacheDirectory);
        //        urlCache.UrlFileNameType = UrlFileNameType.Host | UrlFileNameType.Path;
        //        if (config.Get("OcrWebServiceCacheDirectory/@option")?.ToLower() == "indexedfile")
        //            urlCache.IndexedFile = true;
        //        ocrWebService.HttpManager.SetCacheManager(urlCache);
        //    }
        //    return ocrWebService;
        //}

        private ScanManager CreateScanManager()
        {
            XmlConfig config = XmlConfig.CurrentConfig;
            XmlConfig ocrWebServiceConfig = config.GetConfig("OcrWebServiceConfig");
            UrlCache  urlCache            = null;
            string    cacheDirectory      = config.Get("OcrWebServiceCacheDirectory");

            if (cacheDirectory != null)
            {
                urlCache = new UrlCache(cacheDirectory);
                urlCache.UrlFileNameType = UrlFileNameType.Host | UrlFileNameType.Path;
                if (config.Get("OcrWebServiceCacheDirectory/@option")?.ToLower() == "indexedfile")
                {
                    urlCache.IndexedFile = true;
                }
            }
            ScanManager scanManager = new ScanManager(ocrWebServiceConfig.GetExplicit("UserName"), ocrWebServiceConfig.GetExplicit("LicenseCode"), urlCache);

            scanManager.Language     = "french,english";
            scanManager.OutputFormat = "txt";
            return(scanManager);
        }
示例#14
0
文件: Run.cs 项目: 24/source_04
        public static void InitAlways()
        {
            XmlConfig.CurrentConfig = new XmlConfig(RunSourceCommand.GetFilePath("hts.config.xml"));
            XmlConfig config = XmlConfig.CurrentConfig;

            string logFile = config.Get("Log").zRootPath(zapp.GetAppDirectory());

            //Trace.WriteLine($"set log file \"{logFile}\"");
            //RunSourceCommand.SetWriter(logFile, config.Get("Log/@option").zTextDeserialize(FileOption.None));
            //RunSourceCommand.TraceSetWriter(WriteToFile.Create(logFile, config.Get("Log/@option").zTextDeserialize(FileOption.None)));
            RunSourceCommand.TraceManager.SetWriter(WriteToFile.Create(logFile, config.Get("Log/@option").zTextDeserialize(FileOption.None)));

            AppData.DataDirectory = config.GetExplicit("DataDir");
            //string httpExportDirectory = config.Get("HttpExportDirectory").zRootPath(zapp.GetEntryAssemblyDirectory());
            //if (httpExportDirectory != null)
            //{
            //    //Trace.WriteLine($"http export directory \"{httpExportDirectory}\"");
            //    HttpRun.HttpManager.UrlCache = new UrlCache(httpExportDirectory);
            //    HttpRun.HttpManager.UrlCache.UrlFileNameType = UrlFileNameType.Host | UrlFileNameType.Path | UrlFileNameType.Ext | UrlFileNameType.Query;
            //    HttpRun.HttpManager.UrlCache.IndexedFile = true;
            //    HttpRun.HttpManager.UrlCache.SaveRequest = true;
            //}
            HttpRun.HttpManager.UrlCache = UrlCache.CreateIndexedCache(config.Get("HttpExportDirectory").zRootPath(zapp.GetEntryAssemblyDirectory()));
            MongoLog.CurrentMongoLog.SetLogFile(config.Get("MongoLog").zRootPath(zapp.GetEntryAssemblyDirectory()), config.Get("MongoLog/@option").zTextDeserialize(FileOption.None));
            string mongoCache = config.Get("MongoCache").zRootPath(zapp.GetEntryAssemblyDirectory());

            if (mongoCache != null)
            {
                MongoCursorCache.CacheFile = mongoCache;
            }
            //TraceMongoCommand.ResultToGrid = true;
            //DefaultMongoSerialization.SetDefaultMongoSerializationOptions();
            //DefaultMongoSerialization.RegisterDefaultMongoSerializer();
            //HtmlRun.SetResult = dt => RunSource.CurrentRunSource.SetResult(dt);

            //pb.Web.Html.HtmlToXmlManager.Current.ExportXml = true;
        }
示例#15
0
        public static void InitAlways()
        {
            XmlConfig.CurrentConfig = new XmlConfig(RunSourceCommand.GetFilePath("download.config.xml"));
            XmlConfig config = XmlConfig.CurrentConfig;

            //RunSourceCommand.SetWriter(config.Get("Log").zRootPath(zapp.GetAppDirectory()), config.Get("Log/@option").zTextDeserialize(FileOption.None));
            //RunSourceCommand.TraceSetWriter(WriteToFile.Create(config.Get("Log").zRootPath(zapp.GetAppDirectory()), config.Get("Log/@option").zTextDeserialize(FileOption.None)));
            RunSourceCommand.TraceManager.SetWriter(WriteToFile.Create(config.Get("Log").zRootPath(zapp.GetAppDirectory()), config.Get("Log/@option").zTextDeserialize(FileOption.None)));

            string dataDir = config.GetExplicit("DataDir");

            AppData.DataDirectory = dataDir;

            //HttpManager.CurrentHttpManager.ExportDirectory = config.Get("HttpExportDirectory").zRootPath(zapp.GetEntryAssemblyDirectory());
            HttpRun.HttpManager.UrlCache = UrlCache.CreateIndexedCache(config.Get("HttpExportDirectory").zRootPath(zapp.GetEntryAssemblyDirectory()));

            MongoLog.CurrentMongoLog.SetLogFile(config.Get("MongoLog").zRootPath(zapp.GetEntryAssemblyDirectory()), config.Get("MongoLog/@option").zTextDeserialize(FileOption.None));
            string mongoCache = config.Get("MongoCache").zRootPath(zapp.GetEntryAssemblyDirectory());

            if (mongoCache != null)
            {
                MongoCursorCache.CacheFile = mongoCache;
            }

            // export data of PrintTextValuesManager
            bool exportData = config.Get("TextInfos/ExportData").zParseAs <bool>();

            if (exportData)
            {
                string exportDataFile = config.Get("TextInfos/ExportDataFile");
                if (exportDataFile != null)
                {
                    DownloadPrint.PrintTextValuesManager.SetExportDataFile(exportDataFile);
                }
            }
        }
示例#16
0
        public static Http Login(XXElement xeSource)
        {
            XmlConfig localConfig = new XmlConfig(XmlConfig.CurrentConfig.GetExplicit("LocalConfig"));
            string    login       = localConfig.GetExplicit("DownloadAutomateManager/Ebookdz/Login");
            //string hashPassword = Crypt.ComputeMD5Hash(localConfig.GetExplicit("DownloadAutomateManager/Ebookdz/Password"));
            string hashPassword = Crypt.ComputeMD5Hash(localConfig.GetExplicit("DownloadAutomateManager/Ebookdz/Password")).zToHex(lowercase: true);

            // <base href="http://www.ebookdz.com/forum/" />
            string urlBase = xeSource.XPathValue("//head//base/@href");
            //string urlBase = xeSource.XPathValue("//body//base/@href");
            //Trace.WriteLine("urlBase : \"{0}\"", urlBase);
            XXElement xeForm = xeSource.XPathElement("//form[@id='navbar_loginform']");

            if (xeForm.XElement == null)
            {
                //Trace.WriteLine("element not found \"//form[@id='navbar_loginform']\"");
                throw new PBException("element form not found \"//form[@id='navbar_loginform']\"");
            }
            //Trace.WriteLine("form action : \"{0}\"", xeForm.XPathValue("@action"));
            string urlForm = zurl.GetUrl(urlBase, xeForm.XPathValue("@action"));
            string method  = xeForm.XPathValue("@method");
            //Trace.WriteLine("urlForm : \"{0}\" method {1}", urlForm, method);
            StringBuilder sb    = new StringBuilder();
            bool          first = true;

            foreach (XXElement xeInput in xeForm.XPathElements(".//input"))
            {
                string name = xeInput.XPathValue("@name");
                if (name == null)
                {
                    continue;
                }
                string value = null;
                if (name == "vb_login_username")
                {
                    value = login;
                }
                else if (name == "vb_login_password")
                {
                    value = null;
                }
                else if (name == "vb_login_md5password" || name == "vb_login_md5password_utf")
                {
                    value = hashPassword;
                }
                else
                {
                    value = xeInput.XPathValue("@value");
                }
                if (!first)
                {
                    sb.Append("&");
                }
                sb.AppendFormat("{0}={1}", name, value);
                first = false;
            }
            string content = sb.ToString();
            //Trace.WriteLine("content : \"{0}\"", content);

            HttpRequest httpRequest = new HttpRequest {
                Url = urlForm, Content = content, Method = Http.GetHttpRequestMethod(method)
            };
            HttpRequestParameters httpRequestParameters = new HttpRequestParameters();
            Http http = HttpManager.CurrentHttpManager.Load(httpRequest, httpRequestParameters);

            //xeSource = new XXElement(http.zGetXmlDocument().Root);
            //if (!IsLoggedIn(xeSource))
            //    throw new PBException("unable login to http://www.ebookdz.com/");
            return(http);
        }
示例#17
0
文件: Ebookdz_f.cs 项目: 24/source_04
        public static void Test_Login_01(string url)
        {
            XmlConfig localConfig  = new XmlConfig(XmlConfig.CurrentConfig.GetExplicit("LocalConfig"));
            string    login        = localConfig.GetExplicit("DownloadAutomateManager/Ebookdz/Login");
            string    hashPassword = Crypt.ComputeMD5Hash(localConfig.GetExplicit("DownloadAutomateManager/Ebookdz/Password")).zToHex(lowercase: true);

            string urlSite = "http://www.ebookdz.com/";
            HttpRequestParameters_v1 requestParameters = new HttpRequestParameters_v1();

            pb.old.Http_v2.LoadUrl(urlSite, requestParameters);
            XXElement xeSource = new XXElement(pb.old.Http_v2.HtmlReader.XDocument.Root);

            Trace.WriteLine("Login        : \"{0}\"", Test_GetLogin_01(xeSource));
            Trace.WriteLine("Is logged in : \"{0}\"", Test_IsLoggedIn_01(xeSource));
            // <base href="http://www.ebookdz.com/forum/" />
            string urlBase = xeSource.XPathValue("//head//base/@href");

            //string urlBase = xeSource.XPathValue("//body//base/@href");
            Trace.WriteLine("urlBase : \"{0}\"", urlBase);
            XXElement xeForm = xeSource.XPathElement("//form[@id='navbar_loginform']");

            if (xeForm.XElement == null)
            {
                Trace.WriteLine("element not found \"//form[@id='navbar_loginform']\"");
                return;
            }
            Trace.WriteLine("form action : \"{0}\"", xeForm.XPathValue("@action"));
            string urlForm = zurl.GetUrl(urlBase, xeForm.XPathValue("@action"));
            string method  = xeForm.XPathValue("@method");

            Trace.WriteLine("urlForm : \"{0}\" method {1}", urlForm, method);
            StringBuilder sb    = new StringBuilder();
            bool          first = true;

            foreach (XXElement xeInput in xeForm.XPathElements(".//input"))
            {
                string name = xeInput.XPathValue("@name");
                if (name == null)
                {
                    continue;
                }
                string value = null;
                if (name == "vb_login_username")
                {
                    value = login;
                }
                else if (name == "vb_login_password")
                {
                    value = null;
                }
                else if (name == "vb_login_md5password" || name == "vb_login_md5password_utf")
                {
                    value = hashPassword;
                }
                else
                {
                    value = xeInput.XPathValue("@value");
                }
                if (!first)
                {
                    sb.Append("&");
                }
                sb.AppendFormat("{0}={1}", name, value);
                first = false;
            }
            string content = sb.ToString();

            Trace.WriteLine("content : \"{0}\"", content);

            requestParameters.content = content;
            requestParameters.method  = Http.GetHttpRequestMethod(method);
            pb.old.Http_v2.LoadUrl(urlForm, requestParameters);

            //CookieCollection cookies = requestParameters.cookies.GetCookies(new Uri(urlSite));
            //Trace.WriteLine("cookies :");
            //Trace.WriteLine(cookies.zToJson());

            requestParameters.method  = HttpRequestMethod.Get;
            requestParameters.content = null;
            pb.old.Http_v2.LoadUrl(url, requestParameters);
            xeSource = new XXElement(pb.old.Http_v2.HtmlReader.XDocument.Root);
            Trace.WriteLine("Login        : \"{0}\"", Test_GetLogin_01(xeSource));
            Trace.WriteLine("Is logged in : \"{0}\"", Test_IsLoggedIn_01(xeSource));

            string cookiesFile = Path.Combine(XmlConfig.CurrentConfig.GetExplicit("Ebookdz/CookiesDir"), "cookies.txt");

            Trace.WriteLine("save cookies to \"{0}\"", cookiesFile);
            //zfile.CreateFileDirectory(cookiesFile);
            //CookieCollection cookies = requestParameters.cookies.GetCookies(new Uri(urlSite));
            //cookies.zSave(cookiesFile);
            zcookies.SaveCookies(requestParameters.cookies, urlSite, cookiesFile);

            //cookies = requestParameters.cookies.GetCookies(new Uri(urlSite));
            //Trace.WriteLine("cookies :");
            //Trace.WriteLine(cookies.zToJson());
        }
示例#18
0
        public static void Test_Connexion_01()
        {
            string exportDirectory = @"c:\pib\drive\google\dev_data\exe\runsource\download\sites\debrid-link.fr\model\login\new";

            bool trace = DebridLinkFr_v2.Trace;

            DebridLinkFr_v2.Trace = false;

            Trace.WriteLine("test connexion to debrid-link.fr");
            Trace.WriteLine("  export directory      : \"{0}\"", exportDirectory);

            XmlConfig localConfig = GetLocalConfig();

            string publicKey = localConfig.GetExplicit("DownloadAutomateManager/DebridLink/PublicKey");

            Trace.WriteLine("  publicKey             : \"{0}\"", publicKey);
            Trace.WriteLine();

            string newTokenUrl = string.Format("https://debrid-link.fr/api/token/{0}/new", publicKey);
            string exportFile  = "01_debrid-link.fr_api_new_token.txt";

            Trace.WriteLine("  get new token key     : \"{0}\"", newTokenUrl);
            Trace.WriteLine("  export to file        : \"{0}\"", exportFile);
            DateTime requestTime = DateTime.Now;

            Http.Http http = Http.Http.LoadAsText(new HttpRequest {
                Url = newTokenUrl
            }, exportFile: zPath.Combine(exportDirectory, exportFile));
            BsonDocument result        = BsonDocument.Parse(http.ResultText);
            int          serverTs      = result.zGet("ts").zAsInt();
            DateTime     serverTime    = zdate.UnixTimeStampToDateTime(serverTs);
            TimeSpan     serverTimeGap = serverTime - requestTime;

            Trace.WriteLine("  server time           : request time {0} server timestamp {1} server time {2} gap {3}", requestTime, serverTs, serverTime, serverTimeGap);
            Trace.WriteLine("  result                :");
            Trace.WriteLine(result.zToJson());
            Trace.WriteLine();

            string validTokenUrl = result.zGet("value.validTokenUrl").zAsString();

            exportFile = "02_debrid-link.fr_api_valid_token.html";
            Trace.WriteLine("  load valid token url  : \"{0}\"", validTokenUrl);
            Trace.WriteLine("  export to file        : \"{0}\"", exportFile);
            HttpRequestParameters httpRequestParameters = new HttpRequestParameters {
                Encoding = Encoding.UTF8
            };

            http = Http.Http.LoadAsText(new HttpRequest {
                Url = validTokenUrl
            }, httpRequestParameters, exportFile: zPath.Combine(exportDirectory, exportFile));
            Trace.WriteLine();

            string loginUrl = "https://debrid-link.fr/login";

            exportFile = "03_debrid-link.fr_login.html";
            Trace.WriteLine("  send login info       : \"{0}\"", loginUrl);
            Trace.WriteLine("  export to file        : \"{0}\"", exportFile);
            string content      = string.Format("user={0}&password={1}&understand=true", localConfig.GetExplicit("DownloadAutomateManager/DebridLink/Login"), localConfig.GetExplicit("DownloadAutomateManager/DebridLink/Password"));
            string traceContent = string.Format("user={0}&password={1}&understand=true", "xxxxxx", "xxxxxx");

            Trace.WriteLine("  content               : \"{0}\"", traceContent);
            http = Http.Http.LoadAsText(new HttpRequest {
                Url = loginUrl, Method = HttpRequestMethod.Post, Content = content
            }, httpRequestParameters, exportFile: zPath.Combine(exportDirectory, exportFile));
            Trace.WriteLine();

            XXElement xe = http.zGetXDocument().zXXElement();

            //<div class="alert alert-success">
            xe = xe.XPathElement("//div[@class='alert alert-success']");
            Trace.WriteLine("  verify login          : {0}", xe.XElement != null ? "login ok" : "login error");
            Trace.WriteLine();

            string request    = "/account/infos";
            string urlRequest = "https://debrid-link.fr/api" + request;

            exportFile = "04_debrid-link.fr_account_infos.txt";
            Trace.WriteLine("  get account infos     : \"{0}\"", urlRequest);
            Trace.WriteLine("  export to file        : \"{0}\"", exportFile);
            string   key       = result.zGet("value.key").zAsString();
            DateTime time      = DateTime.Now + serverTimeGap;
            int      timestamp = zdate.DateTimeToUnixTimeStamp(time);
            string   signature = DebridLinkFr_v2.GetSignature(timestamp, request, key);

            Trace.WriteLine("  signature             : timestamp {0} request \"{1}\" key \"{2}\" signature \"{3}\"", timestamp, request, key, signature);
            string token = result.zGet("value.token").zAsString();

            httpRequestParameters = new HttpRequestParameters {
                Encoding = Encoding.UTF8
            };
            httpRequestParameters.Headers["x-dl-token"] = token;
            httpRequestParameters.Headers["x-dl-sign"]  = signature;
            httpRequestParameters.Headers["x-dl-ts"]    = timestamp.ToString();
            Trace.WriteLine("  set header            : \"{0}\" = \"{1}\"", "x-dl-token", token);
            Trace.WriteLine("  set header            : \"{0}\" = \"{1}\"", "x-dl-sign", signature);
            Trace.WriteLine("  set header            : \"{0}\" = \"{1}\"", "x-dl-ts", timestamp);
            DateTime dt = DateTime.Now;

            http = Http.Http.LoadAsText(new HttpRequest {
                Url = urlRequest
            }, httpRequestParameters, exportFile: zPath.Combine(exportDirectory, exportFile));
            result = BsonDocument.Parse(http.ResultText);
            // control server time
            int      newTimestamp     = result.zGet("ts").zAsInt();
            DateTime newServerTime    = zdate.UnixTimeStampToDateTime(newTimestamp);
            TimeSpan newServerTimeGap = newServerTime - dt;

            Trace.WriteLine("  new server time       : {0} gap {1} timestamp {2} timestamp gap {3}", newServerTime, newServerTimeGap, newTimestamp, timestamp - newTimestamp);
            Trace.WriteLine("  result                :");
            Trace.WriteLine(result.zToJson());
            Trace.WriteLine();

            DebridLinkFr_v2.Trace = trace;
        }
示例#19
0
        static void Main()
        {
            try
            {
                XmlConfig config = new XmlConfig();

                //Trace.CurrentTrace.SetLogFile("log.txt", LogOptions.None);
                //string path = config.Get("Log").zSetRootDirectory();
                //if (path != null)
                //    _runSource.Trace.SetLogFile(path, LogOptions.IndexedFile);
                //Trace.WriteLine(config.Get("Log").zSetRootDirectory());
                //LogOptions logOptions = config.Get("Log/@LogOptions").zTextDeserialize(LogOptions.None);
                //Trace.WriteLine(logOptions.ToString());
                //Trace.CurrentTrace.SetLogFile(config.Get("Log").zSetRootDirectory(), config.Get("Log/@LogOptions").zTextDeserialize(LogOptions.None));
                //Trace.WriteLine(Trace.CurrentTrace.GetLogFile());

                FormatInfo.SetInvariantCulture();
                Application.CurrentCulture = FormatInfo.CurrentFormat.CurrentCulture;
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                RemoteRunSource remoteRunSource = new RemoteRunSource();
                remoteRunSource.RunsourceDllFilename = config.GetExplicit("RunsourceDllFilename");
                remoteRunSource.RunsourceClassName   = config.GetExplicit("RunsourceClassName");
                remoteRunSource.TraceClassName       = config.GetExplicit("TraceClassName");
                //remoteRunSource.CreateRunSourceDomain = config.Get("CreateRunSourceDomain").zTryParseAs<bool>(true);
                // ATTENTION si CreateRunSourceDomain = true runsource.launch.exe ne peut pas mettre à jour runsource.runsource.exe
                remoteRunSource.CreateRunSourceDomain = config.Get("CreateRunSourceDomain").zTryParseAs <bool>(false);
                IRunSource runSource = remoteRunSource.GetRunSource();
                runSource.AllowMultipleExecution = config.Get("AllowMultipleExecution").zTryParseAs(false);
                // ATTENTION Trace exists in both 'runsource.runsource.exe' and 'runsource.dll'
                // donc il faut utiliser RemoteRunSource.GetTrace()
                ITrace trace = remoteRunSource.GetTrace();
                //trace.SetLogFile(config.Get("Log").zRootPath(zapp.GetAppDirectory()), config.Get("Log/@LogOptions").zTextDeserialize(LogOptions.None));
                // .zRootPath(zapp.GetAppDirectory())
                trace.SetWriter(config.Get("Log"), config.Get("Log/@option").zTextDeserialize(FileOption.None));

                //runSource.GenerateAndExecuteManager.GenerateAssemblyDirectory = config.Get("GenerateAssemblyDirectory", "run").zRootPath(zapp.GetAppDirectory());
                // ATTENTION appeler DeleteGeneratedAssemblies() après SetRunSourceConfig()
                //runSource.DeleteGeneratedAssemblies();
                //RunSourceForm_v1 form = new RunSourceForm_v1(runSource, trace, config, GetRunSourceRestartParameters());
                RunSourceForm form = new RunSourceForm(runSource, trace, config, GetRunSourceRestartParameters());

                //form.UpdateRunsourceFiles += FormUpdateRunsourceFiles;
                form.SetRestartRunsource += FormSetRestartRunsource;
                Application.Run(form);
                //if (_projectFiles != null)
                SetRunSourceRestartParameters();
                //SetRunSourceUpdateParameters();

                //if (_updateProgram)
                //{
                //    _updateProgram = false;
                //    return 1;
                //}
                //else
                //    return 0;
                //Application.Exit();
            }
            catch (Exception ex)
            {
                zerrf.ErrorMessageBox(ex);
                //return 0;
            }
        }