Пример #1
0
        public IRCMessageScheduler(IRCListener bot)
        {
            //Assing Irc bot.
            irc_bot = bot;
            // construct a scheduler factory
            schedFact = new StdSchedulerFactory();
            // get a scheduler, start the schedular before triggers or anything else
            sched = schedFact.GetScheduler().Result;
            sched.Start();
            trigger_job_list = new List <TriggerJobViewModel>();
            //IRC BOTTI tänne.
            sched.Context.Put("ircbot", irc_bot);
            sched.Context.Put("me", this);
            //Luodaan jobit antaen identiteetiksi skedulointirivin rowid. Tämän perusteella homma jo toimii.

            //Testitriggeri
            trigger = TriggerBuilder.Create()
                      .WithIdentity("trigger1", "group1")
                      .WithSimpleSchedule(x => x.WithIntervalInMinutes(1).RepeatForever())
                      .Build();
            //Testijobi
            job = JobBuilder.Create <MaintExecutor>()
                  .WithIdentity("job1", "group1")
                  .Build();
            sched.ScheduleJob(job, trigger);
            //fillTriggersAndJobs();
        }
Пример #2
0
 private void registerListener(string channel, IRCListener listener)
 {
     if (!Listeners.ContainsKey(channel))
     {
         Listeners.Add(channel, new List <IRCListener>());
     }
     if (!Listeners[channel].Contains(listener))
     {
         Listeners[channel].Add(listener);
     }
 }
Пример #3
0
 private void unregisterListener(string channel, IRCListener listener)
 {
     if (!Listeners.ContainsKey(channel))
     {
         return;                                     // no listeners on this channel
     }
     if (Listeners[channel].Contains(listener))
     {
         Listeners[channel].Remove(listener);
     }
 }
Пример #4
0
 public void leaveChannel(string channel, IRCListener listener)
 {
     channel = channel.ToLower();
     unregisterListener(channel, listener);
     if (joinedChannels.ContainsKey(channel))
     {
         joinedChannels[channel]--;
         if (joinedChannels[channel] == 0)
         {
             joinedChannels.Remove(channel);
             IRCPartCommand.send(this, channel);
         }
     }
 }
Пример #5
0
 public void joinChannel(string channel, IRCListener listener)
 {
     channel = channel.ToLower();
     registerListener(channel, listener);
     if (!joinedChannels.ContainsKey(channel))
     {
         joinedChannels.Add(channel, 1);
         IRCJoinCommand.send(this, channel);
     }
     else
     {
         joinedChannels[channel]++;
     }
 }
Пример #6
0
 private void sendMessagesForTrigger(Int64 timing_ID, ref IRCListener irc_bot)
 {
     using (var db = new internetEntities())
     {
         foreach (var m in db.timed_messages.Where(x => x.timing_ID == timing_ID))
         {
             try
             {
                 irc_bot.sendMessage(m.channel, m.message);
             }
             catch (Exception e)
             {
                 helperClass.writeLog(e.ToString(), 3);
             }
         }
     }
 }
Пример #7
0
 Task IJob.Execute(IJobExecutionContext context)
 {
     try
     {
         Console.WriteLine("Start Executing");
         long row_id = context.JobDetail.JobDataMap.GetLong("rowid");
         //throw new NotImplementedException();
         var schedulerContext = context.Scheduler.Context;
         //Botti haetaan tässä.
         IRCListener bot = (IRCListener)schedulerContext.Get("ircbot");
         //Haetaan aikataulun yksilöivä row_ID
         sendMessagesForTrigger(row_id, ref bot);
         //bot.sendMessage("#sarppiDev", "moi!");
         Console.WriteLine("Hello, JOb executed");
         return(null);
     } catch (Exception e)
     {
         return(null);
     }
 }