コード例 #1
0
        private static LinkedList <Flair> BuildFlairLibrary()
        {
            var flairs = new LinkedList <Flair>();

            foreach (ConsoleColor foregroundColor in Enum.GetValues(typeof(ConsoleColor)))
            {
                var backgroundColor = ConsoleColor.Black;
                if ((int)foregroundColor < 10)
                {
                    backgroundColor = ConsoleColor.White;
                }

                var flair = new Flair(foregroundColor, backgroundColor);
                if (flairs.Count == 0)
                {
                    flairs.AddFirst(flair);
                }
                else
                {
                    flairs.AddAfter(flairs.Last, flair);
                }
            }

            return(flairs);
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: mraunte/EasyBuyout
        /// <summary>
        /// Prints text to window in console-like fashion, prefixes a timestamp
        /// </summary>
        /// <param name="msg">String to print</param>
        /// <param name="flair">Status code of message</param>
        public void Log(string msg, Flair flair = Flair.Info)
        {
            var prefix = "";

            switch (flair)
            {
            case Flair.Info:
                prefix = "INFO";
                break;

            case Flair.Warn:
                prefix = "WARN";
                break;

            case Flair.Error:
                prefix = "ERROR";
                break;

            case Flair.Critical:
                prefix = "CRITICAL";
                break;
            }

            Application.Current.Dispatcher.Invoke(() => {
                _console.AppendText($"[{DateTime.Now:HH:mm:ss}][{prefix}] {msg}\n");
                _console.ScrollToEnd();
            });
        }
コード例 #3
0
        public Flair Validate(Flair flair)
        {
            CheckNull(flair);
            CheckNull(flair.Id, "Reddit API returned flair object with no Id.");

            return(flair);
        }
コード例 #4
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = ContentId.GetHashCode();
         hashCode = (hashCode * 397) ^ CreditPrice;
         hashCode = (hashCode * 397) ^ (Description?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ Flair.GetHashCode();
         hashCode = (hashCode * 397) ^ (int)GiftableAcquisitionMethod;
         hashCode = (hashCode * 397) ^ Id.GetHashCode();
         hashCode = (hashCode * 397) ^ IsFeatured.GetHashCode();
         hashCode = (hashCode * 397) ^ IsGiftOnly.GetHashCode();
         hashCode = (hashCode * 397) ^ IsNew.GetHashCode();
         hashCode = (hashCode * 397) ^ IsPurchasableFromMarketplace.GetHashCode();
         hashCode = (hashCode * 397) ^ IsPurchasableWithCredits.GetHashCode();
         hashCode = (hashCode * 397) ^ IsStack.GetHashCode();
         hashCode = (hashCode * 397) ^ (StackedRequisitionPacks?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (LargeImageUrl?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (MediumImageUrl?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ MerchandisingOrder;
         hashCode = (hashCode * 397) ^ (Name?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (SmallImageUrl?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ XboxMarketplaceProductId.GetHashCode();
         hashCode = (hashCode * 397) ^ (XboxMarketplaceProductUrl?.GetHashCode() ?? 0);
         return(hashCode);
     }
 }
コード例 #5
0
ファイル: LicensingSmasher.cs プロジェクト: CrustyJew/DirtBag
 public LicensingSmasher( LicensingSmasherSettings settings, Reddit reddit, string sub ) : this() {
     RedditClient = reddit;
     Subreddit = sub;
     TermsToMatch = settings.MatchTerms.ToList();
     KnownLicensers = settings.KnownLicensers;
     Settings = settings;
     RemovalFlair = settings.RemovalFlair;
     TermMatching = new Regex( string.Join( "|", settings.MatchTerms ), RegexOptions.IgnoreCase );
     LicenserMatching = new Regex( "^" + string.Join( "$|^", settings.KnownLicensers.Keys ) + "$", RegexOptions.IgnoreCase );
 }
コード例 #6
0
 public void SetDefaultSettings()
 {
     Enabled                 = false;
     EveryXRuns              = 1;
     PostTypes               = PostType.New;
     ScoreMultiplier         = 1;
     PercentageThreshold     = 10;
     RemovalFlair            = new Flair("10%", "red", 1);
     IncludePostInPercentage = false;
     GracePeriod             = 3;
 }
コード例 #7
0
ファイル: LicensingSmasher.cs プロジェクト: CrustyJew/DirtBag
 public LicensingSmasher(LicensingSmasherSettings settings, Reddit reddit, string sub) : this()
 {
     RedditClient     = reddit;
     Subreddit        = sub;
     TermsToMatch     = settings.MatchTerms.ToList();
     KnownLicensers   = settings.KnownLicensers;
     Settings         = settings;
     RemovalFlair     = settings.RemovalFlair;
     TermMatching     = new Regex(string.Join("|", settings.MatchTerms), RegexOptions.IgnoreCase);
     LicenserMatching = new Regex("^" + string.Join("$|^", settings.KnownLicensers.Keys) + "$", RegexOptions.IgnoreCase);
 }
コード例 #8
0
ファイル: Flair.cs プロジェクト: openemma/reddit
        public void GetFlairForSub()
        {
            // login using regular creds
            var session = User.Login(Configuration.GetKey("username"), Configuration.GetKey("password"));

            // get the flair for a moderated subreddit? (why is this not public?)
            var flairs = Flair.GetFlair(session, SubRedditToTestModWith);

            // check there is some flair
            Assert.IsNotNull(flairs);
            Assert.IsTrue(flairs.Count > 0);
        }
コード例 #9
0
ファイル: LicensingSmasher.cs プロジェクト: CrustyJew/DirtBag
 public void SetDefaultSettings()
 {
     Enabled         = false;
     PostTypes       = PostType.All;
     EveryXRuns      = 1;
     ScoreMultiplier = 1;
     MatchTerms      = new[] { "jukin", "licensing", "break.com", "storyful", "rumble", "newsflare", "visualdesk", "viral spiral", "viralspiral", "rightser", "to use this video in a commercial", "media enquiries" };
     //These are case sensitive for friendly name matching
     KnownLicensers = new Dictionary <string, string> {
         { "H7XeNNPkVV3JZxXm-O-MCA", "Jukin Media" }, { "Newsflare", "Newsflare" }, { "3339WgBDKIcxTfywuSmG8w", "ViralHog" }, { "Storyful", "Storyful" }, { "rumble", "Rumble" }, { "Rightster_Entertainment_Affillia", "Viral Spiral" }, { "Break", "Break" }
     };
     RemovalFlair = new Flair()
     {
         Class = "red", Priority = 1, Text = "R10"
     };
 }
コード例 #10
0
ファイル: Dispatch.cs プロジェクト: sirkris/Reddit.NET
 /// <summary>
 /// Keep track of requests across all models.
 /// </summary>
 /// <param name="sender">The sender</param>
 /// <param name="e">A valid RequestsUpdateEventArgs instance</param>
 public void C_RequestsUpdated(object sender, RequestsUpdateEventArgs e)
 {
     Account.UpdateRequests(e.Requests);
     Emoji.UpdateRequests(e.Requests);
     Flair.UpdateRequests(e.Requests);
     LinksAndComments.UpdateRequests(e.Requests);
     Listings.UpdateRequests(e.Requests);
     LiveThreads.UpdateRequests(e.Requests);
     Misc.UpdateRequests(e.Requests);
     Moderation.UpdateRequests(e.Requests);
     Modmail.UpdateRequests(e.Requests);
     Multis.UpdateRequests(e.Requests);
     PrivateMessages.UpdateRequests(e.Requests);
     RedditGold.UpdateRequests(e.Requests);
     Search.UpdateRequests(e.Requests);
     Subreddits.UpdateRequests(e.Requests);
     Users.UpdateRequests(e.Requests);
     Widgets.UpdateRequests(e.Requests);
     Wiki.UpdateRequests(e.Requests);
 }
コード例 #11
0
ファイル: Dispatch.cs プロジェクト: sirkris/Reddit.NET
 /// <summary>
 /// Propagate token across all models.
 /// </summary>
 /// <param name="sender">The sender</param>
 /// <param name="e">A valid TokenUpdateEventArgs instance</param>
 public void C_TokenUpdated(object sender, TokenUpdateEventArgs e)
 {
     Account.UpdateAccessToken(e.AccessToken);
     Emoji.UpdateAccessToken(e.AccessToken);
     Flair.UpdateAccessToken(e.AccessToken);
     LinksAndComments.UpdateAccessToken(e.AccessToken);
     Listings.UpdateAccessToken(e.AccessToken);
     LiveThreads.UpdateAccessToken(e.AccessToken);
     Misc.UpdateAccessToken(e.AccessToken);
     Moderation.UpdateAccessToken(e.AccessToken);
     Modmail.UpdateAccessToken(e.AccessToken);
     Multis.UpdateAccessToken(e.AccessToken);
     OAuthCredentials.UpdateAccessToken(e.AccessToken);
     PrivateMessages.UpdateAccessToken(e.AccessToken);
     RedditGold.UpdateAccessToken(e.AccessToken);
     Search.UpdateAccessToken(e.AccessToken);
     Subreddits.UpdateAccessToken(e.AccessToken);
     Users.UpdateAccessToken(e.AccessToken);
     Widgets.UpdateAccessToken(e.AccessToken);
     Wiki.UpdateAccessToken(e.AccessToken);
 }
コード例 #12
0
 public void SetDefaultSettings() {
     Enabled = false;
     EveryXRuns = 1;
     PostTypes = PostType.New;
     ScoreMultiplier = 1;
     PercentageThreshold = 10;
     RemovalFlair = new Flair( "10%", "red", 1 );
     IncludePostInPercentage = false;
     GracePeriod = 3;
 }
コード例 #13
0
        private static void SetFlair(List<User> users, Dictionary<string, Flair> currentFlair)
        {
            string token = Login();
            List<Flair> updatedFlair = new List<Flair>();

            foreach (User user in users)
            {
                Flair userFlair = new Flair();
                userFlair.Username = user.Username;
                if (user.CurrentStreak == 0)
                    userFlair.Css = "default";
                else if (user.CurrentStreak <= 10)
                    userFlair.Css = "one";
                else if (user.CurrentStreak < 50)
                    userFlair.Css = "ten";
                else if (user.CurrentStreak < 100)
                    userFlair.Css = "fifty";
                else if (user.CurrentStreak < 150)
                    userFlair.Css = "hundred";
                else if (user.CurrentStreak < 200)
                    userFlair.Css = "hundredfifty";
                else if (user.CurrentStreak < 300)
                    userFlair.Css = "twohundred";
                else if (user.CurrentStreak < 365)
                    userFlair.Css = "threehundred";
                else
                    userFlair.Css = "oneyear";

                userFlair.Text = user.CurrentStreak + " / " + user.DaysPostedLinks.Count;
                if (string.IsNullOrEmpty(user.Webpage) == false)
                    userFlair.Text = userFlair.Text + " - " + user.Webpage;

                if (user.MostRecentPost >= INACTIVE_CUTOFF_DATE)
                {
                    if (currentFlair.ContainsKey(user.Username))
                    {
                        if (currentFlair[user.Username].Text == userFlair.Text && currentFlair[user.Username].Css == userFlair.Css)
                        {
                            Console.WriteLine("     Ignoring flair for user " + user.Username + ". Text: " + userFlair.Text + ". CSS: " + userFlair.Css + ". Last post on " + user.MostRecentPost.ToString() + ". No change.");
                        }
                        else
                        {
                            Console.WriteLine("Updating flair for user " + user.Username + ". Flair CSS: " + userFlair.Css + ", Flair Text: " + userFlair.Text + ". Most recent post: " + user.MostRecentPost.ToString());
                            updatedFlair.Add(userFlair);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Inserting flair for user " + user.Username + ". Flair CSS: " + userFlair.Css + ", Flair Text: " + userFlair.Text + ". Most recent post: " + user.MostRecentPost.ToString());
                        updatedFlair.Add(userFlair);
                    }
                }
                else
                {
                    if (currentFlair.ContainsKey(user.Username))
                    {
                        userFlair.Css = "";
                        userFlair.Text = "";
                        Console.WriteLine("Clearing flair for user due to inactivity " + user.Username + ". Flair CSS: " + userFlair.Css + ", Flair Text: " + userFlair.Text + ". Most recent post: " + user.MostRecentPost.ToString());
                        updatedFlair.Add(userFlair);
                    }
                    else
                    {
                        Console.WriteLine("     Skipping flair for " + user.Username + " due to inactivity. Most recent post: " + user.MostRecentPost.ToString() + " and no existing flair found.");
                    }
                }
            }

            Console.WriteLine(DateTime.Now.ToString() + " - Setting flair batches");

            _reddit.SetFlairBatch("sketchdaily", updatedFlair, token);
        }
コード例 #14
0
ファイル: LicensingSmasher.cs プロジェクト: CrustyJew/DirtBag
 public void SetDefaultSettings() {
     Enabled = false;
     PostTypes = PostType.All;
     EveryXRuns = 1;
     ScoreMultiplier = 1;
     MatchTerms = new[] { "jukin", "licensing", "break.com", "storyful", "rumble", "newsflare", "visualdesk", "viral spiral", "viralspiral", "rightser", "to use this video in a commercial", "media enquiries" };
     //These are case sensitive for friendly name matching
     KnownLicensers = new Dictionary<string, string> { { "H7XeNNPkVV3JZxXm-O-MCA", "Jukin Media" }, { "Newsflare", "Newsflare" }, { "3339WgBDKIcxTfywuSmG8w", "ViralHog" }, { "Storyful", "Storyful" }, { "rumble", "Rumble" }, { "Rightster_Entertainment_Affillia", "Viral Spiral" }, { "Break", "Break" } };
     RemovalFlair = new Flair() { Class = "red", Priority = 1, Text = "R10" };
 }
コード例 #15
0
 public ConsoleMessage(string message, Flair flair, Position writePosition)
 {
     Message       = message;
     Flair         = flair;
     WritePosition = writePosition;
 }
コード例 #16
0
ファイル: AnalysisScore.cs プロジェクト: CrustyJew/DirtBag
        public AnalysisScore( double score, string reason, string reportReason, string moduleName, Flair removalFlair )
            :this(score,reason,reportReason,moduleName) {

            RemovalFlair = removalFlair;
        }
コード例 #17
0
        public List<Flair> GetFlairForSubreddit(string subreddit, string token, string after = null)
        {
            List<Flair> flairList = new List<Flair>();

            string url = "https://oauth.reddit.com/r/" + subreddit + "/api/flairlist.json?&limit=1000";
            if (string.IsNullOrEmpty(after) == false)
                url = url + "&after=" + after;

            Wait();
            string json = _httpHelper.SendGet(url, "", authToken: token);

            JObject data = JObject.Parse(json);
            JArray users = (JArray)data["users"];

            foreach (JObject user in users)
            {
                Flair flair = new Flair();
                flair.Css = (string)user["flair_css_class"];
                flair.Text = (string)user["flair_text"];
                flair.Username = (string)user["user"];

                flairList.Add(flair);
            }

            string next = (string)data["next"];

            if (string.IsNullOrEmpty(next) == false)
                flairList.AddRange(GetFlairForSubreddit(subreddit, token, next));

            return flairList;
        }