public List <Dictionary <string, string> > GetCourseList()
        {
            // http://course-query.acad.ncku.edu.tw/qry/index.php?lang=en
            string URL  = "http://course-query.acad.ncku.edu.tw/qry/index.php?lang=zh_tw";
            string HTML = LoadHTML(URL);

            // Import and using Kuto
            Kuto kuto = new Kuto(HTML);

            kuto = kuto.Extract("<div class='dept'>", "<div id='result_set'"); // Get the part that we want it

            List <Dictionary <string, string> > courses = new List <Dictionary <string, string> >();

            while (kuto.Contains("class='dept'>"))
            {
                Dictionary <string, string> courseInfo = new Dictionary <string, string>();
                string name = kuto.Extract(">", "</a>").ToString().Trim();
                string link = kuto.Extract("href='", "'>").ToString().Trim();

                courseInfo.Add("name", name);
                courseInfo.Add("link", "http://course-query.acad.ncku.edu.tw/qry/" + link);
                kuto = kuto.Extract("class='dept'>", "");   // Remove the current item

                courses.Add(courseInfo);
            }
            return(courses);
        }
Example #2
0
        public static List <CovidRecord> GetCountries()
        {
            Kuto kuto = new Kuto(HTML);

            kuto = kuto.Extract("<tr style=\"\">", "</tbody>");

            List <CovidRecord> data = new List <CovidRecord>();

            while (kuto.Contains("<tr style=\"\">"))
            {
                var r = new CovidRecord();

                r.name = kuto.Extract("/\">", "<").StripTags().ToString();
                kuto   = kuto.Extract("/\">", "");

                r.reported_cases = kuto.Extract("\">", "<").StripTags().ToString().Trim();
                kuto             = kuto.Extract("\">", "");

                r.new_cases = kuto.Extract("\">", "<").StripTags().ToString().Trim();
                kuto        = kuto.Extract("\">", "");

                r.deaths = kuto.Extract("\">", "<").StripTags().ToString().Trim();
                kuto     = kuto.Extract("\">", "");

                r.new_deaths = kuto.Extract("\">", "<").StripTags().ToString().Trim();
                kuto         = kuto.Extract("\">", "");

                r.recovered = kuto.Extract("\">", "<").StripTags().ToString().Trim();
                kuto        = kuto.Extract("\">", "");

                r.active_cases = kuto.Extract("\">", "<").StripTags().ToString().Trim();
                kuto           = kuto.Extract("\">", "");

                r.serious_cases = kuto.Extract("\">", "<").StripTags().ToString().Trim();


                data.Add(r);
                kuto = kuto.Extract("<tr style=\"\">", "");
            }



            return(data);
        }
Example #3
0
        static void Main(string[] args)
        {
            string mode = "model-first";



            Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;

            ConsoleColor defaultBgCol = Console.BackgroundColor;
            ConsoleColor defaultFore  = Console.ForegroundColor;


            if (args.Length == 0)
            {
                Console.WriteLine(Resources.asciArt_txt);
                Console.WriteLine("A PRODUCT OF BUNIFU \n________________________________________\n\n\n");

                Console.BackgroundColor = ConsoleColor.DarkRed;
                Console.WriteLine("No project file added");
            }

            var projectPath = args[0];

            if (File.Exists(projectPath) && projectPath.ToLower().EndsWith(".csproj"))
            {
                MicronConfig config          = new MicronConfig();
                FileInfo     projectPathInfo = new FileInfo(projectPath.Trim());
                string[]     ignoreList      = new string[] { };

                string ignoreFile = Path.Combine(projectPathInfo.DirectoryName, "micron_ignore.txt");
                string modeFile   = Path.Combine(projectPathInfo.DirectoryName, "micron_mode.txt");


                if (args.Length > 1)
                {
                    mode = args[1];
                    File.WriteAllText(modeFile, mode);
                }
                else
                {
                    mode = File.ReadAllText(modeFile);
                }


                if (File.Exists(ignoreFile))
                {
                    ignoreList = File.ReadAllLines(ignoreFile);
                }

                Console.WriteLine("Project File: " + projectPathInfo.FullName + "\n\n");
                string nameSpace = "Data.Models";

                if (!File.Exists(ignoreFile))
                {
                    File.WriteAllText(ignoreFile, "");

                    Console.WriteLine(Resources.asciArt_txt);
                    Console.WriteLine("A PRODUCT OF BUNIFU \n________________________________________\n\n\n");
                }
                else
                {
                    bool found = false;
                    Console.Write("Fetching connections: ");
                    //parse file
                    foreach (var file in projectPathInfo.Directory.GetFiles("*.cs", SearchOption.AllDirectories))
                    {
                        Console.Write("#");
                        //look for MicronConfig()
                        string source = File.ReadAllText(file.FullName);
                        source = source.Replace(" ", "");
                        source = source.Replace("\n", "");

                        if (source.Contains("MicronConfig()"))
                        {
                            if (source.Contains("DatabaseName=\""))
                            {
                                found = true;
                                Kuto k = new Kuto(source);
                                k = k.Extract("MicronConfig()", "");
                                k = k.Extract("{", "}");
                                if (k.Contains("DatabaseName"))
                                {
                                    config.DatabaseName = k.Extract("DatabaseName=\"", "\"").ToString();
                                }
                                if (k.Contains("Host"))
                                {
                                    config.Host = k.Extract("Host=\"", "\"").ToString();
                                }
                                if (k.Contains("Password"))
                                {
                                    config.Password = k.Extract("Password=\"", "\"").ToString();
                                }
                                if (k.Contains("User"))
                                {
                                    config.User = k.Extract("User=\"", "\"").ToString();
                                }
                                if (k.Contains("Locality"))
                                {
                                    config.Locality = k.Extract("Locality=\"", "\"").ToString();
                                }
                                break;
                            }
                        }
                        System.Threading.Thread.Sleep(300);
                    }

                    if (!found)
                    {
                        Console.WriteLine();
                        Console.WriteLine();

                        Console.BackgroundColor = ConsoleColor.DarkRed;
                        Console.WriteLine("No Micron Configuration found");
                        return;
                    }

                    Console.WriteLine();
                    Console.WriteLine();

                    Console.WriteLine("Micron Configuration found:");
                    Console.BackgroundColor = ConsoleColor.DarkGreen;
                    MicronLogger.Log(config);
                    Console.BackgroundColor = defaultBgCol;
                }



                MicronDbContext db = new MicronDbContext(config);

                Console.BackgroundColor = ConsoleColor.DarkBlue;
                Console.WriteLine("Connected.... Generating DB Models for " + config.DatabaseName);
                Console.BackgroundColor = defaultBgCol;



                if (mode == "database-first")
                {
                    Console.WriteLine("Executng database-first");
                    //generate model here
                    db.GenerateModels(projectPath.Trim(), nameSpace, ignoreList);
                }
                else
                {
                    //model first
                    Console.WriteLine("Executng model-first");
                    db.GenerateSchemaFromModels(projectPath.Trim(), ignoreList);
                }



                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.DarkGreen;
                Console.WriteLine("Successfully Completed :)");
                Console.BackgroundColor = defaultBgCol;
                Console.WriteLine();
                Console.WriteLine();
                Console.ForegroundColor = defaultFore;

                return;
            }


            Console.BackgroundColor = ConsoleColor.DarkRed;
            Console.WriteLine("No csProj found");
        }
    public String extraer(String entrada, String param1, String param2)
    {
        Kuto extraer = new Kuto(entrada);

        return(extraer.Extract(param1, param2).ToString());
    }
        public List <Dictionary <string, string> > GetClassList(string link)
        {
            string HTML = LoadHTML(link);

            // Import and using Kuto
            Kuto kuto = new Kuto(HTML);

            kuto = kuto.Extract("<tbody>", " </tbody>"); // Get the part that we want it

            List <Dictionary <string, string> > classes = new List <Dictionary <string, string> >();

            while (kuto.Contains("<TR class="))
            {
                Dictionary <string, string> classInfo = new Dictionary <string, string>();
                kuto = kuto.Extract("<TD", "");
                string dept = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                string code = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                string serial = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                kuto = kuto.Extract("<TD", "");
                kuto = kuto.Extract("<TD", "");
                string classNo = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("href=", "");
                string year = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                string category = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                kuto = kuto.Extract("<TD", "");
                string english = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("href=", "");
                string course = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                string type = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                string credit = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                string instructor = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("<TD", "");
                kuto = kuto.Extract("<TD", "");
                kuto = kuto.Extract("<TD", "");
                string schedule = kuto.Extract("<BR>", "<").ToString().Trim();
                kuto = kuto.Extract("href=", "");
                string classroom = kuto.Extract(">", "<").ToString().Trim();
                kuto = kuto.Extract("</TR>", "");

                classInfo.Add("dept", dept);
                classInfo.Add("code", code);
                classInfo.Add("serial", serial);
                classInfo.Add("classNo", classNo);
                classInfo.Add("year", year);
                classInfo.Add("category", category);
                classInfo.Add("english", english);
                classInfo.Add("course", course);
                classInfo.Add("type", type);
                classInfo.Add("credit", credit);
                classInfo.Add("instructor", instructor);
                classInfo.Add("schedule", schedule);
                classInfo.Add("classroom", classroom);

                classes.Add(classInfo);
            }
            return(classes);
        }