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(); }
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); } }
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); } }
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); } } }
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]++; } }
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); } } } }
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); } }