Example #1
0
        public static async Task ClearCookiers()
        {
            client.Cookies = new CookieContainer();
            var exists = await LocalStorage.CheckExistsAsync(cookies_file_name).ConfigureAwait(false) == PCLStorage.ExistenceCheckResult.FileExists;

            if (!exists)
            {
                return;
            }

            var file = await LocalStorage.GetFileAsync(cookies_file_name).ConfigureAwait(false);

            await file.DeleteAsync().ConfigureAwait(false);
        }
Example #2
0
        public static async Task <bool> InitAsync()
        {
            // First install
            if (LocalSettings.LanguageListHash == null)
            {
                using (Stream stream = CacheUtils.GetCacheStream(CacheUtils.TatoebaConfigFileName))
                {
                    StreamReader reader = new StreamReader(stream);
                    string       text   = await reader.ReadToEndAsync().ConfigureAwait(false);

                    TatoebaConfig = JsonConvert.DeserializeObject <TatoebaConfig>(text);
                    LocalSettings.LanguageListHash = TatoebaConfig.LanguageListHash;
                }

                using (Stream stream = CacheUtils.GetCacheStream(CacheUtils.LanguageListFile))
                {
                    StreamReader reader = new StreamReader(stream);
                    string       text   = await reader.ReadToEndAsync().ConfigureAwait(false);

                    var file = await LocalStorage.CreateFileAsync("Languages.json", PCLStorage.CreationCollisionOption.ReplaceExisting).ConfigureAwait(false);

                    await file.WriteAllTextAsync(text).ConfigureAwait(false);
                }
            }

            TatoebaConfig = await GetTatoebaConfig().ConfigureAwait(false);

            if (LocalSettings.LanguageListHash != TatoebaConfig.LanguageListHash)
            {
                IsoLanguages = await GetLanguagesFromDistantJson().ConfigureAwait(false);
            }
            else
            {
                IsoLanguages = await GetLanguagesFromLocalJson().ConfigureAwait(false);
            }

            LocalSettings.LanguageListHash = TatoebaConfig.LanguageListHash;
            TatoebaScraper.XpathConfig     = TatoebaConfig.XpathConfig;

            Languages = IsoLanguages.ToList();
            Languages.Insert(0, new Language {
                Flag = null, Iso = null, Label = "All languages"
            });

            BrowsableLanguages = IsoLanguages.ToList();
            BrowsableLanguages.Add(new Language {
                Flag = null, Iso = "unknown", Label = "Unknown language"
            });

            TransBrowsableLanguages = IsoLanguages.ToList();
            TransBrowsableLanguages.Insert(0, new Language {
                Flag = null, Iso = "und", Label = "All languages"
            });
            TransBrowsableLanguages.Insert(0, new Language {
                Flag = null, Iso = "none", Label = "None"
            });

            var existence = await LocalStorage.CheckExistsAsync(cookies_file_name).ConfigureAwait(false);

            var exists = existence == PCLStorage.ExistenceCheckResult.FileExists;

            if (exists)
            {
                client.Cookies = await ReadCookiesFromDisk(cookies_file_name).ConfigureAwait(false);
            }

            return(exists);
        }