public static int CourseHandler(CourseOptions opts) { var attended = Me.Get().Attended(opts.All ? null : Semester.Get().Id); foreach (var pair in attended) { Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("{0} ({1}门课)", Semester.IdToString(pair.Key), pair.Value.Count); foreach (var course in pair.Value) { Console.ResetColor(); Console.Write(course.Name); if (course.Schedules.Count > 0) { var location = course.Schedules[0].Location; if (!string.IsNullOrEmpty(location)) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.Write(" {0}", location); } Console.ForegroundColor = ConsoleColor.DarkYellow; foreach (var schedule in course.Schedules) { Console.Write(" {0}-{1} ({2})", schedule.Day, schedule.Slot, schedule.Weeks); } } Console.WriteLine(); } Console.WriteLine(); } Console.ResetColor(); return(0); }
public static int SemesterHandler(SemesterOptions opts) { var semester = Semester.Get(); Console.WriteLine("{0} 第{1}周", Semester.IdToString(semester.Id), semester.WeekNow()); return(0); }
public static int AnnouncementHandler(AnnouncementOptions opts) { var course = Course.FuzzyGet(opts.Course); if (course == null) { return(1); } Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("{0} ({1})", course.Name, Semester.IdToString(course.SemesterId)); var anncs = course.Announcements(); if (opts.Index != null) { if (opts.Index <= 0 || opts.Index > anncs.Count) { return(1); } var annc = anncs[(int)opts.Index - 1]; Console.ForegroundColor = annc.Priority >= 1 ? ConsoleColor.DarkRed : ConsoleColor.DarkYellow; Console.WriteLine(annc.Title); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("{0} {1}", annc.Owner?.Name, annc.CreatedAt); Console.ResetColor(); Utils.WriteWithHighlights(annc.BodyText().Oneliner()); Console.WriteLine(); } else { var index = 0; foreach (var annc in anncs) { Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write("{0,6}", annc.CreatedAt.DaysSince()); Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write(" {0,3}", ++index); Console.ForegroundColor = annc.Priority >= 1 ? ConsoleColor.DarkRed : ConsoleColor.DarkYellow; Console.WriteLine(" {0}", annc.Title); } Console.ResetColor(); } return(0); }
public static int FileHandler(FileOptions opts) { var course = Course.FuzzyGet(opts.Course); if (course == null) { return(1); } Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("{0} ({1})", course.Name, Semester.IdToString(course.SemesterId)); var files = course.Files(); if (opts.Index != null) { if (opts.Index <= 0 || opts.Index > files.Count) { return(1); } var file = files[(int)opts.Index - 1]; // TODO: Download file. } else { var index = 0; foreach (var file in files) { Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write("{0,6}", file.CreatedAt.DaysSince()); Console.Write(" "); Utils.WriteFileSize(file.Size); Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write(" {0,3}", ++index); Console.ForegroundColor = ConsoleColor.DarkYellow; Console.Write(" {0}", file.Title); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine(" {0}", file.Description.Oneliner()); } Console.ResetColor(); } return(0); }
public static int AssignmentHandler(AssignmentOptions opts) { var course = Course.FuzzyGet(opts.Course); if (course == null) { return(1); } Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine("{0} ({1})", course.Name, Semester.IdToString(course.SemesterId)); var assignments = course.Assignments(); if (opts.Index != null) { if (opts.Index <= 0 || opts.Index > assignments.Count) { return(1); } var assignment = assignments[(int)opts.Index - 1]; } else { var index = 0; foreach (var assignment in assignments) { Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write("{0,5}天", (assignment.DueAt - DateTime.Now).Days); Console.ForegroundColor = ConsoleColor.DarkGray; Console.Write(" {0,3}", ++index); Console.ForegroundColor = assignment.Submission != null ? ConsoleColor.DarkGray : (DateTime.Now > assignment.DueAt ? ConsoleColor.DarkRed : ConsoleColor.DarkYellow); Console.WriteLine(" {0}", assignment.Title); } Console.ResetColor(); } return(0); }