//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); } }
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); } }
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; }
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); }
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); }
//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); }
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()); }
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}"); }
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"); }
//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; } }
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); }
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); }
//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); }
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; }
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); } } }
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); }
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()); }
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; }
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; } }