Skip to content

Instantly share code, notes, and snippets.

@DTSCode
Created June 2, 2015 20:24
Show Gist options
  • Save DTSCode/5487bd9d059531c5a015 to your computer and use it in GitHub Desktop.
Save DTSCode/5487bd9d059531c5a015 to your computer and use it in GitHub Desktop.
import irc, asyncdispatch
import strutils
import times
proc getDaysLeft(year_s: string, today: string, holiday: string): string =
var table = @[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
var month: int
var day: int
var dayOfTheYear: int = 0
var dayOfChristmas: int = 358
var year = parseInt(year_s)
if year mod 4 == 0 and not (year mod 100 == 0 and not year mod 400 == 0):
table[1] = 29
dayOfChristmas = 359
if today[0] == '0': month = parseInt($today[1]) - 1
else: month = parseInt(today[0] & today[1])
for iter in 1 .. month: dayOfTheYear += table[iter]
if today[2] == '0': day = parseInt($today[2])
else: day = parseInt(today[2] & today[3])
dayOfTheYear += day
var tmp = dayOfTheYear - dayOfChristmas
result = $tmp
proc onIrcEvent(client: PAsyncIrc, event: TIrcEvent) {.async.} =
case event.typ:
of EvConnected:
nil
of EvDisconnected, EvTimeout:
await client.reconnect()
of EvMsg:
echo(event.raw)
if event.cmd == MPrivMsg:
var msg: string = event.params[event.params.high]
var ti = getLocalTime(getTime())
var date = format(ti, "MD")
var year = format(ti, "Y")
if toLower(msg) in @["is it christmas", "is it christmas yet", "is it christmas?", "is it christmas yet?", "christmas?", "ffs is it fucking christmas yet?!?!"]:
if date == "1225":
await privmsg(client, event.origin, "Yes, " & event.nick & ". It is Christmas.")
elif date == "0612":
await privmsg(client, event.origin, "No " & event.nick & ", but it is dtscode's birthday.")
else:
await privmsg(client, event.origin, "No, " & event.nick & ". It is not Christmas. There are " & getDaysLeft(year, date, "0612")
elif toLower(msg) in @["is it midsummer", "is it midsummer yet", "is it midsummer?", "is it midsummer yet?", "midsummer?"]:
if date == "0621":
await privmsg(client, event.origin, "Yes, " & event.nick & ". It is midsummer.")
else:
await privmsg(client, event.origin, "No, " & event.nick & ". It is not midsummer.")
var client = newAsyncIrc("irc.freenode.net", nick="IsItChristmas", user="dtsbot", joinChans = @["#cplusplus.com", "#nim-offtopic", "#osdev-offtopic", "#lpmc"], callback = onIrcEvent)
asyncCheck client.run()
runForever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment