public override IEnumerable <ICookieImporter> GetCookieImporters() { var path = SearchCookieDirectory(); var info = new CookieSourceInfo("Lunascape Webkit", "Default", path, EngineIds[0], false); return(new ICookieImporter[] { new WebkitQtCookieImporter(info, 2) }); }
public ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo) { ICookieImporterFactory manager; if (!_pnirBrowserManagers.TryGetValue(sourceInfo.EngineId, out manager)) throw new ArgumentException("引数infoのEngineIdsに対応していません。"); return manager.GetCookieImporter(sourceInfo); }
#pragma warning restore 1591 /// <summary> /// ユーザのデフォルト環境設定を用いたICookieImporter生成します。 /// </summary> /// <returns>長さ1の列挙子</returns> IEnumerable<ICookieImporter> GetDefaultProfiles() { string path = null; if (_dataFolder != null) path = Path.Combine(_dataFolder, _defaultFolderName, _cookieFileName); var conf = new CookieSourceInfo(_name, _defaultFolderName, path, EngineIds[0], false); return new ICookieImporter[] { new BlinkCookieImporter(conf, _primaryLevel) }; }
/// <summary> /// 指定されたinfoからCookieを取得するICookieImporterを生成します。 /// 継承時にコンストラクタでcookiePathType, primaryLevelを直接指定し、 /// infoの方は引数で受け取る形にする事を推奨します。 /// </summary> /// <param name="info">対象のブラウザの構成情報</param> /// <param name="cookiePathType">対象ブラウザのCookieの置き場所の形式</param> /// <param name="primaryLevel"> /// 並べ替え時に用いられる数値。 /// OSブラウザ: 0、有名ブラウザ: 1、派生ブラウザ: 2 /// </param> public CookieImporterBase(CookieSourceInfo info, CookiePathType cookiePathType, int primaryLevel) { if (info == null) throw new ArgumentNullException("引数infoがnullです。"); SourceInfo = info; CookiePathType = cookiePathType; PrimaryLevel = primaryLevel; }
#pragma warning disable 1591 public override IEnumerable<ICookieImporter> GetCookieImporters() { var name = "Maxthon Webkit"; var path = Utility.ReplacePathSymbols(COOKIEPATH); if (!System.IO.File.Exists(path)) path = null; var info = new CookieSourceInfo(name, "Default", path, EngineIds[0], false); return new ICookieImporter[] { new BlinkCookieImporter(info, 2) }; }
public ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo) { ICookieImporterFactory manager; if (!_pnirBrowserManagers.TryGetValue(sourceInfo.EngineId, out manager)) { throw new ArgumentException("引数infoのEngineIdsに対応していません。"); } return(manager.GetCookieImporter(sourceInfo)); }
/// <summary> /// 指定されたinfoからCookieを取得するICookieImporterを生成します。 /// 継承時にコンストラクタでcookiePathType, primaryLevelを直接指定し、 /// infoの方は引数で受け取る形にする事を推奨します。 /// </summary> /// <param name="info">対象のブラウザの構成情報</param> /// <param name="cookiePathType">対象ブラウザのCookieの置き場所の形式</param> /// <param name="primaryLevel"> /// 並べ替え時に用いられる数値。 /// OSブラウザ: 0、有名ブラウザ: 1、派生ブラウザ: 2 /// </param> public CookieImporterBase(CookieSourceInfo info, CookiePathType cookiePathType, int primaryLevel) { if (info == null) { throw new ArgumentNullException("引数infoがnullです。"); } SourceInfo = info; CookiePathType = cookiePathType; PrimaryLevel = primaryLevel; }
#pragma warning restore 1591 /// <summary> /// ユーザのデフォルト環境設定を用いたICookieImporter生成します。 /// </summary> /// <returns>長さ1の列挙子</returns> IEnumerable <ICookieImporter> GetDefaultProfiles() { string path = null; if (_dataFolder != null) { path = Path.Combine(_dataFolder, _defaultFolderName, _cookieFileName); } var conf = new CookieSourceInfo(_name, _defaultFolderName, path, EngineIds[0], false); return(new ICookieImporter[] { new BlinkCookieImporter(conf, _primaryLevel) }); }
public override ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo) { switch(sourceInfo.EngineId) { case ENGINE_ID_NORMAL_IE: return new IECookieImporter(sourceInfo, 2); case ENGINE_ID_PROTECTED_IE: return new IEPMCookieImporter(sourceInfo, 2); case ENGINE_ID_ENHANCED_PROTECTED_IE: return new IEFindCacheCookieImporter(sourceInfo, 2); default: throw new ArgumentException("引数infoのEngineIdを使えるImporterが見つかりませんでした。"); } }
#pragma warning disable 1591 public override IEnumerable <ICookieImporter> GetCookieImporters() { var name = "Maxthon Webkit"; var path = Utility.ReplacePathSymbols(COOKIEPATH); if (!System.IO.File.Exists(path)) { path = null; } var info = new CookieSourceInfo(name, "Default", path, EngineIds[0], false); return(new ICookieImporter[] { new BlinkCookieImporter(info, 2) }); }
public override ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo) { switch (sourceInfo.EngineId) { case ENGINE_ID_NORMAL_IE: return(new IECookieImporter(sourceInfo, 2)); case ENGINE_ID_PROTECTED_IE: return(new IEPMCookieImporter(sourceInfo, 2)); case ENGINE_ID_ENHANCED_PROTECTED_IE: return(new IEFindCacheCookieImporter(sourceInfo, 2)); default: throw new ArgumentException("引数infoのEngineIdを使えるImporterが見つかりませんでした。"); } }
/// <summary> /// 任意のブラウザ構成を設定します。カスタム設定の構成も設定可能です。 /// </summary> /// <param name="info">ブラウザの構成設定</param> public async Task SetInfoAsync(CookieSourceInfo info) { try { await _updateSem.WaitAsync(); IsUpdating = true; await PrivateSetInfoAsync(info); } catch (CookieImportException e) { System.Diagnostics.Trace.TraceInformation("選択中のブラウザの設定カスタマイズに失敗。", e); } finally { IsUpdating = false; _updateSem.Release(); } }
public static void save(CookieSourceInfo si, bool isSub) { // var sio = new SourceInfoObject(si); // XmlSerializer serializer = new XmlSerializer(typeof(SourceInfoObject)); XmlSerializer serializer = new XmlSerializer(typeof(CookieSourceInfo)); var jarPath = util.getJarPath(); try { var uri = (isSub) ? (jarPath[0] + "\\" + jarPath[1] + "0.xml") : (jarPath[0] + "\\" + jarPath[1] + ".xml"); var sw = new System.IO.StreamWriter(uri, false, System.Text.Encoding.UTF8); serializer.Serialize(sw, si); sw.Close(); } catch (Exception e) { util.debugWriteLine(e.Message + " " + e.StackTrace + " " + e.TargetSite); } }
/// <summary> /// 任意のCookieファイルを指定するためのファイル選択ダイアログを表示する。 /// </summary> public async Task ShowCookieDialogAsync() { var currentImporter = Selector.SelectedImporter; var currentCookiePath = currentImporter.SourceInfo.CookiePath; CookieSourceInfo newInfo = null; DialogResult res; switch (currentImporter.CookiePathType) { case CookiePathType.Directory: if (System.IO.Directory.Exists(currentCookiePath)) { openFolderDialog.SelectedPath = currentImporter.SourceInfo.CookiePath; } if ((res = openFolderDialog.ShowDialog()) == DialogResult.OK) { currentCookiePath = openFolderDialog.SelectedPath; newInfo = currentImporter.SourceInfo.GenerateCopy(cookiePath: currentCookiePath); } break; case CookiePathType.File: if (System.IO.File.Exists(currentCookiePath)) { openFileDialog.InitialDirectory = System.IO.Path.GetDirectoryName(currentCookiePath); openFileDialog.FileName = currentCookiePath; } if ((res = openFileDialog.ShowDialog()) == DialogResult.OK) { currentCookiePath = openFileDialog.FileName; newInfo = currentImporter.SourceInfo.GenerateCopy(cookiePath: currentCookiePath); } break; default: return; } if (res == System.Windows.Forms.DialogResult.OK) { await Selector.SetInfoAsync(newInfo); } }
/// <summary> /// 任意のブラウザ構成を設定します。カスタム設定の構成も設定可能です。 /// </summary> /// <param name="info">ブラウザの構成設定</param> public async Task SetInfoAsync(CookieSourceInfo info) { try { SqlCookieImporter.tempNameList.Clear(); GeckoImporterFactory.fileDataList.Clear(); await _updateSem.WaitAsync(); IsUpdating = true; await PrivateSetInfoAsync(info); } catch (CookieImportException e) { System.Diagnostics.Trace.TraceInformation("選択中のブラウザの設定カスタマイズに失敗。", e); } finally { IsUpdating = false; _updateSem.Release(); } }
async Task PrivateSetInfoAsync(CookieSourceInfo info) { //引数infoが使えるImporterを取得する。無い場合は適当なのを見繕う var importer = await _importerManager.GetInstanceAsync(info, true); lock (_updaterSyn) { //取得したImporterのItems内での場所を検索する。 //idxがどのItemsも指定していない場合はカスタム設定を生成 var idx = Items.Select(item => item.Importer.SourceInfo).TakeWhile(conf => conf != importer.SourceInfo).Count(); if (idx == Items.Count) { CookieSourceItem customItem; try { customItem = _itemGenerator(importer); customItem.Initialize(); } catch (Exception e) { throw new CookieImportException( string.Format("{0}の生成に失敗しました。", typeof(CookieSourceItem).Name), CookieImportState.UnknownError, e); } if (_addedCustom) { Items[Items.Count - 1] = customItem; } else { Items.Add(customItem); _addedCustom = true; } } SelectedIndex = idx; } }
public override IEnumerable<ICookieImporter> GetCookieImporters() { var path = SearchCookieDirectory(); var info = new CookieSourceInfo("Lunascape Webkit", "Default", path, EngineIds[0], false); return new ICookieImporter[] { new WebkitQtCookieImporter(info, 2) }; }
public override ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo) { return(new WebkitQtCookieImporter(sourceInfo, 2)); }
public abstract ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo);
public abstract ICookieImporter Generate(CookieSourceInfo newInfo);
public override ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo) { return new GeckoCookieImporter(sourceInfo, 2); }
public abstract override ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo);
#pragma warning disable 1591 public IEPMCookieImporter(CookieSourceInfo info, int primaryLevel) : base(info, primaryLevel) { }
public override ICookieImporter Generate(CookieSourceInfo newInfo) { return(new IEPMCookieImporter(newInfo, PrimaryLevel)); }
#pragma warning disable 1591 public BlinkCookieImporter(CookieSourceInfo info, int primaryLevel) : base(info, primaryLevel) { }
public override ICookieImporter GetCookieImporter(CookieSourceInfo sourceInfo) { return(new IEFindCacheCookieImporter(sourceInfo, 0)); }
#pragma warning disable 1591 public SqlCookieImporter(CookieSourceInfo info, int primaryLevel) : base(info, CookiePathType.File, primaryLevel) { }
#pragma warning disable 1591 public IECookieImporter(CookieSourceInfo info, int primaryLevel) : base(info, CookiePathType.Directory, primaryLevel) { }
/// <summary> /// Itemsを更新します。 /// </summary> public async Task UpdateAsync() { ICookieImporter currentImporter = null; CookieSourceInfo currentInfo = null; SqlCookieImporter.tempNameList.Clear(); GeckoImporterFactory.fileDataList.Clear(); try { //設定復元用に選択中のブラウザを取得。 await _updateSem.WaitAsync(); currentImporter = SelectedImporter; currentInfo = currentImporter != null ? currentImporter.SourceInfo : null; SelectedIndex = -1; IsUpdating = true; var browserItems = (await _importerManager.GetInstancesAsync(!IsAllBrowserMode)) .ToArray() .OrderBy(importer => importer, _importerComparer) .Select(importer => { try { var item = _itemGenerator(importer); item.Initialize(); return(item); } catch (Exception e) { throw new CookieImportException( string.Format("{0}の生成に失敗しました。", typeof(CookieSourceItem).Name), CookieImportState.UnknownError, e); } }); lock (_updaterSyn) { _addedCustom = false; for (var i = Items.Count - 1; i >= 0; i--) { Items.RemoveAt(i); } foreach (var item in browserItems) { Items.Add(item); } } //更新前に選択していた項目を再選択させる if (currentInfo != null) { await PrivateSetInfoAsync(currentInfo); } } catch (CookieImportException e) { lock (_updaterSyn) for (var i = Items.Count - 1; i >= 0; i--) { Items.RemoveAt(i); } System.Diagnostics.Trace.TraceInformation("選択中のブラウザの設定カスタマイズに失敗。", e); } finally { _updateSem.Release(); IsUpdating = false; } }
public override ICookieImporter Generate(CookieSourceInfo newInfo) { return new IECookieImporter(newInfo, PrimaryLevel); }
#pragma warning disable 1591 //クラス命名センスとしてwininet.dllのFindNextUrlCacheEntryの文脈を用いる。 //純粋にapi上で片付ける方法が不明なのでwininetのapi自体は使っていない。 public IEFindCacheCookieImporter(CookieSourceInfo info, int primaryLevel) : base(info, CookiePathType.Directory, primaryLevel) { }