public static string GetUsername(long userID) { var connection = Forums.GetConnection(); lock (lck) { if (users == null) { users = new Dictionary <long, string> (); } if (!users.ContainsKey(userID)) { connection.Open(); var cmd = connection.CreateCommand(); cmd.CommandText = "SELECT username FROM phpbb_users WHERE (user_id=" + userID + ")"; var reader = cmd.ExecuteReader(); reader.Read(); users.Add(userID, (string)reader["username"]); reader.Close(); cmd.Dispose(); connection.Close(); } return(users[userID]); } }
private static void LoadForums() { var connection = Forums.GetConnection(); lock (lck) { connection.Open(); if (forums == null) { forums = new Dictionary <ulong, string> (); var cmd = connection.CreateCommand(); cmd.CommandText = "SELECT forum_name,forum_id FROM phpbb_forums WHERE (auth_read = 0)"; var reader = cmd.ExecuteReader(); while (reader.Read()) { forums.Add(Convert.ToUInt64(reader["forum_id"]), (string)reader["forum_name"]); } reader.Close(); cmd.Dispose(); } connection.Close(); } }
public static bool GetForumVisible(ulong forumID) { Forums.LoadForums(); lock (lck) { return(forums.ContainsKey(forumID)); } }
public static string GetTopicSubject(ulong topicID) { var connection = Forums.GetConnection(); lock (lck) { connection.Open(); var cmd = connection.CreateCommand(); cmd.CommandText = "SELECT topic_title FROM phpbb_topics WHERE (topic_id=" + topicID + ")"; var reader = cmd.ExecuteReader(); reader.Read(); string subject = (string)reader["topic_title"]; reader.Close(); cmd.Dispose(); connection.Close(); return(subject); } }
public static string GetPostSubject(ulong postID) { var connection = Forums.GetConnection(); lock (lck) { connection.Open(); var cmd = connection.CreateCommand(); cmd.CommandText = "SELECT post_subject FROM phpbb_posts_text WHERE (post_id=" + postID + ")"; var reader = cmd.ExecuteReader(); reader.Read(); string subject = (string)reader["post_subject"]; reader.Close(); cmd.Dispose(); connection.Close(); return(subject); } }
private void Listener() { try { while (this.listening) { MySqlDataReader reader = null; MySqlCommand cmd = null; try { cmd = connection.CreateCommand(); cmd.CommandText = "SELECT post_id,topic_id,forum_id,poster_id FROM phpbb_posts WHERE (post_time>" + this.lastChecked + ")"; reader = cmd.ExecuteReader(); ulong checkedTime = DateTime.UtcNow.GetTimeT(); while (reader.Read()) { if (Forums.GetForumVisible(Convert.ToUInt64(reader["forum_id"]))) { ulong postID = Convert.ToUInt64(reader["post_id"]); if (postID != this.lastPostID) { ulong topicID = Convert.ToUInt64(reader["topic_id"]); var msgBuilder = new StringBuilder(Forums.GetUsername(Convert.ToInt64(reader["poster_id"]))); msgBuilder.Append(" posted in "); msgBuilder.Append(Forums.GetTopicSubject(topicID)); msgBuilder.Append(" ( http://www.slagg.org/F0rUmZ/viewtopic.php?p="); msgBuilder.Append(postID); msgBuilder.Append("#"); msgBuilder.Append(postID); msgBuilder.Append(" )"); this.messanger.SendToChannel(msgBuilder.ToString()); this.lastPostID = postID; } } } reader.Close(); cmd.Dispose(); this.lastChecked = checkedTime; Thread.Sleep(60000); //Thread.Sleep (5000); } catch (Exception ex) { this.messanger.SendToChannel("ForumPosts module b0rked: " + ex.Message); this.Stop(); } finally { if (reader != null) { reader.Close(); } if (cmd != null) { cmd.Dispose(); } } } } finally { if (this.connection != null) { this.connection.Dispose(); this.connection = null; } } }