Exemple #1
0
 internal static User LoadUser(JObject o,
                               Twixel.APIVersion version)
 {
     if (version == Twixel.APIVersion.v3)
     {
         return(new User((string)o["display_name"],
                         (long)o["_id"],
                         (string)o["name"],
                         (string)o["type"],
                         (string)o["bio"],
                         o["created_at"].ToString(),
                         o["updated_at"].ToString(),
                         (string)o["logo"],
                         (JObject)o["_links"]));
     }
     else if (version == Twixel.APIVersion.v5)
     {
         return(new User((string)o["display_name"],
                         (long)o["_id"],
                         (string)o["name"],
                         (string)o["type"],
                         (string)o["bio"],
                         o["created_at"].ToString(),
                         o["updated_at"].ToString(),
                         (string)o["logo"],
                         (JObject)o["_links"]));
     }
     else
     {
         throw new TwixelException("User: " + versionCannotBeNoneString);
     }
 }
Exemple #2
0
        internal static List <FeaturedStream> LoadFeaturedStreams(JObject o, Twixel.APIVersion version)
        {
            List <FeaturedStream> streams = new List <FeaturedStream>();

            foreach (JObject obj in (JArray)o["featured"])
            {
                if (version == Twixel.APIVersion.v3)
                {
                    streams.Add(new FeaturedStream((string)obj["text"],
                                                   (string)obj["image"],
                                                   (string)obj["title"],
                                                   (bool)obj["sponsored"],
                                                   (int)obj["priority"],
                                                   (bool)obj["scheduled"],
                                                   (JObject)obj["stream"],
                                                   (JObject)o["_links"]));
                }
                else if (version == Twixel.APIVersion.v5)
                {
                    streams.Add(new FeaturedStream((string)obj["text"],
                                                   (string)obj["image"],
                                                   (string)obj["title"],
                                                   (bool)obj["sponsored"],
                                                   (int)obj["priority"],
                                                   (bool)obj["scheduled"],
                                                   (JObject)obj["stream"],
                                                   (JObject)o["_links"]));
                }
            }

            return(streams);
        }
Exemple #3
0
        internal static List <Video> LoadVideos(JObject o, Twixel.APIVersion version)
        {
            List <Video> videos = new List <Video>();

            if (version == Twixel.APIVersion.v3)
            {
                foreach (JObject video in (JArray)o["videos"])
                {
                    videos.Add(HelperMethods.LoadVideo(video, version));
                }
            }
            else if (version == Twixel.APIVersion.v5)
            {
                if (o["vods"] != null)
                {
                    foreach (JObject video in (JArray)o["vods"])
                    {
                        videos.Add(HelperMethods.LoadVideo(video, version));
                    }
                }
                else if (o["videos"] != null)
                {
                    foreach (JObject video in (JArray)o["videos"])
                    {
                        videos.Add(HelperMethods.LoadVideo(video, version));
                    }
                }
            }
            return(videos);
        }
Exemple #4
0
 /// <summary>
 /// Total constructor
 /// </summary>
 /// <param name="total">Total number of objects</param>
 /// <param name="t">Wrapped object</param>
 /// <param name="version">Twitch API version</param>
 /// <param name="baseLinksO">Base links JSON object</param>
 public Total(long?total, T t,
              Twixel.APIVersion version, JObject baseLinksO) : base(baseLinksO)
 {
     this.version = version;
     this.total   = total;
     this.wrapped = t;
 }
Exemple #5
0
 /// <summary>
 /// Team constructor
 /// </summary>
 /// <param name="id">ID</param>
 /// <param name="name">Name</param>
 /// <param name="info">Info</param>
 /// <param name="displayName">Display name</param>
 /// <param name="createdAt">Creation date</param>
 /// <param name="updatedAt">Last updated</param>
 /// <param name="logo">Link to logo</param>
 /// <param name="banner">Link to banner</param>
 /// <param name="background">Link to background</param>
 /// <param name="version">Twitch API version</param>
 /// <param name="baseLinksO">Base links JSON object</param>
 public Team(long id,
             string name,
             string info,
             string displayName,
             string createdAt,
             string updatedAt,
             string logo,
             string banner,
             string background,
             Twixel.APIVersion version,
             JObject baseLinksO) : base(baseLinksO)
 {
     this.version     = version;
     this.id          = id;
     this.name        = name;
     this.info        = info;
     this.displayName = displayName;
     this.createdAt   = DateTime.Parse(createdAt);
     this.updatedAt   = DateTime.Parse(updatedAt);
     if (logo != null)
     {
         this.logo = new Uri(logo);
     }
     if (banner != null)
     {
         this.banner = new Uri(banner);
     }
     if (background != null)
     {
         this.background = new Uri(background);
     }
 }
Exemple #6
0
 internal static Subscription <User> LoadUserSubscription(JObject o, Twixel.APIVersion version)
 {
     return(new Subscription <User>(o["created_at"].ToString(),
                                    (string)o["_id"],
                                    HelperMethods.LoadUser((JObject)o["user"], version),
                                    version,
                                    (JObject)o["_links"]));
 }
Exemple #7
0
 internal static Subscription <Channel> LoadChannelSubscription(JObject o, Twixel.APIVersion version)
 {
     return(new Subscription <Channel>(o["created_at"].ToString(),
                                       (string)o["_id"],
                                       HelperMethods.LoadChannel((JObject)o["channel"], version),
                                       version,
                                       (JObject)o["_links"]));
 }
Exemple #8
0
 internal static Follow <User> LoadUserFollow(JObject o, Twixel.APIVersion version)
 {
     return(new Follow <User>(o["created_at"].ToString(),
                              (bool)o["notifications"],
                              HelperMethods.LoadUser((JObject)o["user"], version),
                              version,
                              (JObject)o["_links"]));
 }
Exemple #9
0
 /// <summary>
 /// Emoticon constructor
 /// </summary>
 /// <param name="regex">Regex</param>
 /// <param name="imagesA">Emoticon images JSON object</param>
 /// <param name="version">Twitch API version</param>
 /// <param name="baseLinksO">Base links JSON object</param>
 public Emoticon(string regex, JArray imagesA, Twixel.APIVersion version,
                 JObject baseLinksO) : base(baseLinksO)
 {
     this.version   = version;
     emoticonImages = new List <EmoticonImage>();
     this.regex     = regex;
     emoticonImages = LoadEmoticonImages(imagesA);
 }
Exemple #10
0
 internal static Total <T> LoadTotal <T>(JObject o, T t,
                                         Twixel.APIVersion version)
 {
     return(new Total <T>((long?)o["_total"],
                          t,
                          version,
                          (JObject)o["_links"]));
 }
Exemple #11
0
 internal static Block LoadBlock(JObject o, Twixel.APIVersion version)
 {
     return(new Block(o["updated_at"].ToString(),
                      (long)o["_id"],
                      (JObject)o["user"],
                      version,
                      (JObject)o["_links"]));
 }
Exemple #12
0
 internal static Channel LoadChannel(JObject o, Twixel.APIVersion version)
 {
     if (version == Twixel.APIVersion.v3)
     {
         return(new Channel((bool?)o["mature"],
                            (string)o["status"],
                            (string)o["broadcaster_language"],
                            (string)o["display_name"],
                            (string)o["game"],
                            (int?)o["delay"],
                            (string)o["language"],
                            (long)o["_id"],
                            (string)o["name"],
                            o["created_at"].ToString(),
                            o["updated_at"].ToString(),
                            (string)o["logo"],
                            (string)o["banner"],
                            (string)o["video_banner"],
                            (string)o["background"],
                            (string)o["profile_banner"],
                            (string)o["profile_banner_background_color"],
                            (bool?)o["partner"],
                            (string)o["url"],
                            (long?)o["views"],
                            (long?)o["followers"],
                            (JObject)o["_links"]));
     }
     else if (version == Twixel.APIVersion.v5)
     {
         return(new Channel((bool?)o["mature"],
                            (string)o["status"],
                            (string)o["broadcaster_language"],
                            (string)o["display_name"],
                            (string)o["game"],
                            (int?)o["delay"],
                            (string)o["language"],
                            (long)o["_id"],
                            (string)o["name"],
                            o["created_at"].ToString(),
                            o["updated_at"].ToString(),
                            (string)o["logo"],
                            (string)o["banner"],
                            (string)o["video_banner"],
                            (string)o["background"],
                            (string)o["profile_banner"],
                            (string)o["profile_banner_background_color"],
                            (bool?)o["partner"],
                            (string)o["url"],
                            (long?)o["views"],
                            (long?)o["followers"],
                            (JObject)o["_links"]));
     }
     else
     {
         throw new TwixelException("Channel: " + versionCannotBeNoneString);
     }
 }
Exemple #13
0
        internal static List <Block> LoadBlocks(JObject o, Twixel.APIVersion version)
        {
            List <Block> blocks = new List <Block>();

            foreach (JObject block in (JArray)o["blocks"])
            {
                blocks.Add(LoadBlock(block, version));
            }
            return(blocks);
        }
Exemple #14
0
        internal static List <Ingest> LoadIngests(JObject o, Twixel.APIVersion version)
        {
            List <Ingest> ingests = new List <Ingest>();

            foreach (JObject ingest in (JArray)o["ingests"])
            {
                ingests.Add(HelperMethods.LoadIngest(ingest, (JObject)o["_links"], version));
            }
            return(ingests);
        }
Exemple #15
0
        internal static List <Follow <User> > LoadUserFollows(JObject o, Twixel.APIVersion version)
        {
            List <Follow <User> > follows = new List <Follow <User> >();

            foreach (JObject obj in (JArray)o["follows"])
            {
                follows.Add(LoadUserFollow(obj, version));
            }
            return(follows);
        }
Exemple #16
0
        internal static List <Video> LoadVideos(JObject o, Twixel.APIVersion version)
        {
            List <Video> videos = new List <Video>();

            foreach (JObject video in (JArray)o["videos"])
            {
                videos.Add(HelperMethods.LoadVideo(video, version));
            }
            return(videos);
        }
Exemple #17
0
        internal static List <Subscription <User> > LoadUserSubscriptions(JObject o, Twixel.APIVersion version)
        {
            List <Subscription <User> > subscriptions = new List <Subscription <User> >();

            foreach (JObject sub in (JArray)o["subcriptions"])
            {
                subscriptions.Add(HelperMethods.LoadUserSubscription(sub, version));
            }
            return(subscriptions);
        }
Exemple #18
0
        internal static List <Channel> LoadChannels(JObject o, Twixel.APIVersion version)
        {
            List <Channel> channels = new List <Channel>();

            foreach (JObject channel in (JArray)o["channels"])
            {
                channels.Add(HelperMethods.LoadChannel(channel, version));
            }
            return(channels);
        }
Exemple #19
0
        internal static List <User> LoadUsers(JObject o, Twixel.APIVersion version)
        {
            List <User> users = new List <User>();

            foreach (JObject user in (JArray)o["users"])
            {
                users.Add(HelperMethods.LoadUser(user, version));
            }
            return(users);
        }
Exemple #20
0
        internal static List <Team> LoadTeams(JObject o, Twixel.APIVersion version)
        {
            List <Team> teams = new List <Team>();

            foreach (JObject team in (JArray)o["teams"])
            {
                teams.Add(HelperMethods.LoadTeam(team, version));
            }
            return(teams);
        }
Exemple #21
0
 /// <summary>
 /// Subscription constructor
 /// </summary>
 /// <param name="createdAt">Creation date</param>
 /// <param name="id">ID</param>
 /// <param name="t">Wrapped object</param>
 /// <param name="version">Twitch API version</param>
 /// <param name="baseLinksO">Base links JSON object</param>
 public Subscription(string createdAt,
                     string id,
                     T t,
                     Twixel.APIVersion version,
                     JObject baseLinksO) : base(baseLinksO)
 {
     this.version   = version;
     this.createdAt = DateTime.Parse(createdAt);
     this.id        = id;
     this.wrapped   = t;
 }
Exemple #22
0
 /// <summary>
 /// Follow constructor
 /// </summary>
 /// <param name="createdAt">Creation date</param>
 /// <param name="notifications">Notification status</param>
 /// <param name="t">Wrapped object</param>
 /// <param name="version">Twitch API version</param>
 /// <param name="baseLinksO">Base links JSON object</param>
 public Follow(string createdAt,
               bool notifications,
               T t,
               Twixel.APIVersion version,
               JObject baseLinksO) : base(baseLinksO)
 {
     this.version       = version;
     this.createdAt     = DateTime.Parse(createdAt);
     this.notifications = notifications;
     this.wrapped       = t;
 }
Exemple #23
0
 /// <summary>
 /// SearchedGame constructor
 /// </summary>
 /// <param name="name">Name</param>
 /// <param name="popularity">Popularity</param>
 /// <param name="id">ID</param>
 /// <param name="giantBombId">GiantBomb ID</param>
 /// <param name="boxO">Box JSON object</param>
 /// <param name="logoO">Logo JSON object</param>
 /// <param name="version">Twitch API version</param>
 /// <param name="baseLinksO">Base links JSON object</param>
 public SearchedGame(string name,
                     long?popularity,
                     long?id,
                     long?giantBombId,
                     JObject boxO,
                     JObject logoO,
                     Twixel.APIVersion version,
                     JObject baseLinksO) : base(null, null, name, id, giantBombId, boxO, logoO, version, baseLinksO)
 {
     this.popularity = popularity;
 }
Exemple #24
0
        internal static List <Stream> LoadStreams(JObject o, Twixel.APIVersion version)
        {
            List <Stream> streams = new List <Stream>();

            foreach (JObject obj in (JArray)o["streams"])
            {
                streams.Add(LoadStream(obj, version));
            }

            return(streams);
        }
Exemple #25
0
 /// <summary>
 /// Block constructor
 /// </summary>
 /// <param name="updatedAt">Last updated at as a string</param>
 /// <param name="id">Block ID</param>
 /// <param name="userO">User JSON object</param>
 /// <param name="version">Twitch API version</param>
 /// <param name="baseLinksO">Base links JSON object</param>
 public Block(string updatedAt,
              long id,
              JObject userO,
              Twixel.APIVersion version,
              JObject baseLinksO) : base(baseLinksO)
 {
     this.version   = version;
     this.updatedAt = DateTime.Parse(updatedAt);
     this.id        = id;
     this.user      = HelperMethods.LoadUser(userO, version);
 }
Exemple #26
0
 /// <summary>
 /// Badge constructor
 /// </summary>
 /// <param name="name">Badge name</param>
 /// <param name="linksO">Badge image links</param>
 /// <param name="version">Twitch API version</param>
 /// <param name="baseLinksO">Base links JSON object</param>
 public Badge(string name,
              JObject linksO,
              Twixel.APIVersion version,
              JObject baseLinksO) : base(baseLinksO)
 {
     this.version = version;
     this.name    = name;
     if (linksO != null)
     {
         this.links = HelperMethods.LoadLinks(linksO);
     }
 }
Exemple #27
0
        internal static Ingest LoadIngest(JObject o, JObject baseLinksO, Twixel.APIVersion version)
        {
            Ingest ingest = new Ingest((string)o["name"],
                                       (bool)o["default"],
                                       (long)o["_id"],
                                       (string)o["url_template"],
                                       (double)o["availability"],
                                       version,
                                       baseLinksO);

            return(ingest);
        }
Exemple #28
0
        internal static List <Emoticon> LoadEmoticons(JObject o,
                                                      Twixel.APIVersion version)
        {
            List <Emoticon> emoticons = new List <Emoticon>();

            foreach (JObject obj in (JArray)o["emoticons"])
            {
                emoticons.Add(new Emoticon((string)obj["regex"],
                                           (JArray)obj["images"],
                                           version,
                                           (JObject)o["_links"]));
            }
            return(emoticons);
        }
Exemple #29
0
 internal static Video LoadVideo(JObject o, Twixel.APIVersion version)
 {
     if (version == Twixel.APIVersion.v3)
     {
         return(new Video((string)o["title"],
                          (string)o["description"],
                          (long)o["broadcast_id"],
                          (string)o["status"],
                          (string)o["tag_list"],
                          (string)o["_id"],
                          o["recorded_at"].ToString(),
                          (string)o["game"],
                          (long)o["length"],
                          (string)o["preview"],
                          (string)o["url"],
                          (long)o["views"],
                          o["fps"].ToString(),
                          o["resolutions"].ToString(),
                          (string)o["broadcast_type"],
                          (JObject)o["channel"],
                          (JObject)o["_links"]));
     }
     else if (version == Twixel.APIVersion.v5)
     {
         return(new Video((string)o["title"],
                          (string)o["description"],
                          (long)o["broadcast_id"],
                          (string)o["status"],
                          (string)o["tag_list"],
                          (string)o["_id"],
                          (string)o["game"],
                          (long)o["length"],
                          o["preview"].ToString(),
                          (string)o["url"],
                          (long)o["views"],
                          o["fps"].ToString(),
                          o["resolutions"].ToString(),
                          (string)o["broadcast_type"],
                          o["thumbnails"].ToString(),
                          (string)o["language"],
                          (string)o["viewable"],
                          (JObject)o["channel"],
                          (JObject)o["_links"]));
     }
     else
     {
         throw new TwixelException("Video: " + versionCannotBeNoneString);
     }
 }
Exemple #30
0
 public static Community LoadCommunity(JObject o, Twixel.APIVersion version)
 {
     return(new Community((string)o["_id"],
                          (string)o["avatar_image_url"],
                          (string)o["cover_image_url"],
                          (string)o["description"],
                          (string)o["description_html"],
                          (string)o["language"],
                          (string)o["name"],
                          (long)o["owner_id"],
                          (string)o["rules"],
                          (string)o["rules_html"],
                          (string)o["summary"],
                          null));
 }