Exemplo n.º 1
0
        public Crawler(KiKiDBContext dBContext, int interval, string communityName)
        {
            Interval           = interval;
            db                 = dBContext;
            this.communityName = communityName;

            Logger = new Logger(communityName);

            timer          = new Timer(interval);
            timer.Elapsed += async(a, b) => await CrawlRecent();
        }
Exemplo n.º 2
0
        static async Task Main(string[] args)
        {
            var builders = new Dictionary <string, Func <KiKiDBContext, int, Crawler> > {
                ["tx"] = (db, interval) => new TxKeyboard(db, interval),
            };

            var db       = new KiKiDBContext();
            var interval = 60000;
            var crawlers = new List <Crawler>();

            foreach (var arg in args)
            {
                if (!builders.TryGetValue(arg, out var builder))
                {
                    Console.WriteLine($"model not found: {arg}");
                    return;
                }
                crawlers.Add(builder(db, interval));
                Console.WriteLine($"model registed: {arg}");
            }

            if (crawlers.Count == 0)
            {
                Console.WriteLine("any model not registed; exiting");
                return;
            }

            foreach (var crawler in crawlers)
            {
                await crawler.Init();
            }

            foreach (var crawler in crawlers)
            {
                crawler.Start();
            }

            while (true)
            {
                Console.ReadLine();
            }
        }
Exemplo n.º 3
0
 public TxKeyboard(KiKiDBContext dBContext, int interval) : base(dBContext, interval, "txkeyboard")
 {
 }