Last active
August 29, 2015 14:06
-
-
Save dkarzon/f32a7eaf3b7a379628a2 to your computer and use it in GitHub Desktop.
mmbot script for tracking #CommitOfTheDay
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var robot = Require<Robot>(); | |
robot.Respond("last (.*) commits", msg => | |
{ | |
var commitNum = 3; | |
try | |
{ | |
commitNum = Int32.Parse(msg.Match[1]); | |
} | |
catch (Exception) { } | |
var commits = GetCommits(robot.Brain); | |
var showCommits = commits.OrderByDescending(c => c.TimeStamp).Take(commitNum); | |
if (showCommits.Count() == 0) | |
{ | |
msg.Send("No commits to show..."); | |
return; | |
} | |
foreach(var c in showCommits) | |
{ | |
msg.SendFormat("@{0} on {2:MMM dd} `{1}`", c.User, c.Message, c.TimeStamp); | |
} | |
}); | |
robot.Respond("commitoftheday (.*) [\"'](.*)[\"']", msg => | |
{ | |
var user = msg.Match[1]; | |
var commitMessage = msg.Match[2]; | |
var commits = GetCommits(robot.Brain); | |
commits.Add(new CommitOfTheDay | |
{ | |
User = user, | |
Message = commitMessage, | |
TimeStamp = DateTime.Now | |
}); | |
SetCommits(robot.Brain, commits); | |
msg.SendFormat("Added commit for {0} with message \"{1}\"", user, commitMessage); | |
}); | |
List<CommitOfTheDay> GetCommits(MMBot.Brains.IBrain brain) | |
{ | |
var getTask = brain.Get<List<CommitOfTheDay>>("commitoftheday"); | |
getTask.Wait(); | |
return getTask.Result ?? new List<CommitOfTheDay>(); | |
} | |
void SetCommits(MMBot.Brains.IBrain brain, List<CommitOfTheDay> commits) | |
{ | |
var setTask = brain.Set("commitoftheday", commits); | |
setTask.Wait(); | |
} | |
public class CommitOfTheDay | |
{ | |
public string User { get; set; } | |
public string Message { get; set; } | |
public DateTime TimeStamp { get; set; } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment