Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
 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();
 }