private static RecentChangeBE PopulateRecentChange(IDataRecord dr) { RecentChangeBE recentChange = new RecentChangeBE(); recentChange.Timestamp = GetUTF8String(dr, "rc_timestamp"); recentChange.User = new UserBE(); if (MediaWikiConverterContext.Current.Merge) { recentChange.User.ID = MediaWikiConverterContext.Current.MergeUserId; } else { recentChange.User.ID = DbUtils.Convert.To <uint>(dr["rc_user"], 0); } recentChange.User.Name = GetUTF8String(dr, "rc_user_text"); recentChange.Page = new PageBE(); recentChange.Page.ID = DbUtils.Convert.To <ulong>(dr["rc_cur_id"]).Value; recentChange.Page._Namespace = DbUtils.Convert.To <ushort>(dr["rc_namespace"]).Value; recentChange.Page._Title = GetUTF8String(dr, "rc_title"); recentChange.Comment = GetUTF8String(dr, "rc_comment"); recentChange.ThisOldID = DbUtils.Convert.To <ulong>(dr["rc_this_oldid"], 0); recentChange.LastOldID = DbUtils.Convert.To <ulong>(dr["rc_last_oldid"], 0); recentChange.Type = (RC)DbUtils.Convert.To <uint>(dr["rc_type"], 0); recentChange.IP = GetUTF8String(dr, "rc_ip"); recentChange.IsMinor = DbUtils.Convert.To <uint>(dr["rc_minor"]).Value; recentChange.IsBot = DbUtils.Convert.To <uint>(dr["rc_bot"]).Value; recentChange.IsNew = DbUtils.Convert.To <uint>(dr["rc_new"]).Value; recentChange.IsPatrolled = DbUtils.Convert.To <uint>(dr["rc_patrolled"]).Value; return(recentChange); }
public static Dictionary <Site, List <RecentChangeBE> > GetRecentChangesBySite() { Dictionary <Site, List <RecentChangeBE> > recentChangesBySite = new Dictionary <Site, List <RecentChangeBE> >(); foreach (Site site in MediaWikiConverterContext.Current.MWSites) { List <RecentChangeBE> recentChanges = new List <RecentChangeBE>(); recentChangesBySite[site] = recentChanges; MediaWikiConverterContext.Current.MWCatalog.NewQuery(String.Format("SELECT * from {0}recentchanges where rc_namespace >= 0 order by rc_timestamp ASC", site.DbPrefix)).Execute(delegate(IDataReader dr) { while (dr.Read()) { RecentChangeBE recentChange = PopulateRecentChange(dr); if ((null != recentChange) && IsSupportedNamespace(recentChange.Page.Title)) { recentChanges.Add(recentChange); } } }); } return(recentChangesBySite); }
public static void InsertDWRecentChange(RecentChangeBE recentChange) { MediaWikiConverterContext.Current.DWCatalog.NewQuery(String.Format("INSERT into recentchanges (rc_timestamp, rc_cur_time, rc_user, rc_namespace, rc_title, rc_comment, rc_cur_id, rc_this_oldid, rc_last_oldid, rc_type, rc_ip, rc_minor, rc_bot, rc_new, rc_patrolled) VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}')", recentChange.Timestamp, recentChange.Timestamp, recentChange.User.ID, recentChange.Page._Namespace, DataCommand.MakeSqlSafe(recentChange.Page.Title.AsUnprefixedDbPath()), DataCommand.MakeSqlSafe(recentChange.Comment), recentChange.Page.ID, recentChange.ThisOldID, recentChange.LastOldID, (uint)recentChange.Type, recentChange.IP, recentChange.IsMinor, recentChange.IsBot, recentChange.IsNew, recentChange.IsPatrolled)).Execute(); }