protected override async Task OnInitializedAsync() { settings = SettingsService.Settings; try { availableThemes = (await ThemeRepo.GetNames()).ToArray(); } catch (Exception ex) { Console.WriteLine($"Could not fetch themes: {ex.Message}"); } }
/// <summary> /// 获取话题数据 /// </summary> /// <param name="theme"></param> /// <param name="type"></param> /// <returns></returns> public static List <ThemeRepo> GetThemeRepos(string theme, SearchType type = SearchType.Repositories) { ATLog.Info("获取Github上关注的话题"); List <ThemeRepo> repos = new List <ThemeRepo>(); StringBuilder conditions = new StringBuilder(); conditions.Append("?"); conditions.Append(Conditions.SetQueryKeyWord(theme)); string requestURL = Conditions.SetRequestRootURL(type.ToString()) + conditions.ToString(); Console.WriteLine(requestURL); HttpWebRequest httpWebRequest = WebRequest.CreateHttp(requestURL); httpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"; httpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"; //httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "GET"; HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); if (httpWebResponse.StatusCode == HttpStatusCode.OK) { //Console.WriteLine("状态返回值: success"); Stream stream = (Stream)httpWebResponse.GetResponseStream(); StreamReader sr = new StreamReader(stream); string resultJson = sr.ReadToEnd(); resultJson = resultJson.Replace("private", "_private"); RepositoriesEntity repositoriesResult = JsonConvert.DeserializeObject <RepositoriesEntity>(resultJson); RepositoriesResultItem[] items = repositoriesResult.items; for (int i = 0; i < items.Length; i++) { ThemeRepo themeRepo = new ThemeRepo(items[i].full_name, items[i].html_url, items[i].description, items[i].stargazers_count, items[i].language, items[i].score, items[i].owner.login); repos.Add(themeRepo); } //Console.WriteLine(repositoriesResult.total_count); } if (repos.Count != 0) { GithubOp.Instance.SaveRangeData(repos); } return(repos); }
private async Task ProcessUploadedTheme(InputFileChangeEventArgs e) { if (e.FileCount == 0) { return; } try { // Support maximum 5 MB per file var stream = e.File.OpenReadStream(5 * 1000 * 1000); // Copy the content to a MemoryStream using var reader = new StreamReader(stream); using var ms = new MemoryStream(); await stream.CopyToAsync(ms); ms.Seek(0, SeekOrigin.Begin); if (e.File.Name.EndsWith(".css")) { await ThemeRepo.AddFromCssFile(e.File.Name, ms); } else if (e.File.Name.EndsWith(".zip")) { await ThemeRepo.AddFromZipArchive(ms); } else { throw new NotSupportedException(Loc["UnsupportedThemeFormat"]); } await js.AlertSuccess(Loc["AllDone"], $"{Loc["ThemeSuccessfullyUploaded"]}: {e.File.Name}"); } catch (Exception ex) { await js.AlertError(ex.GetType().Name, ex.Message); } Nav.NavigateTo("/settings/openbullet", true); }
public ThemeManager() { repo = new ThemeRepo(); subjRepo = new SubjectRepo(); feedRepo = new FeedRepo(); }