Пример #1
0
        public static double GetPrice(string name, int quality, int craftable) //make sure it's full name!, also, no unusuals. mebe later.
        {
            BackpackAPI instance = (BackpackAPI)MemoryCache.Default.Get("BackpackTF");

            double value;
            string currency;

            if (craftable == 0)
            {
                if (name.Contains("Crate"))
                {
                    int      crate;
                    string[] words = name.Split('#');

                    crate    = int.Parse(words[1]);
                    value    = instance.response.items[words[0]].prices[quality].tradable.uncraftable[crate].value;
                    currency = instance.response.items[words[0]].prices[quality].tradable.uncraftable[crate].currency;
                }
                else
                {
                    value    = instance.response.items[name].prices[quality].tradable.uncraftable[0].value;
                    currency = instance.response.items[name].prices[quality].tradable.uncraftable[0].currency;
                }
            }
            else
            {
                if (name.Contains("Crate"))
                {
                    int      crate;
                    string[] words = name.Split('#');
                    crate    = int.Parse(words[1]);
                    value    = instance.response.items[words[0]].prices[quality].tradable.craftable[crate].value;
                    currency = instance.response.items[words[0]].prices[quality].tradable.craftable[crate].currency;
                }
                else
                {
                    value    = instance.response.items[name].prices[quality].tradable.craftable[0].value;
                    currency = instance.response.items[name].prices[quality].tradable.craftable[0].currency;
                }
            }
            double price = StringParsing.StringToDouble(value + " " + currency, true);

            return(price);
        }
Пример #2
0
        private static void UpdatePrices(object state)
        {
            BackpackAPI instance = new BackpackAPI();

            instance = instance.FetchBackpack();
            ItemList itemlist = new ItemList();

            itemlist.FetchItemList(ref itemlist);
            foreach (ItemInfo item in itemlist.items)
            {
                item.GetNames();
                item.BPprice = instance.GetPrice(item, false);
                if (item.BPprice == 0)
                {
                    continue;
                }

                item.FetchPrice(3);
            }
            itemlist = null;
        }
Пример #3
0
        public BackpackAPI FetchBackpack()
        {
            var absoluteExpirationPolicy = new CacheItemPolicy {
                AbsoluteExpiration = DateTime.Now.AddMinutes(40)
            };
            var settings = new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Include
            };
            HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("http://backpack.tf/api/IGetPrices/v4/?key=54eea024ba8d88e8468b4848&compress=1");

            StreamReader Reader = new StreamReader(Request.GetResponse().GetResponseStream());

            var Data = Reader.ReadToEnd();

            BackpackAPI instance =

                JsonConvert.DeserializeObject <BackpackAPI>(Data, settings);

            //MemoryCache.Default.Set("BackpackTF", instance, absoluteExpirationPolicy);
            Console.WriteLine("done");

            return(instance);
        }
Пример #4
0
        static void Main(string[] args)
        {
            mailer.Initialize();

            // ItemInfo key = new ItemInfo { name = "Mann Co. Supply Crate Key", craftable = 1, quality = 6, cosmetic = false, numeric = "0", crate = 0, australium = 0, fullname = "Mann Co. Supply Crate Key", completename = "Mann Co. Supply Crate Key" };
            //ItemInfo bud = new ItemInfo { name = "Earbuds", craftable = 1, quality = 6, cosmetic = true, numeric = "0", crate = 0, australium = 0, fullname = "Earbuds", completename = "Earbuds" };
            bool done = false;

            BackpackAPI backpack = new BackpackAPI();

            backpack = backpack.FetchBackpack();
            backpack.GetCurrency();
            ItemInfo.GetCurrency();
            Stopwatch watch = new Stopwatch();

            watch.Start();
            ItemList itemlist = new ItemList();

            itemlist.FetchItemList(ref itemlist);

            foreach (ItemInfo item in itemlist.items)
            {
                item.GetNames();

                item.BPprice = backpack.GetPrice(item, false);

                if (item.BPprice == 0)
                {
                    continue;
                }

                item.FetchPrice(3);
            }
            watch.Stop();
            mailer.SendMail("time", watch.ElapsedMilliseconds.ToString());
            Console.WriteLine("Initialization Done");

            Parallel.Invoke(
                () =>
            {
                using (new Timer(RefreshListings, null, TimeSpan.FromMinutes(0), TimeSpan.FromMinutes(40)))
                {
                    while (true)
                    {
                        if (done)
                        {
                            break;
                        }
                    }
                }
            },
                () =>
            {
                using (new Timer(UpdatePrices, null, TimeSpan.FromMinutes(45), TimeSpan.FromMinutes(40)))
                {
                    while (true)
                    {
                        if (done)
                        {
                            break;
                        }
                    }
                }
            },
                () =>
            {
                using (new Timer(UpdateClassifieds, null, TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)))
                {
                    while (true)
                    {
                        if (done)
                        {
                            break;
                        }
                    }
                }
            }
                );
        }