public static PlainText ExceptionToFile(Exception exception, string accessDeniedMessage) { PlainText readme; if (exception.Data.Contains("code")) { if (exception.Data["code"].ToString() == "15") // Access denied: { readme = new PlainText(accessDeniedMessage + ".txt"); readme.SetText(PlainText.GetSubscript()); return(readme); } readme = new PlainText(Resources.ErrorN.F(exception.Data["code"] + ".txt")); readme.SetText(PlainText.GetSubscript()); return(readme); } readme = new PlainText(Resources.UnknownError + ".txt"); readme.SetText(exception + PlainText.GetSubscript()); return(readme); }
public MainFs() { var drive = Properties.Settings.Default.MountPoint; _log.Debug("Start MainFS"); _log.Debug("Db connect"); try { Db.Instance.Connect(); } catch (Exception e) { _log.Error("Db connect fail", e); throw; } _log.Debug("Make root tree"); MakeRootDirectory(); _topFiles = new List <VFile>(); var readme = new PlainText("Прочти меня.txt"); #region Много текста в readme.txt readme.SetText("Привет!\n" + "\n" + "Ты установил приложение VkDrive.\n" + "\n" + "Это полноценный виртуальный диск с музыкой и фотографиями из ВКонтакте.\n" + "Для открытия файлов не нужно ждать долгое время синхронизации. Открытие файла происходит в течение доли секунд.\n" + "\n" + "После установки у тебя в \"Мой компьютер\" появился новый виртуальный диск " + drive + ":\\\n" + "На диске доступны папки:\n" + "- Моя страница\n" + "- Мои друзья\n" + "- Мои группы\n" + "- Поиск\n" + "\n" + "\n" + /*"В бесплатной версии в папках страница, друзья, группы и поиск - тебе доступна музыка для для прослушивания (only read).\n"+ * "\n"+ * "В полной версии в папках страница, друзья, группы - доступен просмотр фотографий и загрузка фото в альбомы своей страницы.\n"+ * "Кроме прослушивания музыки - становится доступна загрузка музыкальных файлов в свои аудиозаписи.\n"+ * "\n"+ * "Для получения полной версии - пожертвуйте 1000 руб. на электронный кошелек хххххххххх. После чего (описание манипуляций для получения полной версии программы).\n"+ * "\n"+ */ "P.S.: все файлы используются исключительно с серверов ВКонтакте для ознакомления и прослушивания. За сторонние копирования - автор программы ответственности не несёт.\n" + "\n" + "P.P.S.: ваши идеи, предложения, сообщения об ошибках присылайте на e-mail: [email protected]"); #endregion _topFiles.Add(readme); _topFiles.Add(new PlainText("Официальная группа.url", PlainText.InternetShortcut("https://vk.com/vkdriveapp"))); _topFiles.Add(new Settings("Обновить все.lnk", "--GC")); //TopDirectory["Test"] = new DirTest(); //TopDirectory["Last.fm"] = new DirLastFm();*/ _log.Debug("Start MainFS OK"); // clear root directory var makeRootTimer = new System.Timers.Timer(5 * 60 * 1000) { Enabled = true }; makeRootTimer.Elapsed += (sender, args) => { MakeRootDirectory(); GC.Collect(); }; makeRootTimer.Start(); }
public override bool _LoadFile(Files.Folder file) { if (file.Property["type"] == "groups.get") { file.ChildsAdd(new Files.Settings("Добавить группу.lnk")); file.ChildsAdd( new Files.SettingsXls( "VKDirvePathData.xml", "Добавление группы", "Введите ссылку на группу или ее идентификатор. Например https://vk.com/club47348352", "Не удалось найти такую группу.", "Такая группа уже существует." )); JObject apiResult = (JObject) Vkapi.Instance.StartTaskSync(new ApiQuery("groups.get", new Dictionary <string, string> { { "extended", "1" } })); JArray items = (JArray)apiResult.GetValue("items"); List <int> gruopIds = new List <int>(); foreach (JObject item in items) { SerializationObject.Group group = item.ToObject <SerializationObject.Group>(); file.ChildsAdd(CreateGroupFolder(group)); gruopIds.Add(group.Id); } string gids = VkStorage.Get(StorageKey); if (gids.Length > 0) { JArray values = (JArray) Vkapi.Instance.StartTaskSync(new ApiQuery("groups.getById", new Dictionary <string, string> { { "group_ids", gids.Replace('\n', ',') } })); foreach (JObject item in items) { SerializationObject.Group group = item.ToObject <SerializationObject.Group>(); if (gruopIds.IndexOf(group.Id) > -1) { continue; } file.ChildsAdd(CreateGroupFolder(group)); } } } else if (file.Property["type"] == "AudioApi.ExecuteGetAlbums") { //// 15:Access denied: group audio is disabled try { AudioApi.ExecuteGetAlbums(new Dictionary <string, string>() { { "owner_id", "-" + file.Property["gid"] } }, file.Childs); } catch (Exception e) { if (e.Data.Contains("code") && e.Data["code"].ToString() == "15") { // 15:Access denied: group photos are disabled var readmePlainText = new PlainText("Аудиозаписи отключены.txt"); readmePlainText.SetText(PlainText.GetSubscript()); file.ChildsAdd(readmePlainText); return(true); } return(false); } } else if (file.Property["type"] == "audio.getInAlbum") { AudioApi.LoadMp3(new Dictionary <string, string>() { { "gid", file.Property["gid"] }, { "album_id", file.Property["album_id"] } }, file.Childs); } else if (file.Property["type"] == "wait") { // Он там грузится в паралельном потоке. Подождать нужно int i = 0; while (!file.IsLoaded && i < 20) // 2 сек максимум { i++; // todo сделать перехват фатала. System.Threading.Thread.Sleep(100); } // Подождать не вышло, выводим что есть } return(true); }